00001 #include <vector>
00002 #include "ExampleStatelessFF.h"
00003 #include "moses/ScoreComponentCollection.h"
00004 #include "moses/TargetPhrase.h"
00005
00006 using namespace std;
00007
00008 namespace Moses
00009 {
00010 ExampleStatelessFF::ExampleStatelessFF(const std::string &line)
00011 :StatelessFeatureFunction(2, line)
00012 {
00013 ReadParameters();
00014 }
00015
00016 void ExampleStatelessFF::EvaluateInIsolation(const Phrase &source
00017 , const TargetPhrase &targetPhrase
00018 , ScoreComponentCollection &scoreBreakdown
00019 , ScoreComponentCollection &estimatedScores) const
00020 {
00021
00022 vector<float> newScores(m_numScoreComponents);
00023 newScores[0] = 1.5;
00024 newScores[1] = 0.3;
00025 scoreBreakdown.PlusEquals(this, newScores);
00026
00027
00028 scoreBreakdown.PlusEquals(this, "sparse-name", 2.4);
00029
00030 }
00031
00032 void ExampleStatelessFF::EvaluateWithSourceContext(const InputType &input
00033 , const InputPath &inputPath
00034 , const TargetPhrase &targetPhrase
00035 , const StackVec *stackVec
00036 , ScoreComponentCollection &scoreBreakdown
00037 , ScoreComponentCollection *estimatedScores) const
00038 {
00039 if (targetPhrase.GetNumNonTerminals()) {
00040 vector<float> newScores(m_numScoreComponents);
00041 newScores[0] = - std::numeric_limits<float>::infinity();
00042 scoreBreakdown.PlusEquals(this, newScores);
00043 }
00044 }
00045
00046 void ExampleStatelessFF::EvaluateTranslationOptionListWithSourceContext(const InputType &input
00047
00048 , const TranslationOptionList &translationOptionList) const
00049 {}
00050
00051 void ExampleStatelessFF::EvaluateWhenApplied(const Hypothesis& hypo,
00052 ScoreComponentCollection* accumulator) const
00053 {}
00054
00055 void ExampleStatelessFF::EvaluateWhenApplied(const ChartHypothesis &hypo,
00056 ScoreComponentCollection* accumulator) const
00057 {}
00058
00059 void ExampleStatelessFF::SetParameter(const std::string& key, const std::string& value)
00060 {
00061 if (key == "arg") {
00062
00063 } else {
00064 StatelessFeatureFunction::SetParameter(key, value);
00065 }
00066 }
00067
00068 }
00069