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 関数で control 属性を指定することにより、ランダム シードの値を固定として設定することができます。詳細については、こちらをご覧ください。

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