Python将QQ聊天记录生成词云(情人节的后续)

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

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

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

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

1.创建聊天记录内容

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

2.导出聊天记录

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

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

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


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

第一步导出操作完成。

步骤二:安装需要的库

1.安装 jieba 库

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


2.安装 Wordcloud 库

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

https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud

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

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

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

安装成功截图如下:

步骤三:代码实现

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

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

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技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、Python必备开发工具

img

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

五、Python练习题

检查学习结果。

img

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

img

最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

  • 24
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值