用微信聊天记录 制作一个词云(python)
2017-12-09 本文已影响412人
BrainZou
在看完了如何做词云的教程,试用微信聊天记录做一个demo练手。关于词云,网上有大量的教程,可随意参考,注意python的版本问题即可。
微信聊天记录导出
用到的工具是一款微信聊天记录查看软件,分享如下,侵权则删。
链接: https://pan.baidu.com/s/1c1EDh52 密码: 129q
使用:需要一个root后的手机,然后导出即可,对于使用了没有root的手机可以使用微信的聊天记录转移功能,将聊天记录转移到已root的手机,记得设置为只转移文字哦,不然效率很低。
由于我已经把记录删了,所以就不截图了,软件比较简单,自己琢磨即可。
导出后可以查看,但是不能直接导成文本(收费),没办法,只能手动复制粘贴。然后把昵称时间什么的 ctrl+h替换一下,(20171018 20:06)可以用正则表达式([^)]*)来替换哦。(其实可以用python......我太low啦)
词云
ps:写demo建议使用Anaconda,挺方便。
%pylab inline
import jieba
#jieba用来对中文分词
import matplotlib.pyplot as plt
from wordcloud import WordCloud
filename = "miao.txt"
#聊天记录
with open(filename,encoding='UTF-8') as f:
mytext = f.read()
#打开文本
mytext = " ".join(jieba.cut(mytext))
photo_coloring = imread('2016.jpg')
#词云背景图片白底
wordcloud = WordCloud(background_color="white",font_path="simsun.ttf",max_words=200,mask=photo_coloring).generate(mytext)
#中文注意下载simsun.ttf中文字体来替换
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
wordcloud几个参数
font_path : 使用的字体的路径
width : int (default=400) //输出的画布宽度,默认为400像素
height : int (default=200) //输出的画布高度,默认为200像素
设置图片默认的大小,但是如果使用背景图片的话,那么保存的图片大小将会按照其大小保存(测试好像只是白底变大了)
mask:就是文字所在的背景图啦,建议使用颜色较深的图。
其他参数可自行搜索wordcloud所有参数。
哦对,最后结果:
mdzz!
个人微信公众号:BrainZou