使用预定的主题分布初始化Gensim LDA模型

问题描述 投票:0回答:1

我们可以使gensim lda模型在确定新文档的主题时使用预定主题分布吗?

Ex:

import gensim
texts=[['a','a','a'], ['b','b','b'],['c','c','c']]
d = gensim.corpora.Dictionary(texts)
bow = [d.doc2bow(doc) for doc in texts]
import numpy as np
user_topics=np.array([[1, 0, 0],[0, 1, 0],[0,0,1]])
model = gensim.models.LdaModel(corpus=bow, id2word=d, num_topics=3,  random_state=1,eta=user_topics)
model.get_topics()

返回

array([[0.9728407 , 0.01204113, 0.01511812],
       [0.01140388, 0.9742677 , 0.01432837],
       [0.02468761, 0.00788806, 0.9674243 ]], dtype=float32)

model.get_topics()是否有可能返回与'eta'相同的分布?

[[1, 0, 0],[0, 1, 0],[0,0,1]]

python gensim lda topic-modeling
1个回答
0
投票

[这是一个有趣的问题,因为先验(η)等于后验(β)仅在可能性为常数时才会发生,并且这里的可能性看起来像是常数,即每个主题(在先)仅产生一个词。

但是,实际的问题是我们使用对数似然来拟合LDA(请参阅algorithm 1),因此,先验中的零将被[[平滑]。另外,您可能希望检查gensim.models.LdaModel中的其他参数,因为在实现过程中还涉及许多其他阈值。

结果,您将只看到β接近但不等于η,并且具有更多数据(例如,代替3个“ a”,尝试300个“ a”),它将更接近。
© www.soinside.com 2019 - 2024. All rights reserved.