程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

【Python | 詞雲】聊天記錄繪制超美詞雲(七夕快樂 ,曾同學)

編輯: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()
text

二、 處理聊天記錄

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

你來了,一只綠色的月亮,掉進我年輕的船艙。
——海子《海上婚禮》

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved