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