微信聊天记录网上教程比较复杂,没有实现,经过询问同学,主要采取人工的方法,将和某人的聊天记录暴力抓取。(ctrl+c ==> ctrl+v)
代码实现
import jieba
import wordcloud
from scipy.misc import imread
with open('chat.txt', 'r', encoding='utf-8') as f:
text = f.read()
fig_path = './heart.png' # 背景图片
out_path = './res.png' # 输出图片的路径
font_path = './msyhbd.ttc' # 字体存储的路径,可从系统字体复制
def plot_data(text, fig_path=fig_path, font_path=font_path, words=20):
wc = wordcloud.WordCloud(background_color='white',
width=1000, height=800,
font_path=font_path,
mask=imread(fig_path),
max_words=words
)
wc.generate(' '.join(text)) #必须用空格
wc.to_file(out_path)
return None
plot_data(text)
注意事项
- 背景图片选用白底;(一定白色)
- wordcloud是根据空格进行统计文字的个数,所以jieba库进行分词以后得到的是一个list对象,一定要用空格填充list对象,返回一个str。