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