逛吾爱破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")#最后生成词云的图片

最后大功告成,分析完成的词云已经保存到你桌面了。

End
最后修改:2022 年 05 月 15 日
如果觉得我的文章不错,请随手点赞~