diff options
Diffstat (limited to 'decoder/cdec_ff.cc')
-rw-r--r-- | decoder/cdec_ff.cc | 54 |
1 files changed, 29 insertions, 25 deletions
diff --git a/decoder/cdec_ff.cc b/decoder/cdec_ff.cc index fc64e5c4..39f018e1 100644 --- a/decoder/cdec_ff.cc +++ b/decoder/cdec_ff.cc @@ -10,35 +10,39 @@ #include "ff_bleu.h" #include "ff_lm_fsa.h" #include "ff_sample_fsa.h" - -boost::shared_ptr<FFRegistry> global_ff_registry; +#include "ff_register.h" void register_feature_functions() { - global_ff_registry->Register(new FFFactory<LanguageModel>); - global_ff_registry->Register(new FFFactory<FeatureFunctionFromFsa<LanguageModelFsa> >); // same as LM but using fsa wrapper + RegisterFF<LanguageModel>(); + RegisterFsaImpl<LanguageModelFsa>(true,false); // same as LM but using fsa wrapper + + RegisterFF<WordPenalty>(); + RegisterFF<SourceWordPenalty>(); + RegisterFF<ArityPenalty>(); + RegisterFF<BLEUModel>(); - global_ff_registry->Register(new FFFactory<WordPenaltyFromFsa>); // same as WordPenalty, but implemented using ff_fsa - global_ff_registry->Register(new FFFactory<FeatureFunctionFromFsa<LongerThanPrev> >); - global_ff_registry->Register(new FFFactory<FeatureFunctionFromFsa<ShorterThanPrev> >); + //TODO: worthless example target FSA ffs. remove later + ff_registry.Register(new FFFactory<WordPenaltyFromFsa>); // same as WordPenalty, but implemented using ff_fsa + ff_registry.Register(new FFFactory<FeatureFunctionFromFsa<SameFirstLetter> >); + ff_registry.Register(new FFFactory<FeatureFunctionFromFsa<LongerThanPrev> >); + ff_registry.Register(new FFFactory<FeatureFunctionFromFsa<ShorterThanPrev> >); - //TODO: use for all features the new Register which requires usage(...) + //TODO: use for all features the new Register which requires static FF::usage(false,false) give name #ifdef HAVE_RANDLM - global_ff_registry->Register("RandLM", new FFFactory<LanguageModelRandLM>); + ff_registry.Register("RandLM", new FFFactory<LanguageModelRandLM>); #endif - global_ff_registry->Register(new FFFactory<WordPenalty>); - global_ff_registry->Register(new FFFactory<SourceWordPenalty>); - global_ff_registry->Register(new FFFactory<ArityPenalty>); - global_ff_registry->Register(new FFFactory<BLEUModel>); - global_ff_registry->Register("RuleShape", new FFFactory<RuleShapeFeatures>); - global_ff_registry->Register("RelativeSentencePosition", new FFFactory<RelativeSentencePosition>); - global_ff_registry->Register("Model2BinaryFeatures", new FFFactory<Model2BinaryFeatures>); - global_ff_registry->Register("MarkovJump", new FFFactory<MarkovJump>); - global_ff_registry->Register("MarkovJumpFClass", new FFFactory<MarkovJumpFClass>); - global_ff_registry->Register("SourcePOSBigram", new FFFactory<SourcePOSBigram>); - global_ff_registry->Register("BlunsomSynchronousParseHack", new FFFactory<BlunsomSynchronousParseHack>); - global_ff_registry->Register("AlignerResults", new FFFactory<AlignerResults>); - global_ff_registry->Register("CSplit_BasicFeatures", new FFFactory<BasicCSplitFeatures>); - global_ff_registry->Register("CSplit_ReverseCharLM", new FFFactory<ReverseCharLMCSplitFeature>); - global_ff_registry->Register("Tagger_BigramIdentity", new FFFactory<Tagger_BigramIdentity>); - global_ff_registry->Register("LexicalPairIdentity", new FFFactory<LexicalPairIdentity>); + ff_registry.Register("RuleShape", new FFFactory<RuleShapeFeatures>); + ff_registry.Register("RelativeSentencePosition", new FFFactory<RelativeSentencePosition>); + ff_registry.Register("Model2BinaryFeatures", new FFFactory<Model2BinaryFeatures>); + ff_registry.Register("MarkovJump", new FFFactory<MarkovJump>); + ff_registry.Register("MarkovJumpFClass", new FFFactory<MarkovJumpFClass>); + ff_registry.Register("SourcePOSBigram", new FFFactory<SourcePOSBigram>); + ff_registry.Register("BlunsomSynchronousParseHack", new FFFactory<BlunsomSynchronousParseHack>); + ff_registry.Register("AlignerResults", new FFFactory<AlignerResults>); + ff_registry.Register("CSplit_BasicFeatures", new FFFactory<BasicCSplitFeatures>); + ff_registry.Register("CSplit_ReverseCharLM", new FFFactory<ReverseCharLMCSplitFeature>); + ff_registry.Register("Tagger_BigramIdentity", new FFFactory<Tagger_BigramIdentity>); + ff_registry.Register("LexicalPairIdentity", new FFFactory<LexicalPairIdentity>); + } + |