python繪制中文詞雲圖


准備工作

  主要用到Python的兩個第三方庫

  • jieba:中文分詞工具
  • wordcloud:python下的詞雲生成工具

步驟

  1. 准備語料庫,詞雲圖需要的背景圖片
  2. 使用jieba進行分詞,去停用詞,詞頻統計等
  3. 使用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


免責聲明!

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



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