diff options
Diffstat (limited to 'extractor/grammar.cc')
| -rw-r--r-- | extractor/grammar.cc | 19 | 
1 files changed, 17 insertions, 2 deletions
diff --git a/extractor/grammar.cc b/extractor/grammar.cc index 79a0541d..8124a804 100644 --- a/extractor/grammar.cc +++ b/extractor/grammar.cc @@ -1,17 +1,32 @@  #include "grammar.h" +#include <iomanip> +  #include "rule.h" +using namespace std; +  Grammar::Grammar(const vector<Rule>& rules,                   const vector<string>& feature_names) :    rules(rules), feature_names(feature_names) {} +vector<Rule> Grammar::GetRules() const { +  return rules; +} + +vector<string> Grammar::GetFeatureNames() const { +  return feature_names; +} +  ostream& operator<<(ostream& os, const Grammar& grammar) { -  for (Rule rule: grammar.rules) { +  vector<Rule> rules = grammar.GetRules(); +  vector<string> feature_names = grammar.GetFeatureNames(); +  os << setprecision(12); +  for (Rule rule: rules) {      os << "[X] ||| " << rule.source_phrase << " ||| "                       << rule.target_phrase << " |||";      for (size_t i = 0; i < rule.scores.size(); ++i) { -      os << " " << grammar.feature_names[i] << "=" << rule.scores[i]; +      os << " " << feature_names[i] << "=" << rule.scores[i];      }      os << " |||";      for (auto link: rule.alignment) {  | 
