Python---qq群聊天记录词云分析

简介: python拥有近13w个第三方库,其中有很多优秀的库,比如wordcloud,scipy,jieba等库,能快速实现很多功能,比如制作一个QQ群聊天记录词云……工具:PyCharm, Python3.6.51.获取数据源qq左下角导出消息记录要用.txt导出到任意盘符,接下来就要对导出的txt文件进行数据分析。

python拥有近13w个第三方库,其中有很多优秀的库,比如wordcloud,scipy,jieba等库,能快速实现很多功能,比如制作一个QQ群聊天记录词云……
工具:PyCharm, Python3.6.5


1.获取数据源

qq左下角


导出消息记录

要用.txt导出到任意盘符,接下来就要对导出的txt文件进行数据分析。


2.下载对应库

这一步是对于初学者最难的一步,其中有很多坑等着你。(下面以安装wordcloud为例,因为这个最麻烦)

(1)PyCharm的Terminal中输入pip install wordcloud来下载wordcloud库,一般情况下会安装失败==!那就用方法2
(2)第二个方法是到此网站下载安装包


重要提醒:通过cmd中输入python -V来查看你的python版本并下载对应的安装包,同时注意你的python是32位还是64位

wordcloud

以py3.6为例:wordcloud‑1.4.1‑cp36‑cp36m‑win32.whl
cp36代表python3.6 ;  win32代表32位的python

下载完成后把文件放到python目录的Scripts下,并在PyCharm的Terminal中运行pip install wordcloud‑1.4.1‑cp36‑cp36m‑win32.whl注意:得在Scripts下运行

3.代码部分

安装好各种库后终于可以编写代码了
分两步搞定

(1)过滤txt文件中无用的信息,避免词云中都是无效信息,并用jieba进行分词

直接上代码

import jieba

newtext = []
# 打开E盘下的聊天记录文件qq.txt
for word in open('E:\\qq.txt', 'r', encoding='utf-8'):
    tmp = word[0:4]
    if (tmp == "2017" or tmp == "===="or tmp == "2018"):  # 过滤掉聊天记录的时间和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:\\q1.txt', 'w', encoding='utf-8') as f:
    for i in newtext:
        f.write(i)
 # 打开新生成的聊天记录文件
text = open('E:\\q1.txt', 'r', encoding='utf-8').read()
word_jieba = jieba.cut(text, cut_all=True)
word_split = " ".join(word_jieba)

通过这步在E盘中得到了一个q1.txt文件,你打开会发现变的整洁干净了许多,当然你也可以通过进一步学习来更好的过滤文本

(2)最后一步,再新建一个.py,用到wordcloud库来绘制词云图(为便于理解,将程序分成两部分运行,你也可以尝试将两程序合并)
from wordcloud import WordCloud,STOPWORDS,ImageColorGenerator
import matplotlib.pyplot as plt
from scipy.misc import imread


text = open('E:\\q1.txt', 'r', encoding='utf-8').read()  # 打开过滤好的txt文件
print(text)
bg_pic = imread('E:\\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:\\text.jpg')   # 输出词云

最终效果

快去制作你的炫酷词云吧!!!

目录
相关文章
|
7月前
|
机器学习/深度学习 自然语言处理 数据可视化
数据代码分享|PYTHON用NLP自然语言处理LSTM神经网络TWITTER推特灾难文本数据、词云可视化
数据代码分享|PYTHON用NLP自然语言处理LSTM神经网络TWITTER推特灾难文本数据、词云可视化
|
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编程---简单的聊天工具
47 2
|
2月前
|
自然语言处理 计算机视觉 Python
用 Python 创建词云
用 Python 创建词云
38 2
|
2月前
|
网络协议 Python
使用Python开发简单的聊天应用
使用Python开发简单的聊天应用
26 0
|
3月前
|
自然语言处理 算法 数据可视化
9-4|Python在一群人聊天记录中提取关键字 需要什么步骤
9-4|Python在一群人聊天记录中提取关键字 需要什么步骤
|
4月前
|
自然语言处理 搜索推荐 数据可视化
如何使用python实现一个优雅的词云?(超详细)
如何使用python实现一个优雅的词云?(超详细)
111 2
|
4月前
|
自然语言处理 数据可视化 Python
【Python】Python人民的名义-词云-关系图可视化(源码+报告)【独一无二】
【Python】Python人民的名义-词云-关系图可视化(源码+报告)【独一无二】
|
5月前
|
自然语言处理 数据可视化 机器人
如何画一个词云 | python小知识
词云,又称文字云,是文本数据的视觉表示,通过将网络文本或大量文本数据中出现频率较高的“关键词”以不同大小的字体、颜色或形状进行可视化展示,形成类似云的彩色图形。这种视觉上的突出使得浏览者能够一眼扫过文本就领略到文本的主旨,是数据可视化的一种重要形式 【7月更文挑战第6天】
62 0
|
6月前
|
搜索推荐 Python Windows
python中对于wordcloud词云生成报错提示的解决
通过搜索印象错误信息:ValueError:Only supported for TrueType fonts,几乎大部分人给出的选项都是让你指定TrueType fonts路径,或者新下载TTF字体,并重新指定,但是这两种解决方案并无法解决报错。 在真正解决问题之前,先来介绍几个与之相关的知识点,对于有经验的人,这样的知识点完全是“小菜”,但是对于初学者,这种知识点就是因为缺少相关实践而无从下手,无从搜索引擎。