PyMC3中标记的LDA(潜在Dirichlet分配)

时间:2016-12-13 12:30:40

标签: python python-3.x lda topic-modeling pymc3

我正在尝试按照此paper (section 3.2)中的描述创建Labeled LDA模型。

到目前为止我所拥有的是:

# settings
entityTypesSize = 100
minibatchSize = 10
entityStringsSize = 100

model = pm.Model()
with pm.Model() as model:
   alpha = pm.Gamma(alpha=0.1, beta=1, name='alpha')
   eta = pm.Gamma(alpha=0.1, beta=1, name='eta') 


   beta = pm.Dirichlet('beta', a=eta * np.ones((entityTypesSize, entityStringsSize)),
                    shape=(entityTypesSize, entityStringsSize), transform=t_stick_breaking(1e-9))

   theta = pm.Dirichlet('theta', a=alpha * np.ones((minibatchSize, entityTypesSize)),
                     shape=(minibatchSize, entityTypesSize), transform=t_stick_breaking(1e-9))


   z = pm.Multinomial('z', n=, p=)

   w = pm.Multinomial('w', n=, p=)

我遇到的挑战是使用zw个随机变量。如本文所述,绘制数量(n-param)不应该是固定的,而是取决于实体字符串中的单词数量。此外,我需要放置不同的概率(p-param),因为它们是从beta和theta分布中采样的。有可能让他们以某种方式被束缚吗?如果是的话,有人可以帮忙吗?

同一模型在HBC中有另一种实现方式,可以找到here

谢谢!!!

0 个答案:

没有答案