文章导航
引言
最近看到一个项目可以导出微信聊天记录并进行可视化,觉得挺有意思的,和各大App的年度总结报告差不多,便决定用pyecharts做一个类似的可视化ʕ.•᷅ࡇ•᷄.ʔ
一、数据获取
首先需要使用WeChatMsg导出数据
项目地址:https://github.com/LC044/WeChatMsg
二、数据识别
获取数据后首先得识别原始数据包含哪些信息,这样才能对后续的分析有一定认知,毕竟巧妇难为无米之炊
Createtime:时间戳,消息发送的时间
IsSender:1代表消息发送 0代表消息接收
SubType:消息的类型
StrTalker:对话对象,是微信的id
StrContent:消息内容,emoji表情包、img图片、voicemsg语音消息、videomsg视频通话、location定位分享
三、数据预处理
而在处理数据之前,我们得知道我们想把数据处理成什么样子(日常工作中可能领导下发任务时就带有指向性,而本项目是作为娱乐项目,一切都随我们自己的意愿),
我准备做一个和爱人之间的微信沟通分析,那么我要做的就是从消息中筛选出和她之间的那部分数据。
然后我可以探索哪些信息呢,根据时间戳,我可以探索聊天记录的时间分布情况,根据发送接收标识,我可以将两者的数据进行对比,根据信息内容,我可以看出各类信息的组成。
我准备探索消息的月/日/周/时分布情况,两者的平均消息长度、消息长度分布图,每次对话的消息数,两者发起对话的比例,两者的词频分析,情感分析。
最终我们需要以下字段 Createtime | 月份 | 日期 | 周几 | 小时 | IsSender | StrContent | 消息内容分类 | 消息长度 | 每轮对话ID | 情感得分
四、可视化图形选择
处理完数据后,我们就得选择合适的盒子(图标)去乘放它。可以参考我之前关于如何选择图表的文章如何选择正确的图表
发送消息占比-玫瑰图
消息类型分布-玫瑰图多图
每天聊天记录数-热力图/日历图
发送消息周分布-折线图
发送消息小时分布-折线图/面积图
发起对话占比-条形图
每轮对话数分布-直方图
消息长度对比-条形图
消息长度分布-J-直方图
消息长度分布-Z-直方图
情绪得分对比-条形图
情绪评分-折线图/面积图
高频词汇-J-词云图
高频词汇-Z-词云图
五、输出可视化
需要代码的可以私聊我 (:з」∠)
六、数据分析
略,等分享了如何写一份合格的数据报告后再补上