Gensim:无法训练 LDA 模型

Gensim: Unable to train the LDA model

我有一个句子列表,我按照 tutorial 上的说明从中制作了一个语料库:

texts = [[word for word in document.lower().split() if word.isalpha()] for document in documents]
corpus = corpora.Dictionary(texts)

我想在这个语料库上训练一个 LDA 模型并提取主题关键词。

lda = models.LdaModel(corpus, num_topics=10)

但是,我在训练时收到错误消息:TypeError: 'int' object is not iterable。我究竟做错了什么?语料库应该是什么格式?

制作语料库后,你应该制作一个带有 doc2bow 的语料库,它从单词中生成哈希值(所谓的 'hashing trick'):

texts = [[word for word in document.lower().split() if word.isalpha()] for document in documents]
corpus = corpora.Dictionary(texts)
hashed_corpus = [corpora.doc2bow(text) for text in texts]

然后你可以用 hashed_corpus:

训练你的模型
lda = models.LdaModel(corpus, id2word=corpus, num_topics=5) 

id2word 将您的主题从哈希映射到单词,使用它可以将主题作为单词而不是数字获取。