一.導入用到的模塊
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)