仅用四行代码就可以挖掘你的QQ聊天记录
大家好,我上次写的一篇博文是——QQ聊天记录分析,地址为:http://blog.csdn.net/wzgl__wh/article/details/69055369
今天来分享一个更简单的方法。那就是使用R包--QQmining。
QQmining,这是我第一次尝试写的R包,由于还存在着一些警告问题,所以还无法从github上面进行安装,但是可以本地进行安装。你可以访问我的github,。如果你需要这个包的话,可以从我的百度云进行下载:链接:http://pan.baidu.com/s/1kVyW8PT 密码:yrcq,也可以在关注我的微信公众号《跟着菜鸟一起学R语言》后台回复 QQmining 即可获取下载链接。
现在来对这个包进行一个简单介绍。
首先这个包依赖以下五个包,分别为:
rJava,Rwordseg,dplyr,wordcloud2,ggplot2
因此你在使用这个包的时候一定要确保已经装了这五个包。QQmining包下载之后直接复制到library文件夹里面即可直接加载使用。
QQmining这个包有四个函数,作用分别如下:
函数 |
作用 |
dataprocess |
对数据进行一个处理。有两个参数,一个是路径,一个是文件名;返回一个数据框对象 |
topic |
分析聊天讨论话题。将dataprocess函数返回的参数传入;返回一个词云 |
timepoint |
分析一般聊天的时间点。将dataprocess函数返回的参数传入;返回一张图片 |
speaker |
分析谁是在群里比较活跃。将dataprocess函数返回的参数传入;返回一张图片 |
如果你也可以查看帮助文档,比如查看topic()函数,既可以输入指令
?topic
就可以查看,不过由于时间上的关系,帮助文件写的比较简单粗糙,还存在许多问题,用的时候希望大家太在意细节。
那么我们现在就用四行代码来分析一个QQ群的聊天记录吧!
1、处理数据
qqdata<-dataprocess ("C:/Users/henry wang/Desktop/","数据分析师之家.txt")
2、分析讨论话题
topic(qqdata)
运行结果如下:
因为我们没有删除停用词,所以说效果不是很好。
3、分析聊天时间
timepoint(qqdata)
结果如下:
4、分析最活跃的人
speaker(qqdata)
结果如下:
好了,我们用了4行代码就轻轻松松的分析了一份QQ聊天记录,是不是很简单。但是这个包对以下情况可能会出现一些错误
1.如果聊天记录存在语言消息,可能会出错。
原因:如果存在语音聊天记录,在导出的.TXT文件里面是空白的一行。在删除NA之后无法合并在一个数据框里面。如下图:
2.如果用户名存在特殊字符,系统无法识别也可能出错。
原因:speaker()函数分析活跃成员时,用户名作为一个坐标轴的属性,ggplot函数无法识别一些特殊字符则报错。如下图:
总结:一方面,这个包是我做的第一个包,也许还存在着一些bug,如果遇到了欢迎告诉我;另外一方面,这个包功能还太简单,每一个函数也只有一到两个参数,对于输出结果也太单一。在后期我也会继续对这个包进行更新和完善,让每一个函数包含更多的参数,不断丰富每一个函数的功能。谢谢大家的支持!
注:这个包在R 3.3.2版本开发写的,尽量在3.3.2版本或更新的版本上面使用。
注:转载请注明原文链接为:http://blog.csdn.net/wzgl__wh/article/details/70948887
仅用四行代码就可以挖掘你的QQ聊天记录相关推荐
- 四行代码创建复杂(无限级)树
最近两三天一直在做树方面的基础工作,碰巧今天在博客园看到一篇文章<C#中一种通用的树的生成方式>,粗略浏览下,感觉有不够强大. 对比而言,感觉自己的方式更好些,只需要四行代码就可以创建一颗 ...
- 微信推出史上最简单「拍一拍」新功能,仅需一行代码,好友们都玩疯了!
点击上方 "程序员小乐"关注, 星标或置顶一起成长 每天凌晨00点00分, 第一时间与你相约 每日英文 You will meet two kinds of people in l ...
- 四行代码定乾坤:硬件二层交换机设计与实现
一.概述 "我OpenBox又回来了!" 沉寂了16个月,终于又提笔开始写<硬件二层交换设计与实现>.从软件设计到硬件设计需要这么长时间吗?答案是肯定的,不仅需要,而且 ...
- 只需四行代码,快速提取视频中的音频,再也不用为此发愁了
有时候我们想要把视频中的音频分离出来,那就得到处去找可以分离音频的软件,好不容易找到一个软件安装后发现还需要付费才能使用其功能. 为此写了一个只需要编辑四行代码的python小程序来帮助大家解决困扰! ...
- Qt下一行代码就可以使用的稳定易用的日志log类
Qt下一行代码就可以使用的稳定易用的日志类 此日志类是基于Qt 自带的 扩展的一个易用的日志类, 使用的是Qt自带的日志输出形式, 已长期运行在许多实际项目中,稳定可靠,而且跨平台, 在windows ...
- Java8读文件仅需一行代码
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载. https://blog.csdn.net/chszs/article/details/44023039 Java8读文件仅需一行代码 ...
- ML之DS:仅需一行代码实现对某字段下的所有数值实现同一机制的改变或转换(比如全部转为str类型/全部取平方值)
ML之DS:仅需一行代码实现对某字段下的所有数值实现同一机制的改变或转换(比如全部转为str类型/全部取平方值) 目录 仅需一行代码实现对某字段下的所有数值实现同一机制的改变或转换(比如全部转为str ...
- ML之FE:在模型训练中,仅需两行代码实现切分训练集和测试集并分离特征与标签
ML之FE:在模型训练中,仅需两行代码实现切分训练集和测试集并分离特征与标签 目录 仅需两行代码实现切分训练集和测试集并分离特征与标签 输出结果 实习代码 仅需两行代码实现切分训练集和测试集并分离特征 ...
- 车辆入库java程序_java扫描入库及出库,基于谷歌类开发.仅提供完整代码 连接SQL使用,...
java扫描入库及出库,基于谷歌类开发.仅提供完整代码 连接SQL使用,需要自行制作中心服务器,中心服务器代码在本人另一实例里面,请自行下载 [实例简介] 扫描入库及出库,基于谷歌类开发.仅提供完整代 ...
最新文章
- 代码逻辑分析_入行数据分析师不得不看的10本书
- JS中代表结束的三个关键字 break,continue,return
- postfix 部署ssl后还是25_宝塔面板的邮局管理器Postfix无法启动解决办法
- 布局管理器android,Android课程---布局管理器之相对布局(一)
- BootLoader与Linux内核的参数传递
- c语言的四个函数,C语言学习之动态内存分配的四个函数
- ImportError: cannot import name '_ellipsoid'
- 在Visual Studio中一次运行两个项目
- 银行家算法检测死锁c语言,[算法]操作系统进程调度与通信算法 Dijkstra银行家算法 C语言实现 | 李大仁博客...
- Excel导入oracle的几种方法
- Visio2013激活/破解
- 挑战程序设计竞赛——Ants(POJ No.1852)
- android 代码混淆 垃圾代码制造
- php页面强制横屏,Css实现手机端页面强制横屏(仅适用与一屏页面)
- 洛谷刷题笔记 鸡尾酒疗法
- 专题导读:数据驱动的软件智能化开发
- word制作员工手册教学
- 计算机教师职业幸福感,教师的职业幸福感作文
- 社交电商·生鲜行业转型方案
- iView UI --Table组件数据刷新但是页面未刷新