1. 程式人生 > >用Python實現一個詞頻統計(詞雲+圖)

用Python實現一個詞頻統計(詞雲+圖)

dcloud top 復制 width ros tor 數據 microsoft lis

第一步:首先需要安裝工具python

第二步:在電腦cmd後臺下載安裝如下工具:

技術分享圖片

(有一些是安裝好python電腦自帶有哦)

技術分享圖片

有一些會出現一種情況就是安裝不了詞雲展示庫

有下面解決方法,需看請復制鏈接查看:https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud

第三步:

1.準備好你打算統計的文件,命名為 家.txt,保存到桌面

2.準備一個做背景的圖片,命名為girl.jpg,同樣保存到桌面

第四步:插入代碼

 1 import re # 正則表達式庫
 2 import collections # 詞頻統計庫
3 import numpy as np # numpy數據處理庫 4 import jieba # 結巴分詞 5 import wordcloud # 詞雲展示庫 6 from PIL import Image # 圖像處理庫 7 import matplotlib.pyplot as plt # 圖像展示庫 8 9 # 讀取文件 10 fn = open(C://Users//Thinkpad//Desktop//家.txt,rt) # 打開文件 11 string_data = fn.read() # 讀出整個文件 12 fn.close() # 關閉文件 13
14 # 文本預處理 15 pattern = re.compile(u\t|\n|\.|-|:|;|\)|\(|\?|") # 定義正則表達式匹配模式 16 string_data = re.sub(pattern, ‘‘, string_data) # 將符合模式的字符去除 17 18 # 文本分詞 19 seg_list_exact = jieba.cut(string_data, cut_all = False) # 精確模式分詞 20 object_list = [] 21 remove_words = [u, u,u, u, u隨著
, u對於, u,u,u,u,u,u ,u,u,u,u, 22 u通常,u如果,u我們,u需要] # 自定義去除詞庫 23 24 for word in seg_list_exact: # 循環讀出每個分詞 25 if word not in remove_words: # 如果不在去除詞庫中 26 object_list.append(word) # 分詞追加到列表 27 28 # 詞頻統計 29 word_counts = collections.Counter(object_list) # 對分詞做詞頻統計 30 word_counts_top10 = word_counts.most_common(10) # 獲取前10最高頻的詞 31 print (word_counts_top10) # 輸出檢查 32 33 # 詞頻展示 34 mask = np.array(Image.open(C://Users//Thinkpad//Desktop//girl.jpg)) # 定義詞頻背景 35 wc = wordcloud.WordCloud( 36 font_path=C:/Windows/Fonts/simhei.ttf, # 設置字體格式 37 mask=mask, # 設置背景圖 38 max_words=200, # 最多顯示詞數 39 max_font_size=100 # 字體最大值 40 ) 41 42 wc.generate_from_frequencies(word_counts) # 從字典生成詞雲 43 image_colors = wordcloud.ImageColorGenerator(mask) # 從背景圖建立顏色方案 44 wc.recolor(color_func=image_colors) # 將詞雲顏色設置為背景圖方案 45 plt.imshow(wc) # 顯示詞雲 46 plt.axis(off) # 關閉坐標軸 47 plt.show() # 顯示圖像

(其中代碼中有打開路徑,每個人存的位置不一樣,自己復制粘貼過來哦)

第五步:正常運行

技術分享圖片

(內附一張背景圖)

技術分享圖片

用Python實現一個詞頻統計(詞雲+圖)