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