summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--decoder/ff_klm.cc14
1 files changed, 9 insertions, 5 deletions
diff --git a/decoder/ff_klm.cc b/decoder/ff_klm.cc
index 35b35d36..a3bd0c5f 100644
--- a/decoder/ff_klm.cc
+++ b/decoder/ff_klm.cc
@@ -282,11 +282,10 @@ class KLanguageModelImpl {
KLanguageModelImpl(const string& filename, const string& mapfile, bool explicit_markers) :
kCDEC_UNK(TD::Convert("<unk>")) ,
add_sos_eos_(!explicit_markers) {
- if (true) {
- boost::scoped_ptr<lm::ngram::EnumerateVocab> vm;
- vm.reset(new VMapper(&cdec2klm_map_));
+ {
+ VMapper vm(&cdec2klm_map_);
lm::ngram::Config conf;
- conf.enumerate_vocab = vm.get();
+ conf.enumerate_vocab = &vm;
ngram_ = new Model(filename.c_str(), conf);
}
order_ = ngram_->Order();
@@ -385,7 +384,12 @@ KLanguageModel<Model>::KLanguageModel(const string& param) {
if (!ParseLMArgs(param, &filename, &mapfile, &explicit_markers, &featname)) {
abort();
}
- pimpl_ = new KLanguageModelImpl<Model>(filename, mapfile, explicit_markers);
+ try {
+ pimpl_ = new KLanguageModelImpl<Model>(filename, mapfile, explicit_markers);
+ } catch (std::exception &e) {
+ std::cerr << e.what() << std::endl;
+ abort();
+ }
fid_ = FD::Convert(featname);
oov_fid_ = FD::Convert(featname+"_OOV");
cerr << "FID: " << oov_fid_ << endl;