def updateLPGivenDocTopicCount(LP, DocTopicCount,
alphaEbeta, alphaEbetaRem=None):
''' Update local parameters given doc-topic counts for many docs.
Returns for FiniteTopicModel (alphaEbetaRem is None)
--------
LP : dict of local params, with updated fields
* theta : 2D array, nDoc x K
* ElogPi : 2D array, nDoc x K
Returns for HDPTopicModel (alphaEbetaRem is not None)
--------
* theta : 2D array, nDoc x K
* ElogPi : 2D array, nDoc x K
* thetaRem : scalar
* ElogPiRem : scalar
'''
theta = DocTopicCount + alphaEbeta
if alphaEbetaRem is None:
# FiniteTopicModel
digammaSumTheta = digamma(theta.sum(axis=1))
else:
# HDPTopicModel
digammaSumTheta = digamma(theta.sum(axis=1) + alphaEbetaRem)
LP['thetaRem'] = alphaEbetaRem
LP['ElogPiRem'] = digamma(alphaEbetaRem) - digammaSumTheta
LP['digammaSumTheta'] = digammaSumTheta # Used for merges
ElogPi = digamma(theta) - digammaSumTheta[:, np.newaxis]
LP['theta'] = theta
LP['ElogPi'] = ElogPi
return LP
评论列表
文章目录