wordcloud + jieba 生成詞雲


利用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")

    遮罩圖:

  詞雲圖:

  

 

 

        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM