diff options
author | philblunsom@gmail.com <philblunsom@gmail.com@ec762483-ff6d-05da-a07a-a48fb63a330f> | 2010-07-02 17:14:55 +0000 |
---|---|---|
committer | philblunsom@gmail.com <philblunsom@gmail.com@ec762483-ff6d-05da-a07a-a48fb63a330f> | 2010-07-02 17:14:55 +0000 |
commit | 7d124c74f6d88c32d72a5f3de2d405eb85b050ec (patch) | |
tree | 7d14fb0496ec63c49191321c4d31a5791386f8a2 /gi/pyp-topics/src/pyp-topics.cc | |
parent | b01d148e294212a8f9014be9e6a65a5fa8a01cef (diff) |
git-svn-id: https://ws10smt.googlecode.com/svn/trunk@115 ec762483-ff6d-05da-a07a-a48fb63a330f
Diffstat (limited to 'gi/pyp-topics/src/pyp-topics.cc')
-rw-r--r-- | gi/pyp-topics/src/pyp-topics.cc | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/gi/pyp-topics/src/pyp-topics.cc b/gi/pyp-topics/src/pyp-topics.cc index 56d49928..186267d3 100644 --- a/gi/pyp-topics/src/pyp-topics.cc +++ b/gi/pyp-topics/src/pyp-topics.cc @@ -180,6 +180,7 @@ void PYPTopics::sample(const Corpus& corpus, int samples) { << pypIt->num_types() << "," << m_topic_pyp.prob(k, m_topic_p0) << "> "; if (k % 5 == 0) std::cerr << std::endl << '\t'; } + std::cerr.precision(4); std::cerr << std::endl; } } @@ -283,7 +284,32 @@ int PYPTopics::max_topic() const { return current_topic; } -int PYPTopics::max(const DocumentId& doc, const Term& term) { +int PYPTopics::max(const DocumentId& doc) const { + //std::cerr << "PYPTopics::max(" << doc << "," << term << ")" << std::endl; + // collect probs + F current_max=0.0; + int current_topic=-1; + for (int k=0; k<m_num_topics; ++k) { + //F p_w_k = prob(term, k); + + F topic_prob = m_topic_p0; + if (m_use_topic_pyp) + topic_prob = m_topic_pyp.prob(k, m_topic_p0); + + F prob = 0; + if (doc < 0) prob = topic_prob; + else prob = m_document_pyps[doc].prob(k, topic_prob); + + if (prob > current_max) { + current_max = prob; + current_topic = k; + } + } + assert(current_topic >= 0); + return current_topic; +} + +int PYPTopics::max(const DocumentId& doc, const Term& term) const { //std::cerr << "PYPTopics::max(" << doc << "," << term << ")" << std::endl; // collect probs F current_max=0.0; |