mosesdecoder/moses/FF/WordPenaltyProducer.cpp
2013-12-06 15:57:49 +00:00

31 lines
832 B
C++

#include "WordPenaltyProducer.h"
#include "moses/TargetPhrase.h"
#include "moses/ScoreComponentCollection.h"
using namespace std;
namespace Moses
{
WordPenaltyProducer *WordPenaltyProducer::s_instance = NULL;
WordPenaltyProducer::WordPenaltyProducer(const std::string &line)
: StatelessFeatureFunction(1, line)
{
ReadParameters();
UTIL_THROW_IF2(s_instance, "Can only have 1 word penalty feature");
s_instance = this;
}
void WordPenaltyProducer::Evaluate(const Phrase &source
, const TargetPhrase &targetPhrase
, ScoreComponentCollection &scoreBreakdown
, ScoreComponentCollection &estimatedFutureScore) const
{
float score = - (float) targetPhrase.GetNumTerminals();
scoreBreakdown.Assign(this, score);
}
}