00001 #pragma once 00002 00003 #include <string> 00004 #include "VWFeatureTarget.h" 00005 00006 namespace Moses 00007 { 00008 00009 class VWFeatureTargetBigrams : public VWFeatureTarget 00010 { 00011 public: 00012 VWFeatureTargetBigrams(const std::string &line) 00013 : VWFeatureTarget(line) { 00014 ReadParameters(); 00015 00016 VWFeatureBase::UpdateRegister(); 00017 } 00018 00019 void operator()(const InputType &input 00020 , const TargetPhrase &targetPhrase 00021 , Discriminative::Classifier &classifier 00022 , Discriminative::FeatureVector &outFeatures) const { 00023 for (size_t i = 1; i < targetPhrase.GetSize(); i++) { 00024 outFeatures.push_back(classifier.AddLabelDependentFeature("tbigram^" + GetWord(targetPhrase, i - 1) + "^" + GetWord(targetPhrase, i))); 00025 } 00026 } 00027 00028 virtual void SetParameter(const std::string& key, const std::string& value) { 00029 VWFeatureTarget::SetParameter(key, value); 00030 } 00031 }; 00032 00033 }