File size: 994 Bytes
fd49381
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include "KenDsg.h"

namespace Moses
{

DsgLM* ConstructDsgLM(const char *file)
{
  lm::ngram::ModelType model_type;
  lm::ngram::Config config;
  if (lm::ngram::RecognizeBinary(file, model_type)) {
    switch(model_type) {
    case lm::ngram::PROBING:
      return new KenDsg<lm::ngram::ProbingModel>(file, config);
    case lm::ngram::REST_PROBING:
      return new KenDsg<lm::ngram::RestProbingModel>(file, config);
    case lm::ngram::TRIE:
      return new KenDsg<lm::ngram::TrieModel>(file, config);
    case lm::ngram::QUANT_TRIE:
      return new KenDsg<lm::ngram::QuantTrieModel>(file, config);
    case lm::ngram::ARRAY_TRIE:
      return new KenDsg<lm::ngram::ArrayTrieModel>(file, config);
    case lm::ngram::QUANT_ARRAY_TRIE:
      return new KenDsg<lm::ngram::QuantArrayTrieModel>(file, config);
    default:
      UTIL_THROW2("Unrecognized kenlm model type " << model_type);
    }
  } else {
    return new KenDsg<lm::ngram::ProbingModel>(file, config);
  }
}

} // namespace