R语言实现文本挖掘模型构建及可视化

2021-01-12 14:42:58 浏览数 (1)

前面我们讲了关于语料库的基础操作包tm,今天给大家分享一个进行文本分析的另外一个包stm,此包不仅整合了文本分析的功能,同时还提供了模型的构建。下面是包的整个分析框架:

接下来我们就直奔主题了,首先看下包的安装:

代码语言:javascript复制
install.packages(“stm”)
install.packages("textir")

我们直接通过实例来看下上面框架中每一步的实现细节:

代码语言:javascript复制
##文本提取1
library(textir)
data(congress109)
代码语言:javascript复制
out <- readCorpus(congress109Counts,type="Matrix")
documents <- out$documents
vocab <- out$vocab
代码语言:javascript复制
##文本数据的提取2
View(head(gadarian))
代码语言:javascript复制
#Process the data for analysis.

temp<-textProcessor(documents=gadarian$open.ended.response,metadata=gadarian)
meta<-temp$meta##元数据
vocab<-temp$vocab###所有的词汇
docs<-temp$documents#所有词在每个词条的分布情况
 
####
out <- prepDocuments(docs, vocab, meta)
docs<-out$documents
vocab<-out$vocab
meta <-out$meta
代码语言:javascript复制
####查看需要各阈值数量后的数据情况。主要是来看删除字符前的阈值设置
 
plotRemoved(docs, lower.thresh=seq(from = 10,to = 1000, by = 10))
代码语言:javascript复制
###LDA模型的构建,我们定义四个主题,模型将会根据这四个主题进行LDA分析
stm=stm(out$document,out$vocab,4,init.type="LDA")
代码语言:javascript复制
##可视化主题
plot.STM(stm)
代码语言:javascript复制
##词云图,其中可以设置指定的topic编码,以及对应的词频数范围scale
cloud(stm)
代码语言:javascript复制
###为每个主题选择几个描述性的词
labelTopics(stm)
代码语言:javascript复制
###为主题选择代表性的文档。plotQuote可以可视化结果
findThoughts(stm,texts=gadarian$open.ended.response, topics=c(1,2), n=3)
代码语言:javascript复制
###评估协变量的影响
prep <- estimateEffect(c(1) ~ treatment,stm, gadarian)#其中公式左侧是主题编号右侧是变量名
plot.estimateEffect(prep,"treatment")
代码语言:javascript复制
###主题相关性分析
stmc=topicCorr(stm)
plot.topicCorr(stmc)
代码语言:javascript复制
###两个主题的比较
plot(stm, type = "perspectives",topics = c(1,4))

欢迎大家学习交流!

0 人点赞