From a4187c028432c9f9ec3693747abc1c52ef310deb Mon Sep 17 00:00:00 2001 From: graehl Date: Fri, 23 Jul 2010 22:44:20 +0000 Subject: comment about unary (1 var) goal rule having no target terminals - seems to be assumed git-svn-id: https://ws10smt.googlecode.com/svn/trunk@392 ec762483-ff6d-05da-a07a-a48fb63a330f --- decoder/ff.h | 1 + decoder/ff_lm.cc | 1 + 2 files changed, 2 insertions(+) (limited to 'decoder') diff --git a/decoder/ff.h b/decoder/ff.h index a0b39c26..9ff67dd8 100644 --- a/decoder/ff.h +++ b/decoder/ff.h @@ -184,6 +184,7 @@ class ModelSet { std::string* residual_context, prob_t* combination_cost_estimate = NULL) const; + //this is called INSTEAD of above when result of edge is goal (must be a unary rule - i.e. one variable, but typically it's assumed that there are no target terminals either (e.g. for LM)) void AddFinalFeatures(const std::string& residual_context, Hypergraph::Edge* edge, SentenceMetadata const& smeta) const; diff --git a/decoder/ff_lm.cc b/decoder/ff_lm.cc index 28312b4f..6579fbee 100644 --- a/decoder/ff_lm.cc +++ b/decoder/ff_lm.cc @@ -303,6 +303,7 @@ class LanguageModelImpl { return ProbNoRemnant(len - 1, len); } + //FIXME: this assumes no target words on final unary -> goal rule. is that ok? // for (n-1 left words) and (n-1 right words) double FinalTraversalCost(const void* state) { if (unigram) return 0.; -- cgit v1.2.3