我有一个句子列表,我按照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
。我究竟做错了什么?语料库的格式应该是什么?
答案 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
将您的主题从哈希映射到单词,使用它可以将主题作为单词而不是数字。