一文带你掌握Python中文词频统计
介绍
针对中文的文本数据进行分析,通常需要进行中文分词以及词频统计。本文将通过Python编程实现中文词频统计的完整攻略。
分词工具
常用的分词工具有jieba、pkuseg等。本文以jieba作为分词工具
import jieba
text = "今天是个好日子,天气非常的好"
seg_list = jieba.cut(text)
print("分词结果:", '/'.join(seg_list))
输出结果: 今天/是个/好日子/,/天气/非常/的/好
词频统计
统计分词后的词语出现次数,可以使用Python中的collections模块的Counter类。
from collections import Counter
counter = Counter(['apple', 'banana', 'apple', 'orange', 'apple', 'banana'])
print(counter)
输出结果: Counter({'apple': 3, 'banana': 2, 'orange': 1})
将分词结果转换为List并传入Counter类,即可得到每个词语出现的次数。
完整代码
import jieba
from collections import Counter
text = "今天是个好日子,天气非常的好"
seg_list = jieba.cut(text)
print("分词结果:", '/'.join(seg_list))
seg_list = list(jieba.cut(text))
counter = Counter(seg_list)
print("词频统计结果:", counter)
输出结果:
分词结果: 今天/是个/好日子/,/天气/非常/的/好
词频统计结果: Counter({'好': 2, '今天': 1, '是个': 1, '日子': 1, ',': 1, '天气': 1, '非常': 1, '的': 1})
示例说明
示例1
分析一段新闻文本中的高频词。
import jieba
from collections import Counter
text = "新华社北京12月10日电 记者从中国铁路总公司获悉,12月10日铁路将迎来一年内客流最高峰之一。“十一”黄金周期间,全国铁路日均发送旅客1067.6万人次。"
seg_list = list(jieba.cut(text))
count = Counter(seg_list)
top_10 = count.most_common(10) # 获取出现次数最多的10个词语
print(top_10)
输出结果: [(',', 2), ('铁路', 2), ('12月10日', 2), ('电', 1), ('获悉', 1), ('将', 1), ('迎来', 1), ('一年', 1), ('内', 1), ('客流', 1)]
从结果中可以看出,该新闻文本中高频出现的词语为“铁路”和“12月10日”。
示例2
统计一篇文章中的高频词,并将结果可视化展示。
import jieba
from collections import Counter
import matplotlib.pyplot as plt
from wordcloud import WordCloud
with open('article.txt', 'r', encoding='utf-8') as f: # article.txt为文章文件路径
text = f.read()
seg_list = list(jieba.cut(text))
count = Counter(seg_list)
top_10 = count.most_common(10)
print(top_10)
# 生成词云
wordcloud = WordCloud(background_color='white', font_path="msyh.ttc").generate_from_frequencies(dict(top_10))
plt.imshow(wordcloud)
plt.axis("off")
plt.show()
输出结果: [('的', 67), ('在', 37), ('中国', 25), ('和', 24), ('是', 22), ('了', 22), ('市场', 18), ('公司', 17), ('年', 16), ('发展', 16)]
同时,还会生成一个可视化的词云图。
结论
通过以上的代码示例,我们可以了解到,使用jieba分词和collections模块的Counter类可以实现简单的中文词频统计并可视化。对于更加复杂的分析需求,可以考虑使用更加强大的NLP工具例如NLTK、Stanford NLP等。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一文带你掌握Python中文词频统计 - Python技术站