准備工作
主要用到Python的兩個第三方庫
- jieba:中文分詞工具
- wordcloud:python下的詞雲生成工具
步驟
- 准備語料庫,詞雲圖需要的背景圖片
- 使用jieba進行分詞,去停用詞,詞頻統計等
- 使用wordcloud進行詞頻展示
主要代碼
1 import jieba 2 jieba.load_userdict('userdict.txt') # 加載自定義詞典 3 sentence_depart = jieba.cut(sentence) # 分詞 4 stop_words = stop_word_list() # 創建停用詞列表 5 out_str = '' 6 # 去停用詞 7 for word in sentence_depart: 8 if word not in stop_words: 9 if word != '\t': 10 out_str += word 11 out_str += " "
1 from os import path 2 from scipy.misc import imread 3 import jieba.analyse 4 import matplotlib.pyplot as plt 5 from wordcloud import WordCloud 6 7 d = path.dirname(__file__) # 返回當前運行腳本下的絕對路徑 8 back_coloring_path = "1.jpg" # 隨意准備一張圖片,用來設置詞雲形狀 9 back_coloring = imread(path.join(d, back_coloring_path)) # 讀取圖片 10 11 f = open(u'out.txt', 'r', encoding='utf-8').read() # out.txt已經處理好的分詞數據 12 tags = jieba.analyse.extract_tags(f, topK=100, withWeight=False) # 關鍵詞提取 topK=100 提取TF-IDF權重最大的前100個關鍵詞 13 text = " ".join(tags) 14 15 wordcloud = WordCloud(background_color='white', 16 width=2000, 17 height=1000, 18 margin=2, 19 max_words=100, # 設置最多顯示的詞數 20 mask=back_coloring, # 設置詞雲形狀 21 font_path="simhei.ttf", # 中文詞圖必須設置字體格式,否則會亂碼,這里加載的是黑體 22 random_state=10) # 設置有多少種隨機生成狀態,即有多少種配色方案 23 w = wordcloud.generate(text) # 傳入需畫詞雲圖的文本 24 plt.imshow(w) 25 plt.axis('off') # 關閉坐標軸 26 plt.show()
比如:傳入如下兩張圖片作為詞圖的形狀
詞雲圖結果
參考資料:https://www.jianshu.com/p/2052d21a704c