【python】一篇文章里的词频统计
一、环境
1.python3.6
2.windows系统
3.安装第三方模块
pip install wordcloud #词云展示库 pip install jieba #结巴分词 pip install matplotlib #图像展示库
二、需求
统计article.txt里的文章的词频
三、代码
import collections #词库统计库,自带模块 import re #正则表达式 自带模块 import wordcloud #词云展示库,pip install wordcloud import jieba #结巴分词,pip install jieba import matplotlib.pyplot as plt #图像展示库 pip install matplotlib #读取文件 fn = open('article.txt',encoding='utf-8') #打开文件 string_data = fn.read() #读取整个文件 fn.close() #关闭文件 #文本预处理 pattern = re.compile(u'\t|\n|\.|-|:|;|\)|\(|\?|"') #定义正则表达式匹配模式 string_data = re.sub(pattern,'',string_data) #将符合模式的字符去除 print(string_data) #文本分词 seg_list_exact = jieba.cut(string_data,cut_all=False) #精确模式分词 object_list = [] remove_words = [u'的',u',',u'。',u'“',u'”',u'能',u'如果',u'通常',u'我们',u'需要',u'随着',u' ',u'在',u'了',u'、',u'是',u'上',u'有',u'从'] #自定义去除词库 # print(seg_list_exact) for word in seg_list_exact: #循环读出每个分词 if word not in remove_words: #如果不在去除词库中 object_list.append(word) #分词追加到列表 # print(object_list) # # 词频统计 word_counts = collections.Counter(object_list) #对分词做词频统计 word_counts_top10 = word_counts.most_common(10) #获取前10最高频的词 print(word_counts_top10) #输出检查 # # # 词频展示 wc = wordcloud.WordCloud(background_color="black", # 设置背景颜色 max_words=200, # 设置最大显示的字数 font_path="FZSTK.TTF", # 设置中文字体,词云默认字体是“DroidSansMono.ttf字体库”,不支持中文 max_font_size=50, # 设置字体最大值 random_state=30, # 设置有多少种随机生成状态,即有多少种配色方案 ) # wc.generate_from_frequencies(word_counts) #从字典生成词云 plt.imshow(wc) #显示词云 plt.axis('off') #关闭坐标轴 plt.show() #显示图像
四、结果展示