From 9db822ad9f2e25d88520e1c61b20052e7dfca6ca Mon Sep 17 00:00:00 2001 From: graehl Date: Sat, 7 Aug 2010 00:07:45 +0000 Subject: dynamic fsa ff, factory for fsa and ff shares code, factory moved to ff_factory.cc git-svn-id: https://ws10smt.googlecode.com/svn/trunk@483 ec762483-ff6d-05da-a07a-a48fb63a330f --- decoder/cdec_ff.cc | 54 +++++++++++++++++++++++++++++------------------------- 1 file changed, 29 insertions(+), 25 deletions(-) (limited to 'decoder/cdec_ff.cc') 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 global_ff_registry; +#include "ff_register.h" void register_feature_functions() { - global_ff_registry->Register(new FFFactory); - global_ff_registry->Register(new FFFactory >); // same as LM but using fsa wrapper + RegisterFF(); + RegisterFsaImpl(true,false); // same as LM but using fsa wrapper + + RegisterFF(); + RegisterFF(); + RegisterFF(); + RegisterFF(); - global_ff_registry->Register(new FFFactory); // same as WordPenalty, but implemented using ff_fsa - global_ff_registry->Register(new FFFactory >); - global_ff_registry->Register(new FFFactory >); + //TODO: worthless example target FSA ffs. remove later + ff_registry.Register(new FFFactory); // same as WordPenalty, but implemented using ff_fsa + ff_registry.Register(new FFFactory >); + ff_registry.Register(new FFFactory >); + ff_registry.Register(new FFFactory >); - //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); + ff_registry.Register("RandLM", new FFFactory); #endif - global_ff_registry->Register(new FFFactory); - global_ff_registry->Register(new FFFactory); - global_ff_registry->Register(new FFFactory); - global_ff_registry->Register(new FFFactory); - global_ff_registry->Register("RuleShape", new FFFactory); - global_ff_registry->Register("RelativeSentencePosition", new FFFactory); - global_ff_registry->Register("Model2BinaryFeatures", new FFFactory); - global_ff_registry->Register("MarkovJump", new FFFactory); - global_ff_registry->Register("MarkovJumpFClass", new FFFactory); - global_ff_registry->Register("SourcePOSBigram", new FFFactory); - global_ff_registry->Register("BlunsomSynchronousParseHack", new FFFactory); - global_ff_registry->Register("AlignerResults", new FFFactory); - global_ff_registry->Register("CSplit_BasicFeatures", new FFFactory); - global_ff_registry->Register("CSplit_ReverseCharLM", new FFFactory); - global_ff_registry->Register("Tagger_BigramIdentity", new FFFactory); - global_ff_registry->Register("LexicalPairIdentity", new FFFactory); + ff_registry.Register("RuleShape", new FFFactory); + ff_registry.Register("RelativeSentencePosition", new FFFactory); + ff_registry.Register("Model2BinaryFeatures", new FFFactory); + ff_registry.Register("MarkovJump", new FFFactory); + ff_registry.Register("MarkovJumpFClass", new FFFactory); + ff_registry.Register("SourcePOSBigram", new FFFactory); + ff_registry.Register("BlunsomSynchronousParseHack", new FFFactory); + ff_registry.Register("AlignerResults", new FFFactory); + ff_registry.Register("CSplit_BasicFeatures", new FFFactory); + ff_registry.Register("CSplit_ReverseCharLM", new FFFactory); + ff_registry.Register("Tagger_BigramIdentity", new FFFactory); + ff_registry.Register("LexicalPairIdentity", new FFFactory); + } + -- cgit v1.2.3