关注公众号【算法码上来】,每日算法干货马上就来!
2019年就要过去了,想知道你平时用的最多的词是什么吗?想知道你一天中哪个时间段聊天最多吗?想知道这一年谁和你聊的最多吗?
本文将会一步一步地教你如何导出微信聊天记录,并且对它们进行深入分析。
导出微信聊天数据
这一步是最为关键的,没有数据何谈分析?
在之前的教程中,我已经教过了如何导出微信聊天记录到电脑(仅限安卓)。
详见之前的博文:https://godweiyang.com/2019/08/09/wechat-explore/。
下载所需要的两个python处理脚本:
https://github.com/godweiyang/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
,并粘贴进去。
私聊接收的消息:
第一行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文件就可以分别生成词云了。
生成词云的方法请看我之前的教程:https://godweiyang.com/2019/07/27/wordcloud/。
最终的效果图如下所示:
你最喜欢在哪一个时间段发消息?
首先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
出来的效果图如下:
注意这里用户名并不会显示出来,只会显示微信的id,所以你需要去excel表格里一个个搜索看聊天内容,自己手动看是谁。
最后安利一下我的公众号,大家可以关注一下,不定期分享NLP专业知识和计算机知识: