为什么fit_变换和transform会产生不同的结果?

为什么fit_变换和transform会产生不同的结果?,r,nlp,lda,text2vec,R,Nlp,Lda,Text2vec,我在text2vec软件包中玩弄LDA,不明白为什么fit_transfrom和transform在使用相同数据时是不同的 表示transform将学习到的模型应用于新数据,但结果与通过fit\u transform data("movie_review") library(stringr) library(text2vec) library(dpylr) tokens = movie_review$review[1:4000] %>% tolower %>% word

我在
text2vec
软件包中玩弄LDA,不明白为什么
fit_transfrom
transform
在使用相同数据时是不同的

表示transform将学习到的模型应用于新数据,但结果与通过
fit\u transform

data("movie_review")
library(stringr)
library(text2vec)
library(dpylr)

tokens = movie_review$review[1:4000] %>% 
  tolower %>% 
  word_tokenizer

it = itoken(tokens, ids = movie_review$id[1:4000], progressbar = FALSE)

v = create_vocabulary(it) %>% 
  prune_vocabulary(term_count_min = 10, doc_proportion_max = 0.2)

vectorizer = vocab_vectorizer(v)

dtm = create_dtm(it, vectorizer, type = "dgTMatrix")

lda_model = LDA$new(n_topics = 10, doc_topic_prior = 0.1, topic_word_prior = 0.01)

set.seed(123)

doc_topic_distr = 
  lda_model$fit_transform(x = dtm, n_iter = 1000, 
                          convergence_tol = 0.001, n_check_convergence = 25, 
                          progressbar = FALSE)

set.seed(123)

new_doc_topic_dist = 
  lda_model$transform(x = dtm, n_iter = 1000, 
                          convergence_tol = 0.001, n_check_convergence = 25, 
                          progressbar = FALSE)

head(doc_topic_distr)
head(new_doc_topic_dist)

我原以为
doc\u topic\u distr
new\u doc\u topic\u distr
是一样的,但它们完全不同。

问得好!事实上,CRAN版本存在一个问题(它在github上的开发版本中得到了修复)。问题如下:

  • fit_transform
    中,我们学习了文档主题分布和单词主题分布。一旦聚合,我们将word主题保存在模型中,并返回文档主题作为结果
  • 转换过程中
    我们使用固定词主题分布,仅推断文档主题。无法保证推断的文档主题在
    fit_transform
    期间是相同的(但应该足够接近)

  • 我们在dev版本中所做的更改-我们运行
    fit_transform
    transform
    ,以便为每个方法提供几乎相同的文档主题分布。(有两个额外的参数调整,以确保它们完全相同-请参阅开发版本的文档)。

    好问题!事实上,CRAN版本存在一个问题(它在github上的开发版本中得到了修复)。问题如下:

  • fit_transform
    中,我们学习了文档主题分布和单词主题分布。一旦聚合,我们将word主题保存在模型中,并返回文档主题作为结果
  • 转换过程中
    我们使用固定词主题分布,仅推断文档主题。无法保证推断的文档主题在
    fit_transform
    期间是相同的(但应该足够接近)
  • 我们在dev版本中所做的更改-我们运行
    fit_transform
    transform
    ,以便为每个方法提供几乎相同的文档主题分布。(有两个额外的参数调整,以确保它们完全相同-请参阅开发版本的文档)