For loop 使用text2vec的困惑问题

For loop 使用text2vec的困惑问题,for-loop,text-mining,text2vec,For Loop,Text Mining,Text2vec,正如我经常提到的,我在230k文档上使用text2vec。我试图通过使用“困惑”来为我的文档术语矩阵找到最佳的主题号。当我一个接一个地使用它时,它工作得非常好,但是当我尝试使用一个循环来获得2到25的范围时,它不起作用,我也不知道为什么,有人能告诉我出了什么问题吗 ##Using perplexity for hold out set t1 <- Sys.time() perplex <- c() for (i in 2:25){ set.seed(17) lda_m

正如我经常提到的,我在230k文档上使用text2vec。我试图通过使用“困惑”来为我的文档术语矩阵找到最佳的主题号。当我一个接一个地使用它时,它工作得非常好,但是当我尝试使用一个循环来获得2到25的范围时,它不起作用,我也不知道为什么,有人能告诉我出了什么问题吗

##Using perplexity for hold out set
t1 <- Sys.time()
perplex <- c()
for (i in 2:25){

  set.seed(17)

    lda_model <- LDA$new(n_topics = i)
    doc_topic_distr <- lda_model$fit_transform(x = dtm,  progressbar = F)

    perplex[i]  <- text2vec::perplexity(sample.dtm, topic_word_distribution = 
    lda_model$topic_word_distribution, doc_topic_distribution = new_doc_topic_distr) 
}
print(difftime(Sys.time(), t1, units = 'sec'))


这是因为您需要在循环中重新计算
new\u doc\u topic\u distr
完美,非常感谢您的耐心等待。我在循环中重新添加了所有内容,只花了9分钟。请接受答案
INFO [2019-10-23 13:01:43] early stopping at 80 iteration
INFO [2019-10-23 13:01:45] early stopping at 20 iteration
INFO [2019-10-23 13:01:53] early stopping at 70 iteration
INFO [2019-10-23 13:01:55] early stopping at 20 iteration
Error in text2vec::perplexity(sample.dtm, topic_word_distribution = lda_model$topic_word_distribution,  : 
  nrow(topic_word_distribution) == ncol(doc_topic_distribution) is not TRUE