ZGen  0.2.0
a linearization system for natural language.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
decoder.h
Go to the documentation of this file.
1 #ifndef __ZGEN_SHIFTREDUCE_DECODER_H__
2 #define __ZGEN_SHIFTREDUCE_DECODER_H__
3 
4 #include <iostream>
6 #include "shiftreduce/option.h"
11 
12 namespace ZGen {
13 namespace ShiftReduce {
14 
15 class Decoder {
16 public:
17  Decoder(const option_t& opts,
19  Model* model,
20  const Knowledge::PostagConstrain* constrain);
21  ~Decoder();
22 public:
23  typedef std::pair<const StateItem*, const StateItem*> decode_result_t;
24 
33  decode_result_t decode(const dependency_t* input,
34  const action_sequence_t& gold_actions);
35 
36 protected:
43  virtual void get_possible_actions(const StateItem& item) = 0;
44 
50  virtual void config_input(const dependency_t* input) = 0;
51 
61  void get_possible_shift_actions(const StateItem& item,
62  int index, word_t word, postag_t postag);
63 
65  const option_t& opts;
70 
79 private:
86  void score_possible_actions(const StateItem& item);
87 
96  int extend_candidate_transition(const scored_transition_t& trans,
97  int current_beam_size);
98 
102  void clear_candidate_transition();
103 
113  void transit(const StateItem& from, const action_t& act,
114  floatval_t score, StateItem* to);
115 
129  const StateItem* search_correct_state(const action_t& act,
130  const StateItem* previous_correct_state,
131  StateItem* begin, StateItem* end);
132 
140  const StateItem* search_best_state(const StateItem* begin,
141  const StateItem* end);
142 };
143 
144 } // end for namespace ShiftReduce
145 } // end for namespace ZGen
146 
147 #endif // end for __ZGEN_SHIFTREDUCE_DECODER_H__
packed_score_t packed_score
The cached packed score for transition.
Definition: decoder.h:74
boost::tuples::tuple< const StateItem *, action_t, floatval_t > scored_transition_t
Definition: internal_types.h:15
const option_t & opts
The options.
Definition: decoder.h:65
std::vector< action_t > action_sequence_t
a list of actions;
Definition: internal_types.h:13
const Knowledge::PostagConstrain * constraint
The postag constraints.
Definition: decoder.h:78
Definition: state.h:15
Definition: option.h:10
~Decoder()
Definition: decoder.cc:29
Definition: model.h:12
Definition: action.h:18
DecodeContext * ctx
The decode context.
Definition: decoder.h:69
int word_t
Definition: instance.h:11
decode_result_t decode(const dependency_t *input, const action_sequence_t &gold_actions)
Definition: decoder.cc:173
Definition: instance.h:18
Definition: postag_constrain.h:14
Definition: decoder.h:15
Used to maintain the memory cache used by the decoder.
Definition: decode_context.h:9
Decoder(const option_t &opts, DecodeContext *ctx, Model *model, const Knowledge::PostagConstrain *constrain)
Definition: decoder.cc:19
double floatval_t
Definition: settings.h:24
const int kMaxBeamSize
Definition: settings.h:8
std::pair< const StateItem *, const StateItem * > decode_result_t
Definition: decoder.h:23
action_sequence_t possible_actions
The cached possible actions.
Definition: decoder.h:72
void get_possible_shift_actions(const StateItem &item, int index, word_t word, postag_t postag)
Definition: decoder.cc:33
virtual void get_possible_actions(const StateItem &item)=0
Model * model
The model.
Definition: decoder.h:67
int postag_t
Definition: instance.h:12
boost::unordered_map< action_t, floatval_t > packed_score_t
also a list of actions;
Definition: internal_types.h:14
virtual void config_input(const dependency_t *input)=0
scored_transition_t candidate_transitions[kMaxBeamSize]
The candidate state tuple: (from state, action, score)
Definition: decoder.h:76