00001 #pragma once
00002
00003 #include "InputFeature.h"
00004 #include "StatelessFeatureFunction.h"
00005
00006 namespace Moses
00007 {
00008
00009
00010 class InputFeature : public StatelessFeatureFunction
00011 {
00012 protected:
00013 static InputFeature *s_instance;
00014
00015 size_t m_numInputScores;
00016 size_t m_numRealWordCount;
00017 bool m_legacy;
00018
00019 public:
00020 static const InputFeature *InstancePtr() {
00021 return s_instance;
00022 }
00023
00024 InputFeature(const std::string &line);
00025
00026 void Load(AllOptions::ptr const& opts);
00027
00028 void SetParameter(const std::string& key, const std::string& value);
00029
00030 bool IsUseable(const FactorMask &mask) const {
00031 return true;
00032 }
00033
00034 size_t GetNumInputScores() const {
00035 return m_numInputScores;
00036 }
00037 size_t GetNumRealWordsInInput() const {
00038 return m_numRealWordCount;
00039 }
00040
00041 void EvaluateInIsolation(const Phrase &source
00042 , const TargetPhrase &targetPhrase
00043 , ScoreComponentCollection &scoreBreakdown
00044 , ScoreComponentCollection &estimatedScores) const {
00045 }
00046
00047 void EvaluateWithSourceContext(const InputType &input
00048 , const InputPath &inputPath
00049 , const TargetPhrase &targetPhrase
00050 , const StackVec *stackVec
00051 , ScoreComponentCollection &scoreBreakdown
00052 , ScoreComponentCollection *estimatedScores = NULL) const;
00053
00054 void EvaluateTranslationOptionListWithSourceContext(const InputType &input
00055 , const TranslationOptionList &translationOptionList) const {
00056 }
00057
00058 void EvaluateWhenApplied(const Hypothesis& hypo,
00059 ScoreComponentCollection* accumulator) const {
00060 }
00061 void EvaluateWhenApplied(const ChartHypothesis &hypo,
00062 ScoreComponentCollection* accumulator) const {
00063 }
00064
00065
00066 };
00067
00068
00069 }
00070