前言
在上一篇文章中,我們講解了在Ubuntu環境下安裝Anaconda,並且做出了英文的簡易詞雲。可能會有的同學嘗試把文章換成中文的,做出中文詞雲。我想大家得到的結果肯定是這樣的
中文與英文在編碼上是存在很多區別的,而且我們做英文詞雲的時候,在一篇文章中,單詞之間是通過空格分開的,但是中文並沒有使用空格。所有就有了上面的圖片。那麼中文如何分詞呢。我們需要用到一款工具,jieba(結巴)
準備工作
1.文本資料,作為分析的對象。這是必須的,這次我選用的是上一次相關的文本資料 我有一個夢想的中文版本。做成Dream.txt檔案,儲存在和代碼相同的目錄下。2.Anaconda工具套裝,上一篇文章已經講過如何安裝和使用,這裡不在囉嗦。3.worldcloud ,作詞雲用的Python擴充工具包。4.jieba 中文分詞用的擴充包。5.simsum.tty 中文字型包,用於顯示中文。
第一步
開啟終端輸入以下命令,安裝jieba擴充包
pip install jieba //安裝很簡單,沒什麼可說的
繼續在終端輸入
jupyter notebook //開啟代碼編輯器,並切換到存放Dream.txt的目錄下
如果你做了上次那個因為詞雲,那就用上次那個目錄就可以了,在代碼編輯器輸入以下代碼
file = open('Dream.txt')text = file.read()text
出現這樣的字樣,說明文本資料沒有問題,可以正常開啟。
分詞
在第二和第三行之間,插入以下代碼,進行分詞操作
import jieba //匯入jieba分詞包text = ' '.join(jieba.cut(text)) //對中文進行分詞
你將會看到以下的畫面,說明分詞成功了
詞雲產生
注釋掉代碼最後的text,以防幹擾。繼續在編輯器裡輸入
from wordcloud import WordCloudwordcloud = WordCloud().generate(text)
此時如果沒有報錯,也沒有任何輸出,那是不是詞雲就已經分析完成了呢。
並不是,但這次和上次的英文不一樣,因為我們要輸出中文的詞雲,所以我們
準備了simsum.tty的字型包,把它放在代碼相同的目錄下,然後在代碼編輯器輸入以下代碼:
from wordcloud import WordCloudwordcloud = WordCloud(font_path="simsun.ttf").generate(mytext)
依然沒有輸出,但這次離成功不遠了。
詞雲輸出
在代碼編輯器裡面輸入以下代碼:
%pylab inlineimport matplotlib.pyplot as pltplt.imshow(wordcloud, interpolation='bilinear')plt.axis("off")
你將看到以下結果,請無視警告
一張簡易的中文詞雲就做好啦。。。