lishunwei 发表于 2020-7-17 14:07

导出QQ聊天记录生成词云看看你和你的女朋友聊了什么。

本帖最后由 lishunwei 于 2020-7-17 17:04 编辑

#### 导出QQ聊天记录生成词云看看你和女朋友聊了什么(可惜我没女朋友)

1. 导出聊天记录
- 打开消息管理器
![无法显示](https://s1.ax1x.com/2020/07/17/UsxqiR.png)
- 导出的格式选择txt格式(我这里选择导出的路径是桌面所以在桌面上生成了一个包含聊天记录的.txt文件)
![无法显示](https://s1.ax1x.com/2020/07/17/UsxzLD.png)

2. 编写代码
- 图中框出来的文本是我们不需要的(比如说图片会在这里面显示为[图片]表情显示为[表情]) 所以我们把它替换掉,我这里用到了正则:
![无法显示](https://s1.ax1x.com/2020/07/17/Uy9QFH.png)
```python
string = open(r'C:\\Users\\l1768\\Desktop\\消息记录.txt','r',encoding='utf-8').read()
s = re.compile('2020.+洋仔|2020.+✎﹏ℳ๓ 大大大威锅丶|表情|图片|2019.+洋仔|2019.+✎﹏ℳ๓ 大大大威锅丶|撤回了一条消息|系统消息')#编写正则表达式
message = re.sub(s,'',string)#替换对应的字符串为空字符串
```
- 然后我们把经过处理的文本再进行去除特殊字符处理
```python
def getText(text):#该函数用来替换文本中出现的特殊字符
    txt = text
    for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_‘{|}~,。、 :':
      txt = txt.replace(ch, "")   #将文本中特殊字符替换为空格
    return txt
message = getText(message)
```
- 使用jieba分词并生成词云
```python
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)#设置生成词云的参数,background_color指定图片背景颜色,
#font_path设置中文字体,要不然中文会显示不出来
#width=1600,height=800分别指定图片的宽度像素和高度像素,
#max_words指定生成词云的词最大是两千词
#还有很多可选参数,大家可以自行百度
w.generate(wordcloud_txt)#向词云传递文本
w.to_file("聊天记录词云.png")#最后生成词云的图片
```
3. 最终生成的结果:
![无法显示](https://s1.ax1x.com/2020/07/17/UyCNg1.png)
4. 完整代码:
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\\l1768\\Desktop\\消息记录.txt','r',encoding='utf-8').read()
s = re.compile('2020.+洋仔|2020.+✎﹏ℳ๓ 大大大威锅丶|表情|图片|2019.+洋仔|2019.+✎﹏ℳ๓ 大大大威锅丶|撤回了一条消息|系统消息')
message = re.sub(s,'',string)
message = getText(message)
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("聊天记录词云.png")#最后生成词云的图片

- 又乱码了啊啊啊啊啊,我补了完整的代码挂载附件里面 需要的大家们自行下载

xieemengxin 发表于 2020-7-17 14:40

我翻开记录一查……每一页上都写着‘卿卿我我’……仔细看了半夜……满本都写着两个字‘在吗’

南笙2333 发表于 2020-7-28 18:18

xieemengxin 发表于 2020-7-17 14:40
我翻开记录一查……每一页上都写着‘卿卿我我’……仔细看了半夜……满本都写着两个字‘在吗’

你好秀呀,老兄

jokerl-飘雪 发表于 2020-7-17 14:08

不错哦~~~不过没女朋友

丁大胜023 发表于 2020-7-17 14:22

感谢分享!最近打算学习python语言

shunzi126 发表于 2020-7-17 14:26

yan0422 发表于 2020-7-17 14:36

效果图不错 可惜没有女朋友{:1_907:}

xieemengxin 发表于 2020-7-17 14:38

别问问就是
全文只有一个词

在吗

陈独锈 发表于 2020-7-17 14:39

聊天最多次数字一竟然是“干嘛”,果然程序员都是直男

速水真澄 发表于 2020-7-17 14:40

求微信的

wanfon 发表于 2020-7-17 14:52

收藏备用了:lol
页: [1] 2 3 4 5
查看完整版本: 导出QQ聊天记录生成词云看看你和你的女朋友聊了什么。