本文整理汇总了C++中Corpus::Word方法的典型用法代码示例。如果您正苦于以下问题:C++ Corpus::Word方法的具体用法?C++ Corpus::Word怎么用?C++ Corpus::Word使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Corpus
的用法示例。
在下文中一共展示了Corpus::Word方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Likelihood
double LDA::Likelihood(const Corpus &cor, int d, const LdaModel &m, VRealC &gamma,VVRealC &phi) const {
double alpha_sum = double_array_sum(m.alpha,m.num_topics);
double gamma_sum = std::accumulate(gamma.begin(), gamma.end(), 0.0);
double digsum = DiGamma(gamma_sum);
const int &num = m.num_topics;
VReal expect(num);
for (int k = 0; k < num; k++) {
expect.at(k) = DiGamma(gamma.at(k)) - digsum;
}
double l = lgamma(alpha_sum) - lgamma(gamma_sum);
for (int k = 0; k < num; k++) {
l += ((m.alpha[k] - gamma.at(k)) * expect[k] + lgamma(gamma.at(k)) - lgamma(m.alpha[k]));
for (size_t n = 0; n < cor.ULen(d); n++) {
if (phi[n][k] > 0) {
l += cor.Count(d, n) * phi[n][k] * (expect[k] - log(phi[n][k]) + m.log_prob_w[k][cor.Word(d, n)]);
}
}
}
return l;
}