大家用 R 语言做过哪些好玩的事情?
用来分析聊天记录呀!
因为专业的原因 要学一点统计 导师疯狂安利R语言
学了点皮毛之后 我就用它来不务正业了
还是很有趣的 (关键是简单啊 发出文科菜鸡的声音)
分享一下操作过程
知乎好像复制不了图片 这是我在另一个回答下的链接https://www.zhihu.com/question/62487603/answer/734956357
- 导出聊天记录
微信电脑版自带聊天记录备份功能,连上手机备了半天提出来了,却发现文件类型是很奇怪的DB,一般电脑根本打不开。百度后我下了一个UltraEdit 转码破解软件,然并卵。经我多方探听了解到,这个文件是被腾讯加密过的,只有腾讯能打开,私人则无法提取文本。
说来你可能不信,你的微信聊天记录可以被腾讯读取,用来做什么“xx年微信指数分析”,而你自己不行。
此处省略弯路之一二三四。
我唯一成功的办法:通过imazing 备份(虽然一般认为imazing和itunes差不多,但只有它成功了),备份成功后,找到微信聊天记录的文件Documents MM.sqlite,拷贝再用SQLite读取。微信把所有的聊天记录放在一块儿,打开备份文件之后的界面是这样的:
每个人的聊天记录由不同的代码表示,要在几百条字符串中找到特定的人——我真的是边哭边找的。
2. 数据导入与分析
由于聊天记录是用SQLite打开的,理所当然,我首先尝试着将R语言连接到SQLite数据库,连接失败,原因未知(因为我很快发现SQLite可以将文本导出成Excel格式)。
R语言读取Excel文件要下载相应的包,官方和各大论坛给出的方法都是下xlsx包,麻烦就算了速度还慢。正确方式是将文本转成CSV格式再读取。如果遇到无法转格式的数据,亲测openxlsx包比xlsx包好用。
随便提一嘴,SQLite的时间戳和Excel是不一样的(天知道SQLite的时间戳为什么是1970年?),因此要另找相应的公式进行时间日期转换。
SQLite 导出的聊天记录只有时间和内容,所以只对这两项进行分析。下面是每一步操作的代码,#号后的中文是我后期加的注释。
3. 可视化&结果
R语言最大的优点之一就是绘图。除了自带的plot函数,还可以用ggplot2包来画图表。wordcloud2包用于画词云图。
结果:
两年零两个月(我大二时换过手机)
31698行
25万+字节。
聊天内容:
提取了前500个高频词做词云,生成词云图。
我换了张更大的图,以便容纳更长的字节,并提取前一千条做词云。
好大的“哈哈哈哈”
聊天时间:
明显集中在晚上,尤其22点之后。
我分离出凌晨1点之后的聊天信息,想看看我们大半夜的不睡觉在聊啥。
“讨论”、“问题”、“模辩”、“通知”,都是辩论队的事情。
“输”、“难过”、“吃饭”,总是输比赛,输了还要出去吃饭。
谈公事的熬夜不算熬夜!
END!!
看起来是不是很简单!本菜鸡搞这个搞了一个星期 梦里都是代码: )
还是偷偷膜一发理工科大佬吧
ps:做这个是为了给朋友祝贺生日 现在已经是男朋友啦哈哈哈: )