一、環境
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() #顯示圖像
四、結果展示