diff options
author | Chris Dyer <cdyer@cs.cmu.edu> | 2012-06-18 18:34:21 -0400 |
---|---|---|
committer | Chris Dyer <cdyer@cs.cmu.edu> | 2012-06-18 18:34:21 -0400 |
commit | c3fddf01ebfa8f523ab2d6bb2db5e2be1a929ee2 (patch) | |
tree | 39141cad98bd6801fea59a54c1d8841e0d509e31 /decoder/ff_context.h | |
parent | dbce625fffe2f052304bb85749809c0fbb2a9132 (diff) | |
parent | 38cd07c9dd59f513f1d5c8dd4c00d90df29807ef (diff) |
Merge branch 'master' of github.com:redpony/cdec
Diffstat (limited to 'decoder/ff_context.h')
-rw-r--r-- | decoder/ff_context.h | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/decoder/ff_context.h b/decoder/ff_context.h index 0d22b027..89bcb557 100644 --- a/decoder/ff_context.h +++ b/decoder/ff_context.h @@ -1,23 +1,46 @@ + #ifndef _FF_CONTEXT_H_ #define _FF_CONTEXT_H_ #include <vector> +#include <boost/xpressive/xpressive.hpp> #include "ff.h" +using namespace boost::xpressive; +using namespace std; + class RuleContextFeatures : public FeatureFunction { public: - RuleContextFeatures(const std::string& param); + RuleContextFeatures(const string& param); protected: virtual void TraversalFeaturesImpl(const SentenceMetadata& smeta, const Hypergraph::Edge& edge, - const std::vector<const void*>& ant_contexts, + const vector<const void*>& ant_contexts, SparseVector<double>* features, SparseVector<double>* estimated_features, void* context) const; virtual void PrepareForInput(const SentenceMetadata& smeta); + virtual void ParseArgs(const string& in); + virtual string Escape(const string& x) const; + virtual void ReplaceMacroWithString(string& feature_instance, + bool token_vs_label, + int relative_location, + const string& actual_token) const; + virtual void ReplaceTokenMacroWithString(string& feature_instance, + int relative_location, + const string& actual_token) const; + virtual void ReplaceLabelMacroWithString(string& feature_instance, + int relative_location, + const string& actual_token) const; + virtual void Error(const string&) const; + private: - std::vector<WordID> current_input; + vector<int> token_relative_locations, label_relative_locations; + string feature_template; + vector<WordID> current_input; WordID kSOS, kEOS; + sregex macro_regex; + }; #endif |