Python统计中文词频的四种方法

这篇具有很好参考价值的文章主要介绍了Python统计中文词频的四种方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

统计中文词频是Python考试中常见的操作,由于考察内容较多,因此比较麻烦,那么有没有好的方法来实现呢?今天,我们总结了四种常见的中文词频统计方法,并列出代码,供大家学习参考。

中文词频统计主要是通过open()打开文本,然后read()方法读取后,采用结巴分词(jieba)模块进行分词,接着用推表推导式、Counter或者是字典的方法来统计词频,也可以采用NLTK的方法,最后格式化打印出来。

题目:统计中文文本文件【词频统计文本.txt】中长度大于1的词的词频,然后打印出词频数最高的10个词。

默认系统里已经安装好了jieba这个模块。如果还没有安装,可以在cmd下通过pip install jieba来安装这个模块。

一、字典法——常用的方法

先读取文本,然后jieba分词,再对分词后的列表进行遍历,然后用字典统计词频。这里排除了单个词,代码如下:

import jieba
txt = open("词频统计文本.txt", "r").read()
words = jieba.lcut(txt)
counts = {}
for word in words:
    if len(word) == 1: #排除单个字符的分词结果
        continue
    else:
        counts[word] = counts.get(word,0) + 1
items = list(counts.items())
items.sort(key=lambda x:x[1], reverse=True)
for i in range(10):
    word, count = items[i]
    print("{0:<10}{1:>5}".format(word,count))
print ('已统计数量排前10的词')

二、Counter法——代码简单,速度快

先生成Counter对象,再排序,最后再打印出来。这里我们使用了most_common的方法,代码更为简洁,更好理解一点。代码如下:

import jieba
from collections import Counter
with open("词频统计文本.txt", "r",encoding="utf-8") as f:
    words = jieba.lcut(f.read())
    words = [item for item in words if len(item)>1]
counts = Counter(words)
for word,count in counts.most_common(10):
    print(word,count)
print ('已统计数量排前10的词')

三、NLTK方法——有点儿小麻烦

利用列表推导式筛选列表,利用NLTK中的FreqDist来统计列表中的词步,代码如下。

import jieba,os
from nltk.probability import FreqDist
with open("词频统计文本.txt","r",encoding="utf-8") as f:
    text = f.read()
words = jieba.lcut(text)
lst = [i for i in words if len(i)>1]
freq = FreqDist(lst)
for item in freq.most_common(10):
    word,count=item
    print(f"{word:<10}\t{count:<5}")
print ('已统计数量排前10的词')

使用这种方法,得安装nltk包,较为麻烦。

四、列表推导式法

如果不借助其它包,我们可以充分利用Python自带的count方法和列表推导式,实现词频的统计。这其中与前面排序的方法不同的是,我们采用了sorted的方法,完整代码如下:

import jieba,os
with open("词频统计文本.txt","r",encoding="utf-8") as f:
    text = f.read()
words = jieba.lcut(text)
lst = [(key,words.count(key)) for key in set(words) if len(key)>1]
items = sorted(lst,key=lambda x:x[1],reverse=True)
for i in range(10):
    word, count = items[i]
    if len(word) == 1: #排除单个字符的分词结果
        continue
    else:
        print(f"{word:<10}\t{count:<5}")
print ('已统计数量排前10的词')

五、学后反思

1. 中文词频统计主要考察文本的读取、列表的遍历、jieba分词、词频统计、排序、结果的格式化和打印输出等综合能力。因此,它是Python二级中常考的题目,认真学习,并找出多种词频统计的方法可以更好地理解Python中的相关概念和基础语法知识。

2. 四种方法中最麻烦的是NLTK法和列表推导式化,字典法和Counter方法最为常用,字典法常出现在考试中,而Counter的方法实用性更强,大家可以有选择地使用。

3. 有了词频表,后续可以进行可视化的图表生成,包括词云图和线形图等,以便更直观地观察语篇中词的特点。文章来源地址https://www.toymoban.com/news/detail-676561.html

