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


Posted in Python onFebruary 10, 2021

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

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

言归正传,我们要做的任务是,把 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聊天记录生成词云的示例代码

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

到此这篇关于Python将QQ聊天记录生成词云的示例代码的文章就介绍到这了,更多相关Python 生成词云内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
全面了解python字符串和字典
Jul 07 Python
python读取excel表格生成erlang数据
Aug 26 Python
python编程使用selenium模拟登陆淘宝实例代码
Jan 25 Python
Python3 关于pycharm自动导入包快捷设置的方法
Jan 16 Python
解决python super()调用多重继承函数的问题
Jun 26 Python
Python-Tkinter Text输入内容在界面显示的实例
Jul 12 Python
通过实例解析Python调用json模块
Dec 11 Python
Pytorch中膨胀卷积的用法详解
Jan 07 Python
使用python 计算百分位数实现数据分箱代码
Mar 03 Python
python使用dlib进行人脸检测和关键点的示例
Dec 05 Python
python安装mysql的依赖包mysql-python操作
Jan 01 Python
自动在Windows中运行Python脚本并定时触发功能实现
Sep 04 Python
python利用文件时间批量重命名照片和视频
Feb 09 #Python
python opencv实现图像配准与比较
Feb 09 #Python
python urllib和urllib3知识点总结
Feb 08 #Python
Python3.9.1中使用match方法详解
Feb 08 #Python
python读取excel数据并且画图的实现示例
Feb 08 #Python
Python爬取某平台短视频的方法
Feb 08 #Python
利用Python批量识别电子账单数据的方法
Feb 08 #Python
You might like
php ss7.5的数据调用 (笔记)
2010/03/08 PHP
PHP中ini_set与ini_get用法实例
2014/11/04 PHP
php使用wordwrap格式化文本段落的方法
2015/03/17 PHP
Iframe thickbox2.0使用的方法
2009/03/05 Javascript
JS在可编辑的div中的光标位置插入内容的方法
2014/11/20 Javascript
JS中的二叉树遍历详解
2016/03/18 Javascript
JS & JQuery 动态添加 select option
2016/06/08 Javascript
JavaScript SHA-256加密算法详细代码
2016/10/06 Javascript
nodejs个人博客开发第七步 后台登陆
2017/04/12 NodeJs
JS+canvas绘制的动态机械表动画效果
2017/09/12 Javascript
浅谈webpack对样式的处理
2018/01/05 Javascript
Vue的轮播图组件实现方法
2018/03/03 Javascript
详解使用vue-admin-template的优化历程
2018/05/20 Javascript
localstorage实现带过期时间的缓存功能
2019/06/28 Javascript
nodejs简单抓包工具使用详解
2019/08/23 NodeJs
js+html+css实现手动轮播和自动轮播
2020/12/30 Javascript
react项目从新建到部署的实现示例
2021/02/19 Javascript
[03:19]2016国际邀请赛中国区预选赛第四日TOP10镜头集锦
2016/07/01 DOTA
使用Python的Tornado框架实现一个一对一聊天的程序
2015/04/25 Python
go和python变量赋值遇到的一个问题
2017/08/31 Python
python判断字符串是否是json格式方法分享
2017/11/07 Python
Laravel+Dingo/Api 自定义响应的实现
2019/02/17 Python
python3使用matplotlib绘制条形图
2020/03/25 Python
Python imageio读取视频并进行编解码详解
2019/12/10 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
2019/12/19 Python
后端开发使用pycharm的技巧(推荐)
2020/03/27 Python
Python爬取微信小程序Charles实现过程图解
2020/09/29 Python
初探CSS3中的calc()功能
2015/07/14 HTML / CSS
医学生职业规划范文
2014/01/05 职场文书
校园安全教育广播稿
2014/02/17 职场文书
《守株待兔》教学反思
2014/03/01 职场文书
房屋出售授权委托书
2014/10/12 职场文书
质量保证书格式
2015/02/27 职场文书
党支部考察鉴定意见
2015/06/02 职场文书
欢送领导祝酒词
2015/08/12 职场文书
Python实现批量将文件复制到新的目录中再修改名称
2022/04/12 Python