Python 畫好看的雲詞
詞雲圖是數據分析中比較常見的壹種可視化手段。詞雲圖,也叫文字雲,是對文本中出現頻率較高的 關鍵詞 予以視覺化的展現,出現越多的詞,在詞雲圖中展示越顯眼。詞雲圖過濾掉大量低頻低質的文本信息,因此只要壹眼掃過文本就可 領略文章主旨 。
例如?上面這張圖,看壹眼就知道肯定是新華網的新聞。
那生成壹張詞雲圖的主要步驟有哪些?這裏使用 Python 來實現,主要分三步:
首先是“結巴”中文分詞 jieba 的安裝。
對於英文文本,word_cloud 可以直接對文本源生成詞雲圖。但是對中文的支持沒有那麽給力,所以需要先使用 jieba 對中文文本進行分詞,把文章變成詞語,然後再生成詞雲圖。例如:
jieba.cut 分詞:方法接受三個輸入參數,sentence 需要分詞的字符串;cut_all 用來控制是否采用全模式;HMM 用來控制是否使用 HMM 模型。
jieba.cut_for_search 分詞:方法接受兩個參數,sentence 需要分詞的字符串;是否使用 HMM 模型。該方法適合用於搜索引擎構建倒排索引的分詞,粒度比較細。
jieba.analyse.textrank 使用 TextRank 算法從句子中提取關鍵詞。
然後安裝 wordcloud 詞雲圖庫。
如果執行上面命令後,顯示 success,那麽恭喜妳,安裝成功了。
我就遇到了 Failed building wheel for wordcloud 的錯誤。於是先安裝 xcode-select, 再安裝 wordcloud 即可(無需安裝 Xcode)。
wordcloud 庫把詞雲當作壹個 WordCloud 對象,wordcloud.WordCloud() 代表壹個文本對應的詞雲,可以根據文本中詞語出現的頻率等參數繪制詞雲,繪制詞雲的形狀、尺寸和顏色。
1、首先導入文本數據並進行簡單的文本處理
2、分詞
3、設置遮罩
註意:
1、默認字體不支持中文,如果需要顯示中文,需要設置中文字體,否則會亂碼。
2、設置遮罩時,會自動將圖片非白色部分填充,且圖片越清晰,運行速度越快
其中 WordCloud 是雲詞圖最重要的對象,其主要參數描述如下:
效果如下圖:
上小結是將文章中所有內容進行分詞,輸出了所有詞,但很多時候,我們有進壹步的需求。例如:
1、只需要前 100 個關鍵詞就夠了。
2、不需要五顏六色的詞語,應與遮罩圖片顏色壹致。
100個關鍵詞,我們在分詞時使用 TextRank 算法從句子中提取關鍵詞。
遮罩顏色可通過設置 WordCloud 的 color_func 屬性。
最終效果如下: