1. 程式人生 > >Python生成詞雲——WordCount入門

Python生成詞雲——WordCount入門

主要內容:

  • 介紹詞雲
  • 用Python的WordCount包實現詞雲

詞雲

  • 關鍵詞的視覺化描述;
  • 圖形視覺化;
  • 用於彙總使用者生成的標籤或一個網站的文字內容;
  • 重要程度能通過改變字型大小或顏色來表現;
  • 大多數標籤本身就是超級連結,直接指向與標籤相聯的一系列條目。

Python實現詞雲

構造詞雲的方法很多,這裡推薦Python的WordCount包,實現非常方便,且能夠自定義圖片。具體可參考:WordCount官方文件

型別一:Minimal Example

先來看看效果圖:


這裡寫圖片描述

該型別主要是根據內容中單詞出現的次數的不同而繪製的。出現次數越多,標籤字型越大;出現次數越少,相應的字型越小。從該詞雲中可以看出,“data”,“Spark”,“Hadoop”出現次數較多,據此能夠推測該內容主要設計的是大資料領域。下面是其實現程式碼:

# 匯入相關的庫
from os import path
import matplotlib.pyplot as plt
from wordcloud import WordCloud

# 獲取當前檔案路徑
# __file__ 為當前檔案, 在ide中執行此行會報錯,可改為
# d = path.dirname('.')
d = path.dirname('.')

# 讀取整個檔案
text = open(path.join(d, '/home/spark/WordCount.txt')).read()
wordcloud = WordCloud().generate(text)

# 繪圖
plt.imshow(wordcloud) plt.axis("off") plt.show()

型別二:Image-colored wordcloud

還是先看看效果圖:


這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

該型別基於影象的著色策略為詞雲著色,並修改詞雲形狀。

from os import path
from scipy.misc import imread
import matplotlib.pyplot as plt

from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator

d = path.dirname('.')

# Read the whole text.
text = open(path.join(d, '/home/spark/WordCount.txt')).read() # 設定背景圖片 RGB_coloring = imread(path.join(d, "/home/spark/RGB.jpg")) # 設定引數:背景顏色,詞雲顯示的最大詞數,設定背景圖片,字型最大值 wc = WordCloud(background_color="white",max_words=2000,mask=RGL_coloring,stopwords=STOPWORDS.add("said"),max_font_size=40, random_state=42) # generate word cloud wc.generate(text) # 從背景圖片生成顏色值 image_colors = ImageColorGenerator(RGB_coloring) # show plt.imshow(wc) plt.axis("off") #繪製詞雲 plt.figure() # recolor wordcloud and show # we could also give color_func=image_colors directly in the constructor plt.imshow(wc.recolor(color_func=image_colors)) plt.axis("off") plt.figure() plt.imshow(RGB_coloring, cmap=plt.cm.gray) plt.axis("off") plt.show()