| |
| #include "InputOptions.h" |
| #include <vector> |
| #include <iostream> |
| #include "../legacy/Parameter.h" |
|
|
| namespace Moses2 |
| { |
|
|
| InputOptions:: |
| InputOptions() |
| : continue_partial_translation(false) |
| , input_type(SentenceInput) |
| , xml_policy(XmlPassThrough) |
| , placeholder_factor(NOT_FOUND) |
| { |
| xml_brackets.first = "<"; |
| xml_brackets.second = ">"; |
| factor_order.assign(1,0); |
| factor_delimiter = "|"; |
| } |
|
|
| bool |
| InputOptions:: |
| init(Parameter const& param) |
| { |
| param.SetParameter(input_type, "inputtype", SentenceInput); |
| #if 0 |
| if (input_type == SentenceInput) { |
| VERBOSE(2, "input type is: text input"); |
| } else if (input_type == ConfusionNetworkInput) { |
| VERBOSE(2, "input type is: confusion net"); |
| } else if (input_type == WordLatticeInput) { |
| VERBOSE(2, "input type is: word lattice"); |
| } else if (input_type == TreeInputType) { |
| VERBOSE(2, "input type is: tree"); |
| } else if (input_type == TabbedSentenceInput) { |
| VERBOSE(2, "input type is: tabbed sentence"); |
| } else if (input_type == ForestInputType) { |
| VERBOSE(2, "input type is: forest"); |
| } |
| #endif |
|
|
|
|
| param.SetParameter(continue_partial_translation, |
| "continue-partial-translation", false); |
|
|
| param.SetParameter<XmlInputType>(xml_policy, "xml-input", XmlPassThrough); |
|
|
| |
| |
| const PARAM_VEC *pspec; |
| pspec = param.GetParam("xml-brackets"); |
| if (pspec && pspec->size()) { |
| std::vector<std::string> brackets = Tokenize(pspec->at(0)); |
| if(brackets.size()!=2) { |
| std::cerr << "invalid xml-brackets value, " |
| << "must specify exactly 2 blank-delimited strings " |
| << "for XML tags opening and closing brackets" |
| << std::endl; |
| exit(1); |
| } |
|
|
| xml_brackets.first= brackets[0]; |
| xml_brackets.second=brackets[1]; |
|
|
| #if 0 |
| VERBOSE(1,"XML tags opening and closing brackets for XML input are: " |
| << xml_brackets.first << " and " |
| << xml_brackets.second << std::endl); |
| #endif |
| } |
|
|
| pspec = param.GetParam("input-factors"); |
| if (pspec) factor_order = Scan<FactorType>(*pspec); |
| if (factor_order.empty()) factor_order.assign(1,0); |
| param.SetParameter(placeholder_factor, "placeholder-factor", NOT_FOUND); |
|
|
| param.SetParameter<std::string>(factor_delimiter, "factor-delimiter", "|"); |
| param.SetParameter<std::string>(input_file_path,"input-file",""); |
|
|
| 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 |
|
|
| } |
|
|