00001 #include "ChartTranslationOptions.h" 00002 #include "InputType.h" 00003 #include "InputPath.h" 00004 00005 namespace Moses 00006 { 00007 ChartTranslationOption::ChartTranslationOption(const TargetPhrase &targetPhrase) 00008 :m_targetPhrase(targetPhrase) 00009 ,m_scoreBreakdown(targetPhrase.GetScoreBreakdown()) 00010 { 00011 } 00012 00013 void ChartTranslationOption::EvaluateWithSourceContext(const InputType &input, 00014 const InputPath &inputPath, 00015 const StackVec &stackVec) 00016 { 00017 const std::vector<FeatureFunction*> &ffs = FeatureFunction::GetFeatureFunctions(); 00018 00019 for (size_t i = 0; i < ffs.size(); ++i) { 00020 const FeatureFunction &ff = *ffs[i]; 00021 ff.EvaluateWithSourceContext(input, inputPath, m_targetPhrase, &stackVec, m_scoreBreakdown); 00022 } 00023 } 00024 00025 00026 std::ostream& operator<<(std::ostream &out, const ChartTranslationOption &transOpt) 00027 { 00028 out << transOpt.m_targetPhrase << " " << transOpt.m_scoreBreakdown; 00029 return out; 00030 } 00031 00032 } 00033