我使用python实现了LDA,并为一组推文建模主题,并试图将每个推文映射到主题,以查看推文属于哪个主题,但我在网上找不到任何帮助。
虽然我发现这可以为NMF完成,但我找不到任何函数或python中的任何特定选项用于此特定情况,我使用gensim使用LDA生成主题
使用您训练过的模型来获取任何特定文本的最相关主题在LdaModel
类的Gensim文档中有介绍,在"用法示例"下- https://radimrehurek.com/gensim/models/ldamodel.html#usage-examples -但是那里的处理可能有点单一,因为:
- 它将您可能正在分析的任何文本称为"看不见的"文档,但同样的过程适用于作为培训语料库一部分的文档;和
- 像许多其他Gensim类一样,分析是通过Python的索引查找习惯用法完成的。也就是说,用括号括起来的
[
]
访问(也就是调用.__getitem__()
的快捷方式),使用文本的正确表示,就像一样它是一个查找键,尽管实际上它是模型分析的一个参数,而不是严格地查找一些存储的响应。
所以这部分的例子是你需要遵循的:
查询,模型使用新的,未见过的文档
>>> # Create a new corpus, made of previously unseen documents. >>> other_texts = [ ... ['computer', 'time', 'graph'], ... ['survey', 'response', 'eps'], ... ['human', 'system', 'computer'] ... ] >>> other_corpus = [common_dictionary.doc2bow(text) for text in other_texts] >>> >>> unseen_doc = other_corpus[0] >>> vector = lda[unseen_doc] # get topic probability distribution for a document
只需记住:
other_texts
&本例中的unseen_document
也可以从训练语料库中重复,以询问训练模型它认为这些文档的主题应该是什么;和- 您需要使用与训练文档完全相同的字典将任何文本转换为词袋表示,以便单词索引和频率加权适合用于查找的词袋表示。