利用Python分析QQ群的聊天内容

Python初学者,分享自己学习的例子,今天是关于QQ群的聊天内容的分析,生成词云,效果如下,内容来自于经常聊天的技术群:

利用Python分析QQ群的聊天内容_第1张图片
qq.png

下面开始讲步骤:

(一)安装Python运行环境

这个在这边我不多说了,我用的还是2.7,关于IDE,无论是用PyChram还是用anaconda都是不错的选择,PyChram很好下载,anaconda要去清华大学开源软件镜像站下载(https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/),其实今天的用不到IDE,我就顺便讲一下
然后pip 和 npm cnpm这些要配置好,具体网上教程太多

(二)创建项目

自己建文件夹,Demo(这个自己随意)
做一些准备工作
1.获取ttf字体文件
下载中文文本数据,这个网址(https://s3-us-west-2.amazonaws.com/notion-static/b869cb0c7f4e4c909a069eaebbd2b7ad/simsun.ttf),下载simsun.ttf
下载后,将这个ttf字体文件移动到Demo目录下
2.获取QQ群聊天内容
腾讯指导(http://kf.qq.com/info/42589.html),注意,导出的类型为txt,导出之后,我命名为qq.txt,将文本放到也移动到Demo目录下

3.安装工具类

打开cmd/Powershell之类的命令窗,先执行:

pip install wheel
 pip install wordcloud
pip install jupyter

安装的过程中可能会出现 "......failed building wheel for scandir"的问题,这个时候第一步百度啊,咳咳,http://www.cnblogs.com/harvey888/p/5467276.html这个回答不错,我直接找到了pythonlibs,链接(http://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud),然后搜索scandir 然后找到对应的whl,接下来使用pip install “文件路径+whl文件名”来安装,反正要把jupyter这个安装好

利用Python分析QQ群的聊天内容_第2张图片
1.png

继续安装中文分词工具" 结巴分词"(https://github.com/fxsjy/jieba)
执行以下代码

pip install jieba

这边都是准备工作,一通安装各种工具,确保安装的工具都没有问题,不然下面都进行不下去

(三)运行

在Demo文件夹下面运行cmd/Powershell之类的命令窗,运行

jupyter notebook

运行之后会自动在浏览器上跳出,如下图一样的界面,说明你做到这边都很成功

利用Python分析QQ群的聊天内容_第3张图片
2.png

然后我们点开qq.txt看看内容,对了如果出现乱码之类的,记得utf-8

利用Python分析QQ群的聊天内容_第4张图片
3.png

回到Jupyter笔记本的主页面。点击New按钮,请选择Python 2选项。

利用Python分析QQ群的聊天内容_第5张图片
4.png

点击上面的"Untitled"给新的文件命名,叫qq

利用Python分析QQ群的聊天内容_第6张图片
5.png

在代码文本框里,输入

filename = "qq.txt"
with open(filename) as f:
 mytext = f.read()

输入后,按Shift+Enter键执行,或者按上面的Run按钮执行
然后要看一下mytext内的内容,输入

print(mytext)

显示结果如下

利用Python分析QQ群的聊天内容_第7张图片
6.png

如果显示的都是和之前的txt上看到的一样,说明文本读取没有问题,下面就开始分词了
输入

import jieba
mytext = " ".join(jieba.cut(mytext))

结果如下图

利用Python分析QQ群的聊天内容_第8张图片
7.png

这个时候的分词已经分好了,不放心可以print(mytext)看一下
下面开始做词云图片了

from wordcloud import WordCloud
wordcloud = WordCloud(font_path="simsun.ttf").generate(mytext)
%pylab inline
import matplotlib.pyplot as plt
plt.imshow(wordcloud, interpolation='bilinear')
fig = matplotlib.pyplot.gcf()
fig.set_size_inches(18.5, 10.5)
fig.savefig('qq.png', dpi=600)
plt.axis("off")

效果如下

利用Python分析QQ群的聊天内容_第9张图片
8.png

在Demo文件夹里面也有对应的保存的图片

利用Python分析QQ群的聊天内容_第10张图片
9.png

因为的初学者,可能有一些地方讲的不太对,请大家见谅

你可能感兴趣的:(利用Python分析QQ群的聊天内容)