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