diff options
author | Patrick Simianer <p@simianer.de> | 2015-01-19 14:39:14 +0100 |
---|---|---|
committer | Patrick Simianer <p@simianer.de> | 2015-01-19 14:39:14 +0100 |
commit | 0673fb55c6af8bc94c9f3e577c514160faf736d3 (patch) | |
tree | ff4edd0e1e816f4d412601689ab510b2d0aaccf7 /decoder/rescore_translator.cc | |
parent | cb9fb7088dde35881516c088db402abe747d49fa (diff) | |
parent | 1bce604809399a0adc581fb0102bff11decf3436 (diff) |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'decoder/rescore_translator.cc')
-rw-r--r-- | decoder/rescore_translator.cc | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/decoder/rescore_translator.cc b/decoder/rescore_translator.cc index 18c83c56..2c5fa9c4 100644 --- a/decoder/rescore_translator.cc +++ b/decoder/rescore_translator.cc @@ -3,6 +3,7 @@ #include <sstream> #include <boost/shared_ptr.hpp> +#include "filelib.h" #include "sentence_metadata.h" #include "hg.h" #include "hg_io.h" @@ -20,16 +21,18 @@ struct RescoreTranslatorImpl { bool Translate(const string& input, const vector<double>& weights, Hypergraph* forest) { - if (input == "{}") return false; - if (input.find("{\"rules\"") == 0) { - istringstream is(input); - Hypergraph src_cfg_hg; - if (!HypergraphIO::ReadFromJSON(&is, forest)) { - cerr << "Parse error while reading HG from JSON.\n"; - abort(); - } - } else { - cerr << "Can only read HG input from JSON: use training/grammar_convert\n"; + istringstream is(input); + string header, fname; + is >> header >> fname; + if (header != "::forest::") { + cerr << "RescoreTranslator: expected input lines of form ::forest:: filename.gz\n"; + abort(); + } + ReadFile rf(fname); + if (!rf) { cerr << "Can't read " << fname << endl; abort(); } + Hypergraph src_cfg_hg; + if (!HypergraphIO::ReadFromBinary(rf.stream(), forest)) { + cerr << "Parse error while reading HG.\n"; abort(); } Hypergraph::TailNodeVector tail(1, forest->nodes_.size() - 1); |