python 做聊天程序_生成微信聊天的软件

python 做聊天程序_生成微信聊天的软件问题描述:将微信的聊天记录导出,生成词云,留作纪念

问题描述:将微信的聊天记录导出,生成词云,留作纪念。

先看效果:
在这里插入图片描述
非常多的哈哈哈 (◕ˇ∀ˇ◕)

**

第一步:导出微信聊天记录

**

将微信聊天记录导出成文档,知乎上有很多种方法,其中主要是两类,第一种是通过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

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注