我们可以使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]]
[这是一个有趣的问题,因为先验(η)等于后验(β)仅在可能性为常数时才会发生,并且这里的可能性看起来像是常数,即每个主题(在先)仅产生一个词。
但是,实际的问题是我们使用对数似然来拟合LDA(请参阅algorithm 1),因此,先验中的零将被[[平滑]。另外,您可能希望检查gensim.models.LdaModel
中的其他参数,因为在实现过程中还涉及许多其他阈值。