不知道我理解的对不对哈~
你想要做的是,
用一个已经训练出来的P(w|z)和P(z|d)去计算一个新文本的P(z|d)?
如果是的话,其实还是有解的~
首先P(z|d)也可以表示为
但是P(z|w)并没有在原始的主题模型结果中,如何求得P(z|w)就成为此计算的关键了呗~
根据贝叶斯公式,可以得知
其中P(w)为词频,P(w|z)为主题模型中已知结果。P(z)为我们需要求得的值,而
也就是P(z)可以通过利用P(z|d)和求得。
P(d)表示文档的出现概率,而在这里我们可以先验的认为,所有文档的出现概率服从独立同分布(i.i.d)。也就是说我们可以将此值赋值为相同数值。为了方便计算,我们统一在此将P(d)赋值为1。
而P(z|d)同样作为主题模型中已知结果,由此P(z)可求。
于是通过这个方法,基于一个优良语料计算出的LDA主题模型结果,求得了P(z|w)。之后就可以通过最上面的公式来完成对新文档的主题模型分布计算啦 。
简单说其实主要还是用贝叶斯去转换得到最需要的那个条件概率。
虽然我自己实现过这个过程,新文本的主题分布可以计算出来,但是其实是有一定信息损失的。
之前已经计算的lda的词袋中没有出现过的词就不说了。其实这个过程缺少了一步整体计算“分布的分布”的过程,所以整体计算过程虽然看着还算合理,但是其实和lda的推导过程有着一定的误差。
之前也见过论文里有提到基于狄利克雷的方法来基于已有主题模型推断新文章的主题分布的。
但是好久之前的论文了,记不起来啥了。
话说用lda做现在nlp的场景,还有一战之力嘛?