zoukankan      html  css  js  c++  java
  • 微信聊天记录深度分析,看看这一年你和谁最亲密

    原文链接:

    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专业知识和计算机知识:

  • 相关阅读:
    maven junit.framework不存在问题解决
    maven项目在打war包时出现非法字符: 'ufeff' 解决方案
    如何隐藏tomcat命令窗口
    小程序如何生成开发版的带参二维码
    小程序码生成随记
    生活中的一些笔记
    存储过程
    项目出现 The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 解决方法
    maven环境配置详解,及maven项目的搭建及maven项目聚合
    sqldeveloper和plsqldebeloper
  • 原文地址:https://www.cnblogs.com/godweiyang/p/12203873.html
Copyright © 2011-2022 走看看