前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Python | 词云】聊天记录绘制超美词云(七夕快乐 ,曾同学)

【Python | 词云】聊天记录绘制超美词云(七夕快乐 ,曾同学)

作者头像
计算机魔术师
发布2022-08-23 09:58:57
4310
发布2022-08-23 09:58:57
举报
文章被收录于专栏:计算机魔术师

七夕快乐 ! 🎉

代码语言:javascript
复制
         —— "我发现我心里众生平等,只有你一个超重"
在这里插入图片描述
在这里插入图片描述

解释器:python.3.9 编译器:jupyter notebook 时间:8/4 10:20

文章目录

一、打开聊天记录文件

本次聊天记录是收集于我和曾同学QQ一年以来的聊天记录,一起看看你们情侣间说过最多的是哪句话吧!

  • 代码
代码语言:javascript
复制
import re
import wordcloud
import PIL
import numpy as np
import jieba

chat = open('./Princess(2023624240).txt',mode='r',encoding='utf-8')
text = chat.read()
在这里插入图片描述
在这里插入图片描述

二、 处理聊天记录

2.1 去除无用信息

每条信息共同点都是:

代码语言:javascript
复制
日期 用户名
信息
[换行]
在这里插入图片描述
在这里插入图片描述

使用re模块 去除不需要的 [图片], 用户名和 换行符\n , 以及日期和高频率的系统消息

代码语言:javascript
复制
re_text = re.sub('[图片]|老板来碗杂碎面|@waaaaaaaaaaaaaaa|Princess|prince|\n|202\d-\d{2}-\d{2} \d{1,}:\d{2}:\d{2}|撤回了一条消息,并坏笑了一下。|ss|[表情]|系统消息|','',text)
re_text

输出:

在这里插入图片描述
在这里插入图片描述

2.2 中文分词

这里用第三方分词库 jieba

代码语言:javascript
复制
jieba_text = jieba.lcut(re_text)
jieba_text

输出:

在这里插入图片描述
在这里插入图片描述

以空格连接各个词语

代码语言:javascript
复制
result_text = ' '.join(jieba_text)
result_text

输出:

在这里插入图片描述
在这里插入图片描述

三、绘制词云

代码语言:javascript
复制
wcd_z = wordcloud.WordCloud(font_path='./../font/Muyao.TTF/',mode='RGBA',colormap='Reds',background_color=None,repeat=True,max_words=200,width=800,height=600,max_font_size=100)
wcd_z.generate(result_text)
wcd_z.to_image()
在这里插入图片描述
在这里插入图片描述

3.1 colormap 修改主色调

在这里插入图片描述
在这里插入图片描述

色调库: https://www.matplotlib.org.cn/gallery/color/colormap_reference.html 这里使用 现在的季节夏天 autumn

代码语言:javascript
复制
wcd_z = wordcloud.WordCloud(font_path='./../font/Muyao.TTF/',mode='RGBA',colormap='autumn',background_color=None,repeat=True,max_words=200,width=800,height=600,max_font_size=100)
wcd_z.generate(result_text)
wcd_z.to_image()

输出:

在这里插入图片描述
在这里插入图片描述

3.2 导入图片轮廓

导入准备好的图片, 使用ps工具扣除不想要的背景, 这里为了最好看,我用了四组不同的背景(最好看那张的是自己画的🤭)

导入处理好的四张图片

代码语言:javascript
复制
mask1 = np.array(PIL.Image.open('./qixi.png',mode='r'))
mask2 = np.array(PIL.Image.open('./qixi2.png',mode='r'))
mask3 = np.array(PIL.Image.open('./qixi3.png',mode='r'))
mask4 = np.array(PIL.Image.open('./qixi4.png',mode='r'))

原图:

在这里插入图片描述
在这里插入图片描述

3.3 图片样式一

代码语言:javascript
复制
wcd_z = wordcloud.WordCloud(font_path='./../font/Muyao.TTF/',mode='RGBA',mask=mask1,colormap='autumn',background_color=None,repeat=True,max_words=500,min_font_size=1,width=800,height=600,max_font_size=100)
wcd_z.generate(result_text)
wcd_z.to_image()
在这里插入图片描述
在这里插入图片描述

3.4 图片样式二

代码语言:javascript
复制
wcd_z = wordcloud.WordCloud(font_path='./../font/Muyao.TTF/',mode='RGBA',mask=mask2,colormap='autumn',background_color=None,repeat=True,max_words=500,min_font_size=1,width=800,height=600,max_font_size=100)
wcd_z.generate(result_text)
wcd_z.to_image()
在这里插入图片描述
在这里插入图片描述

3.5 图片样式三

代码语言:javascript
复制
wcd_z = wordcloud.WordCloud(font_path='./../font/Muyao.TTF/',mode='RGBA',mask=mask3,colormap='tab20',background_color=None,repeat=True,max_words=600,min_font_size=1,width=800,height=600,max_font_size=100)
wcd_z.generate(result_text)
wcd_z.to_image()
在这里插入图片描述
在这里插入图片描述

3.6 图片样式四

代码语言:javascript
复制
wcd_z = wordcloud.WordCloud(font_path='./../font/Muyao.TTF/',mode='RGBA',mask=mask4,colormap='tab20',background_color=None,repeat=True,max_words=1400,min_font_size=1,width=800,height=600,max_font_size=100)
wcd_z.generate(result_text)
wcd_z.to_image()
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
你来了,一只绿色的月亮,掉进我年轻的船舱。
									——海子《海上婚礼》
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/08/06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 七夕快乐 ! 🎉
    • 文章目录
    • 一、打开聊天记录文件
    • 二、 处理聊天记录
      • 2.1 去除无用信息
        • 2.2 中文分词
        • 三、绘制词云
          • 3.1 colormap 修改主色调
            • 3.2 导入图片轮廓
              • 3.3 图片样式一
                • 3.4 图片样式二
                  • 3.5 图片样式三
                    • 3.6 图片样式四
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档