summaryrefslogtreecommitdiff
path: root/decoder
diff options
context:
space:
mode:
Diffstat (limited to 'decoder')
-rw-r--r--decoder/cdec.cc2
-rwxr-xr-xdecoder/cfg.cc12
-rwxr-xr-xdecoder/cfg.h3
-rwxr-xr-xdecoder/cfg_binarize.h4
4 files changed, 16 insertions, 5 deletions
diff --git a/decoder/cdec.cc b/decoder/cdec.cc
index 0a02801e..b156c268 100644
--- a/decoder/cdec.cc
+++ b/decoder/cdec.cc
@@ -379,7 +379,7 @@ void maybe_prune(Hypergraph &forest,po::variables_map const& conf,string nbeam,s
}
forest.PruneInsideOutside(beam_prune,density_prune,pm,false,1,conf["promise_power"].as<double>());
if (!forestname.empty()) forestname=" "+forestname;
- forest_stats(forest," Pruned "+forestname+" forest",false,false,false);
+ forest_stats(forest," Pruned "+forestname+" forest",false,false,0,false);
cerr << " Pruned "<<forestname<<" forest portion of edges kept: "<<forest.edges_.size()/presize<<endl;
}
}
diff --git a/decoder/cfg.cc b/decoder/cfg.cc
index f51da9bf..c02f46ec 100755
--- a/decoder/cfg.cc
+++ b/decoder/cfg.cc
@@ -10,7 +10,7 @@
#include "show.h"
#define DUNIQ(x) x
-#define DBIN(x) x
+#define DBIN(x)
#define DSP(x) x
//SP:binarize by splitting.
#define DCFG(x) IF_CFG_DEBUG(x)
@@ -464,6 +464,8 @@ void CFG::BinarizeSplit(CFGBinarize const& b) {
void CFG::Binarize(CFGBinarize const& b) {
if (!b.Binarizing()) return;
cerr << "Binarizing "<<b<<endl;
+ if (b.bin_thresh>0)
+ BinarizeThresh(b);
if (b.bin_split)
BinarizeSplit(b);
if (b.bin_l2r)
@@ -473,6 +475,14 @@ void CFG::Binarize(CFGBinarize const& b) {
}
+namespace {
+}
+
+void CFG::BinarizeThresh(CFGBinarize const& b) {
+ throw runtime_error("TODO: some fancy linked list thing - see NOTES.partial.binarize");
+}
+
+
void CFG::BinarizeL2R(bool bin_unary,bool name) {
add_virtual_rules<BinRhs> v(*this,name);
cerr << "Binarizing left->right " << (bin_unary?"real to unary":"stop at binary") <<endl;
diff --git a/decoder/cfg.h b/decoder/cfg.h
index 5a418234..9be0926d 100755
--- a/decoder/cfg.h
+++ b/decoder/cfg.h
@@ -306,7 +306,8 @@ struct CFG {
void BinarizeL2R(bool bin_unary=false,bool name_nts=false);
void Binarize(CFGBinarize const& binarize_options); // see cfg_binarize.h for docs
- void BinarizeSplit(CFGBinarize const& binarize_options); // there may be many options affecting split.
+ void BinarizeSplit(CFGBinarize const& binarize_options);
+ void BinarizeThresh(CFGBinarize const& binarize_options); // maybe unbundle opts later
typedef std::vector<NT> NTs;
NTs nts;
diff --git a/decoder/cfg_binarize.h b/decoder/cfg_binarize.h
index 41eba11b..ae06f8bf 100755
--- a/decoder/cfg_binarize.h
+++ b/decoder/cfg_binarize.h
@@ -37,8 +37,8 @@ struct CFGBinarize {
}
void Validate() {
if (bin_thresh>0&&!bin_l2r) {
- std::cerr<<"\nWARNING: greedy binarization not yet supported; using l2r (right branching) instead.\n";
- bin_l2r=true;
+// std::cerr<<"\nWARNING: greedy binarization not yet supported; using l2r (right branching) instead.\n";
+// bin_l2r=true;
}
if (false && bin_l2r && bin_split) { // actually, split may be slightly incomplete due to finite number of passes.
std::cerr<<"\nWARNING: l2r and split are both complete binarization and redundant. Using split.\n";