1. 詞云圖
相信大家在生活中也看過(guò)下面這樣的圖形吧?想必對(duì)于詞云圖也不是很陌生吧?詞云圖餐弱,顧名思義,就是一些具有關(guān)鍵意義的詞囱晴,組成一些具有代表意義的形狀膏蚓,并按照重要程度、出現(xiàn)頻率等進(jìn)行排列組合得到一張精煉濃縮的信息圖畸写。是不是感覺(jué)十分高大上驮瞧?其實(shí),我們自己也可以做屬于我們自己的詞云圖艺糜。
2. 準(zhǔn)備素材
巧婦難為無(wú)米之炊剧董,我們需要準(zhǔn)備一下材料去烹飪我們這道視覺(jué)盛宴:
- 主材料:文本
- 輔料:圖片
- 工具:詞云制作工具(WordArt 等) OR 編程語(yǔ)言(python 等)
3. 準(zhǔn)備文本
這一章里面,我主要介紹的是如何把QQ聊天記錄導(dǎo)出破停,并把整理成關(guān)鍵詞翅楼,為后續(xù)可視化做準(zhǔn)備的。
-
導(dǎo)出聊天記錄
首先找到qq的消息管理器(小喇叭),然后找到你想要得到的聊天記錄的那位真慢,右鍵毅臊,導(dǎo)出消息記錄就可以了『诮纾【注意】選擇下拉菜單管嬉,將聊天記錄導(dǎo)出為(* .txt)格式或者是(* .mht)格式皂林。
-
處理文本
在得到文本素材以后,我們需要將這些文本進(jìn)行分割蚯撩,得到一個(gè)個(gè)詞語(yǔ)础倍,經(jīng)過(guò)過(guò)濾得到關(guān)鍵詞。這里胎挎,我們選用的是 jieba 結(jié)巴中文分詞沟启。
jieba 中文分詞的 Github 項(xiàng)目地址:https://github.com/fxsjy/jieba- 通過(guò)
pip
安裝jieba:pip install jieba
- 通過(guò) jieba 處理文本:
import jieba
import jieba.analyse
import re # 正則表達(dá)式清洗數(shù)據(jù)
# 打開(kāi)并讀取文檔
file=open("wxb.txt",'r',encoding='UTF-8')
obj=file.read()
file.close()
- 清洗聊天記錄
這里主要利用re 模塊進(jìn)行清洗,大家可以根據(jù)自己的聊天記錄形式進(jìn)行自定義的處理犹菇。
re 模塊介紹:http://www.runoob.com/python/python-reg-expressions.html
import re
# 使用re.sub()函數(shù)進(jìn)行清洗
# 主要清洗對(duì)象為"=="德迹、"YYYY-MM-DD"、"HH:MM:SS"揭芍、"QQ昵稱"胳搞、"[圖片]"
# 下面以時(shí)間數(shù)據(jù)處理為例進(jìn)行簡(jiǎn)單的演示,大家可以根據(jù)自己的需要称杨,根據(jù)規(guī)則進(jìn)行修改
t_rm1= re.sub("\d\d:\d\d:\d\d",'',obj)
- 分詞
# 將特定的詞加入詞典
jieba.add_word("不安分的小王")
# 分詞
word_list=jieba.cut(obj,cut_all=Flase,HMM=True)
word_split="\".join(word_list)
word_split
便是你最終的分詞結(jié)果- 提取關(guān)鍵詞
光得到分詞結(jié)果我們還不能很好地展現(xiàn)文本內(nèi)容肌毅,這一步,我們需要分詞后的統(tǒng)計(jì)列另,提取關(guān)鍵詞芽腾。為后面可視化做準(zhǔn)備。
# 提取關(guān)鍵詞
rank_K=300 #提取前300的關(guān)鍵詞
# 返回帶有權(quán)重的詞語(yǔ)的list
tags = jieba.analyse.extract_tags(wrd_split, topK=rank_K, withWeight=True, allowPOS=())
word_split="\".join(word_list)
# 如果不想帶權(quán)重的話页衙,可以設(shè)置 withWeight=False
- 保存最終關(guān)鍵詞和結(jié)果
with open("keywords.txt",'w',encoding='UTF-8') as f: for i in range(0,rank_K): f.write(str(tags[i])+'\n')
-
保存最終關(guān)鍵詞和結(jié)果
- 清洗聊天記錄
- 通過(guò)
到此摊滔,介紹完了文本準(zhǔn)備的相關(guān)工作。后面會(huì)繼續(xù)介紹如何制作詞云店乐。