首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

原来你是这样的人事部!

相信大家都知道人事部是校友会最优秀的部门

今天

不务正业的小编将带领大家

分析一下人事部的聊天记录

破解微信聊天加密

成功提取“人事大卖部”聊天记录

从去年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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180606G20K6C00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券