问题描述:将微信的聊天记录导出,生成词云,留作纪念。
先看效果:
非常多的哈哈哈 (◕ˇ∀ˇ◕)
**
第一步:导出微信聊天记录
**
将微信聊天记录导出成文档,知乎上有很多种方法,其中主要是两类,第一种是通过root手机,获取权限;第二种为通过Apple iTunes 备份。
这里选择第二类方法(小米note3不支持root),具体过程也较为简便,感谢知乎**@hangcom**提供的免费工具,万分。
具体过程可移步查看https://zhuanlan.zhihu.com/p/32511173,不再赘述。
导出后,生成文件夹,包含视频、图片和聊天内容子文件,其中视频图片不再多说,单说聊天内容。
聊天内容HTML网页文件,文字内容以js格式保存,名为‘message’的JavaScript文件。
这里需要先将js文件用文本编辑器以txt格式打开,打开后显示包含中英文及各种字符。
这里含有所有的聊天内容。
接下来,对其中的中文汉字进行提取(假设聊天内容都是汉字)。
**
第二步:从聊天记录中提取所有的汉字
import re
import codecs
with codecs.open('*filepath*', 'r' ,encoding = 'utf-8') as file:
f = file.readline()
k = re.findall(r'[\u4e00-\u9fa5]+', f)
**
第三步:用jieba分词
import jieba
ls = jieba.lcut(k)
excludes = {"不是", "就是", "这么", "怎么"}
#此方法可以排除特定词组,(本代码运行过程中excludes失效,未果)改用其他方法实现,方法如下:
for word in ls:
if len(word)==1:
continue
elif word in ["不是", "就是", "这么", "怎么", "这个", "不能", "什么", "没有"]:
continue
else:
fname = open('jilu', 'a') #新建并追加写入名为'jilu.txt'的文件,不含指定词组
fname.writelines(word)
fname.close()
#也可以逆向操作,删除指定词组,此外还可以添加定义分词规则
**
第四步:统计词频最高的前10个词(可略)
需要统计各词组出现频次,进行排序,并输出。
for word in ls:
if len(word)==1:
continue
else:
counts[word] = counts.get(word, 0) +1
items = list(counts.items())
items.sort(key = lambda x:x[1], reverse=True)
for i in range(10):
word, count = items[i]
print('{0:<10}{1:>5}'.format(word, count))
**
第五步:wordcloud生成词云
也即最后一步,按照指定图形生成词云。
import wordcloud
txt = ' '.join(ls)
w = wordcloud.WordCloud(font_path = 'msyh.ttc' , width = 1000, height = 700, background_color = 'white') #使用微软雅黑字体
w.generate(txt)
w.to_file('Welove.png')
大功告成,女友甚喜。
今天的文章python 做聊天程序_生成微信聊天的软件分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/70259.html