#ifndef moses_PhraseLengthFeature_h #define moses_PhraseLengthFeature_h #include #include #include #include "StatelessFeatureFunction.h" #include "moses/FF/FFState.h" #include "moses/Word.h" #include "moses/FactorCollection.h" namespace Moses { /** Sets the features for length of source phrase, target phrase, both. */ class PhraseLengthFeature : public StatelessFeatureFunction { public: PhraseLengthFeature(const std::string &line); bool IsUseable(const FactorMask &mask) const { return true; } void EvaluateWhenApplied(const Hypothesis& hypo, ScoreComponentCollection* accumulator) const {} void EvaluateWhenApplied(const ChartHypothesis& hypo, ScoreComponentCollection*) const {} void EvaluateWithSourceContext(const InputType &input , const InputPath &inputPath , const TargetPhrase &targetPhrase , const StackVec *stackVec , ScoreComponentCollection &scoreBreakdown , ScoreComponentCollection *estimatedFutureScore = NULL) const {} void EvaluateWithSourceContextCollection(const InputType &input , const InputPath &inputPath , const TargetPhraseCollection &targetPhraseCollection , const StackVec *stackVec , ScoreComponentCollection &scoreBreakdown , ScoreComponentCollection *estimatedFutureScore = NULL) const {} virtual void EvaluateInIsolation(const Phrase &source , const TargetPhrase &targetPhrase , ScoreComponentCollection &scoreBreakdown , ScoreComponentCollection &estimatedFutureScore) const; }; } #endif // moses_PhraseLengthFeature_h