到了这里,关于Python统计中文词频的四种方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【转载】Python 修改DataFrame列名的四种方法

    本文转自知乎博文Zhuang Tommy Pandas 3:如何修改columns的名称 - 知乎 (zhihu.com) @Zhuang Tommy 关于更详细的pandas DataFrame教程,可参考@Ding Jiaxiong 的博文 【Pandas入门教程】如何选择DataFrame的子集_pandas 子集-CSDN博客

    2024年02月04日
    浏览(46)
  • 【C/C++】统计数组各元素个数的四种方法

     问题:给定一个数组,输出各元素出现的次数。 目录 法一:逐个统计 法二:用数组以值代址 法三:先排序,再进行统计 法四:利用哈希表进行统计  思路: 数组第一个数为目标,遍历数组进行统计,统计后的数据替换成0(表示已删除),统计后输出数目。 优点:呃。。

    2024年01月21日
    浏览(45)
  • pip安装python第三方库的四种方法

    pip install 库名 打开命令提示符【win + r】,输入cmd,在命令提示窗口输入pip install 库名, 再点击回车键【Enter】,就可以安装。当安装成功时,会提示successfully。例如,安装pytest库 使用该方法会存在由于网络不稳定时就无法安装成功的情况,遇到此情况时,可以多尝试几次,若

    2024年01月17日
    浏览(44)
  • Python爬虫入门之爬虫解析提取数据的四种方法

    本文主要介绍了Python爬虫入门之爬虫解析提取数据的四种方法,通过具体的内容向大家展现,希望对大家Python爬虫的学习有所帮助。 基础爬虫的固定模式 笔者这里所谈的基础爬虫,指的是不需要处理像异步加载、验证码、代理等高阶爬虫技术的爬虫方法。一般而言,基础爬

    2024年02月03日
    浏览(49)
  • IntelliJ IDEA 控制台中文乱码的四种解决方法

    IntelliJ IDEA 如果不进行配置的话,运行程序时控制台有时候会遇到中文乱码,中文乱码问题非常严重,甚至影响我们对信息的获取和程序的跟踪。开发体验非常不好。 本文中我总结出四点用于解决控制台中文乱码问题的方法,希望有助于大家。 注意 :下面根据我日常工作的

    2024年02月08日
    浏览(50)
  • 用 Python 从单个文本中提取关键字的四种超棒的方法

    自然语言处理分析的最基本和初始步骤是提取,在NLP中,我们有许多算法可以帮助我们提取文本数据的。本文中,云朵君将和大家一起学习四种即简单又有效的方法,它们分别是 Rake、Yake、Keybert 和 Textrank 。并将简单概述下每个方法的使用场景,然后使用附加示

    2023年04月08日
    浏览(48)
  • 使用python进行字频统计和词频统计

    读取给定的语料库,根据制表符’t’划分其文本与标签,将获得的文本仅保留汉字部分,并按字划分,保存在列表中,至少使用一种方法,统计所有汉字的出现次数,并按照从高到低的顺序排序;至少使用一种方法,统计所有字频,按照从高到低的顺序排序;至少使用一种

    2024年02月06日
    浏览(41)
  • python使用jieba分词,词频统计,基本使用

    python采用第三方库进行中文分词,本文章只是记录文章。 1.需要下载第三方库jieba:                 cmd: pip install jieba 2.为了方便测试,在同级目录下,准备一个txt格式文件,文件名随意,这里我也是随便取的:                 文件路径可以是绝对路径,也可以是相对路

    2024年02月07日
    浏览(43)
  • Python英文词频统计(哈姆雷特)程序示例

    今天继续给大家介绍Python相关知识,本文主要内容是Python英文词频统计程序示例,主要是对英文文本——《哈姆雷特》进行分词。 想要对《哈姆雷特》进行英文单词词频统计,那么我们首先需要拿到《哈姆雷特》的原文,将之存储为本地的txt文档,然后使用Python打开该文件,

    2024年02月04日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包