我的环境:anaconda,spyder,py3.7
1.依赖库
依赖jieba(中文分词),wordcloud(生成词云)
在anaconda安装这两个库挺方便的,打开anaconda prompt,输入
conda install -c conda-forge jieba
conda install -c conda-forge wordcloud
2.导出聊天记录
界面左下角有个加号,点开打开消息管理器,选择你要导出的人,右键导出消息记录,保存为txt格式即可。
3.生成词云
我是根据参考2的博文,改动了一点点
其中path/to/xxx的地方代入实际路径
最后图片会保存在代码所在的路径处
# -*- coding: utf-8 -*-
"""
Created on Tue Apr 30 17:41:14 2019
@author: zhang
"""
from os import path
from wordcloud import WordCloud
import PIL.Image as image
import numpy as np
import jieba
d = path.dirname(__file__)
# 分词
def trans_CN(text):
# 接收分词的字符串
word_list = jieba.cut(text)
# 分词后在单独个体之间加上空格
result = " ".join(word_list)
return result
with open("D:/path/to/twist.txt", "rb") as fp:
text = fp.read()
# print(text)
# 将读取的中文文档进行分词
text = trans_CN(text)
mask = np.array(image.open("D:/path/to/picture.jpg"))
wordcloud = WordCloud(
background_color="white",
# 添加遮罩层
mask=mask,
# 生成中文字的字体,必须要加,不然看不到中文
font_path = "C:\Windows\Fonts\STKAITI.TTF"
).generate(text)
image_produce = wordcloud.to_image()
image_produce.show()
wordcloud.to_file(path.join(d, "图片名.png"))
最后看下结果,被论文支配的我和我的朋友
参考: