python wordcloud 詞雲

python wordcloud 詞雲

詞雲是對文本數據中出現頻率較高的“關鍵詞”在視覺上的突出呈現,形成關鍵詞的渲染形成類似雲一樣的彩色圖片,從而一眼就可以領略文本數據的主要表達意思。
而python在生成詞雲上也是非常的方便。

需要安裝的包

使用pip安裝下述包

  • jieba:一個國人開發的優秀的分詞工具
  • wordcloud:詞雲的核心包
  • matplotlibPILnumpy用於處理和繪製圖像

wordcloud安裝的問題

我是windows下安裝,由於缺乏VS編譯器在pip install時無法正確安裝wordcloud。

  1. 此時想用minGW去編譯,發現python3.5.2的版本在windows下不支持minGW。。。
  2. 於是轉戰linux平臺,發現安裝還是出問題。提示沒有python-tk。即tkinter,一個python默認使用的GUI平臺。此平臺在windows下是隨安裝包可選安裝的,但linux下並未安裝。於是使用apt來安裝。之後就開開心心的安裝成功了。

    注意使用的python版本

    sudo apt-get Install python3-tk
    

代碼

生成詞雲的大致過程可分爲:

  • 讀取和處理文本
  • 讀取背景
  • 設置參數並生成詞雲
  • 繪圖

具體使用請見下述源碼

import jieba
import wordcloud
import matplotlib.pyplot as plt
import PIL
import numpy as np

# Read raw file
with open('word.txt', 'r') as f:
    raw_txt = f.read()

# Read background pic
pic = PIL.Image.open("backgroud.jpg")
pic_mask = np.array(pic)

# word split
raw_txt = jieba.cut(raw_txt, cut_all=True)
raw_txt = ' '.join(raw_txt) # split word with space

# Make word cloud, The parameters setting please see help()
wc = wordcloud.WordCloud()
wc.font_path        = 'msyh.ttf' # microsoft yahei
wc.width            = 1200
wc.height           = 800
wc.max_word         = 2000
wc.mask             = pic_mask
wc.radom_state      = 42
wc.max_font_size    = 84
wc.min_font_size    = 16
wc.background_color = "white"
word_cloud = wc.generate(raw_txt)

# plot word cloud
plt.imshow(word_cloud)
plt.axis('off')
plt.figure()

# plot word cloud with re-color by mask
img_color   = wordcloud.ImageColorGenerator(pic_mask)
img_recolor = word_cloud.recolor(color_func=img_color)
plt.imshow(img_recolor)
plt.axis("off")
plt.show()

輸出結果

由於背景圖片沒有處理過,所以看上去有些凌亂。但還是能夠看出大致輪廓和相似的色彩。另外,大家看的出用於詞雲分析的是什麼文章嗎?:)

詞雲圖:

這裏寫圖片描述

結合原圖顏色處理後的詞雲圖:

這裏寫圖片描述

原圖:

原圖

參考


發佈了59 篇原創文章 · 獲贊 20 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章