我是Python的新手,需要构建一个LDA项目。在进行了一些预处理步骤后,这是我的代码:
dictionary = Dictionary(docs)
corpus = [dictionary.doc2bow(doc) for doc in docs]
from gensim.models import LdaModel
num_topics = 10
chunksize = 2000
passes = 20
iterations = 400
eval_every = None
temp = dictionary[0]
id2word = dictionary.id2token
model = LdaModel(corpus=corpus, id2word=id2word, chunksize=chunksize, \
alpha='auto', eta='auto', \
random_state=42, \
iterations=iterations, num_topics=num_topics, \
passes=passes, eval_every=eval_every)
我想获取文档的主题分布,对于所有的文档,获得前10个主题分布的概率。但是当我使用以下代码时:
get_document_topics = model.get_document_topics(corpus)
print(get_document_topics)
输出仅出现
<gensim.interfaces.TransformedCorpus object at 0x000001DF28708E10>
如何获得文档的主题分布?
model.show_topics()
。根据gensim文档(https://radimrehurek.com/gensim/models/ldamodel.html#gensim.models.ldamodel.LdaModel.show_topics):“与LSA不同,LDA中主题之间没有自然顺序。返回的主题子集因此是任意的,并且可能会在两次LDA训练运行之间发生变化。” - Andrew McDowell