Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/moses-smt/mosesdecoder.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'moses/TranslationModel/PhraseDictionaryMultiModelCounts.cpp')
-rw-r--r--moses/TranslationModel/PhraseDictionaryMultiModelCounts.cpp32
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);