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

【R语言】文本挖掘、可视化

发布时间:2021-05-17 22:43:40 所属栏目:大数据 来源:网络整理
导读:本文将通过KNIME、R说话和tagxedo三个器材来实现文本发掘和词云可视化技能,体验一下舆情说明的魅力。 一、数据导入 数据源:2014 年 10 月 —2015 年 7 月的飞信群所有谈天记录: 图一 原数据示例 通过 KNIME 举办原始谈天记录文件的布局化转换,提取文件中

【R说话】文本发掘、可视化

本文将通过KNIME、R说话和tagxedo三个器材来实现文本发掘和词云可视化技能,体验一下舆情说明的魅力。


一、数据导入

数据源:2014年10月—2015年7月的飞信群所有谈天记录:

【R说话】文本发掘、可视化

图一 原数据示例


通过KNIME举办原始谈天记录文件的布局化转换,提取文件中讲话人、讲话时刻和讲话内容三个字段,并生涯为csv文件。

【R说话】文本发掘、可视化

图二 KNIME的流程


R说话的语句:

log <- read.csv('feixin.csv',sep=",",header=FALSE) ?#数据导入并生涯为log工具


二、讲话热度漫衍

通过热力求,我们可以看到各人谈天的热情在2014年12月最为高涨,而2015年的2月因为春节缘故起因,群里冷偏僻清了良久。周末2天的空档期也揭示的很清楚哦。

R说话的语句:

require(plyr)

time <- as.POSIXlt(log$V3,origin = '1970-1-1 00:00:00',format="%Y-%m-%d %H:%M:%S") ? ?#配置日期名目

cbind(format(time,"%Y-%m"),format(time,"%d"))->day_table ?#天生讲话时刻漫衍表

as.data.frame(day_table)->day_table ?#转换数据框名目

table(day_table)->day_m ?#天生日期列联表

heatmap(day_m,Rowv=NA,Colv=NA,scale = "column",col=brewer.pal(4,"Blues"),revC = TRUE)

#绘制按日讲话量的热力求,蓝色越深代表讲话热度越高。

【R说话】文本发掘、可视化

图三 热度说明


三、小我私人讲话风俗说明

谁最能说?通过条形图可以清楚的看到各人讲话的频率比拟,一览无余。

R说话的语句:

require(plyr)

require(ggplot2)

name=log$V2 ? ? #获取讲话人姓名字段

table(name)->t_name ?#天生按姓名呈现频率的列联表

as.data.frame(t_name)->t_name ? #转换为数据框名目

gg = ggplot(t_name)

gg+geom_bar(aes(x=reorder(name,Freq),y=Freq,fill=name),stat="identity",position="dodge")+coord_flip()+theme(axis.title=element_text(size=18,color="blue"),axis.text=element_text(family='A',size=22,color="black")) ? ?用ggplot扩展包绘制条形图

【R说话】文本发掘、可视化

图四 讲话量说明

注:由于涉及小我私人隐私以是把图上10小我私人的名字都隐去了

风趣的来了,看看我们每小我私人喜畛刳什么时刻措辞吧。各人都是有两个讲话岑岭,一个是上午10点,一个是下战书4点阁下,而午时12点是一个明明的午休静默期。其它可以看到,有些童鞋在上午措辞的频率高于下战书,有些则正相反。


#配置日期名目

hour <- format(time,'%H') ? #提取日期值中的“小时”数

hour_name ?<- as.data.frame(cbind(log$V2,hour)) ?

count(hour_name,V1,hour)->hour_table ? #计较每人按小时讲话的频次

as.character(hour_name$hour)->hour_name$hour ?

as.numeric(hour_name$hour)->hour_name$hour ? #将“小时”字段转换为数字名目

gg=ggplot(hour_name)

gg+ geom_density(aes(x=hour,fill=V1))+facet_wrap(~V1) +theme( strip.text=element_text(family='A',size=18,color="black"),size=16,color="black")) ? ? ?#通过ggplot扩展包绘制基于讲话时刻段漫衍的面积图

【R说话】文本发掘、可视化

图五 讲话时刻漫衍

注:由于涉及小我私人隐私以是把图上10小我私人的名字都隐去了


四、词云可视化

震撼的来了,看看这一年各人最体谅什么?接头最多的是什么?有什么风趣的话题呢?为了和团队的LOGO呼应,选用大象外观的词云图,结果棒棒哒。


R说话的语句:

require(tm)

require(Rwordseg)

gsub("[0-9,a-z,A-Z]","",log$V1)->t ? ? #去除英文和数字

segmentCN(t)->t_seg ? ? ? ? ? ? ? ? #中文分词

removeWords(unlist(t_seg),mystopword)->word ? ?#去除停用词

word = lapply(X = word,FUN = strsplit," ") ?#将分词功效按空格脱离清算

v = table(unlist(word)) ? ? #计较每个单词的词频

v = sort(v,decreasing = T) ? ?#按降序分列

d = data.frame(word = names(v),freq = v) ? ? #将词频矩阵转换为数据框名目

d$word=as.character(d$word) ? #将单词字段规整为字符串名目

rbind(d[nchar(d$word)==1,][1:10,],d[nchar(d$word)==2,][1:20,d[nchar(d$word)>3,])->result_r ? #提取差异字数的单词中词频最高的TOP50单词,作为词云绘制的素材

write.table(result_r,"result.csv",row.names = FALSE) ?#生涯功效为csv文件


通过一款开源的词云可视化器材tagxedo,将导出的词频矩阵绘制为各类外形的词云图。

【R说话】文本发掘、可视化

图六 团队词云


看看,除了对“数据”、“互联网”的体谅是理当云云的,我们说的最多的竟然是“吃”,名副着实的“吃货”团队,民以食为天嘛。“周报”赫然精明也是醉了,其余的高频词都和事变痛痒相干,“尝试室”、“工程师”,尚有“平台”、“处事器”、“数据库”,真心是进修型谈天群啊。最开心的要数“哈哈哈”,证明我们的事变也是欢笑多多,其乐无限的。


想看到每位童鞋的词云有什么差异么?

【R说话】文本发掘、可视化

图七 个别词云一


开朗的“哈哈哈”,恼怒的“啊啊啊”,最擅用“[图片]”在群里揭示神色。致我们的美男数据说明师,也是团队大象logo的计划者。


下面重磅推出我们的首席数据科学家,瞧瞧科学家的天下与我们是何等的差异。竟然……根基都是英文术语。

【R说话】文本发掘、可视化

图八个别词云二


五、建模流程

下面用一张图简朴回首一下本文实现的建模进程:

【R说话】文本发掘、可视化

图九 整体说明思绪

但愿上面的案例说明能辅佐各人更好的领略文本发掘和舆情说明可视化的一些说明思绪和泛起方法,我们也会极力发掘更多的创意,建造更好的产物泛起给各人,感谢!。

(编辑:湖南网)

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

    热点阅读