如何使用LDA(Python)从标题列表生成主题?

时间:2018-02-04 08:50:49

标签: python nlp nltk gensim lda

我是自然语言处理的新手。 我有一个博客标题列表,例如(不是真实的数据,但你明白了):

docs = ["Places to Eat", "Places to Visit", "Top 10 Things to Do in Singapore"]...

大约有3000多个标题,我想在Python中使用LDA为每个标题生成主题。假设我已经使用nltk包清理并标记了这些文本并删除了停用词,我将最终得到:

texts = [["places","eat"],["places","visit"]]...

然后我继续将这些文本转换成词袋:

from gensim import corpora, models
dictionary = corpora.Dictionary(texts)

corpus = [dictionary.doc2bow(text) for text in texts]

语料库数据如下所示:

[(0, 1), (1, 1)]...

模型创建:

import gensim
ldamodel = gensim.models.ldamodel.LdaModel(corpus, num_topics=30, id2word = dictionary, passes=20)

如何使用此模型生成主题列表 - 例如每个标题的“吃”,“访问”等?我知道输出可能包含概率,但我想将它们与仅文本串在一起。

1 个答案:

答案 0 :(得分:2)

您可以使用

从gensim LDA中检索文档主题列表
Ldamodel.show_topics()

然后使用

对新文档进行分类
Ldamodel.get_document_topics(doc)

其中doc是文档袋子矢量。

https://radimrehurek.com/gensim/models/ldamodel.html