【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()          #显示图像

 

 

四、结果展示

 

posted @ 2019-10-12 13:44  森林326  阅读(2308)  评论(0编辑  收藏  举报