Gensim:无法训练LDA模型

时间:2017-03-25 17:15:19

标签: nlp gensim lda corpus

我有一个句子列表,我按照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。我究竟做错了什么?语料库的格式应该是什么?

1 个答案:

答案 0 :(得分:-1)

制作语料库之后,您应该使用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将您的主题从哈希映射到单词,使用它可以将主题作为单词而不是数字。