python怎么生成词云_导出微信聊天记录文本问题描述:将微信的聊天记录导出,生成词云,留作纪念。先看效果:非常多的哈哈哈(◕ˇ∀ˇ◕)**第一步:导出微信聊天记录**将微信聊天记录导出成文档,知乎上有很多种方法,其中主要是两类,第一种是通过root手机,获取权限;第二种为通过AppleiTunes备份。这里选择第二类方法(小米note3不支持root),具体过程也较为简便,感谢知乎**@hangcom**提供的免费工具...
够帮助大家进步!!!大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说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分词
此代码由Java架构师必看网-架构君整理
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生成词云
也即最后一步,按照指定图形生成词云。
此代码由Java架构师必看网-架构君整理
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')
今天文章到此就结束了,感谢您的阅读。