使用R(topicmodels)的LDA的不同结果

时间:2015-07-31 09:02:31

标签: r lda topicmodels

我正在使用R topicmodels从小型语料库中训练LDA模型,但我发现每次重复相同的代码时,它都会有不同的结果(不同的主题和不同的主题术语) 我的问题是为什么同样的条件和相同的语料库每次都有不同的结果,我该怎么做才能稳定结果呢? 这是我的代码:

library(tm)
library(topicmodels)
cname<-file.path(".","corpus","train")
docs<-Corpus(DirSource(cname))
toSpace<-content_transformer(function(x,pattern) gsub(pattern,"",x))
docs<-tm_map(docs,toSpace,"/")
docs<-tm_map(docs,toSpace,"@")
docs<-tm_map(docs,toSpace,"#")
docs<-tm_map(docs,toSpace,"\\|")
docs<-tm_map(docs,toSpace,"&")
docs<-tm_map(docs,content_transformer(tolower))
docs<-tm_map(docs,removeNumbers)
docs<-tm_map(docs,removePunctuation)
docs<-tm_map(docs,removeWords,stopwords("english"))
docs<-tm_map(docs,removeWords,c("amp"))
docs<-tm_map(docs,stripWhitespace)
dtm<-DocumentTermMatrix(docs)
dtm_LDA<-LDA(dtm,5)
get_terms(dtm_LDA,10)

我试过set.seed,但似乎不起作用。我发现了类似的问题LDA model generates different topics every time I train on the same corpus,但它是一个蟒蛇问题。

1 个答案:

答案 0 :(得分:0)

对于那些遇到同样问题的人。您可以尝试通过在LDA函数中指定控制属性来将随机种子的值设置为固定,如下所示。查找更多信息here

lda <- LDA(AssociatedPress[1:20, ], control=list(seed=0), k=2)