健身房网站建设案例,网站建设设,资源库网站开发,怎么搜索关键词前言#xff1a; 因为最近接触到了词云图#xff0c;所以就想做一个关于和女朋友聊天的词云图,但是现在很少使用QQ了#xff0c;所以就不得不使用微信导出聊天记录。于是我坐在电脑面前查阅资料查了一天#xff0c;但是在走到快导出微信聊天记录的时候#xff0c;还是被…前言 因为最近接触到了词云图所以就想做一个关于和女朋友聊天的词云图,但是现在很少使用QQ了所以就不得不使用微信导出聊天记录。于是我坐在电脑面前查阅资料查了一天但是在走到快导出微信聊天记录的时候还是被卡住了。 通过手机备份微信聊天记录到电脑我拿到了下面几个文件 我想通过SQLCipher打开EnMicroMsg这个数据库文件但是需要输入密码根据网上所述需要找到IMEI和微信UIN然后IMEIUIN通过MD5加密取32位小写前七位就是数据库密码可是我试了很久都打不开于是我放弃了。还有其他方法我也获取不了密码不知道怎么回事。于是我选择了复制粘贴的办法一天一天的把聊天记录保存到txt文件中。如果有人知道怎么导出微信聊天记录请告诉我一下呗不胜感激如果不知道怎么导出微信聊天记录那么你也可以采用我这个笨办法保存聊天记录但是作词语图的方法都一样~ 下面操作是基于聊天记录保存到txt文本中的数据格式如下 首先我想的是把这个txt文件中的数据保存到csv中因为这样还可以把聊天记录发给她csv文件看起来也方便。 代码如下
import csv
role[] #角色
dialogue[] #对话
time[] #时间
with open(rC:\Users\23993\Desktop\微信聊天记录\聊天记录.txt,encodingutf-8) as notes:sentencenotes.readlines()for lineID,line in enumerate(sentence):if lineID % 3 0:if - in line:time.append(line.strip())role.append()if line.strip()啦什么啦:: #将微信昵称改成你想要的昵称role.append(我)time.append()if line.strip() in [啦啦:,大宝贝:]:role.append(大宝贝)time.append()if lineID % 3 1:dialogue.append(line.strip())with open(聊天记录.csv,w,newline ,encoding gb18030) as f:writer csv.writer(f,dialect excel)writer.writerow([时间,角色,对话])writer.writerows(zip(time,role,dialogue))经过上述操作已经将txt文件转换为了csv文件我们这时可以看效果 PS:如果你知道如何导出聊天记录那肯定原本就是一个csv文件也不会像我这么麻烦。我这个是个笨方法~
接下来就是如下步骤 ①查看数据看看聊天记录主要内容删除空值所在行
import pandas as pd
dataspd.read_csv(聊天记录.csv,encoding gb18030) #读取csv文件
datas.head() #查看DataFrame头部数据
datasdatas.dropna(axisindex, howany, subset[角色,对话]) #删除角色对话列存在空值的行
print(datas)②通过观察我们发现消息中存在[干嘛]、[语音]等格式的数据这是因为它们是表情包和语音我们需要把它们剔除掉以免对重要词造成影响。
#删除表情包和语音他们都在[]中
dropdatadatas[datas[对话].str.contains(])] #找到含有‘]’所在的行
print(dropdata)
test1list(dropdata[对话]) #将dropdata的对话列表示为列表test1
test2list(datas[对话]) #将datas的对话列表示为列表test2
dialoguelist(set(test1)^set(test2)) #采用列表求差集的方法将数据中含有[]的元素除去
print(dialogue)
print(str(len(dialogue))个元素) #查看列表dialogue中还有多少个元素③操作后所有消息都在列表中一条消息就是一个元素接下来就利用jieba库进行分词。
import jieba
#利用jieba分词
words[]
for sentence in dialogue:wordjieba.lcut(sentence) #分词words word
result .join(words)
print(result)④利用wordcloud库生成词云图
import matplotlib.colors as colors
import matplotlib.pyplot as plt
from wordcloud import WordCloud
from PIL import Image
import numpy as np
#stop_words.txt是一个停用词文本用于除去result中的停用词
stop_words open(stop_words.txt,encodingutf8).read().split(\n)
#图片
picturenp.array(Image.open(爱心.png))
#红色 #FF0000 蓝色 #0000FF 牡丹红 #FF00FF 青色 #00FFFF 黄色 #FFFF00
#海蓝 #70DB93 橙色 #FF7F00 黑色 #000000 蓝紫色 #9F5F9F 黄铜色 #B5A642
#金色 #CD7F32 紫红色 #D8BFD8 紫罗兰色 #4F2F4F 粉红色 #BC8F8F 珊瑚红 #FF7F00
#深紫色 #871F78 巧克力色 #5C3317 橙色 #FF7F00 橙红色 #FF2400 浅蓝色 #C0D9D9
colormapscolors.ListedColormap([#ffadbb,#ffb6c1,#ffb3e6,#ffd9e6]) #编辑文字颜色
#推荐颜色
##FF0000,#D8BFD8,#FF2400,#FF7F00
##C7EDCC,#DCE2F1
##ffadbb,#ffb6c1,#ffb3e6,#ffd9e6#使用WordCloud生成词云
word_cloud WordCloud(maskpicture, #设置图片background_colorwhite, # 词云图的背景颜色font_pathsimsun.ttc, # 设置词云字体colormapcolormaps, # 指定字体颜色stopwordsstop_words) # 去掉的停词
word_cloud.generate(result)
#运用matplotlib展现结果
plt.subplots(figsize(12,8))
plt.imshow(word_cloud)
plt.axis(off)
# 保存生成的词云图
word_cloud.to_file(聊天词云图.jpg)最后查看效果 用到的爱心图片
最后呢我想祝愿天下所有有情人终成眷属纵使所爱隔山海山海亦可平 感想(此处可以略过~) 其实通过词云图就可以看出我们现在聊天基本上都是在聊上班甚至还有一个字特别明显—‘哭’我们其实已经恋爱五年了但异地估计都有四年大学也是异地期间经历了很多事情。 在她刚读大一我选择了复读在她工作了我还没毕业所以现在我还在上学她在上班。因为陪我去年来我学校这边工作所以就这一段时间我们才真正的不算异地因为不确定因素导致今年我们又异地了她在她家那边上班。每天都感觉她很累有时候她也会自己哭然而我自己钱也不多以前读大学异地的时候我每个月还可以去找她两次现在异地可能一个月只能去找她一次。真的感觉是我害了她一样如果不遇见我可能她会过的更好。但是我现在很舍不得她当然以后肯定是准备和她结婚所以我希望在这个学期不要浑浑噩噩复习备考公务员和学好如何做一个数据分析师两手抓在马上到来的职场中能有所作为。 我不知道为什么在这里留下了这么多文字我也不希望陌生人看见了会觉得我怎么怎么样我只希望如果以后的我看见这段话会勾起那些回忆和承诺不要辜负了她