jieba分詞與wordcloud詞雲

一.導入用到的模塊

import jieba
import jieba.posseg as posseg
import jieba.analyse as analyse
from wordcloud import WordCloud
import matplotlib.pyplot as plt
from scipy.misc import imread

 

二.jieba分詞

2.1三種分詞模式:精確、全、搜索分詞

txt='現在就該用電腦了。把“MicroMsg”文件夾複製到電腦上,打開之前要裝到電腦上的軟件(微信聊天記錄備份恢復助手)。' \
    '這時會彈出下面這個對話框,選擇安卓版本微信。並把數據目錄和資源目錄都設置爲“MicroMsg”文件夾。' \
    '設置好之後點擊獲取數據,這時下面的表格中會出現用戶名。選中後點擊查看記錄就能看到消息記錄了。' \
    '初次使用的時候功能授權那欄是空的,這個我之後會解釋'

print(' '.join(jieba.cut(txt)))#精確模式
print(' '.join(jieba.cut(txt,cut_all = True)))#全模式
print(' '.join(jieba.cut_for_search(txt)))#搜索模式

結果如下:

現在 就 該 用 電腦 了 。 把 “ MicroMsg ” 文件夾 複製到 電腦 上 , 打開 之前 要 裝到 電腦 上 的 軟件 ( 微信 聊天記錄 備份 恢復 助手 ) 。 這時 會彈 出 下面 這個 對話框 , 選擇 安卓 版本 微信 。 並 把 數據 目錄 和 資源 目錄 都 設置 爲 “ MicroMsg ” 文件夾 。 設置 好 之後 點擊 獲取數據 , 這時 下面 的 表格 中 會 出現 用戶名 。 選中 後 點擊 查看 記錄 就 能 看到 消息 記錄 了 。 初次 使用 的 時候 功能 授權 那欄 是 空 的 , 這個 我 之後 會 解釋
現在 就 該 用電 電腦 了   把  MicroMsg  文件 文件夾 件夾 複製 複製到 電腦 上   打開 之前 要 裝到 電腦 上 的 軟件   微 信 聊天 聊天記錄 記錄 備份 恢復 助手    這時 時會 會彈 彈出 出下 下面 這個 對話 對話框   選擇 安 卓 版本 微 信   並 把 數據 目錄 和 資源 源目錄 目錄 都 設置 爲  MicroMsg  文件 文件夾 件夾   設置 好 之後 後點 點擊 獲取 獲取數據 數據   這時 時下 下面 的 表格 中會 出現 現用 用戶 用戶名 戶名   選中 後點 點擊 查看 記錄 就 能 看到 消息 記錄 了   初次 使用 的 時候 功能 授權 那 欄 是 空 的   這個 我 之後 後會 解釋
現在 就 該 用 電腦 了 。 把 “ MicroMsg ” 文件 件夾 文件夾 複製 複製到 電腦 上 , 打開 之前 要 裝到 電腦 上 的 軟件 ( 微信 聊天 記錄 聊天記錄 備份 恢復 助手 ) 。 這時 會彈 出 下面 這個 對話 對話框 , 選擇 安卓 版本 微信 。 並 把 數據 目錄 和 資源 目錄 都 設置 爲 “ MicroMsg ” 文件 件夾 文件夾 。 設置 好 之後 點擊 獲取 數據 獲取數據 , 這時 下面 的 表格 中 會 出現 用戶 戶名 用戶名 。 選中 後 點擊 查看 記錄 就 能 看到 消息 記錄 了 。 初次 使用 的 時候 功能 授權 那欄 是 空 的 , 這個 我 之後 會 解釋

2.2結巴分詞並獲取對應的詞性

print([(x.word,x.flag) for x in posseg.cut(txt)])

結果如下:

[('現在', 't'), ('就', 'd'), ('該', 'r'), ('用', 'p'), ('電腦', 'n'), ('了', 'ul'), ('。', 'x'), ('把', 'p'), ('“', 'x'), ('MicroMsg', 'eng'), ('”', 'x'), ('文件夾', 'n'), ('複製到', 'v'), ('電腦', 'n'), ('上', 'f'), (',', 'x'), ('打開', 'v'), ('之前', 'f'), ('要', 'v'), ('裝到', 'v'), ('電腦', 'n'), ('上', 'f'), ('的', 'uj'), ('軟件', 'n'), ('(', 'x'), ('微信', 'vn'), ('聊天記錄', 'nz'), ('備份', 'n'), ('恢復', 'v'), ('助手', 'n'), (')', 'x'), ('。', 'x'), ('這時', 'r'), ('會彈', 'n'), ('出', 'v'), ('下面', 'f'), ('這個', 'r'), ('對話框', 'n'), (',', 'x'), ('選擇', 'v'), ('安卓', 'nr'), ('版本', 'n'), ('微信', 'vn'), ('。', 'x'), ('並', 'c'), ('把', 'p'), ('數據', 'n'), ('目錄', 'n'), ('和', 'c'), ('資源', 'n'), ('目錄', 'n'), ('都', 'd'), ('設置', 'vn'), ('爲', 'p'), ('“', 'x'), ('MicroMsg', 'eng'), ('”', 'x'), ('文件夾', 'n'), ('。', 'x'), ('設置', 'vn'), ('好', 'a'), ('之後', 'f'), ('點擊', 'v'), ('獲取數據', 'l'), (',', 'x'), ('這時', 'r'), ('下面', 'f'), ('的', 'uj'), ('表格', 'n'), ('中', 'f'), ('會', 'v'), ('出現', 'v'), ('用戶名', 'n'), ('。', 'x'), ('選中', 'v'), ('後', 'f'), ('點擊', 'v'), ('查看', 'v'), ('記錄', 'n'), ('就', 'd'), ('能', 'v'), ('看到', 'v'), ('消息', 'n'), ('記錄', 'n'), ('了', 'ul'), ('。', 'x'), ('初次', 'd'), ('使用', 'v'), ('的', 'uj'), ('時候', 'n'), ('功能', 'n'), ('授權', 'v'), ('那欄', 'r'), ('是', 'v'), ('空', 'a'), ('的', 'uj'), (',', 'x'), ('這個', 'r'), ('我', 'r'), ('之後', 'f'), ('會', 'v'), ('解釋', 'v')]

2.3打開本地文件,分詞,獲得出現頻率靠前的20個詞

doupo = open('doupo_train.txt').read()
print(len(doupo))
print("  ".join(analyse.extract_tags(doupo, topK=20, withWeight=False, allowPOS=())))

結果如下:

5404008
蕭炎  便是  目光  旋即  強者  鬥氣  卻是  之中  有些  之上  火焰  能夠  有着  實力  微微  臉龐  能量  而出  手掌  一道

 

三.詞雲製作

words=" ".join(jieba.cut(doupo))

img = imread('LOVE.png')
wordcloud = WordCloud(font_path = "simfang.ttf",background_color='white',mask=img).generate(words)

plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()

首先將導入的鬥破文本分詞,讀入背景圖片(此處可以不設置背景,默認背景爲四邊形)

此處特別說明,如果做的是中文詞雲,一定要讀入中文字體,因爲wordcloud默認字體不支持中文

背景色不設置的話,默認是黑的

之後就是用matplotlib將圖片顯示出來了

結果如下:

我在將沒有什麼個性化設置的樣例放出來:

 

希望對大家有幫助,開心編程。

嗯,今天我才知道原來程序員還有個1024節日(o´・ェ・`o)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章