逛吾爱破jie的时候,看到一个导出QQ聊天记录分析生成词云图的python玩法,就导出自己和女友的聊天记录试了一下,没想到在一起五年了,近两年说的最多的词竟然是 好吧
其实现原理就是在python中通过使用第三方库读取QQ导出的txt文本聊天记录内容进行分析生成词云,下面开始具体的说明教程:
第三方库
jieba库,优秀的 Python 第三方中文分词库。
pip install jieba
wordcloud库,优秀的词云展示第三方库。
pip install wordcloud
在安装wordcloud库时如果不起效果,请下载到本地进行安装
下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud
选择与自己的电脑系统、python版本相对于的版本进行下载,比如我是win10,64位操作系统,python3.9那就下载 wordcloud‑1.8.1‑cp39‑cp39‑win_amd64.whl
并存放到一个目录(我的在D盘)
然后运行下面命令安装:
pip install D:/wordcloud‑1.8.1‑cp39‑cp39‑win_amd64.whl
消息导出
电脑登录QQ点击左下角三个杠,点击消息管理
选择要导出的对象,然后右击点击导出消息记录
保存类型选择txt格式
代码完成
首先且必须在python中引入相关的第三方库
import re
import jieba
import wordcloud
在消息记录中,会有一些频繁出现的信息,比如时间,昵称,备注,还有一些无法显示的如[表情],我们可以使用去特殊字符处理和正则来替换掉。
#去字符处理
def getText(text):#该函数用来替换文本中出现的特殊字符
txt = text
for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_‘{|}~,。、 :':
txt = txt.replace(ch, "") #将文本中特殊字符替换为空格
return txt
#去频繁信息
string = open(r'C:\\Users\\zeyi\\Desktop\\消息记录.txt','r',encoding='utf-8').read()
s = re.compile('2022.+押韵|2022.+Glamour girl 💍|表情|图片|撤回了一条消息|系统消息|2021.+夫人|2022.+夫人')
message = re.sub(s,'',string)
message = getText(message)
然后使用jieba分析并生成词云图
split_message = jieba.lcut(message)
wordcloud_txt = ' '.join(split_message)
w=wordcloud.WordCloud(background_color="white", font_path='./fonts/simhei.ttf',width=1600,height=800,max_words=2000)#设置生成词云的参数
w.generate(wordcloud_txt)#向词云传递文本
w.to_file("C:\\Users\\zeyi\\Desktop\\ciyun.png")#最后生成词云的图片
最后大功告成,分析完成的词云已经保存到你桌面了。
5 条评论
之前看一个B站up分析的他评论区所有的评论 挺有意思的
要是出个微信聊天记录,我也想试试,我微信7年的聊天记录不知道能不能跑出来。
微信的也可以,只要导出为txt文本就行,有一些辅助软件就可以导出微信聊天记录为txt。
“好吧”,你说得多还是她说得多
应该是我
主要有时候我老忘记回消息,然后等我去回消息的时候,她已经把她问出的问题自己回答了,就只能回复好吧...