0

我正在使用 Rtopicmodels从一个小型语料库中训练一个 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 模型都会产生不同的主题,但它是一个 Python 的。

4

1 回答 1

0

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

lda <- LDA(AssociatedPress[1:20, ], control=list(seed=0), k=2)
于 2016-07-07T02:10:25.583 回答