LDA(Latent Dirichlet Allocation)如何从 `gensim` 推断新数据?
How does LDA (Latent Dirichlet Allocation) inference from `gensim` work for a new data?
我正在使用 gensim
训练我的 ldamodel
,并使用这样的测试语料库进行预测 ldamodel[doc_term_matrix_test]
,它工作得很好,但我不明白预测的实际情况使用经过训练的模型完成(ldamodel[doc_term_matrix_test]
在做什么)。
这是代码:
dictionary2 = corpora.Dictionary(test)
dictionary = corpora.Dictionary(train)
dictionary.merge_with(dictionary2)
doc_term_matrix2 = [dictionary.doc2bow(doc) for doc in test]
doc_term_matrix = [dictionary.doc2bow(doc) for doc in train]
Lda = gensim.models.ldamodel.LdaModel
ldamodel = Lda(doc_term_matrix, num_topics=2, id2word =
dictionary,random_state=100, iterations=50, passes=1)
topics = sorted(ldamodel[doc_term_matrix2],
key=lambda
x:x[1],
reverse=True)
引用自gensim docs about ldamodel:
This module allows both LDA model estimation from a training corpus and inference of topic distribution on new, unseen documents.
很明显,您的代码所做的不完全是 "prediction" 而是推理。也就是说,您经过训练的 LDA 模型会为每个测试文档 T
生成 T
.
的主题分布估计
我正在使用 gensim
训练我的 ldamodel
,并使用这样的测试语料库进行预测 ldamodel[doc_term_matrix_test]
,它工作得很好,但我不明白预测的实际情况使用经过训练的模型完成(ldamodel[doc_term_matrix_test]
在做什么)。
这是代码:
dictionary2 = corpora.Dictionary(test)
dictionary = corpora.Dictionary(train)
dictionary.merge_with(dictionary2)
doc_term_matrix2 = [dictionary.doc2bow(doc) for doc in test]
doc_term_matrix = [dictionary.doc2bow(doc) for doc in train]
Lda = gensim.models.ldamodel.LdaModel
ldamodel = Lda(doc_term_matrix, num_topics=2, id2word =
dictionary,random_state=100, iterations=50, passes=1)
topics = sorted(ldamodel[doc_term_matrix2],
key=lambda
x:x[1],
reverse=True)
引用自gensim docs about ldamodel:
This module allows both LDA model estimation from a training corpus and inference of topic distribution on new, unseen documents.
很明显,您的代码所做的不完全是 "prediction" 而是推理。也就是说,您经过训练的 LDA 模型会为每个测试文档 T
生成 T
.