document - 如何使用 models.hdpmodel 获取文档主题 – gensim 中的分层狄利克雷过程
问题描述
我只是研究 gensim 进行主题建模。当我使用
lda_model = gensim.models.ldamodel.LdaModel(...)
结果 lda_model 有两个函数:get_topics() 和 get_document_topics()。我可以通过他们找到主题词和文档主题。但是,我想尝试:
hdp_lda_model = gensim.models.hdpmodel.HdpModel(...)
我只能在结果中找到 get_topics(),没有 get_document_topics() 之类的东西。所以我找不到文档和主题的关系。但它应该在某个地方。我从https://radimrehurek.com/gensim/models/hdpmodel.html阅读了一些说明。但我没有找到任何(也许我错过了什么?)。那么 hdp 模型中是否有一个函数,就像 lda 模型中的 get_document_topics() 一样?
解决方案
两种模型都有一种__getitem__
方法可以满足您的需求。
对于 LDA,它实际上是get_document_topics
https://github.com/RaRe-Technologies/gensim/blob/develop/gensim/models/ldamodel.py#L1503的包装器
对于 HDP,它封装了该inference
方法,但不仅仅是调用它:
https ://github.com/RaRe-Technologies/gensim/blob/develop/gensim/models/hdpmodel.py#L427
所以,回答你的问题。你可以为这两种模型做:
lda_model[bow_doc]
或者
hdp_lda_model[bow_doc]
然后得到一个主题分布bow_doc
结果如下:
[(5, 0.05342164806543596),
(7, 0.04307238446604077),
(11, 0.5281130394662548),
(31, 0.28899472194287035),
(60, 0.07985460856925444)]
推荐阅读
- ios - Swift - 创建没有 Storyboard initWithFrame 错误的 collectionView
- html - 不知道如何执行想法:Runic Chart (HTML, CSS)
- matlab - VBScript:偶尔出现 ActiveX 无法创建 Matlab 应用程序错误
- javascript - 如果已经加载,防止 .load() ?
- python - 使用 pandas 删除空数据框
- ios - 从 tableView 中删除一行的正确方法是什么?
- angular - 在 Observable 映射函数中正确声明 Typescript 类型
- google-app-engine - Google App Engine + Google Cloud Storage 权限问题
- c++ - boost zlib 过滤器在 Windows 中不起作用
- javascript - 如何从另一个网址获取数据?