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制作微信跳一跳辅助
Jan 31 Python
TensorFlow高效读取数据的方法示例
Feb 06 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
Jun 22 Python
Python实现对文件进行单词划分并去重排序操作示例
Jul 10 Python
Window 64位下python3.6.2环境搭建图文教程
Sep 19 Python
Django对数据库进行添加与更新的例子
Jul 12 Python
对python中的装包与解包实例详解
Aug 24 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
Feb 28 Python
Python类的绑定方法和非绑定方法实例解析
Mar 04 Python
解决keras模型保存h5文件提示无此目录问题
Jul 01 Python
python中spy++的使用超详细教程
Jan 29 Python
python+opencv实现目标跟踪过程
Jun 21 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简单系统查询模块代码打包下载
2008/06/07 PHP
检查用户名是否已在mysql中存在的php写法
2014/01/20 PHP
php使用Imagick生成图片的方法
2015/07/31 PHP
THinkPHP获取客户端IP与IP地址查询的方法
2016/11/14 PHP
PHP html_entity_decode()函数讲解
2019/02/25 PHP
PHP实现的微信APP支付功能示例【基于TP5框架】
2019/09/16 PHP
ThinkPHP5.1+Ajax实现的无刷新分页功能示例
2020/02/10 PHP
PHP程序员简单的开展服务治理架构操作详解(三)
2020/05/14 PHP
在Ajax中使用Flash实现跨域数据读取的实现方法
2010/12/02 Javascript
Javascript setInterval的两种调用方法(实例讲解)
2013/11/29 Javascript
动态加载dtree.js树treeview(示例代码)
2013/12/17 Javascript
Jquery Ajax解析XML数据(同步及异步调用)简单实例
2014/02/12 Javascript
JavaScript实现的in_array函数
2014/08/27 Javascript
解决ueditor jquery javascript 取值问题
2014/12/30 Javascript
js实现从右向左缓缓浮出网页浮动层广告的方法
2015/05/09 Javascript
原生js编写autoComplete插件
2016/04/13 Javascript
JS+CSS实现网页加载中的动画效果
2017/10/27 Javascript
原生JS实现的放大镜特效示例【测试可用】
2018/12/08 Javascript
layui中select,radio设置不生效的解决方法
2019/09/05 Javascript
详解jQuery中的prop()使用方法
2020/01/05 jQuery
微信小程序学习总结(二)样式、属性、模板操作分析
2020/06/04 Javascript
[01:06:26]全国守擂赛第二周 Team Coach vs DeMonsTer
2020/04/28 DOTA
详解Django通用视图中的函数包装
2015/07/21 Python
Python基于正则表达式实现检查文件内容的方法【文件检索】
2017/08/30 Python
使用Python制作自动推送微信消息提醒的备忘录功能
2018/09/06 Python
python实现nao机器人身体躯干和腿部动作操作
2019/04/29 Python
使用Python OpenCV为CNN增加图像样本的实现
2019/06/10 Python
详解python实现数据归一化处理的方式:(0,1)标准化
2019/07/17 Python
Django如何实现上传图片功能
2019/08/16 Python
Python实现链表反转的方法分析【迭代法与递归法】
2020/02/22 Python
使用npy转image图像并保存的实例
2020/07/01 Python
Python之字符串的遍历的4种方式
2020/12/08 Python
大学生军训自我评价分享
2013/11/09 职场文书
小学清明节活动方案
2014/03/08 职场文书
《金色的脚印》教后反思
2014/04/23 职场文书
夫妻吵架保证书
2015/05/08 职场文书