用jieba庫統計文本詞頻及雲詞圖的生成


一、安裝jieba庫

:\>pip install jieba #或者 pip3 install jieba

二、jieba庫解析

jieba庫主要提供提供分詞功能,可以輔助自定義分詞詞典。

jieba庫中包含的主要函數如下:

jieba.cut(s)                                                               精確模式,返回一個可迭代的數據類型

jieba.cut(s,cut_all=True)                                          全模式,輸出文本s中所有可能的單詞

jieba.cut_for_search(s)                                            搜索引擎模式,適合搜索引擎建立索引的分詞結果

jieba.lcut(s)                                                              精確模式,返回一個列表類型,建議使用

jieba.lcut(s,cut_all=True)                                         全模式,返回一個列表類型,建議使用

jieba.lcut_for_search(s)                                           搜索引擎模式,返回一個列表類型,建議使用

jieba.add_word(w)                                                   向分詞詞典中增加新詞w

三、用jieba庫統計文本的詞頻

《流浪地球》是劉慈欣的一部作品。該書講述了龐大的地球逃脫計划,逃離太陽系,前往新家園。從網上獲取該書的文本文件,保存於桌面上,命名為“流浪地球。”

現統計其文本中出現次數最多的是個詞語,源代碼如下:

import jieba
txt = open("C:\\Users\\Administrator\\Desktop\\流浪地球.txt", "r", encoding='utf-8').read()
words  = jieba.lcut(txt)
counts = {}
for word in words:
    if len(word) == 1:  #排除單個字符的分詞結果
        continue
    else:
        counts[word] = counts.get(word,0) + 1
items = list(counts.items())
items.sort(key=lambda x:x[1], reverse=True) 
for i in range(10):
    word, count = items[i]
    print ("{0:<10}{1:>5}".format(word, count))

運行程序后,輸出結果如下:

 

 故容易得知流浪地球中出現頻次較高的詞語

四、結合jieba庫的詞頻統計制作詞雲圖

1、准備工作:pip 安裝 jieba , wordcloud ,matplotlib

2以阿Q正傳為例:

源代碼為:

from wordcloud import WordCloud
import matplotlib.pyplot as plt
import jieba


#生成詞雲
def create_word_cloud(filename):
    text = open("{}.txt".format(filename)).read()
    # 結巴分詞
    wordlist = jieba.cut(text, cut_all=True)
    wl = " ".join(wordlist)

    # 設置詞雲
    wc = WordCloud(
        # 設置背景顏色
        background_color="white",
        # 設置最大顯示的詞雲數
        max_words=2000,
        # 這種字體都在電腦字體中,一般路徑
        font_path='C:\Windows\Fonts\simfang.ttf',
        height=1200,
        width=1600,
        # 設置字體最大值
        max_font_size=200,
        # 設置有多少種隨機生成狀態,即有多少種配色方案
        random_state=100,
    )

    myword = wc.generate(wl)  # 生成詞雲
    # 展示詞雲圖
    plt.imshow(myword)
    plt.axis("off")
    plt.show()
    wc.to_file('p.png')  # 把詞雲保存下


if __name__ == '__main__':
    create_word_cloud('C:\\Users\\Administrator\\Desktop\\阿Q正傳')

運行程序后,輸出結果如下:

 

 

 故可得出文本的雲詞圖。


免責聲明!

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



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