diff options
author | Ulrich Germann <Ulrich.Germann@gmail.com> | 2015-11-11 00:44:48 +0300 |
---|---|---|
committer | Ulrich Germann <Ulrich.Germann@gmail.com> | 2015-11-11 00:44:48 +0300 |
commit | 806f888c10ac02eba67454d55aa0880464e4f284 (patch) | |
tree | 37127868f28945a81b8a6be0bf8bab0c77841e7b /moses | |
parent | 2ae2aee953011a87ed565ceeecba0f3455b24397 (diff) |
Moved placeholder factor variable from StaticData to InputOptions.
Diffstat (limited to 'moses')
-rw-r--r-- | moses/ChartHypothesis.cpp | 4 | ||||
-rw-r--r-- | moses/ChartKBestExtractor.cpp | 2 | ||||
-rw-r--r-- | moses/ChartTranslationOptions.cpp | 6 | ||||
-rw-r--r-- | moses/Hypothesis.cpp | 4 | ||||
-rw-r--r-- | moses/Manager.cpp | 2 | ||||
-rw-r--r-- | moses/Sentence.cpp | 2 | ||||
-rw-r--r-- | moses/StaticData.cpp | 4 | ||||
-rw-r--r-- | moses/StaticData.h | 8 | ||||
-rw-r--r-- | moses/Syntax/KBestExtractor.cpp | 4 | ||||
-rw-r--r-- | moses/Syntax/SHyperedge.cpp | 4 | ||||
-rw-r--r-- | moses/parameters/InputOptions.cpp | 19 | ||||
-rw-r--r-- | moses/parameters/InputOptions.h | 8 |
12 files changed, 47 insertions, 20 deletions
diff --git a/moses/ChartHypothesis.cpp b/moses/ChartHypothesis.cpp index 00d05055f..e4d0ae1a4 100644 --- a/moses/ChartHypothesis.cpp +++ b/moses/ChartHypothesis.cpp @@ -102,8 +102,8 @@ ChartHypothesis::~ChartHypothesis() */ void ChartHypothesis::GetOutputPhrase(Phrase &outPhrase) const { - FactorType placeholderFactor = StaticData::Instance().GetPlaceholderFactor(); - + FactorType placeholderFactor = StaticData::Instance().options().input.placeholder_factor; + for (size_t pos = 0; pos < GetCurrTargetPhrase().GetSize(); ++pos) { const Word &word = GetCurrTargetPhrase().GetWord(pos); if (word.IsNonTerminal()) { diff --git a/moses/ChartKBestExtractor.cpp b/moses/ChartKBestExtractor.cpp index 43e4b7f94..8d5997f21 100644 --- a/moses/ChartKBestExtractor.cpp +++ b/moses/ChartKBestExtractor.cpp @@ -82,7 +82,7 @@ void ChartKBestExtractor::Extract( // Generate the target-side yield of the derivation d. Phrase ChartKBestExtractor::GetOutputPhrase(const Derivation &d) { - FactorType placeholderFactor = StaticData::Instance().GetPlaceholderFactor(); + FactorType placeholderFactor = StaticData::Instance().options().input.placeholder_factor; Phrase ret(ARRAY_SIZE_INCR); diff --git a/moses/ChartTranslationOptions.cpp b/moses/ChartTranslationOptions.cpp index 8c35a0de1..07202063b 100644 --- a/moses/ChartTranslationOptions.cpp +++ b/moses/ChartTranslationOptions.cpp @@ -23,6 +23,7 @@ #include "ChartTranslationOption.h" #include "InputPath.h" #include "StaticData.h" +#include "TranslationTask.h" using namespace std; @@ -66,10 +67,11 @@ public: void ChartTranslationOptions::EvaluateWithSourceContext(const InputType &input, const InputPath &inputPath) { SetInputPath(&inputPath); - if (StaticData::Instance().GetPlaceholderFactor() != NOT_FOUND) { + // if (StaticData::Instance().GetPlaceholderFactor() != NOT_FOUND) { + if (inputPath.ttask.lock()->options().input.placeholder_factor != NOT_FOUND) { CreateSourceRuleFromInputPath(); } - + CollType::iterator iter; for (iter = m_collection.begin(); iter != m_collection.end(); ++iter) { ChartTranslationOption &transOpt = **iter; diff --git a/moses/Hypothesis.cpp b/moses/Hypothesis.cpp index 6fa85af65..ad3f6ab4b 100644 --- a/moses/Hypothesis.cpp +++ b/moses/Hypothesis.cpp @@ -473,8 +473,8 @@ OutputSurface(std::ostream &out, const Hypothesis &edge, if (reportAllFactors == true) { out << phrase; } else { - FactorType placeholderFactor = StaticData::Instance().GetPlaceholderFactor(); - + FactorType placeholderFactor = StaticData::Instance().options().input.placeholder_factor; + std::map<size_t, const Factor*> placeholders; if (placeholderFactor != NOT_FOUND) { // creates map of target position -> factor for placeholders diff --git a/moses/Manager.cpp b/moses/Manager.cpp index e9f8899aa..bae0e9ec3 100644 --- a/moses/Manager.cpp +++ b/moses/Manager.cpp @@ -1754,7 +1754,7 @@ OutputSurface(std::ostream &out, const Hypothesis &edge, if (reportAllFactors == true) { out << phrase; } else { - FactorType placeholderFactor = StaticData::Instance().GetPlaceholderFactor(); + FactorType placeholderFactor = StaticData::Instance().options().input.placeholder_factor; std::map<size_t, const Factor*> placeholders; if (placeholderFactor != NOT_FOUND) { diff --git a/moses/Sentence.cpp b/moses/Sentence.cpp index 842feed2b..19b910b7c 100644 --- a/moses/Sentence.cpp +++ b/moses/Sentence.cpp @@ -247,7 +247,7 @@ void Sentence:: ProcessPlaceholders(const std::vector< std::pair<size_t, std::string> > &placeholders) { - FactorType placeholderFactor = StaticData::Instance().GetPlaceholderFactor(); + FactorType placeholderFactor = StaticData::Instance().options().input.placeholder_factor; if (placeholderFactor == NOT_FOUND) { return; } diff --git a/moses/StaticData.cpp b/moses/StaticData.cpp index 3d5ffe9d7..cca2a4d40 100644 --- a/moses/StaticData.cpp +++ b/moses/StaticData.cpp @@ -340,8 +340,8 @@ bool StaticData::LoadData(Parameter *parameter) ini_zombie_options(); // probably dead, or maybe not - m_parameter->SetParameter(m_placeHolderFactor, "placeholder-factor", - NOT_FOUND); + // m_parameter->SetParameter(m_placeHolderFactor, "placeholder-factor", + // NOT_FOUND); // FEATURE FUNCTION INITIALIZATION HAPPENS HERE =============================== initialize_features(); diff --git a/moses/StaticData.h b/moses/StaticData.h index e39466079..59964c5e6 100644 --- a/moses/StaticData.h +++ b/moses/StaticData.h @@ -175,7 +175,7 @@ protected: std::map< std::string, std::set< std::string > > m_weightSettingIgnoreFF; // feature function std::map< std::string, std::set< size_t > > m_weightSettingIgnoreDP; // decoding path - FactorType m_placeHolderFactor; + // FactorType m_placeHolderFactor; bool m_useLegacyPT; bool m_defaultNonTermOnlyForEmptyRange; S2TParsingAlgorithm m_s2tParsingAlgorithm; @@ -664,9 +664,9 @@ public: std::map<std::string, std::string> OverrideFeatureNames(); void OverrideFeatures(); - FactorType GetPlaceholderFactor() const { - return m_placeHolderFactor; - } + // FactorType GetPlaceholderFactor() const { + // return m_placeHolderFactor; + // } const FeatureRegistry &GetFeatureRegistry() const { return m_registry; diff --git a/moses/Syntax/KBestExtractor.cpp b/moses/Syntax/KBestExtractor.cpp index 01db53b68..84e9d5e44 100644 --- a/moses/Syntax/KBestExtractor.cpp +++ b/moses/Syntax/KBestExtractor.cpp @@ -74,8 +74,8 @@ void KBestExtractor::Extract( // Generate the target-side yield of the derivation d. Phrase KBestExtractor::GetOutputPhrase(const Derivation &d) { - FactorType placeholderFactor = StaticData::Instance().GetPlaceholderFactor(); - + FactorType placeholderFactor = StaticData::Instance().options().input.placeholder_factor; + Phrase ret(ARRAY_SIZE_INCR); const TargetPhrase &phrase = *(d.edge->shyperedge.label.translation); diff --git a/moses/Syntax/SHyperedge.cpp b/moses/Syntax/SHyperedge.cpp index 0260492c8..75dab7b39 100644 --- a/moses/Syntax/SHyperedge.cpp +++ b/moses/Syntax/SHyperedge.cpp @@ -11,8 +11,8 @@ namespace Syntax Phrase GetOneBestTargetYield(const SHyperedge &h) { - FactorType placeholderFactor = StaticData::Instance().GetPlaceholderFactor(); - + FactorType placeholderFactor = StaticData::Instance().options().input.placeholder_factor; + Phrase ret(ARRAY_SIZE_INCR); const AlignmentInfo::NonTermIndexMap &targetToSourceMap = diff --git a/moses/parameters/InputOptions.cpp b/moses/parameters/InputOptions.cpp index 47b2e013f..6d484e94a 100644 --- a/moses/parameters/InputOptions.cpp +++ b/moses/parameters/InputOptions.cpp @@ -3,6 +3,7 @@ #include <vector> #include <iostream> #include "moses/StaticData.h" +#include "moses/TypeDef.h" namespace Moses { @@ -37,6 +38,7 @@ namespace Moses { param.SetParameter(default_non_term_only_for_empty_range, "default-non-term-for-empty-range-only", false); + param.SetParameter<XmlInputType>(xml_policy, "xml-input", XmlPassThrough); // specify XML tags opening and closing brackets for XML option @@ -59,7 +61,24 @@ namespace Moses { << xml_brackets.first << " and " << xml_brackets.second << std::endl); } + + param.SetParameter(placeholder_factor, "placeholder-factor", NOT_FOUND); + + return true; + } + + +#ifdef HAVE_XMLRPC_C + bool + InputOptions:: + update(std::map<std::string,xmlrpc_c::value>const& param) + { + typedef std::map<std::string, xmlrpc_c::value> params_t; + params_t::const_iterator si = param.find("xml-input"); + if (si != param.end()) + xml_policy = Scan<XmlInputType>(xmlrpc_c::value_string(si->second)); return true; } +#endif } diff --git a/moses/parameters/InputOptions.h b/moses/parameters/InputOptions.h index f81ea06eb..436345b0a 100644 --- a/moses/parameters/InputOptions.h +++ b/moses/parameters/InputOptions.h @@ -14,13 +14,19 @@ namespace Moses bool default_non_term_only_for_empty_range; // whatever that means InputTypeEnum input_type; XmlInputType xml_policy; // pass through, ignore, exclusive, inclusive + + FactorType placeholder_factor; // where to store original text for placeholders + std::pair<std::string,std::string> xml_brackets; // strings to use as XML tags' opening and closing brackets. // Default are "<" and ">" - bool init(Parameter const& param); InputOptions(); + + bool init(Parameter const& param); + bool update(std::map<std::string,xmlrpc_c::value>const& param); + }; } |