Factored out code in Ken.cpp

This commit is contained in:
Lane Schwartz 2016-01-12 16:05:00 -06:00
parent f964385a3b
commit 6089017cd8
3 changed files with 16 additions and 9 deletions

View File

@ -148,12 +148,8 @@ private:
} // namespace
template <class Model> LanguageModelKen<Model>::LanguageModelKen(const std::string &line, const std::string &file, FactorType factorType, bool lazy)
:LanguageModel(line)
,m_factorType(factorType)
template <class Model> void LanguageModelKen<Model>::LoadModel(const std::string &file, bool lazy)
{
ReadParameters();
lm::ngram::Config config;
if(this->m_verbosity >= 1) {
config.messages = &std::cerr;
@ -170,6 +166,14 @@ template <class Model> LanguageModelKen<Model>::LanguageModelKen(const std::stri
m_beginSentenceFactor = collection.AddFactor(BOS_);
}
template <class Model> LanguageModelKen<Model>::LanguageModelKen(const std::string &line, const std::string &file, FactorType factorType, bool lazy)
:LanguageModel(line)
,m_factorType(factorType)
{
ReadParameters();
LoadModel(file, lazy);
}
template <class Model> LanguageModelKen<Model>::LanguageModelKen(const LanguageModelKen<Model> &copy_from)
:LanguageModel(copy_from.GetArgLine()),
m_ngram(copy_from.m_ngram),

View File

@ -73,6 +73,8 @@ protected:
FactorType m_factorType;
void LoadModel(const std::string &file, bool lazy);
lm::WordIndex TranslateID(const Word &word) const {
std::size_t factor = word.GetFactor(m_factorType)->GetId();
return (factor >= m_lmIdLookup.size() ? 0 : m_lmIdLookup[factor]);

View File

@ -38,7 +38,7 @@ class FFState;
//LanguageModel *ConstructReloadingLM(const std::string &line);
//LanguageModel *ConstructReloadingLM(const std::string &line, const std::string &file, FactorType factorType, bool lazy);
/*
namespace {
class MappingBuilder : public lm::EnumerateVocab
{
@ -60,7 +60,7 @@ private:
std::vector<lm::WordIndex> &m_mapping;
};
}
*/
template <class Model> class ReloadingLanguageModel : public LanguageModelKen<Model>
{
public:
@ -75,7 +75,8 @@ public:
virtual void InitializeForInput(ttasksptr const& ttask) {
std::cerr << "ReloadingLM InitializeForInput" << std::endl;
LanguageModelKen<Model>::LoadModel(m_file, m_lazy);
/*
lm::ngram::Config config;
if(this->m_verbosity >= 1) {
config.messages = &std::cerr;
@ -90,7 +91,7 @@ public:
m_ngram.reset(new Model(m_file.c_str(), config));
m_beginSentenceFactor = collection.AddFactor(BOS_);
*/
};
/*