ZGen  0.2.0
a linearization system for natural language.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
span_factory.h
Go to the documentation of this file.
1 #ifndef __ZGEN_BESTFIRST_SEARCH_SPAN_FACTORY_H__
2 #define __ZGEN_BESTFIRST_SEARCH_SPAN_FACTORY_H__
3 
4 #include <vector>
5 #include "types/instance.h"
10 
11 namespace ZGen {
12 
13 namespace BestFirst {
14 
15 class SpanFactory {
16 public:
17  SpanFactory(const Knowledge::PostagConstrain* constrain,
18  SpanAllocator* allocator);
19 
27  void create_initial_spans_from_input(const dependency_t* input_ref,
28  std::vector<Span *>& spans);
29 
37  void create_spans_from_chart(const Span* span,
38  const SpanKMaxHeap* charts,
39  std::vector<Span *>& spans);
40 
49  const dependency_t* reference,
50  SpanSet& spans);
51 protected:
52 
56 
65  virtual bool legal_to_left_combine(const Span* head,
66  const Span* modifier) const;
67 
77  virtual bool legal_to_right_combine(const Span* head,
78  const Span* modifier) const;
79 private:
80  typedef std::vector<int> edges_t;
81 
82 private:
93  Span* create_gold_spans_from_reference_travel(int now,
94  const dependency_t* input,
95  const dependency_t* reference,
96  const std::vector< edges_t>& left_modifiers_tree,
97  const std::vector< edges_t>& right_modifiers_tree,
98  SpanSet& spans);
99 
100 private:
101  SpanAllocator* allocator;
102  const Knowledge::PostagConstrain* constrain;
103 };
104 
105 } // end for namespace Bestfirst
106 
107 } // end for namespace ZGen
108 
109 #endif // end for __ZGEN_BESTFIRST_SEARCH_SPAN_FACTORY_H__
void create_gold_spans_from_reference(const dependency_t *input, const dependency_t *reference, SpanSet &spans)
Definition: span_factory.cc:86
virtual bool legal_to_left_combine(const Span *head, const Span *modifier) const
Definition: span_factory.cc:186
SpanFactory(const Knowledge::PostagConstrain *constrain, SpanAllocator *allocator)
Definition: span_factory.cc:15
boost::unordered_set< Span *, SpanPtrHash, SpanPtrEqual > SpanSet
Definition: span_types.h:12
Definition: instance.h:18
Definition: postag_constrain.h:14
void create_spans_from_chart(const Span *span, const SpanKMaxHeap *charts, std::vector< Span * > &spans)
Definition: span_factory.cc:47
virtual bool legal_to_right_combine(const Span *head, const Span *modifier) const
Definition: span_factory.cc:195
Definition: span_allocator.h:27
Definition: span_types.h:18
Definition: span.h:13
Definition: span_factory.h:15
void create_initial_spans_from_input(const dependency_t *input_ref, std::vector< Span * > &spans)
Definition: span_factory.cc:22