diff options
author | Hieu Hoang <fishandfrolick@gmail.com> | 2013-06-10 19:29:07 +0400 |
---|---|---|
committer | Hieu Hoang <fishandfrolick@gmail.com> | 2013-06-10 19:29:07 +0400 |
commit | 96d116dba09f4c29fbbfa1edd3d52a31a4b74b49 (patch) | |
tree | 14c82d72d0045215254f453aa3192d56d030ede6 /moses/TranslationModel/PhraseDictionaryMultiModelCounts.cpp | |
parent | 14e676ab035382cf55bb6cd6023eca4070ce7de4 (diff) |
refactor parsing of feature functiona args
Diffstat (limited to 'moses/TranslationModel/PhraseDictionaryMultiModelCounts.cpp')
-rw-r--r-- | moses/TranslationModel/PhraseDictionaryMultiModelCounts.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/moses/TranslationModel/PhraseDictionaryMultiModelCounts.cpp b/moses/TranslationModel/PhraseDictionaryMultiModelCounts.cpp index cbc178526..06b53e9c6 100644 --- a/moses/TranslationModel/PhraseDictionaryMultiModelCounts.cpp +++ b/moses/TranslationModel/PhraseDictionaryMultiModelCounts.cpp @@ -101,6 +101,38 @@ PhraseDictionaryMultiModelCounts::PhraseDictionaryMultiModelCounts(const std::st } +bool PhraseDictionaryMultiModelCounts::OverrideParameter(const std::string& key, const std::string& value) +{ + if (key == "mode") { + m_mode = value; + if (m_mode == "instance_weighting") + m_combineFunction = InstanceWeighting; + else if (m_mode == "interpolate") { + m_combineFunction = LinearInterpolationFromCounts; + } else { + ostringstream msg; + msg << "combination mode unknown: " << m_mode; + throw runtime_error(msg.str()); + } + + } else if (key == "lex-e2f") { + m_lexE2FStr = Tokenize(value, ","); + CHECK(m_lexE2FStr.size() == m_pdStr.size()); + } else if (key == "lex-f2e") { + m_lexF2EStr = Tokenize(value, ","); + CHECK(m_lexF2EStr.size() == m_pdStr.size()); + } + + else if (key == "target-table") { + m_targetTable = Tokenize(value, ","); + CHECK(m_targetTable.size() == m_pdStr.size()); + } + + else { + PhraseDictionaryMultiModel::OverrideParameter(key, value); + } +} + PhraseDictionaryMultiModelCounts::~PhraseDictionaryMultiModelCounts() { RemoveAllInColl(m_lexTable_e2f); |