summaryrefslogtreecommitdiff
path: root/extractor/grammar.cc
diff options
context:
space:
mode:
authorPaul Baltescu <pauldb89@gmail.com>2013-02-14 23:17:15 +0000
committerPaul Baltescu <pauldb89@gmail.com>2013-02-14 23:17:15 +0000
commit9a026ba2db8fa7723374109e6a4a8dcaff8733cd (patch)
tree34a60703a53ada76e7213da5940e86d6f476f1e4 /extractor/grammar.cc
parent252fb164c208ec8f3005f8a652eb3b48c0644e3d (diff)
Working version of the grammar extractor.
Diffstat (limited to 'extractor/grammar.cc')
-rw-r--r--extractor/grammar.cc19
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) {