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


第一步:首先需要安裝工具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() # 顯示圖像

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

第五步:正常運行

(內附一張背景圖)

 


免責聲明!

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



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