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
|