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

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

七夕快乐 ! 🎉

—— "我发现我心里众生平等,只有你一个超重"
• 1

图片.png

解释器:python.3.9

编译器:jupyter notebook

时间:8/4 10:20

文章目录

一、打开聊天记录文件

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

  • 代码
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()

图片.png

二、 处理聊天记录

2.1 去除无用信息

每条信息共同点都是:

日期 用户名
信息
[换行]

图片.png

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

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

输出:

图片.png

2.2 中文分词

这里用第三方分词库 jieba

jieba_text = jieba.lcut(re_text)
jieba_text

输出:

图片.png

以空格连接各个词语

result_text = ' '.join(jieba_text)
result_text

输出:

图片.png

三、绘制词云

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()

图片.png

3.1 colormap 修改主色调

图片.png

色调库: https://www.matplotlib.org.cn/gallery/color/colormap_reference.html

这里使用 现在的季节夏天 autumn

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()

输出:

图片.png

3.2 导入图片轮廓

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

导入处理好的四张图片

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'))

原图:

图片.png

3.3 图片样式一

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()

图片.png

3.4 图片样式二

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()

图片.png

3.5 图片样式三

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()

图片.png

3.6 图片样式四

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()

图片.png

图片.png

你来了,一只绿色的月亮,掉进我年轻的船舱。
                  ——海子《海上婚礼》



相关文章
|
2月前
|
自然语言处理 Python Windows
python知识点100篇系列(23)- 使用stylecloud生成词云
【10月更文挑战第10天】`stylecloud` 是 `wordcloud` 的优化版,支持使用 Font Awesome 图标自定义词云形状,操作更简便。本文介绍如何安装 `jieba` 和 `stylecloud` 库,并使用它们生成中文词云。通过 `jieba` 进行分词,再利用 `stylecloud` 的 `gen_stylecloud` 方法生成具有特定形状和颜色的词云图像。
python知识点100篇系列(23)- 使用stylecloud生成词云
|
2月前
|
网络协议 IDE iOS开发
Python编程---简单的聊天工具
Python编程---简单的聊天工具
39 2
|
2月前
|
自然语言处理 计算机视觉 Python
用 Python 创建词云
用 Python 创建词云
35 2
|
2月前
|
网络协议 Python
使用Python开发简单的聊天应用
使用Python开发简单的聊天应用
25 0
|
3月前
|
自然语言处理 算法 数据可视化
9-4|Python在一群人聊天记录中提取关键字 需要什么步骤
9-4|Python在一群人聊天记录中提取关键字 需要什么步骤
|
4月前
|
自然语言处理 搜索推荐 数据可视化
如何使用python实现一个优雅的词云?(超详细)
如何使用python实现一个优雅的词云?(超详细)
108 2
|
4月前
|
存储 JSON 数据可视化
为了给七夕的女盆友挑合适的内衣,我用Python网易严选的内衣店的数据!
为了给七夕的女盆友挑合适的内衣,我用Python网易严选的内衣店的数据!
49 1
|
4月前
|
自然语言处理 数据可视化 Python
【Python】Python人民的名义-词云-关系图可视化(源码+报告)【独一无二】
【Python】Python人民的名义-词云-关系图可视化(源码+报告)【独一无二】
|
5月前
|
自然语言处理 数据可视化 机器人
如何画一个词云 | python小知识
词云,又称文字云,是文本数据的视觉表示,通过将网络文本或大量文本数据中出现频率较高的“关键词”以不同大小的字体、颜色或形状进行可视化展示,形成类似云的彩色图形。这种视觉上的突出使得浏览者能够一眼扫过文本就领略到文本的主旨,是数据可视化的一种重要形式 【7月更文挑战第6天】
58 0
|
6月前
|
搜索推荐 Python Windows
python中对于wordcloud词云生成报错提示的解决
通过搜索印象错误信息:ValueError:Only supported for TrueType fonts,几乎大部分人给出的选项都是让你指定TrueType fonts路径,或者新下载TTF字体,并重新指定,但是这两种解决方案并无法解决报错。 在真正解决问题之前,先来介绍几个与之相关的知识点,对于有经验的人,这样的知识点完全是“小菜”,但是对于初学者,这种知识点就是因为缺少相关实践而无从下手,无从搜索引擎。