00001 #pragma once 00002 00003 #include <string> 00004 #include <limits> 00005 #include <boost/unordered_map.hpp> 00006 #include "StatelessFeatureFunction.h" 00007 #include "moses/Factor.h" 00008 00009 namespace Moses 00010 { 00011 00012 class RulePairUnlexicalizedSource : public StatelessFeatureFunction 00013 { 00014 public: 00015 00016 RulePairUnlexicalizedSource(const std::string &line); 00017 00018 bool IsUseable(const FactorMask &mask) const { 00019 return true; 00020 } 00021 00022 void SetParameter(const std::string& key, const std::string& value); 00023 00024 void EvaluateInIsolation(const Phrase &source 00025 , const TargetPhrase &targetPhrase 00026 , ScoreComponentCollection &scoreBreakdown 00027 , ScoreComponentCollection &estimatedScores) const; 00028 00029 void EvaluateWithSourceContext(const InputType &input 00030 , const InputPath &inputPath 00031 , const TargetPhrase &targetPhrase 00032 , const StackVec *stackVec 00033 , ScoreComponentCollection &scoreBreakdown 00034 , ScoreComponentCollection *estimatedScores = NULL) const 00035 {} 00036 00037 void EvaluateTranslationOptionListWithSourceContext(const InputType &input 00038 , const TranslationOptionList &translationOptionList) const 00039 {} 00040 00041 void EvaluateWhenApplied( 00042 const Hypothesis& cur_hypo, 00043 ScoreComponentCollection* accumulator) const 00044 {} 00045 00046 void EvaluateWhenApplied( 00047 const ChartHypothesis& cur_hypo, 00048 ScoreComponentCollection* accumulator) const 00049 {} 00050 00051 protected: 00052 00053 bool m_glueRules; 00054 bool m_nonGlueRules; 00055 std::string m_glueTargetLHSStr; 00056 const Factor* m_glueTargetLHS; 00057 }; 00058 00059 00060 } 00061