00001 // $Id$ 00002 00003 #ifndef moses_DummyScoreProducers_h 00004 #define moses_DummyScoreProducers_h 00005 00006 #include "FeatureFunction.h" 00007 00008 namespace Moses 00009 { 00010 00011 class WordsRange; 00012 00015 class DistortionScoreProducer : public StatefulFeatureFunction 00016 { 00017 public: 00018 DistortionScoreProducer(ScoreIndexManager &scoreIndexManager); 00019 00020 float CalculateDistortionScore(const Hypothesis& hypo, 00021 const WordsRange &prev, const WordsRange &curr, const int FirstGapPosition) const; 00022 00023 size_t GetNumScoreComponents() const; 00024 std::string GetScoreProducerDescription(unsigned) const; 00025 std::string GetScoreProducerWeightShortName(unsigned) const; 00026 size_t GetNumInputScores() const; 00027 00028 virtual const FFState* EmptyHypothesisState(const InputType &input) const; 00029 00030 virtual FFState* Evaluate( 00031 const Hypothesis& cur_hypo, 00032 const FFState* prev_state, 00033 ScoreComponentCollection* accumulator) const; 00034 00035 virtual FFState* EvaluateChart( 00036 const ChartHypothesis&, 00037 int /* featureID */, 00038 ScoreComponentCollection*) const { 00039 CHECK(0); // feature function not valid in chart decoder 00040 return NULL; 00041 } 00042 }; 00043 00047 class WordPenaltyProducer : public StatelessFeatureFunction 00048 { 00049 public: 00050 WordPenaltyProducer(ScoreIndexManager &scoreIndexManager); 00051 00052 size_t GetNumScoreComponents() const; 00053 std::string GetScoreProducerDescription(unsigned) const; 00054 std::string GetScoreProducerWeightShortName(unsigned) const; 00055 size_t GetNumInputScores() const; 00056 00057 virtual void Evaluate( 00058 const TargetPhrase& phrase, 00059 ScoreComponentCollection* out) const; 00060 }; 00061 00063 class UnknownWordPenaltyProducer : public StatelessFeatureFunction 00064 { 00065 public: 00066 UnknownWordPenaltyProducer(ScoreIndexManager &scoreIndexManager); 00067 00068 size_t GetNumScoreComponents() const; 00069 std::string GetScoreProducerDescription(unsigned) const; 00070 std::string GetScoreProducerWeightShortName(unsigned) const; 00071 size_t GetNumInputScores() const; 00072 00073 virtual bool ComputeValueInTranslationOption() const; 00074 00075 }; 00076 00077 } 00078 00079 #endif
1.5.9