00001 #pragma once 00002 00003 #include <string> 00004 #include <boost/unordered_set.hpp> 00005 #include "StatelessFeatureFunction.h" 00006 00007 namespace Moses 00008 { 00009 00010 class DeleteRules : public StatelessFeatureFunction 00011 { 00012 protected: 00013 std::string m_path; 00014 boost::unordered_set<size_t> m_ruleHashes; 00015 public: 00016 DeleteRules(const std::string &line); 00017 00018 void Load(AllOptions::ptr const& opts); 00019 00020 bool IsUseable(const FactorMask &mask) const { 00021 return true; 00022 } 00023 00024 void EvaluateInIsolation(const Phrase &source 00025 , const TargetPhrase &targetPhrase 00026 , ScoreComponentCollection &scoreBreakdown 00027 , ScoreComponentCollection &estimatedScores) const; 00028 void EvaluateWithSourceContext(const InputType &input 00029 , const InputPath &inputPath 00030 , const TargetPhrase &targetPhrase 00031 , const StackVec *stackVec 00032 , ScoreComponentCollection &scoreBreakdown 00033 , ScoreComponentCollection *estimatedScores = NULL) const; 00034 00035 void EvaluateTranslationOptionListWithSourceContext(const InputType &input 00036 , const TranslationOptionList &translationOptionList) const; 00037 00038 void EvaluateWhenApplied(const Hypothesis& hypo, 00039 ScoreComponentCollection* accumulator) const; 00040 void EvaluateWhenApplied(const ChartHypothesis &hypo, 00041 ScoreComponentCollection* accumulator) const; 00042 00043 00044 void SetParameter(const std::string& key, const std::string& value); 00045 00046 }; 00047 00048 } 00049