微信聊天记录深度分析,看看这一年你和谁最亲密

原文链接:

https://zhuanlan.zhihu.com/p/100084316

2019年就要过去了,想知道你平时用的最多的词是什么吗?想知道你一天中哪个时间段聊天最多吗?想知道这一年谁和你聊的最多吗? 本文将会一步一步地教你如何导出微信聊天记录,并且对它们进行深入分析。

导出微信聊天数据

这一步是最为关键的,没有数据何谈分析?

在之前的教程中,我已经教过了如何导出微信聊天记录到电脑(仅限安卓)。

详见之前的博文:

微信聊天记录导出为电脑txt文件教程

下载所需要的两个python处理脚本:

github: wechat-analysis

表格结构分析

在第9个步骤之后,你就会得到下面这样的一张excel表格:

                                                       微信聊天记录表格

这个表格有很多列。

msgId列表示消息的序号。

type列表示消息的类型,我们这里只需要用到类型1。

isSend列表示是发送(1)还是接收(0)的消息。

createTime列表示消息的时间,不过这里用的是相对时间,单位是毫秒,所以计算的时候要特别注意。

talker列表示聊天的对象,如果有后缀@chatroom就表示是群聊,如果有前缀gh_就表示是公众号消息,其他的全部都是私聊。

content列表示消息内容。

首先将type列只勾选1,因为其他信息都是我们不需要的。

这一年聊天出现最多的词是什么?

这个部分我们细分为四个类型,分别是私聊发送的消息,私聊接收的消息,群聊发送的消息和群聊接收的消息。

私聊发送的消息:

第一行isSend列勾选1,talker列去掉所有后缀@chatroom和前缀gh_的勾。

然后得到如下的表格:

                                                       私聊发送消息汇总

然后选中第I列,按ctrl+c复制,新建一个wechat_send_person_2019.txt,并粘贴进去。

                                                              选中第I列

私聊接收的消息:

第一行isSend列勾选0,talker列去掉所有后缀@chatroom和前缀gh_的勾。

然后选中第I列,按ctrl+c复制,新建一个wechat_receive_person_2019.txt,并粘贴进去。

群聊发送的消息:

第一行isSend列勾选1,talker列勾选所有后缀@chatroom。

然后选中第I列,按ctrl+c复制,新建一个wechat_send_group_2019.txt,并粘贴进去。

群聊接收的消息:

第一行isSend列勾选0,talker列勾选所有后缀@chatroom。

然后选中第I列,按ctrl+c复制,新建一个wechat_receive_group_2019.txt,并粘贴进去。

然后这四个txt文件就可以分别生成词云了。

生成词云的方法请看我之前的教程:

python生成词云教程(附带QQ聊天记录生成词云实战)

最终的效果图如下所示:

                                                        私聊发送消息词云

                                                         私聊接收消息词云

                                                           群聊发送消息词云

                                                             群聊接收消息词云

你最喜欢在哪一个时间段发消息?

首先talker列去掉前缀gh_的勾,其他全部勾选上。

然后注意到createTime列默认用的是科学计数法,所以修改一下。

选中G列,右键点单元格格式-自定义,类型一栏填写0,确认。

然后就会变成下面这样:

去除科学计数法

然后选中G列,复制粘贴到新建的wechat_send_all_time_2019.txt。

注意要把第一行的列名去掉。

然后就是数据处理与画图部分了。

直接运行命令:

python3 process_time.py wechat_send_all_time_2019.txt

出来的效果图如下:

                                                    各个时间段发送消息数

这一年你和谁互动最多?

首先talker列去掉后缀@chatroom和前缀gh_的勾,其他全部勾选上。

然后isSend列0和1都勾上。

然后选中H和I列,粘贴到新建的people.txt。

直接运行命令:

python3 process_people.py people.txt

出来的效果图如下:

                                                 和你互动最多的前10个人

注意这里用户名并不会显示出来,只会显示微信的id,所以你需要去excel表格里一个个搜索看聊天内容,自己手动看是谁。

最后安利一下我的公众号,大家可以关注一下,不定期分享NLP专业知识和计算机知识:

算法码上来 文章被收录于专栏

公众号「算法码上来」。godweiyang带你学习算法,不管是编程算法,还是深度学习、自然语言处理算法都一网打尽,更有各种计算机新鲜知识和你分享。别急,算法码上来。

全部评论

相关推荐

12-08 07:42
门头沟学院 Java
27届末九,由于是女生,身边人几乎没有就业导向的,自学只能跟着网课,没人指导,很迷茫。下图是我目前的简历,不知道有需要修改的地方吗?求拷打。下面是目前的学习情况:目前算法过完了一遍力扣100和代码随想录,不过不是很熟,面经看了小林coding、JavaGuide,有一些没用过的技术看得不是很明白,掌握得不是很扎实。再加上常年跟黑马网课听思路,真正自己动手写代码的时间很少,这让我一直不敢投简历,总觉得内里空虚。项目没准备好面试相关的问题,简历上相应的考点不熟。如此种种。。。看到很多很多学长学姐大佬们的面经,愈发觉得面试可怕,自己没准备好,总担心自己是不是无望后端开发了。看到牛客很多同届以及更小一届的同学都找到实习了,很希望自己也能找到实习。而自己又好像摸不到后端学习的门路,只能不断赞叹黑马虎哥写的代码真优雅!微服务架构实在巧妙!消息队列、redis、sentinel、nacos、mybatisplus等等的引入都会让我赞叹这些工具的设计者的巧思,以及包括但不限于Java语言的优雅。然而只是停留在了解的程度,并不熟练。我是很希望能够继续深入探索这些知识的,只不过有一大部分时间都花在学校课程上了。我感觉我被困住了,我一方面必须保证我能够有个不错的学业分使我能有我几乎不想选择的读研退路(还有个原因是复习不全我会焦虑考试挂科,因此我会做好全面的准备,而这一步很费时间),一方面在B站学习各种网课,一方面得考虑提升自己并不扎实的算法基础,另一方面还得准备八股面经。这让我有点苦恼,我好像没那么多时间,因为绝大部分时间都花在了复习学校科目中了。我好像处处用时间,但收效甚微。想问问各位大佬是怎么平衡时间的呢?算法、项目和八股是怎么准备的呢?有什么高效的方法吗?谢谢您们花时间阅读我的稿件!
菜菜狗🐶:大胆投,我当时也是害怕面试,投多了发现根本约不到面🤡
投递哔哩哔哩等公司6个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务