Python将QQ聊天记录生成词云的示例代码

作者:盛夏温暖流年 时间:2022-03-06 03:20:47 

在这个情人节前夕,我把现任对象回收掉了,这段感情积攒了太多的失望,也给了我太多的伤害,所以我看到这个活动的第一反应是拒绝的。然而人生嘛,最重要的就是体验,沉浸在过去的回忆里没有意义,积极面对才能让自己更好地重振旗鼓。

所以,当大家都一致地在这个活动里各种秀恩爱时,我决定走一条不一样的路来为单身狗和刚分手的小伙伴们打打气:时间能改变的,是那些原本就不坚定的东西,未来的路还很长,笑一笑,一切都会过去的!

言归正传,我们要做的任务是,把 QQ 分手聊天记录导出,使用 Python 分词后做成分开的桃心形状的词云进行展示。听着就很有意思,来,开干!

步骤一:创建和导出聊天记录

1.创建聊天记录内容

选择 QQ 聊天记录是因为比较简单,而微信导出相对麻烦。考虑到个人隐私问题,我申请了 QQ 小号,和大号之间发了一些分手语录作为提取素材:

Python将QQ聊天记录生成词云的示例代码

2.导出聊天记录

我使用的是TIM,点击右下角的主菜单,选择“设置”:

Python将QQ聊天记录生成词云的示例代码

选择“消息记录” ->> “安全设置” ->> “打开消息管理器” :

Python将QQ聊天记录生成词云的示例代码

选择需要导出的关系人,右键点击“导出消息记录”:

Python将QQ聊天记录生成词云的示例代码

保存到 F:\csdn 目录下,保存类型选择文本文件,命名为 chat.txt:

Python将QQ聊天记录生成词云的示例代码

第一步导出操作完成。

步骤二:安装需要的库

1.安装 jieba 库


pip install jieba -i https://pypi.douban.com/simple/

Python将QQ聊天记录生成词云的示例代码

2.安装 Wordcloud 库

网上有人说直接使用 pip install 安装 Wordcloud 会有问题,所以我们先下载到本地:

Wordcloud 下载链接

选择适合自己环境的安装包(cp 后面的数字代表 Python 版本,一定要对应起来),下载到 Python 安装目录下的 Scripts 文件夹中:

Python将QQ聊天记录生成词云的示例代码

打开cmd,进入该路径,执行安装命令:


pip install wordcloud-1.8.1-cp38-cp38-win_amd64.whl

安装成功截图如下:

Python将QQ聊天记录生成词云的示例代码

步骤三:代码实现

选择一张分开的心图片(分开的心也很美嘛):

Python将QQ聊天记录生成词云的示例代码

在选择生成配色方案的图片时,要求背景白色,边缘越清晰越好。

qqChat.py 代码实现:


import matplotlib.pyplot as plt
from wordcloud import WordCloud
import jieba
from wordcloud import WordCloud, ImageColorGenerator, STOPWORDS
import os
import numpy as np
import PIL.Image as Image

newtext = []
#打开聊天记录文件
for word in open('F:\\csdn\\chat.txt', 'r',encoding='utf-8'):
 tmp = word[0:4]
 #过滤掉聊天记录的时间和qq名称
 if (tmp == "2021"):
   continue
 tmp = word[0:2]
 #print(tmp)
 newtext.append(word)

#将过滤后的文本重新写入文件并保存
with open('F:\\csdn\\chat_final.txt', 'w', encoding='utf-8') as f:
 for i in newtext:
   f.write(i)
#打开新生成的聊天记录文件
text = open('F:\\csdn\\chat_final.txt', 'r',encoding = 'utf-8').read()
word_jieba = jieba.cut(text, cut_all=True)
word_split = " ".join(word_jieba)
#去掉一些意义不大的字
stop_words = set(STOPWORDS)
stop_words.add("的")
stop_words.add("我")
stop_words.add("你")
stop_words.add("是")
stop_words.add("就")
#根据心形图片生成配色方案,这里的路径要配置正确
alice_coloring = np.array(Image.open(os.path.join('F:\\','heart.jpg')))
my_wordcloud = WordCloud(scale=16,background_color="white", max_words=800, stopwords=stop_words, mask=alice_coloring,max_font_size=80, random_state=42,font_path='C:/Windows/Fonts/simhei.ttf')\
 .generate(word_split)
image_colors = ImageColorGenerator(alice_coloring)
plt.imshow(my_wordcloud.recolor(color_func=image_colors))
plt.imshow(my_wordcloud)
plt.axis("off")
plt.show()

可以根据自己的需求调整参数,比如如果有一些语气词和无意义的字可以通过配置 stopwords 来进行过滤,最后输入命令运行代码:


python qqChat.py

效果如下,还是很漂亮的。

Python将QQ聊天记录生成词云的示例代码

词云里面频率最高的几个词分别是“爱”,“自己”,“喜欢”,也恰恰是我想表达的:不管一段爱情有多么甜蜜或多么悲伤,始终都不能失去自己,哪怕说再见也要保持骄傲的姿态,每一段人生经历都有它的意义和价值,平和地接受结果就好了。

来源:https://blog.csdn.net/j1231230/article/details/113743564

标签:Python,词云
0
投稿

猜你喜欢

  • asp base64 utf-8为了兼容asp.net的base64

    2011-03-10 10:47:00
  • 不用Global.asa也能实现统计在线人数吗?

    2009-10-29 12:28:00
  • JavaScript获取时区实现过程解析

    2023-08-22 20:58:34
  • python用turtle库绘画圣诞树

    2023-05-24 19:35:40
  • SQL Server 2005 Express版企业管理器下载

    2009-10-06 14:54:00
  • 判定IE的各个版本

    2010-01-19 14:01:00
  • Django 创建/删除用户的示例代码

    2022-09-30 08:59:29
  • python yield关键词案例测试

    2021-02-07 03:14:07
  • Python性能分析工具py-spy原理用法解析

    2021-08-30 14:57:23
  • MySQL数据库临时文件究竟储存在哪里

    2009-09-06 12:11:00
  • js刷新页面方法大全

    2023-08-06 21:05:34
  • Python Opencv任意形状目标检测并绘制框图

    2023-06-06 19:03:43
  • ASP 生成静态新闻列表

    2009-03-03 12:25:00
  • 使用 Python 清理收藏夹里已失效的网站

    2023-01-11 01:26:00
  • Python OpenCV实现视频追踪

    2021-09-29 23:04:27
  • OracleEXP和IMP用法和介绍

    2010-07-28 13:18:00
  • jQuery模板提案

    2010-03-30 18:27:00
  • 解决TensorFlow调用Keras库函数存在的问题

    2023-11-20 15:04:25
  • 为网页设计创建有效的配色方案

    2011-08-31 12:55:57
  • Python语法分析之字符串格式化

    2021-10-09 18:00:09
  • asp之家 网络编程 m.aspxhome.com