相信大家都知道人事部是校友会最优秀的部门
今天
不务正业的小编将带领大家
分析一下人事部的聊天记录
破解微信聊天加密
成功提取“人事大卖部”聊天记录
从去年9月22日建群至今
人事大卖部共有33313条聊天记录
横轴为发送聊天的日期,竖轴为数量
横轴为发送聊天的时间,竖轴为数量
从数据上来看
早上11点开始群里的活跃程度就逐步提升
但在凌晨12点的时候突然有一个爆发性增长?
小编翻了下凌晨的聊天记录
结果
。。。。。。。
统计发言次数最多的前10位
出乎小编意外
发言次数最多的居然不是某位辣鸡
恭喜二狗童鞋以将近7000条记录
荣登人事部话痨榜榜首
统计话痨们发言的时间
不出所料
话痨们都喜欢在将近凌晨的时候发言
麦辣鸡同学再次败北二狗女士
统计所有人发言后5分钟内其他人的发言次数
根据上表绘制人物关系图谱
恭喜麦辣鸡同学跟二狗女士荣获暖场小能手称号
统计聊天中出现得最多的300个单词
再次出乎小编意料
大家说得最多的单词居然是
哈哈哈哈跟哈哈哈哈?
小编只想说
哈哈哈哈哈哈哈
词云中还出现了些奇怪的东西
莫非人事部都是饥渴的单身汪?
这里小编就要揭穿某几位xi精
最后
为了巴结一下某位部长
最后的最后
本文所有数据分析图均由R语言完成
版权所有,翻版不究
作为一名数学院的学渣
小编码这么点代码hen不容易
走过路过的给个赞可好
最后是本文用到的全部代码
感兴趣的同学可以直接复制粘贴回去试试
运行环境为win10 R x64 3.4.3
data
data = data[,-4] #删掉无用列
data = data[,-1] #删掉无用列
names(data)
data$Name
data$text
data$datetime
data
year = datetime$year+1900,
month = datetime$mon+1,
day = datetime$mday,
hour = datetime$hour,
min = datetime$min,
sec = datetime$sec)
data$datetime
#####
library(sqldf)
my.data1
group by month,day')
library(ggplot2)
p1
p1
p1
######
top10
names(top10)
p2
p2
p2
p3
p3
p3
#####
#读取10人的发言汇总信息
my.data3
Encoding(my.data3$Name)
#绘制面积图
p4
p4
p4
#####
#分词
library(Rwordseg)
library(tmcn)
library(tm)
#读入自定义的停止词
my.stopwords
#添加自定义词汇
insertWords(c('顺丰','外卖','快递','吃鸡','捉鱼','人事','小秘','例会','哈哈哈','神奇的DDY','ddy','杨旺','辣鸡','麦辣鸡','叶洪志','董思勤','666'))
#根据分词结果再一次添加自定义停止词
my.stopwords
Encoding(segwd1)
#剔除停止词
segwd2
#分词后的词语频率汇总
#排列语频顺序
a=wdfreq[order(-wdfreq$Freq),]
#取出前500的词频
wdfreq
clufunc
wordcloud2(wdfreq, fontFamily = "HYTangTangCuTiJ", size=1, color=clufunc(500))
names(MesPerHour)[1]
date
week
data
names(MesPerWeek)[1]
MesPerWeek$week = factor(MesPerWeek$week,levels = c("星期一","星期二","星期三","星期四","星期五","星期六","星期日")
ggplot(data=MesPerWeek,aes(x=week,y=Freq,group=1))+
geom_bar(stat = 'identity')+
geom_line(color="red")
min = 5
datetime = as.POSIXct(paste(data$date,data$time))
connect
for(i in 1:(length(data[,1])-1)){
if(data$Name[i] != data$Name[i+1]){
datetime2 = as.POSIXct(paste(data$date[i],data$time[i]))+min*60
k1
if( data$Name[i] %in% data$Name[(i+1):k1] ){
k2
}else{
}
k
dataName
link
name
connect
}
}
connect$name
connect$link
connect$name
connect$link
connect$name ","_",connect$name) #-- 利用正则表达式将奇怪字符用"_"替换
connect$link ","_",connect$link)
strsplit_link
d
#将列表合并成数据框
link
for(i in 1:length(d)){
d1
names(d1)
link
}
connection
for(i in 1:length(rownames(connection))){
for(j in 1:length(colnames(connection))){
if(rownames(connection)[i] == colnames(connection)[j]){
connection[rownames(connection)[i],colnames(connection)[j]]
}
}
}
connection
names(connection)
#选出紧密程度大于10的所有紧密关联人
links = 200,]
links
library(igraph)
net
dev.new()
plot(net) # not a pretty picture!
net
#V(net)$label
#####
newname
nodes$name
newtop12$name
for(i in 1:length(nodes$name)){
if (nodes$name[i] %in% newtop12$name){
newname[i]
}
}
nodes$newname
net
领取专属 10元无门槛券
私享最新 技术干货