From ba74af911877726a346e7f5f570fe20de5117253 Mon Sep 17 00:00:00 2001 From: Chris Dyer Date: Mon, 16 Apr 2012 22:43:29 -0400 Subject: global features --- rst_parser/global_ff.cc | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 rst_parser/global_ff.cc (limited to 'rst_parser/global_ff.cc') diff --git a/rst_parser/global_ff.cc b/rst_parser/global_ff.cc new file mode 100644 index 00000000..bb715f18 --- /dev/null +++ b/rst_parser/global_ff.cc @@ -0,0 +1,43 @@ +#include "global_ff.h" + +#include + +#include "tdict.h" + +using namespace std; + +struct GFFImpl { + void PrepareForInput(const TaggedSentence& sentence) { + } + void Features(const TaggedSentence& sentence, + const EdgeSubset& tree, + SparseVector* feats) const { + const vector& words = sentence.words; + const vector& tags = sentence.pos; + const vector >& hms = tree.h_m_pairs; + assert(words.size() == tags.size()); + vector mods(words.size()); + for (int i = 0; i < hms.size(); ++i) { + mods[hms[i].first]++; // first = head, second = modifier + } + for (int i = 0; i < mods.size(); ++i) { + ostringstream os; + os << "NM:" << TD::Convert(tags[i]) << "_" << mods[i]; + feats->add_value(FD::Convert(os.str()), 1.0); + } + } +}; + +GlobalFeatureFunctions::GlobalFeatureFunctions() {} +GlobalFeatureFunctions::~GlobalFeatureFunctions() { delete pimpl; } + +void GlobalFeatureFunctions::PrepareForInput(const TaggedSentence& sentence) { + pimpl->PrepareForInput(sentence); +} + +void GlobalFeatureFunctions::Features(const TaggedSentence& sentence, + const EdgeSubset& tree, + SparseVector* feats) const { + pimpl->Features(sentence, tree, feats); +} + -- cgit v1.2.3 From 467175c2f4aaf35720c25220dd45f8b8f2221682 Mon Sep 17 00:00:00 2001 From: Guest_account Guest_account prguest11 Date: Wed, 18 Apr 2012 18:08:10 +0100 Subject: fix mem alloc --- rst_parser/global_ff.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'rst_parser/global_ff.cc') diff --git a/rst_parser/global_ff.cc b/rst_parser/global_ff.cc index bb715f18..a7db977d 100644 --- a/rst_parser/global_ff.cc +++ b/rst_parser/global_ff.cc @@ -28,7 +28,7 @@ struct GFFImpl { } }; -GlobalFeatureFunctions::GlobalFeatureFunctions() {} +GlobalFeatureFunctions::GlobalFeatureFunctions() : pimpl(new GFFImpl) {} GlobalFeatureFunctions::~GlobalFeatureFunctions() { delete pimpl; } void GlobalFeatureFunctions::PrepareForInput(const TaggedSentence& sentence) { -- cgit v1.2.3 From 4dfe96758c5190d2550434d3a0857853c4ef2612 Mon Sep 17 00:00:00 2001 From: Chris Dyer Date: Thu, 19 Apr 2012 14:45:27 -0400 Subject: fix includes --- rst_parser/global_ff.cc | 1 + 1 file changed, 1 insertion(+) (limited to 'rst_parser/global_ff.cc') diff --git a/rst_parser/global_ff.cc b/rst_parser/global_ff.cc index a7db977d..ae410875 100644 --- a/rst_parser/global_ff.cc +++ b/rst_parser/global_ff.cc @@ -1,6 +1,7 @@ #include "global_ff.h" #include +#include #include "tdict.h" -- cgit v1.2.3