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
将您的主题从哈希映射到单词,使用它可以将主题作为单词而不是数字获取。
我有一个句子列表,我按照 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
将您的主题从哈希映射到单词,使用它可以将主题作为单词而不是数字获取。