WhatsApp 聊天记录分析
先在 WhatsApp 里导出聊天(不带媒体就够了),再把 .txt 文件或压缩包拖到下面。你会看到每个人的消息数、按星期和小时划分的热力图、回复时间中位数和最常用的词,还能下载 CSV。整个过程不上传任何东西。
WhatsApp 聊天记录分析
把导出的 WhatsApp 聊天记录放进来,就能看到谁发得最多、什么时候聊得最热闹、每个人回复有多快,还有最常用的词和表情。聊天记录不会离开你的浏览器。
将文件拖放到此处或点击浏览
用“导出聊天”得到的 .txt 或 .zip 文件
正在读取聊天记录...
文件解析失败
消息
人数
词数
照片、视频和文件
已删除的消息
有消息的天数
时间范围
最热闹的一天
每个人发了多少
| 成员 | 消息数 | 占比 | 词数 | 每条消息词数 | 媒体 | 回复时间中位数 |
|---|
回复时间指对方最后一条消息到这个人回复之间的间隔。超过 24 小时的间隔算作重新开始聊天,不计入。
每月消息数
什么时候聊得最多
每个格子代表一周中某一天的某个小时。绿色越鲜明,消息越多。
最常用的词
最常用的表情
导出记录中的第一条消息
怎样从 WhatsApp 导出聊天
打开聊天,点顶部的联系人或群名(安卓手机也可以点右上角的三个点,再选“更多”),然后选“导出聊天”。WhatsApp 会问要不要附带媒体,没有特别的理由就选不附带。这样你只会得到一个 .txt 文件,哪怕是好几年的聊天,通常也就几 MB。附带媒体的话,会得到一个塞满照片和语音的压缩包,动不动就上 GB。两种这里都能读,但真正有用的只是文字部分。发到自己的邮箱,或者存到网盘、手机的“文件”里,怎么方便怎么来,然后拖到上面的框里。
iPhone 导出的压缩包里,文字文件叫 _chat.txt。安卓手机则用聊天名称命名。直接把压缩包拖进来也可以,工具会自己找到文字文件,照片一概忽略。
能看到什么
最上面是总体数字:消息总数、发过言的人数、词数、照片和文件数、被删除的消息、有消息的天数、时间范围,以及消息最多的一天。最后这一项往往出人意料。你以为是某个生日或者跨年夜,结果是大家为了吃饭怎么 AA 吵起来的那天。
下面的表格按人列出:消息数、占全部聊天的比例、词数、平均每条消息的词数、发送的媒体数,以及回复时间中位数。平均每条的词数比看上去更有意思。有人一次发三段长文,有人把同样的意思拆成十一条一个词的消息,只看消息数的话,后者显得话多得多,其实并不是。
- 每月消息数的柱状图,从第一个月到最后一个月,没有消息的月份也保留成空位,一眼就能看出什么时候聊得少了。
- 按星期和小时划分的热力图。每个格子是某一天的某个小时,绿色越鲜明越热闹。谁是夜猫子,一看就知道。
- 最常用的 20 个词和 15 个表情,可以看整个聊天,也可以只看某一个人。英语、西班牙语、葡萄牙语、德语、法语里常见的虚词会被过滤掉,中文和日文则交给浏览器自带的分词功能处理。
- 导出记录中的第一条消息,以及是谁、在什么时候发的。
页面最下方可以下载两个 CSV。统计文件每人一行。消息文件把每条消息的日期、时间、发送者、内容和类型逐条列出,放进 Excel 或表格软件里排序、筛选,比原始导出文件方便太多。
回复时间是怎么算的
这是大家问得最多的,所以说清楚一点。每当发送者换人,从上一个人的最后一条消息到新的人的第一条消息之间的间隔,就记为新的人的一次回复。你连发四条,朋友在第四条之后十分钟回你,那就是十分钟。然后取所有间隔的中位数,而不是平均数。只要有一次隔了九个小时才回,平均数就会被拉得很高,却说明不了平常的情况;中位数则不受这种个别值影响。
超过 24 小时的间隔完全不算。三天没人说话,然后有人打了声招呼,这不叫回得慢,而是开始了新的对话。在群聊里,“回复”只是指“下一个开口的人”,比较粗略,但从一个文本文件里能老实测出来的也就这些。另外,安卓导出的时间只精确到分钟,所以比这更快的回复会显示为“不到 1 分钟”。
日期格式的麻烦
WhatsApp 按手机的设置来写日期。中国大陆的手机常写成 2024/3/4,美国手机写 3/4/24,德国手机写 04.03.24,iPhone 还会把整段放进方括号里。工具会检查文件里所有的日期:只要有第一个数字大于 12,那它一定是日;如果是第二个数字大于 12,就是月在前。聊天很短、所有日期都分不清时,它会把两种读法都试一遍,选时间一直往前走、不会倒退的那一种。几乎每次都能判断对,而且会告诉你用的是哪种格式。万一错了,在下拉菜单里手动选格式,再分析一次就行。
12 小时制也没问题,包括中文手机的“上午”“下午”,西班牙语的 p. m.,以及新款 iPhone 在 AM、PM 前面插入的那个看不见的窄空格。
聊天记录只留在你的电脑上
聊天导出文件大概是最私密的文件了:地址、吵架、健康问题、半夜两点说的话。所以这里什么都不上传。文件由这个标签页里的 JavaScript 读取,结果也就地算出来。不用注册账号,服务器上也没有副本可以泄露。你可以自己验证:打开页面后关掉 Wi-Fi,照样能分析。关掉标签页,一切都没了。
说实话,做这个页面主要就是为了这一点。好几个知名的分析网站都要求先把聊天传到它们的服务器上,其中一个比较出名的还会把内容交给 AI 模型处理,然后按次收费。这两样我都不想做。
可能出错的地方
WhatsApp 的导出格式没有公开文档,而且随语言和机型变化。目前已知的不足有这些:
- 有人入群、改群名、安全码变更之类的系统通知会被排除,排除的数量会显示在统计上方。如果数字大得离谱,多半是格式把解析搞糊涂了。
- 常见语言的媒体占位文字都能识别。如果 iPhone 用的是工具还不认识的语言,被省略的图片可能会被当成文字消息。
- 名字里如果有“冒号加空格”,会在冒号处被截断。
- WhatsApp 本身限制了导出的条数。它的帮助页面写的是不带媒体约 40,000 条,带媒体约 10,000 条,所以特别长的聊天你看到的只是最近的一段,而不是全部历史。
如果文件完全读不出来,通常是因为它根本不是聊天导出文件。像 msgstore.db.crypt14 这样的备份文件是加密的,任何浏览器都打不开。
大家都拿它做什么
情侣想知道谁先发消息、谁回得更快,多半是为了打赌分个输赢。群主想看看谁真的在聊天,谁只会发表情包。通过 WhatsApp 接单的小店,想弄清楚哪些时段必须盯着手机。学生做课题,需要把聊天整理进表格。还有很多人只是想把一年的友情摊在一页上看看。月度图表尤其让人感慨:搬家、换工作、宝宝出生,全都变成了图上的低谷和高峰。