利用jieba庫和wordcloud生成中文詞雲。

jieba庫:中文分詞第三方庫
分詞原理:
利用中文詞庫,確定漢字之間的關聯概率,關聯概率大的生成詞組
三種分詞模式:
1、精確模式:把文本精確的切分開,不存在冗余單詞
2、全模式:把文本中所有可能的詞語都掃描出來,有冗余
3、搜索引擎模式:在精確模式基礎上,對長詞再次切分
常用函數:
jieba.lcut(s) #精確模式,返回列表類型的分詞結果
jieba.lcut(s,cut_all=True) #全模式,返回列表類型的分詞結果
jieba.lcut_for_search(s,cut_all=True) # 搜索引擎模式(精確模式后對過長的詞再精確分詞),返回列表類型的分詞結果
jieba.add_word(w) #在參考的中文詞庫中添加自定義的詞,如:jieba.add_word(“產生式系統”),無返回
jieba.del_word(w) #在參考的中文詞庫中刪除詞
jieba.analyse.extract_tags(sentence,topK=10) #關鍵詞提取,返回權重最大的10個詞語,返回列表類型的提取結果,注意:import jieba.analyse
wordcloud庫:詞雲生成庫
生成詞雲的三個步驟:
import wordcloud
#1、生成wordcloud對象,設置字體路徑和其他基本屬性 #除了font_path外的一些常用屬性: #詞雲使用的字體:font_path #生成圖片的大小:width=120,height=120 #生成詞雲的形狀:mask(結合下面的實例解釋) #詞雲的背景顏色:background_color="white" w = wordcloud.WordCloud(font_path="C:/Users/ASUS/Desktop/aaa.ttf") #2、產生詞雲 w.generate("春天 春天 在哪里 這里") #3、把詞雲輸出到已創建的png、jpg文件里,可打開查看結果 w.to_file("outfile.png")
產生的詞雲:

安裝與運行時可能遇到的問題:
1、安裝:直接用命令行 pip install wordcloud 安裝會產生錯誤 Microsoft Visual C++ 14.0 is required.
解決方法:1)點擊進入pythonlib頁面:https://www.lfd.uci.edu/~gohlke/pythonlibs/
2)下拉找到wordcloud包:

3)下載對應版本的wordcloud,存放到文件夾下
其中cp表示python版本,如36對應3.6 win為操作系統位數,32位或6位
4)再執行命令行:
pip install C:\data\wordcloud-1.4.1-cp36-cp36m-win_amd64.whl
5)安裝成功
2、編譯時顯示 OSError: cannot open resource
解決方法:庫中自帶的字體文件不是中文,可以自己下載一個ttf字體文件放到對應文件夾下,
一個ttf字體文件鏈接: https://pan.baidu.com/s/1xJVPe1YIXN9Wl_z3fkVpFg 密碼: 7iux
在生成詞雲時使用 wordcloud.WordCloud( font_path="C:/Users/ASUS/Desktop/returnline/aaa.ttf" )
利用jieba+wordcloud生成詞雲
import wordcloud import jieba from scipy.misc import imread #生成遮罩mask(詞雲的形狀) import jieba.analyse #top30關鍵詞提取 mk=imread("0.jpg") #獲得作為遮罩的圖片,我的是一只蝸牛 txt = open("1.txt").read() #獲得要生成詞雲的文本,並將內容轉換為字符串 #生成詞雲對象,大小為120*120,遮罩是0.jpg,背景顏色是白色 w = wordcloud.WordCloud(font_path="C:/Users/ASUS/Desktop/returnline/aaa.ttf",width=120,height=120,mask=mk,background_color="white") #jieba統計並提取權值top30的詞語,返回list ls=jieba.analyse.extract_tags(txt,topK=30) #將list轉換為元素間空格分隔的字符串,創建詞雲 w.generate(" ".join(ls)) #將詞雲導出到outfile.png w.to_file("outfile.png")
遮罩圖:

詞雲圖:

