問(wèn)題與思路
在了解了 Python 可以制作詞云圖后便想利用它來(lái)做點(diǎn)什么,于是便決定將自己和女朋友的聊天記錄導(dǎo)出來(lái)做一個(gè)詞云圖看看。QQ的聊天記錄可以通過(guò)消息管理器導(dǎo)出為 .txt
格式,具體的操作不再贅述。本文的分詞工具采用的是 jieba
分詞缆瓣。
系統(tǒng)環(huán)境說(shuō)明
本文的實(shí)驗(yàn)環(huán)境是 Python 3.6.1 |Anaconda 4.4.0 (64-bit),Win10
依賴包
jieba 虹统、wordcloud 弓坞、PIL
安裝方式
pip install jieba
其它的包也是同樣的安裝方式,不再贅述车荔。
代碼
import jieba
import matplotlib.pyplot as plt
from wordcloud import WordCloud, ImageColorGenerator, random_color_func
import os
import numpy as np
import PIL.Image as Image
import re
with open('聊天記錄.txt', encoding="utf8") as fp:
text = fp.read()
text_cleansing = re.sub("((\d){4}-(\d){2}-(\d){2} \d\d:\d\d:\d\d)|\n|[表情]|[圖片]|\[|\]", "", text).replace('mmmm*~~', '胡穎').replace('????', '胡穎')
jieba.add_word('高正杰') # 將名字加入詞典
jieba.add_word('胡穎') # 同上
wordlist_jieba = jieba.cut(text_cleansing, cut_all=True) # 分詞
wl_space_split = " ".join(wordlist_jieba)
alice_coloring = np.array(Image.open("wechat2.jpg"))
my_wordcloud = WordCloud(background_color="white", max_words=5000, mask=alice_coloring, max_font_size=60,
font_path='C:\Windows\Fonts\msyhl.ttc').generate(wl_space_split)
image_colors = ImageColorGenerator(alice_coloring)
plt.imshow(my_wordcloud.recolor(color_func=image_colors))
# plt.imshow(my_wordcloud.recolor(color_func=random_color_func))
plt.imshow(my_wordcloud, interpolation="bilinear")
plt.axis("off")
plt.show()
效果圖
背景圖1
效果圖1
背景圖2
效果圖2
總結(jié)
雖然做出了效果昼丑,但是總感覺(jué)沒(méi)有別人做的云圖好看,關(guān)于背景圖的選擇夸赫,前景的字體顏色如何設(shè)置菩帝,均還有較大的空間值得學(xué)習(xí)。另外通過(guò)云圖可以明顯看出我平常和女朋友的聊天過(guò)程中說(shuō) 哈哈
的次數(shù)真多茬腿,不得不說(shuō)這真是一件幸福的事情呼奢!
參考文獻(xiàn)
[1] http://www.yeayee.com/article-6655592-1.html 這篇文章對(duì) WordCloud 的每個(gè)參數(shù)講解比較細(xì)致,推薦仔細(xì)閱讀切平。
[2] http://www.reibang.com/p/e4b24a734ccc 王樹(shù)義老師的文章握础,一如既往地詳細(xì)。