【Python | 词云】聊天记录绘制超美词云(七夕快乐 ,曾同学)
七夕快乐 ! 🎉
—— "我发现我心里众生平等,只有你一个超重"
(图片来源网络,侵删)
解释器:python.3.9
编译器:jupyter notebook
时间:8/4 10:20
文章目录
- 七夕快乐 ! 🎉
- 一、打开聊天记录文件
- 二、 处理聊天记录
- 2.1 去除无用信息
- 2.2 中文分词
- 三、绘制词云
- 3.1 colormap 修改主色调
- 3.2 导入图片轮廓
- 3.3 图片样式一
- 3.4 图片样式二
- 3.5 图片样式三
- 3.6 图片样式四
一、打开聊天记录文件
本次聊天记录是收集于我和曾同学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()
二、 处理聊天记录
2.1 去除无用信息
每条信息共同点都是:
(图片来源网络,侵删)日期 用户名 信息 [换行]
使用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
输出:
2.2 中文分词
这里用第三方分词库 jieba
jieba_text = jieba.lcut(re_text) jieba_text
输出:
(图片来源网络,侵删)以空格连接各个词语
result_text = ' '.join(jieba_text) result_text
输出:
三、绘制词云
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
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工具扣除不想要的背景, 这里为了最好看,我用了四组不同的背景(最好看那张的是自己画的🤭)
导入处理好的四张图片
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 图片样式一
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 图片样式二
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 图片样式三
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 图片样式四
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()
你来了,一只绿色的月亮,掉进我年轻的船舱。 ——海子《海上婚礼》
- 代码
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。
还没有评论,来说两句吧...