Python製作詞雲

Python製作詞雲

來自專欄 Python1 人贊了文章

本文作者林中楓,首發於知乎,未經許可禁止轉載。

詞雲是什麼,這個問題還是讓百科來回答吧。

詞雲_百度百科?

baike.baidu.com圖標

從詞雲概念上來看,我們發現頻率越高的詞語一般越會被突出。下面我們將用到python的兩個庫:jieba和wordcloud來製作自己的詞雲,jieba是用來分詞的,wordcloud本身其實就可以分詞了,但是因為wordcloud對中文的分詞效果並不好,而我們這裡將會講解難度更高點的中文詞雲,所以還要引入jieba庫。


jieba庫安裝非常簡單pip install jieba即可,wordcloud庫安裝稍微麻煩點,首先到下面地址下載對應的庫。

下載地址?

www.lfd.uci.edu

這裡有這麼多選擇,一定要選擇對應的:

我的python版本是3.6.5所以選擇cp36,我是win7的32位操作系統,所以選擇win32,具體要根據自己環境去選擇對應的文件。選擇好後下載文件到一個目錄下,然後在命令行窗口進入文件所在目錄,pip install wordcloud-1.5.0-cp36-cp36m-win32.whl,等待wordcloud庫安裝成功即可。

安裝好後就開始編寫代碼製作詞云:

#author: 林中楓import wordcloud as wcimport jieba as jb#讀取文本文件內容text=open("demo.txt").read()#將文本分詞成listwordList=jb.lcut(text)#用空格拼接list成字元串,模擬英文所以用空格拼接wordStr=" ".join(wordList)#生成詞雲result=wc.WordCloud(font_path="stxinwei.ttf",width=1366,height=768).generate(wordStr)#保存到文件result.to_file("wc.jpg");

有一點值得注意,當詞雲是中文的時候font_path一定要顯示指定中文字體文件,字體文件可以自己找也可以用系統的,系統字體文件路徑為:C:WindowsFonts,否則可能會出現亂碼。可以設置下寬高將生成的詞雲用來做壁紙。

前面說過詞的出現頻率越高一般越突出,下面放上demo.txt中的文本:

諸葛亮諸葛亮諸葛亮諸葛亮諸葛亮諸葛亮聰明聰明聰明可愛陽光帥氣才智過人才智過人才智過人滿腹經綸滿腹經綸滿腹經綸人見人愛博學多才博學多才博學多才見多識廣才高八斗學富五車文武雙全雄韜偉略

最後來看看效果:

歡迎關註:林中楓

推薦閱讀:

TAG:Python | 科技 | Python入門 |