如何使用 LDA (Python) 从标题列表生成主题?
How to generate a topic from a list of titles using LDA (Python)?
我是自然语言处理的新手。
我有一个博客标题列表,例如(不是真实数据,但你明白了):
docs = ["Places to Eat", "Places to Visit", "Top 10 Things to Do in Singapore"]...
大约有 3000 多个标题,我想在 Python 中使用 LDA 为每个标题生成主题。假设我已经使用 nltk 包清理并标记了这些文本并删除了停用词,我最终会得到:
texts = [["places","eat"],["places","visit"]]...
然后我继续将这些文本转换为 Bag-of-words:
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)
如何使用此模型生成主题列表 - 例如每个标题的 "Eat"、"Visit" 等?我知道输出可能包含概率,但我想将它们与文本串在一起。
您可以使用
从 gensim LDA 检索文档主题列表
Ldamodel.show_topics()
然后用
对新文档进行分类
Ldamodel.get_document_topics(doc)
其中 doc 是文档词袋向量。
我是自然语言处理的新手。 我有一个博客标题列表,例如(不是真实数据,但你明白了):
docs = ["Places to Eat", "Places to Visit", "Top 10 Things to Do in Singapore"]...
大约有 3000 多个标题,我想在 Python 中使用 LDA 为每个标题生成主题。假设我已经使用 nltk 包清理并标记了这些文本并删除了停用词,我最终会得到:
texts = [["places","eat"],["places","visit"]]...
然后我继续将这些文本转换为 Bag-of-words:
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)
如何使用此模型生成主题列表 - 例如每个标题的 "Eat"、"Visit" 等?我知道输出可能包含概率,但我想将它们与文本串在一起。
您可以使用
从 gensim LDA 检索文档主题列表Ldamodel.show_topics()
然后用
对新文档进行分类Ldamodel.get_document_topics(doc)
其中 doc 是文档词袋向量。