09.19 R文本挖掘——QQ群分析

library(rJava)

library(dplyr)

library(Rwordseg)

library(wordcloud2)

library(stringr)

path

file

#读取数据

QQ

head(QQ)

str(QQ)

#定义:

infor

times

users

QQ

# 通过正则表达式提取聊天记录里的时间,用户和聊天消息

for(i in 1:length(QQ)){

reglog

'[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]+:[0-9]+:[0-9]+',QQ[i]) # 给出匹配正则表达式的位置

if(reglog[1]==1){

times[i]

users[i]

}

else {

infor[i]

}

}

#查询times,users,infor, infor多出一列,删除第一列

infor

#合并数据:

data

#查看data,有NA数据,进行删除

head(data)

for(n in 1:dim(data)[1]){

if(is.na(data[n,1])){

if(is.na(data[n,2])){

if(is.na(data)[n,3]){

data

}

}

}

}

#进行分析:

text

text

installDict(dictpath="F:\\\\2-个人资料\\\\R\\\\R-字典\\\\网络新词汇.txt",

dictname="网络新词汇",dicttype=c("text"))

insterwords

# 插入停用词

stopwords

wordmessage

wordmessage

wordmessage

# 删除停用词

seg_word

# 统计词频

p

p=1]

p12)

wordcloud2(p1)

R文本挖掘——QQ群分析

词云

#分析用户发言时间点

user.time

user.time

user.time.hour

for(i in 1:length(user.time)){

user.time.hour[i]

}

hour

user.time.h

hour

hour

hour$hour

# 发言时间图:

library(ggplot2)

ggplot(data=hour,aes(x=hour,y=Freq,group=1))+geom_bar(stat='identity',fill="red")+geom_line(color="blue")+labs(main="QQ群发言时间")

R文本挖掘——QQ群分析

QQ 24小时发言时间

# 看了都集中中午发言

# 进行热力图生成:

require(plyr)

time

time_table

time_table

day_m

heatmap(day_m,Rowv = NA,Colv = NA,scale="column",col=cm.colors(128),revC=TRUE)

R文本挖掘——QQ群分析

热力图

# 1/2/3月份是发言高峰期

# 发言者统计

user.name

as.data.frame(table(user.name))->user.count

user.count.20

user.count.20

p

p+geom_bar(aes(x=reorder(user.name,Freq),y=Freq),stat="identity",fill="red")+coord_flip()

R文本挖掘——QQ群分析

发言排名

Peter是个积极分子。

本人也榜上有名啊


分享到:


相關文章: