How to get document-topics using models.hdpmodel – gensim 中的分层狄利克雷过程
How to get document-topics using models.hdpmodel – Hierarchical Dirichlet Process in 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)]
我只是研究主题建模的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)]