00001 #ifndef moses_EditOps_h 00002 #define moses_EditOps_h 00003 00004 #include <string> 00005 #include <boost/unordered_set.hpp> 00006 00007 #include "StatelessFeatureFunction.h" 00008 #include "moses/FactorCollection.h" 00009 #include "moses/AlignmentInfo.h" 00010 00011 namespace Moses 00012 { 00013 00014 typedef std::vector<std::string> Tokens; 00015 00020 class EditOps : public StatelessFeatureFunction 00021 { 00022 private: 00023 FactorType m_factorType; 00024 bool m_chars; 00025 std::string m_scores; 00026 00027 public: 00028 EditOps(const std::string &line); 00029 00030 bool IsUseable(const FactorMask &mask) const; 00031 00032 void Load(); 00033 00034 virtual void EvaluateInIsolation(const Phrase &source 00035 , const TargetPhrase &targetPhrase 00036 , ScoreComponentCollection &scoreBreakdown 00037 , ScoreComponentCollection &estimatedFutureScore) const; 00038 00039 void EvaluateWithSourceContext(const InputType &input 00040 , const InputPath &inputPath 00041 , const TargetPhrase &targetPhrase 00042 , const StackVec *stackVec 00043 , ScoreComponentCollection &scoreBreakdown 00044 , ScoreComponentCollection *estimatedFutureScore = NULL) const 00045 {} 00046 void EvaluateWhenApplied(const Hypothesis& hypo, 00047 ScoreComponentCollection* accumulator) const 00048 {} 00049 void EvaluateWhenApplied(const ChartHypothesis &hypo, 00050 ScoreComponentCollection* accumulator) const 00051 {} 00052 void EvaluateTranslationOptionListWithSourceContext(const InputType &input 00053 , const TranslationOptionList &translationOptionList) const 00054 {} 00055 00056 void ComputeFeatures(const Phrase &source, 00057 const TargetPhrase& targetPhrase, 00058 ScoreComponentCollection* accumulator) const; 00059 void SetParameter(const std::string& key, const std::string& value); 00060 }; 00061 00062 } 00063 00064 #endif // moses_CorrectionPattern_h