加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-31 02:10:05 所属栏目:大数据 来源:网络整理
导读:副标题#e# 数据挖掘入门与实战 ?公众号: datadw 1、获取数据 从 QQ 消息管理器中导出消息记录,保存的文本类型选择 txt 文件。这里获取的是某群从 2016-04-18 到?2016-05-07 期间的聊天记录,记录样本如下所示。 2、数据预处理 打开 R 软件,先通过 File—
副标题[/!--empirenews.page--]

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


数据挖掘入门与实战 ?公众号: datadw



1、获取数据

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


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


2、数据预处理

打开 R 软件,先通过 File—>Change dir 切换到聊天文件所在目录。

引入包:

library(stringr)
library(plyr)
library(lubridate)
library(ggplot2)
library(reshape2)
library(igraph)

没有的包要通过命令?install.packages(”扩展包名”) ?安装。

读取聊天记录文件到内存:


qqsrcdata<-readLines("QQGroup.txt",encoding=UTF-8")

这里我们不关心聊天内容,只看时间和发言人,所以,我们把类似 “2016-04-18 20:04:20 我来弄死谁(66554432)” 这样的内容提取出来。这里要用到正则表达式,对 R 语言的 grep、sub、gregexpr 等字符串处理函数不熟的,网上搜一下,资料多的是。


srcdata<-qqsrcdata[grep(^d{4}-d{2}-d{2} d+:d{2}:d{2} .+$

看看 srcdata 内容,就已经全是发言时间和发言人信息了,没有其它闲杂数据。

然后再从 srcdata 中提取发言时间和发言人信息,分别存到列表 data 的 time 和 id 中。对发言人信息的提取很简单:


data={}  # 创建一个空的 listdata$id<-sub(d{4}-d{2}-d{2} d+:d{2}:d{2} "",srcdata)

对发言时间的提取要稍麻烦些,因为时间字符串的长度不一样,有些是 18 位,如 “2016-04-18 7:36:32”,有些是 19 位,如 “2016-04-18 19:24:01”,所以,在提取时间时,需先用?gregexpr 确定时间字符串的起始和结束位置,然后再用 substring 提取出相应的时间,注意 substring 和 sub 是不同的函数。


getcontent <- function(s,g){
 ?substring(s,g,g+attr(g,0); line-height: 1.5 !important;">'match.length')-1)   读取 s 中的数据}

gg<-gregexpr(d{4}-d{2}-d{2} d+:d{2}:d{2}TRUE)for(j in 1:length(gg))
{
data$time[j]<-getcontent(srcdata[j],gg[[j]])
}

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读