【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()          #顯示圖像

 

 

四、結果展示

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM