diff --git a/transition_machine/src/Oracle.cpp b/transition_machine/src/Oracle.cpp index 097a7a3128e03fb74eb81ce91e7112cc6733b884..a6035323c27c8578fed78c3ae1cd41ff4cba617b 100644 --- a/transition_machine/src/Oracle.cpp +++ b/transition_machine/src/Oracle.cpp @@ -406,6 +406,11 @@ void Oracle::createDatabase() newState = "lemmatizer_rules"; movement = 0; } + else if (previousAction == "nothing") + { + newState = "lemmatizer_lookup"; + movement = 1; + } else { newState = "lemmatizer_lookup"; @@ -676,6 +681,16 @@ void Oracle::createDatabase() const std::string & form = c.getTape("FORM")[0]; const std::string & pos = c.getTape("POS")[0]; std::string lemma; + + if (c.hasTape("ID")) + { + auto & id = c.getTape("ID")[0]; + if (!id.empty()) + { + if (util::split(id, '-').size() > 1) + return std::string("NOTHING"); + } + } if (oracle->data.count(form + "_" + pos)) lemma = oracle->data[form + "_" + pos];