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
path: root/moses
diff options
context:
space:
mode:
authorUlrich Germann <Ulrich.Germann@gmail.com>2015-11-11 00:44:48 +0300
committerUlrich Germann <Ulrich.Germann@gmail.com>2015-11-11 00:44:48 +0300
commit806f888c10ac02eba67454d55aa0880464e4f284 (patch)
tree37127868f28945a81b8a6be0bf8bab0c77841e7b /moses
parent2ae2aee953011a87ed565ceeecba0f3455b24397 (diff)
Moved placeholder factor variable from StaticData to InputOptions.
Diffstat (limited to 'moses')
-rw-r--r--moses/ChartHypothesis.cpp4
-rw-r--r--moses/ChartKBestExtractor.cpp2
-rw-r--r--moses/ChartTranslationOptions.cpp6
-rw-r--r--moses/Hypothesis.cpp4
-rw-r--r--moses/Manager.cpp2
-rw-r--r--moses/Sentence.cpp2
-rw-r--r--moses/StaticData.cpp4
-rw-r--r--moses/StaticData.h8
-rw-r--r--moses/Syntax/KBestExtractor.cpp4
-rw-r--r--moses/Syntax/SHyperedge.cpp4
-rw-r--r--moses/parameters/InputOptions.cpp19
-rw-r--r--moses/parameters/InputOptions.h8
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);
+
};
}