利用QQ群进行数据挖掘案例,数据源来源于2016年12-2017年大致一个月的QQ群基本数据,通过对聊天内容的分析,了解QQ聊天群资料了解时间,人群以及关键词,并构建相应图表、云图等,下图为本人所在提取的QQ群:

以下是R代码部分:

file.data<-scan("C:/Users/admin/Desktop/数据挖掘机器学习R-hive.txt",what="",sep="\n",encoding="UTF-8")

#数据清洗

clean<-function(file.data){
data<-data.frame(user.name=c(),time=c(),text=c())
user.name=c();time=c();text=c();
for(i in 6:length(file.data))
{reg.time<-regexpr("[0-9]{4}-[0-9]{2}-[0-9]{2}[0-9]+:[0-9]+:[0-9]+",file.data[i])if(reg.time==1){#该行取到了时间信息data<-rbind(data,data.frame(user.name=user.name,time=time,text=text))text=c("1")begin<-reg.timeend<-reg.time+attr(reg.time,"match.length")-1time=substr(file.data[i],begin,end)begin=reg.time+attr(reg.time,"match.length")+1end<-nchar(file.data[i])user.name<-substr(file.data[i],begin,end)#读取用户名信息}else{text=paste(text,file.data[i])}}
return(data)}
data<-clean(file.data)#数据结构化

#活跃度计算

d1=table(data[,1])
> d = data.frame(word = names(d1),freq = d1,stringsAsFactors = F)   ;
> d=d[order(d[,3],decreasing=T),]

#由于测试群记录数据量,后期效果不是很明显。这也是大数据火的原因吧?

> dim(d1)
[1] 29
> length(data[,1])
[1] 164
#转换数据类型
data$name<-as.character(data$user.name)
data$text<-as.character(data$text)
data$datatime<-as.POSIXlt(data$time)
#整理账期的年、月、日、时、分、秒部分
> data <- transform(data,
+                  year = datatime$year+1900,
+                  month = datatime$mon+1,
+                  day = datatime$mday,
+                  hour = datatime$hour,
+                  min = datatime$min,
+                  sec = datatime$sec)
>

> d1=table(data[,1])
> d = data.frame(word = names(d1),freq =d1,stringsAsFactors = F)   ;
> d=d[order(d[,3],decreasing=T),]
> head(d)

#  活跃度统计

#去掉停用词

mixseg = worker()
textt=paste(as.character(data[,3]),sep="",collapse ="")
textt<-mixseg<=textt
t=unlist(textt)
cnword<-read.csv("C:/Users/admin/Desktop/几个停用词.txt",header=F,stringsAsFactors=F)
cnword<-as.vector(cnword[1:dim(cnword)[1],])#需要为向量格式
t=t[!t%in%cnword]#去停用词
t1=table( t  )
plot(t1)  初步查看分词不是很理想,继续调整

> d =data.frame(word = names(d1),freq = d1,stringsAsFactors = F)   ;
>d=d[order(d[,3],decreasing=T),]
>d=d[nchar(as.character(d$word))>1,]
>write.table(d,"C:/Users/admin/Desktop/几个停用词.txt聊天内容词频排名.csv",sep=",",row.names = F)

>t1=t1[!names(t1)%in%c("男神","女神","你懂的")]#去没有意义的词
> library(Rwordseg)
t1=t1[nchar(as.character(names(t1)))==2]
plot(t1,xlab="词组",ylab="词频")   #效果实例而已,好的数据会有好的效果。

用wordcloud进行过程-------------------------------------

#分词后的词语频率汇总

> wdfreq <- as.data.frame(table(t1))
> head(wdfreq)t1Freq
1 1   14
2 2    1
3 7    2

#频数排序 **

wdfreq<-rev(sort(wdfreq$Freq))

------------------------------------------------------

#使用wordcloud2构造云图
wordcloud2(t1,size=2,fontFamily='SegoeUI')

---------用wordcloud进行过程-------------------------------------

#分词后的词语频率汇总
> wdfreq <- as.data.frame(table(t1))
> head(wdfreq)t1Freq
1 1   14
2 2    1
3 7    2
#频数排序 **
wdfreq<-rev(sort(wdfreq$Freq))

------------------------------------------------------

#使用wordcloud2构造云图

wordcloud2(t1,size=2,fontFamily='SegoeUI')

> datax=substr(data[,2],1,10)#得到日期,不要时分秒
> a=table(datax)
> plot(a,xlab="日期",ylab="频数",main="参与聊天人数/日期")

data1=data.frame(user.name=data[,1],data=substr(data[,2],1,10),time=substr(data[,2],12,regexpr(":",data[,2])-1),text=data[,3])
#write.table(data1," C:/Users/admin/Desktop/.细分数据.csv",sep=",",row.names = F)
a=table(data1[,3])
plot(a,xlab="日期",ylab="频数",col=4,main="参与聊天人数/二十小时分布")

WORDCLOUD2常用参数:
(1)data:词云生成数据,包含具体词语以及频率;
(2)size:字体大小,默认为1,一般来说该值越小,生成的形状轮廓越明显;
(3)fontFamily:字体,如‘微软雅黑’;
(4)fontWeight:字体粗细,包含‘normal’,‘bold’以及‘600’;;
(5)color:字体颜色,可以选择‘random-dark’以及‘random-light’,其实就是颜色色系;
(6)backgroundColor:背景颜色,支持R语言中的常用颜色,如‘gray’,‘blcak’,但是还支持不了更加具体的颜色选择,如‘gray20’;
(7)minRontatin与maxRontatin:字体旋转角度范围的最小值以及最大值,选定后,字体会在该范围内随机旋转;
(8)rotationRation:字体旋转比例,如设定为1,则全部词语都会发生旋转;
(9)shape:词云形状选择,默认是‘circle’,即圆形。还可以选择‘cardioid’(苹果形或心形),‘star’(星形),‘diamond’(钻石),‘triangle-forward’(三角形),‘triangle’(三角形),‘pentagon’(五边形);

文章完整版可通过我的公众号查看,欢迎扫描二维码查看

基于R语言利用QQ群进行数据挖掘案例整理相关推荐

  1. 使用 R 语言挖掘 QQ 群聊天记录

    1.获取数据 从 QQ 消息管理器中导出消息记录,保存的文本类型选择 txt 文件.这里获取的是某群从 2016-04-18 到 2016-05-07 期间的聊天记录,记录样本如下所示. 消息记录(此 ...

  2. Protein Cell:基于R语言的微生物组数据挖掘最佳流程(大众评审截止14号晚6点)...

    Protein & Cell综述:基于R语言的微生物组数据挖掘的最佳流程 近日,中国农业科学院刘永鑫组联合南京农业大学袁军组在国际期刊 Protein & Cell (IF = 15. ...

  3. python对电影进行预测评分_基于R语言构建的电影评分预测模型

    原标题:基于R语言构建的电影评分预测模型 欢迎关注天善智能 hellobi.com,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习.问答.求职,一站式搞定! 对商业智能BI.大数据分析 ...

  4. 基于R语言的代理模型(高斯过程、贝叶斯优化、敏感性分析、异方差性等)高级技术应用

    基于R语言的代理模型(高斯过程.贝叶斯优化.敏感性分析.异方差性等)高级技术应用 直播时间:10月30日-10月31日.11月6日-7日(4天+1周辅导练习) (上午9:30-12:00  下午14: ...

  5. canoco5主成分分析步骤_基于R语言的主成分分析

    基于R语言的主成分分析 加入的SPSS群里有人问,怎么用SPSS进行主成分分析.确实没有注意到这种操作.很好奇,于是翻了翻孙振球的<医学统计学>,发现主成分分析这一块,竟使用了SAS!后来 ...

  6. 【R语言实验】基于R语言的时间序列平稳性检验

    一.实验项目名称:基于R语言的时间序列平稳性检验 二.实验目的与要求: 平稳时间序列的概念,平稳性检验的时序图检验方法和自相关图检验方法. 三.实验原理: 时序图和自相关图检验时间序列的平稳性依据: ...

  7. 055B ENMTools教程-基于R语言对MaxEnt模型优化-MaxEnt调参教程--更新日期2021-9

    055B-1 视频附带资料下载和密码:软件-数据-文献下载-持续更新 055B-2 ENMTools软件下载安装 055B-3 R软件和工具包安装 055B-4 生物气候因子的精度说明与选择方法(理论 ...

  8. 基于R语言、MaxEnt模型融合技术的物种分布模拟、参数优化方法、结果分析制图与论文写作

    详情链接 :基于R语言.MaxEnt模型融合技术的物种分布模拟.参数优化方法.结果分析制图与论文写作 内容介绍:  第一章 .理论篇 以问题导入的方式,深入掌握原理基础 : 什么是MaxEnt模型? ...

  9. 基于R语言的聚类分析(k-means,层次聚类)

    今天给大家展示基于R语言的聚类,在此之前呢,首先谈谈聚类分析,以及常见的聚类模型,说起聚类我们都知道,就是按照一定的相似性度量方式,把接近的一些个体聚在一起.这里主要是相似性度量,不同的数据类型,我们 ...

  10. R语言做GGEbiplot_基于R语言的GGE双标图在大豆区试中的应用

    基于 R 语言的 GGE 双标图在大豆区试中的应用 * 昝 凯,陈亚光,徐淑霞 ** ,周青,张志民,杨慧凤,王凤菊,李明军,郭海芳 [摘 要] 摘要:为合理评价大豆区域试验中品系的丰产性.稳产性和适 ...

最新文章

  1. 大学计算机信息技术一级考题,大学计算机信息技术一级试题新.pdf
  2. GoldenGate技术架构(二)
  3. 菲教驰骋在线外教市场,51Talk、阿卡索谁能攫取行业红利?
  4. 主题:log4j详解与实战
  5. Mybatis 动态sql语句(if标签和where标签)
  6. WINCE7中RTC时钟芯片BQ32K的开发
  7. CCF201612-2 工资计算(100分)
  8. git push --set-upstream
  9. Civil3D二次开发Cookbook
  10. Lights off(关灯游戏)终极算法
  11. adb shell 操作
  12. 1024:为什么这些游戏这么火?
  13. 笔记本打印机显示服务器脱机,打印机显示脱机状态怎么办 打印机显示脱机状态解决方法【详解】...
  14. 独立产品灵感周刊 DecoHack #012
  15. 使用turtle画随机颜色的圆圈
  16. 报数游戏1-3循环报数,报到3的人退出,求原来的序号
  17. 莫队和带修莫队 学习笔记
  18. Linux环境打包Qt程序并部署到Docker容器
  19. 深度学习系列37:CLIP模型
  20. 【速通指南】《信息资源管理》信息系统资源管理,第3章

热门文章

  1. Xshell学生版免费下载使用
  2. 汉王数据导入java环境,汉王数据管理系统导入数据怎样进行数据更新,只导出一天的考勤数据?...
  3. Appium工具使用教程
  4. MTK MT2503 11B讲义-01编译
  5. Ubuntu18.04安装cmake(附免费下载cmake)。
  6. 基于ASP.NET的助学贷款管理系统_WEB管理系统_SQLServer数据库应用
  7. 【JAVA】利用MOM消息队列技术实现分布式随机信号分析系统
  8. linux软连接j,Linux(ubuntu)安装JLink 驱动
  9. JLink驱动设备管理器中显示黄色感叹号
  10. 百战程序员JavaWeb系列教程-监听器视频教程