diff options
author | Chris Dyer <cdyer@cs.cmu.edu> | 2012-04-15 17:28:08 -0400 |
---|---|---|
committer | Chris Dyer <cdyer@cs.cmu.edu> | 2012-04-15 17:28:08 -0400 |
commit | 8d51973c21337a1633e559cd09a649265600cc4c (patch) | |
tree | 43b212e2a577d49ddee43b32aa3ef391de4cc1a6 /rst_parser/arc_ff.h | |
parent | c22e9248a1fa24b0255a55d21afb94a9ed3ddc22 (diff) |
crf training of arc-factored dep parser
Diffstat (limited to 'rst_parser/arc_ff.h')
-rw-r--r-- | rst_parser/arc_ff.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/rst_parser/arc_ff.h b/rst_parser/arc_ff.h new file mode 100644 index 00000000..bc51fef4 --- /dev/null +++ b/rst_parser/arc_ff.h @@ -0,0 +1,43 @@ +#ifndef _ARC_FF_H_ +#define _ARC_FF_H_ + +#include <string> +#include "sparse_vector.h" +#include "weights.h" +#include "arc_factored.h" + +struct TaggedSentence; +class ArcFeatureFunction { + public: + virtual ~ArcFeatureFunction(); + + // called once, per input, before any calls to EdgeFeatures + // used to initialize sentence-specific data structures + virtual void PrepareForInput(const TaggedSentence& sentence); + + inline void EgdeFeatures(const TaggedSentence& sentence, + short h, + short m, + SparseVector<weight_t>* features) const { + EdgeFeaturesImpl(sentence, h, m, features); + } + protected: + virtual void EdgeFeaturesImpl(const TaggedSentence& sentence, + short h, + short m, + SparseVector<weight_t>* features) const = 0; +}; + +class DistancePenalty : public ArcFeatureFunction { + public: + DistancePenalty(const std::string& param); + protected: + virtual void EdgeFeaturesImpl(const TaggedSentence& sentence, + short h, + short m, + SparseVector<weight_t>* features) const; + private: + const int fidw_, fidr_; +}; + +#endif |