1.安装相关库
wordcloud、imread、scipy等使用pip install命令行安装失败后,可以通过以下网站,查找对应的本地安装包,下载下来,再通过pip install xxx.whl命令行进行安装。
Python Extension Package for Windows
cp37表示python3.7,win32表示32位,win_amd64表示64位。先通过cmd输入python查询版本,再选择合适的安装包,解压到本地,使用pip安装。
2.保存QQ群消息到本地
点开消息管理,选择需要的群消息,保存txt文件到本地。
3.编写python脚本
3.1使用jieba库分析整理群消息。
import jieba
newtext = []
# 打开E盘下的聊天记录文件qq.txt
for word in open('E:\\3\\qq.txt', 'r', encoding='utf-8'):
tmp = word[0:4]
if (tmp == "2020" or tmp == "===="or tmp == "2021"): # 过滤掉聊天记录的时间和qq名称
continue
tmp = word[0:2]
if (tmp[0] == '[' or tmp[0] == '/'or tmp[0] == '@'): # 过滤掉图片和表情,例如[图片],/滑稽
continue
newtext.append(word)
# 将过滤掉图片和表情和时间信息和qq名称剩下的文字重新写入E盘下的q1.txt文件中去
with open('E:\\3\\q1.txt', 'w', encoding='utf-8') as f:
for i in newtext:
f.write(i)
# 打开新生成的聊天记录文件
text = open('E:\\3\\q1.txt', 'r', encoding='utf-8').read()
word_jieba = jieba.cut(text, cut_all=True)
word_split = " ".join(word_jieba)
3.2绘出消息云图
from wordcloud import WordCloud,STOPWORDS,ImageColorGenerator
import matplotlib.pyplot as plt
import imread
text = open('E:\\3\\q1.txt', 'r', encoding='utf-8').read() # 打开过滤好的txt文件
print(text)
bg_pic = imread.imread('E:\\3\\sjt.jpg') # 导入词云背景
wordcloud = WordCloud(mask=bg_pic, background_color='white', scale=1.5, font_path='C:/Windows/Fonts/simhei.ttf', width=1000,height=600,stopwords={'表情','糊脸','拍桌','拍头'},min_font_size=10,max_font_size=36,font_step=4,
).generate(text) # 定义词云的各种变量,可以控制词云的形式,这里的控制变量可以去网上查找,stopwords={'表情','糊脸','拍桌','拍头''是为了过滤掉里面的部分表情信息
image_colors = ImageColorGenerator(bg_pic)
plt.imshow(wordcloud)
plt.axis('off')
plt.show()
wordcloud.to_file('E:\\3\\text.jpg') # 输出词云
在运行代码时,发生错误,
1是安装好了库文件,但是pycharm中并没有更新,需要打开setting设置python版本。
2是moudle未正确导入,由于import moudle 和form moudle import *导入方式不同,两者在调用变量时,前者需要使用module.变量名,且会改变原moudle里的值,而后者是创建了新的变量,直接使用变量名即可,不会改变原moudle的值。