QQ聊天记录生成词云--WordCloud

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QQ聊天记录生成词云--WordCloud相关的知识,希望对你有一定的参考价值。


文章目录

  • ​​首先导出想要生成词云的聊天记记录(QQ支持)​​
  • ​​打开导出的聊天记录查看​​
  • ​​净化聊天记录​​
  • ​​代码​​
  • ​​净化后的文件部分内容显示(text_clean.txt)​​
  • ​​分词​​
  • ​​代码​​
  • ​​分词后文本部分结果print(text_split):​​
  • ​​选取图片​​
  • ​​代码​​
  • ​​图片​​
  • ​​选取字体(词云只支持英文 但是通过以下方式可以正常显示中文)​​
  • ​​更换字体路径​​
  • ​​代码​​
  • ​​生成图片并显示​​
  • ​​代码​​
  • ​​生成的词云图片​​
  • ​​全部代码​​

首先导出想要生成词云的聊天记记录(QQ支持)


QQ聊天记录生成词云--WordCloud_词云

QQ聊天记录生成词云--WordCloud_Image_02


QQ聊天记录生成词云--WordCloud_词云_03

QQ聊天记录生成词云--WordCloud_Desktop_04


打开导出的聊天记录查看


QQ聊天记录生成词云--WordCloud_Desktop_05

QQ聊天记录生成词云--WordCloud_词云_06

QQ聊天记录生成词云--WordCloud_Desktop_07

净化聊天记录

代码

#将文本导入到程序中
text=open(rC:\\Users\\LIANG\\Desktop\\java技术交流群.txt,encoding=utf-8)

# 提取文本 一行一行选取 存入text_clean.txt文件中
text_clean = open(rC:\\Users\\LIANG\\Desktop\\text_clean.txt,w,encoding="utf-8-sig")
str_s=text.readlines()
for str in str_s:
if str.find([表情])!=-1:
str=str.replace([表情],)
elif str.find(2019)!=-1 or str.find(2020)!=-1 or str== or str.find([图片])!=-1:
continue
else:
text_clean.write(str)

净化后的文件部分内容显示(text_clean.txt)

QQ聊天记录生成词云--WordCloud_wordcloud_08

分词

代码

import jieba # 中文分词组件
#利用jieba模块对聊天记录精确分词
text_clean = open(rC:\\Users\\LIANG\\Desktop\\text_clean.txt,r,encoding="utf-8-sig").read()
text_jieba = jieba.cut(text_clean, cut_all=False)
text_split = " ".join(text_jieba)

分词后文本部分结果print(text_split):

QQ聊天记录生成词云--WordCloud_Desktop_09

选取图片

代码

#PIL专门处理图像
import numpy as np
from PIL import Image
cloud_mask = np.array(Image.open(rC:\\Users\\LIANG\\Desktop\\云朵.jpg))

图片

QQ聊天记录生成词云--WordCloud_Desktop_10

选取字体(词云只支持英文 但是通过以下方式可以正常显示中文)

更换字体路径

我们按照路径"C:\\Windows\\Fonts"打开文件 我们可以选择 其中任意一种支持中文的字体

QQ聊天记录生成词云--WordCloud_Image_11

比如:选择微软雅黑中的简体字 右键点击属性 复制粘贴到’C:\\Windows\\Fonts’路径后 改变font属性

QQ聊天记录生成词云--WordCloud_词云_12


QQ聊天记录生成词云--WordCloud_Desktop_13

代码

font = rC:\\Windows\\Fonts\\msyh.ttc

生成图片并显示

代码

#导包 
from wordcloud import WordCloud
import matplotlib.pyplot as plt

scale : 按比例放大画布
background_color : 背景颜色
font_path : 字体
width : 宽
height : 高
mask : nd-array or None类型 通常用于添加图片背景
max_words : 要显示的词的最大个数
更多参数可以去看官方文档

wordcloud = WordCloud( scale=10,background_color=white,width=200,height=200, font_path=font,mask=cloud_mask,max_words=300).generate(text_split)
#interpolation=bilinear,排线方式
plt.imshow(wordcloud,interpolation=bilinear)
#取消显示轴线
plt.axis(off)
#显示图片
plt.show()

生成的词云图片

QQ聊天记录生成词云--WordCloud_Image_14

全部代码

import jieba # 中文分词组件
import numpy as np
from PIL import Image
from wordcloud import WordCloud
import matplotlib.pyplot as plt

#步骤一:将文本导入到程序中
text=open(rC:\\Users\\LIANG\\Desktop\\java技术交流群.txt,encoding=utf-8)

# 步骤二:净化文本数据
text_clean = open(rC:\\Users\\LIANG\\Desktop\\text_clean.txt,w,encoding="utf-8-sig")
str_s=text.readlines()
for str in str_s:
if str.find([表情])!=-1:
str=str.replace([表情],)
elif str.find(2019)!=-1 or str.find(2020)!=-1 or str== or str.find([图片])!=-1:
continue
else:
text_clean.write(str)
text_clean.close()

#步骤四:利用jieba模块对聊天记录精确分词
text_clean = open(rC:\\Users\\LIANG\\Desktop\\text_clean.txt,r,encoding="utf-8-sig").read()
text_jieba = jieba.cut(text_clean, cut_all=False)
text_split = " ".join(text_jieba)
print(text_split)


#步骤五:设置背景图 和字体
cloud_mask = np.array(Image.open(rC:\\Users\\LIANG\\Desktop\\云朵.jpg))
font = rC:\\Windows\\Fonts\\msyh.ttc


#步骤六:生成词云

scale : 按比例放大画布
background_color : 背景颜色
font_path : 字体
width : 宽
height : 高
mask : nd-array or None类型 通常用于添加图片背景
max_words : 要显示的词的最大个数
更多参数可以去看官方文档

wordcloud = WordCloud( scale=10,background_color=white,width=200,height=200, font_path=font,mask=cloud_mask,max_words=300).generate(text_split)
#interpolation=bilinear,排线方式
plt.imshow(wordcloud,interpolation=bilinear)
#取消显示轴线
plt.axis(off)
#显示图片
plt.show()


以上是关于QQ聊天记录生成词云--WordCloud的主要内容,如果未能解决你的问题,请参考以下文章

wordcloud 的常规方法

文字云

使用python wordcloud库实现词云,教你两招轻松搞定

Python实战:导出QQ聊天记录生成词云看看你和你的女友聊了什么

worldcloud库—总结

Python3.6+jieba+wordcloud 爬取豆瓣影评生成词云