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')   # 输出词云

最终效果

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

目录
相关文章
|
机器学习/深度学习 自然语言处理 数据可视化
数据代码分享|PYTHON用NLP自然语言处理LSTM神经网络TWITTER推特灾难文本数据、词云可视化
数据代码分享|PYTHON用NLP自然语言处理LSTM神经网络TWITTER推特灾难文本数据、词云可视化
|
自然语言处理 Python Windows
python知识点100篇系列(23)- 使用stylecloud生成词云
【10月更文挑战第10天】`stylecloud` 是 `wordcloud` 的优化版,支持使用 Font Awesome 图标自定义词云形状,操作更简便。本文介绍如何安装 `jieba` 和 `stylecloud` 库,并使用它们生成中文词云。通过 `jieba` 进行分词,再利用 `stylecloud` 的 `gen_stylecloud` 方法生成具有特定形状和颜色的词云图像。
271 0
python知识点100篇系列(23)- 使用stylecloud生成词云
|
网络协议 IDE iOS开发
Python编程---简单的聊天工具
Python编程---简单的聊天工具
116 2
|
自然语言处理 计算机视觉 Python
用 Python 创建词云
用 Python 创建词云
185 2
|
网络协议 Python
使用Python开发简单的聊天应用
使用Python开发简单的聊天应用
119 0
|
自然语言处理 搜索推荐 数据可视化
如何使用python实现一个优雅的词云?(超详细)
如何使用python实现一个优雅的词云?(超详细)
522 2
|
自然语言处理 算法 数据可视化
9-4|Python在一群人聊天记录中提取关键字 需要什么步骤
9-4|Python在一群人聊天记录中提取关键字 需要什么步骤
|
搜索推荐 Python Windows
python中对于wordcloud词云生成报错提示的解决
通过搜索印象错误信息:ValueError:Only supported for TrueType fonts,几乎大部分人给出的选项都是让你指定TrueType fonts路径,或者新下载TTF字体,并重新指定,但是这两种解决方案并无法解决报错。 在真正解决问题之前,先来介绍几个与之相关的知识点,对于有经验的人,这样的知识点完全是“小菜”,但是对于初学者,这种知识点就是因为缺少相关实践而无从下手,无从搜索引擎。
|
数据采集 自然语言处理 数据可视化
拿来及用的Python词云图代码 | wordcloud生成词云详解
词云也叫文字云,是一种可视化的结果呈现,常用在爬虫数据分析中,原理就是统计文本中高频出现的词,过滤掉某些干扰词,将结果生成一张图片,直观的获取数据的重点信息。今天,我们就来学习一下Python生成词云的常用库wordcloud。
|
机器学习/深度学习 自然语言处理 数据可视化
文本挖掘与可视化:生成个性化词云的Python实践【7个案例】
词云(Word Cloud),又称为文字云或标签云,是一种用于文本数据可视化的技术,通过不同大小、颜色和字体展示文本中单词的出现频率或重要性。在词云中,更频繁出现的单词会显示得更大,反之则更小。