lda_sentenceLayer.py 文件源码

python
阅读 24 收藏 0 点赞 0 评论 0

项目:topicModelling 作者: balikasg 项目源码 文件源码
def get_full_conditional(self, sentence, m, z, n_z, n_m_z):
        prod_nom, prod_den = [] , []
        words = Counter(sentence)
        for key, val in words.iteritems():
            for x in range(val):
                quantity = self.n_z_t[:,key] + self.beta + x
                prod_nom.append(quantity)
#                prod_nom *= (quantity)
        prod_nom = np.array(prod_nom, dtype=np.float128)
        left_denominator = n_z + self.beta*self.V
        for x in range(len(sentence)):
            quantity = left_denominator + x
            prod_den.append(quantity)
#            prod_den *= (quantity)
        prod_den = np.array(prod_den, dtype=np.float128)
#        print "Shapes of interest:", prod_den.shape, prod_nom.shape
        prodall1 = np.divide(prod_nom,prod_den)
#        print "After division:", prodall.shape
        prodall = np.prod(prodall1, axis=0)
#        print "After multiplication", prodall.shape
#        prod_nom = np.prod(prod_nom, axis=0, dtype=np.float128)
#        prod_den = np.prod(prod_den, axis=0, dtype=np.float128)

#        left = prod_nom/prod_den
        right = (n_m_z[m,:] + self.alpha)
        p_z = prodall*right
#        try:    
#            p_z /= np.sum(p_z)
#        except:
#            print p_z
#            print prodall1
#            print prodall
        p_z /= np.sum(p_z)
#        except RuntimeWarning:
#            print 'Exception'
#            print prodall 
#            print right
#            print self.n_z_t[:,key]
        return p_z.astype(np.float64)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号