谁才是聊天杀手 2012-12-10

受到R会议5th某个slide对QQ群聊天记录挖掘的启发,把总计4万多行时间跨度从2012年3月到11月的Hi群的聊天记录下载为一个txt文档然后用awk ‘{if($0 ~ /^2012-/) print $1,$2”|”$3;}’ 处理了一下得到1万3千多行的sf_chat.txt,注意这里为了后面读取方便打印用|间隔,格式为 2012-03-30 17:51:33|春娇 2012-03-30 17:51:40|志明 2012-03-30 17:51:54|春娇 2012-03-30 17:52:05|志明 … 然后用如下R代码再处理一下,图穷匕见。 1.聊天能手:无需多言,上班时间不好好工作是也。 2.聊天杀手:话一出群内至少安静半小时以上,加上发言频率作为惩罚则是必杀率。 2.最佳好基友:谁回复谁最多或者连续发言相邻最多的。

#数据读取
sf_chat <-read.delim("E:/workspace/sf_chat.txt",
                     col.names = c("time","name"),
                     sep = "|",
                     header = F,
                     stringsAsFactors = F)

#数据清洗
sf_chat <- sf_chat[nchar(sf_chat$time)==19,]
sf_chat$second <- as.numeric(as.POSIXct(sf_chat$time))

#会话统计
begin <- end <- NULL
for(i in 1:nrow(sf_chat))
{
  if(i>1&&i<nrow(sf_chat)){
    if((sf_chat$second[i+1]-sf_chat$second[i])>1800){
      end <- c(end, sf_chat$name[i])
      begin <- c(begin, sf_chat$name[i+1])
    }
  }
}

#聊天能手
sort(table(sf_chat$name),decreasing=T)[1:10]
#聊天杀手
sort(table(end),decreasing=T)[1:10]


Powered by Jekyll on GitHub | ©2016 Meroa | Last modified: 2021-04-28