詞雲又稱文字雲,近幾年非常流行。你要說它為什麼會變火呢?有的人會認為它是文本挖掘的可視化、有的人 會給一些用戶打上標籤、有的人則只是想玩玩這酷炫的詞彙……但詞雲產生的視覺效果才是讓人更著迷的地方。
詞雲主要是對文本中出現頻率較高的「關鍵詞」進行視覺上的突出,讓人更直觀地看出文本的重點。本文針對上一篇文章如何統計文章詞頻,從而更快了解一篇文章所獲得的中文詞頻統計數據進行詞雲可視化展示,更加清晰的看到文章關鍵詞的權重。
詞雲庫WordCloud
wordcloud庫,可以說是python非常優秀的詞雲展示第三方庫。詞雲以詞語為基本單位更加直觀和藝術的展示文本而且使用簡單,內容豐富,先看看它生成的詞雲是什麼樣的。

該庫主要有以下函數
fit_words(frequencies) 該函數根據詞頻生成詞雲generate_from_frequencies(frequencies[, ……]) 根據詞頻生成詞generate(text) 根據文本生成詞雲process_text(text) 將長文本分詞並去除屏蔽詞(此處指英語,中文分詞還是需要自己用別的庫先行實現,使用上面的 fit_words(frequencies) )recolor([random_state, color_func, colormap]) 對現有輸出重新著色。重新上色會比重新生成整個詞雲快很多to_array() 轉化為 numpy arrayto_file(filename) 輸出到文件wordcloud的參數主要有:
font_path: 設置字體路徑,因為對中文處理的時候需要指定字體;
width,height:輸出畫布的寬度和高度;
mask:制定圖片繪製詞雲,如果參數為空,則使用二維遮罩繪製詞雲。如果 mask 非空,設置的寬高值將被忽略,遮罩形狀被 mask 取代。
統計詞頻詞雲
根據上面描述的wordcloud庫,就可以用來做詞雲,這裡用python3.6進行編寫。
第一步先定義一個詞頻背景圖,作為詞雲的載體。用來作為wordcloud中mask參數。mask = np.array(Image.open('u0.jpg'))。u0.jpg如圖所示
第二步聲明創建wordcloud對象,裡面傳入參數font_path,mask,max_words,max_font_size。分別代表字體格式路徑,繪製詞雲的背景圖,詞雲最多顯示詞數,字體最大值。

第三步調用generate_from_frequencies方法,參數為上一篇中統計詞頻的字典count。
第四步調用to_file方法保存生成的詞雲圖片

最後效果
還可以將u0.jpg換成更加個性的圖片,生成更加好看的詞雲形狀,比如下圖