00001 #include "WordPenaltyProducer.h" 00002 #include "moses/TargetPhrase.h" 00003 #include "moses/ScoreComponentCollection.h" 00004 00005 using namespace std; 00006 00007 namespace Moses 00008 { 00009 WordPenaltyProducer *WordPenaltyProducer::s_instance = NULL; 00010 00011 WordPenaltyProducer::WordPenaltyProducer(const std::string &line) 00012 : StatelessFeatureFunction(1, line) 00013 { 00014 ReadParameters(); 00015 00016 UTIL_THROW_IF2(s_instance, "Can only have 1 word penalty feature"); 00017 s_instance = this; 00018 } 00019 00020 void WordPenaltyProducer::EvaluateInIsolation(const Phrase &source 00021 , const TargetPhrase &targetPhrase 00022 , ScoreComponentCollection &scoreBreakdown 00023 , ScoreComponentCollection &estimatedScores) const 00024 { 00025 float score = - (float) targetPhrase.GetNumTerminals(); 00026 scoreBreakdown.Assign(this, score); 00027 } 00028 00029 } 00030