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