00001 #pragma once
00002
00003 #include <string>
00004 #include "VWFeatureBase.h"
00005 #include "moses/InputType.h"
00006
00007 namespace Moses
00008 {
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 class VWFeatureSource : public VWFeatureBase
00019 {
00020 public:
00021 VWFeatureSource(const std::string &line)
00022 : VWFeatureBase(line, vwft_source) {
00023 }
00024
00025
00026
00027 virtual void operator()(const InputType &input
00028 , const TargetPhrase &targetPhrase
00029 , Discriminative::Classifier &classifier
00030 , Discriminative::FeatureVector &outFeatures) const {
00031 }
00032
00033 virtual void operator()(const InputType &input
00034 , const Phrase &contextPhrase
00035 , const AlignmentInfo &alignmentInfo
00036 , Discriminative::Classifier &classifier
00037 , Discriminative::FeatureVector &outFeatures) const {
00038 }
00039
00040 virtual void SetParameter(const std::string& key, const std::string& value) {
00041 VWFeatureBase::SetParameter(key, value);
00042 }
00043
00044 protected:
00045 inline std::string GetWord(const InputType &input, size_t pos) const {
00046 return input.GetWord(pos).GetString(m_sourceFactors, false);
00047 }
00048 };
00049
00050 }