diff options
author | graehl <graehl@ec762483-ff6d-05da-a07a-a48fb63a330f> | 2010-07-25 02:52:58 +0000 |
---|---|---|
committer | graehl <graehl@ec762483-ff6d-05da-a07a-a48fb63a330f> | 2010-07-25 02:52:58 +0000 |
commit | 786b689a486413b4ea31841eb352ed728621e4b1 (patch) | |
tree | 2ff55857c4e5367c557642bc44e4f44d1697b3fe /decoder/viterbi.cc | |
parent | 0f80272c5e32dd3a0d5d747d00c914b0a6bf0be8 (diff) |
cleaned up kbest, new USE_INFO_EDGE 1 logs per edge, --show_derivation (needs work; handle kbest deriv, viterbi deriv, sort hg exposing viterbi?)
git-svn-id: https://ws10smt.googlecode.com/svn/trunk@405 ec762483-ff6d-05da-a07a-a48fb63a330f
Diffstat (limited to 'decoder/viterbi.cc')
-rw-r--r-- | decoder/viterbi.cc | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/decoder/viterbi.cc b/decoder/viterbi.cc index 7719de32..d0b7e6ec 100644 --- a/decoder/viterbi.cc +++ b/decoder/viterbi.cc @@ -6,7 +6,7 @@ using namespace std; -std::string viterbi_stats(Hypergraph const& hg, std::string const& name, bool estring, bool etree) +std::string viterbi_stats(Hypergraph const& hg, std::string const& name, bool estring, bool etree,bool show_derivation) { ostringstream o; o << hg.stats(name); @@ -19,6 +19,17 @@ std::string viterbi_stats(Hypergraph const& hg, std::string const& name, bool es if (etree) { o<<name<<" tree: "<<ViterbiETree(hg)<<endl; } + if (show_derivation) { + o<<name<<" derivation: "; + ViterbiPathTraversal::Result d; + Viterbi<ViterbiPathTraversal>(hg, &d); + if (d.empty()) + o<<"(empty viterbi hyperpath - no translation)"; + else + hg.show_tree(o,*d.back(),false); // last item should be goal (or at least depend on prev items). TODO: this doesn't actually reorder the nodes in hg. + o<<endl; + } + return o.str(); } |