做视频网站要什么格式好,新问网站设计,给公司做网站销售怎样啦,网络推广运营的技巧统计中文词频是Python考试中常见的操作#xff0c;由于考察内容较多#xff0c;因此比较麻烦#xff0c;那么有没有好的方法来实现呢#xff1f;今天#xff0c;我们总结了四种常见的中文词频统计方法#xff0c;并列出代码#xff0c;供大家学习参考。
中文词频统计主…统计中文词频是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: #排除单个字符的分词结果continueelse:counts[word] counts.get(word,0) 1
items list(counts.items())
items.sort(keylambda x:x[1], reverseTrue)
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,encodingutf-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,encodingutf-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,countitemprint(f{word:10}\t{count:5})
print (已统计数量排前10的词)
使用这种方法得安装nltk包较为麻烦。
四、列表推导式法
如果不借助其它包我们可以充分利用Python自带的count方法和列表推导式实现词频的统计。这其中与前面排序的方法不同的是我们采用了sorted的方法完整代码如下
import jieba,os
with open(词频统计文本.txt,r,encodingutf-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,keylambda x:x[1],reverseTrue)
for i in range(10):word, count items[i]if len(word) 1: #排除单个字符的分词结果continueelse:print(f{word:10}\t{count:5})
print (已统计数量排前10的词)
五、学后反思
1. 中文词频统计主要考察文本的读取、列表的遍历、jieba分词、词频统计、排序、结果的格式化和打印输出等综合能力。因此它是Python二级中常考的题目认真学习并找出多种词频统计的方法可以更好地理解Python中的相关概念和基础语法知识。
2. 四种方法中最麻烦的是NLTK法和列表推导式化字典法和Counter方法最为常用字典法常出现在考试中而Counter的方法实用性更强大家可以有选择地使用。
3. 有了词频表后续可以进行可视化的图表生成包括词云图和线形图等以便更直观地观察语篇中词的特点。