python获取微信聊天内容(用python如何把微信聊天记录做成词云)

注意避开的坑

1.微信聊天记录EnMicroMsg.db库的导出

储存微信聊天记录的EnMicroMsg.db库需要在ROOT情况下导出。但目前的手机ROOT软件下载,我个人并不放心。这篇文章(https://zhuanlan.zhihu.com/p/111802776)说明了如何在不手机ROOT的情况下导出库文件。

python获取微信聊天内容(用python如何把微信聊天记录做成词云)(1)

2.EnMicroMsg.db库的解密

关于解密网上已有很多资料,钥匙 KEY = IMEI (手机序列号) UIN(用户信息号)计算KEY值MD5加密以后的前7位的值,这就是库的密码。(但是输出密码以后一直显示错误,上网查发现微信在7.017版本之后貌似会出现这种情况,当时试了好久,试了很多其他办法和密码。解决办法就是过一段时间再尝试就可以了,所以如果你碰见这样的情况,可以不用着急,等过会输入就可以了)

停用词(stopword.txt)

停用词可以用这个(https://blog.csdn.net/dorisi_h_n_q/article/details/82114913)chat.txt就导入自己想做词云的文本吧图片如果自定义的话(因为代码设置是白色)背景需要自己处理下

代码展示

#coding:utf-8 import jieba #分词包 import matplotlib.pyplot as plt from wordcloud import WordCloud#词云包 import collections #文件读入 file=open("chat.txt",'r',encoding='utf-8') content=file.read() file.close() segment=[] segs=jieba.cut(content) #切词 #停用词读入 stopwords=open("stopword.txt",'r',encoding="utf-8") s=stopwords.read() stopwords.close() s = s.split("\n") #循环输出需要的词追加到列表 for word in segs: if word not in s and len(word)>1: segment.append(word) #查看词频记录 word_counts = collections.Counter(segment) # 对分词做词频统计 word_counts_top10 = word_counts.most_common(10) # 获取前10最高频的词 print(word_counts_top10) # 输出检查 #制作词云 text = ' '.join(segment)#将文本变为str格式 bimg=plt.imread('heart.jpg') wc = WordCloud(background_color="white",mask=bimg,font_path='simhei.ttf',collocations=False).generate(text) plt.imshow(wc,interpolation='bilinear')#按双线性插值输出 plt.axis('off') plt.show() # 保存到文件 wc.to_file('wordcloud.png')

词云效果

这个就不展示了,毕竟是涉及了聊天隐私,哈哈哈,大家可以自己试试,还是很好看的,小编给大家找了一下已经发在网上的词云

python获取微信聊天内容(用python如何把微信聊天记录做成词云)(2)

python获取微信聊天内容(用python如何把微信聊天记录做成词云)(3)


最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“01”即可领取。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页