mirror of
https://github.com/moses-smt/mosesdecoder.git
synced 2024-12-26 05:14:36 +03:00
delete Phrase::CreateFromStringNewFormat()
This commit is contained in:
parent
a53392165f
commit
51d34f2f96
@ -217,70 +217,6 @@ void Phrase::CreateFromString(FactorDirection direction
|
||||
}
|
||||
}
|
||||
|
||||
void Phrase::CreateFromStringNewFormat(FactorDirection direction
|
||||
, const std::vector<FactorType> &factorOrder
|
||||
, const StringPiece &phraseString
|
||||
, const std::string & /*factorDelimiter */
|
||||
, Word *lhs)
|
||||
{
|
||||
// parse
|
||||
vector<StringPiece> annotatedWordVector;
|
||||
for (util::TokenIter<util::AnyCharacter, true> it(phraseString, "\t "); it; ++it) {
|
||||
annotatedWordVector.push_back(*it);
|
||||
}
|
||||
// KOMMA|none ART|Def.Z NN|Neut.NotGen.Sg VVFIN|none
|
||||
// to
|
||||
// "KOMMA|none" "ART|Def.Z" "NN|Neut.NotGen.Sg" "VVFIN|none"
|
||||
|
||||
size_t numWords;
|
||||
const StringPiece &annotatedWord = annotatedWordVector.back();
|
||||
if (annotatedWord.size() >= 2
|
||||
&& *annotatedWord.data() == '['
|
||||
&& annotatedWord.data()[annotatedWord.size() - 1] == ']') {
|
||||
// hiero/syntax rule
|
||||
CHECK(lhs);
|
||||
|
||||
numWords = annotatedWordVector.size()-1;
|
||||
|
||||
// lhs
|
||||
lhs->CreateFromString(direction, factorOrder, annotatedWord.substr(1, annotatedWord.size() - 2), true);
|
||||
assert(lhs->IsNonTerminal());
|
||||
}
|
||||
else {
|
||||
CHECK(lhs == NULL);
|
||||
|
||||
numWords = annotatedWordVector.size();
|
||||
}
|
||||
|
||||
// parse each word
|
||||
m_words.reserve(numWords);
|
||||
|
||||
for (size_t phrasePos = 0 ; phrasePos < numWords; phrasePos++) {
|
||||
StringPiece &annotatedWord = annotatedWordVector[phrasePos];
|
||||
bool isNonTerminal;
|
||||
if (annotatedWord.size() >= 2 && *annotatedWord.data() == '[' && annotatedWord.data()[annotatedWord.size() - 1] == ']') {
|
||||
// non-term
|
||||
isNonTerminal = true;
|
||||
|
||||
size_t nextPos = annotatedWord.find('[', 1);
|
||||
CHECK(nextPos != string::npos);
|
||||
|
||||
if (direction == Input)
|
||||
annotatedWord = annotatedWord.substr(1, nextPos - 2);
|
||||
else
|
||||
annotatedWord = annotatedWord.substr(nextPos + 1, annotatedWord.size() - nextPos - 2);
|
||||
} else {
|
||||
isNonTerminal = false;
|
||||
}
|
||||
|
||||
Word &word = AddWord();
|
||||
word.CreateFromString(direction, factorOrder, annotatedWord, isNonTerminal);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
int Phrase::Compare(const Phrase &other) const
|
||||
{
|
||||
#ifdef min
|
||||
|
@ -76,12 +76,6 @@ public:
|
||||
, const StringPiece &factorDelimiter
|
||||
, Word *lhs = NULL);
|
||||
|
||||
void CreateFromStringNewFormat(FactorDirection direction
|
||||
, const std::vector<FactorType> &factorOrder
|
||||
, const StringPiece &phraseString
|
||||
, const std::string &factorDelimiter
|
||||
, Word *lhs);
|
||||
|
||||
/** copy factors from the other phrase to this phrase.
|
||||
IsCompatible() must be run beforehand to ensure incompatible factors aren't overwritten
|
||||
*/
|
||||
|
@ -234,10 +234,10 @@ bool RuleTableLoaderStandard::Load(FormatType format
|
||||
|
||||
// create target phrase obj
|
||||
TargetPhrase *targetPhrase = new TargetPhrase();
|
||||
targetPhrase->CreateFromStringNewFormat(Output, output, targetPhraseString, factorDelimiter, &targetLHS);
|
||||
targetPhrase->CreateFromString(Output, output, targetPhraseString, factorDelimiter, &targetLHS);
|
||||
|
||||
// source
|
||||
targetPhrase->MutableSourcePhrase().CreateFromStringNewFormat(Input, input, sourcePhraseString, factorDelimiter, &sourceLHS);
|
||||
targetPhrase->MutableSourcePhrase().CreateFromString(Input, input, sourcePhraseString, factorDelimiter, &sourceLHS);
|
||||
|
||||
// rest of target phrase
|
||||
targetPhrase->SetAlignmentInfo(alignString);
|
||||
|
@ -227,11 +227,11 @@ namespace Moses
|
||||
|
||||
// source
|
||||
Phrase sourcePhrase( 0);
|
||||
sourcePhrase.CreateFromStringNewFormat(Input, *m_input, sourcePhraseString, factorDelimiter, &sourceLHS);
|
||||
sourcePhrase.CreateFromString(Input, *m_input, sourcePhraseString, factorDelimiter, &sourceLHS);
|
||||
|
||||
// create target phrase obj
|
||||
TargetPhrase *targetPhrase = new TargetPhrase();
|
||||
targetPhrase->CreateFromStringNewFormat(Output, *m_output, targetPhraseString, factorDelimiter, &targetLHS);
|
||||
targetPhrase->CreateFromString(Output, *m_output, targetPhraseString, factorDelimiter, &targetLHS);
|
||||
|
||||
// rest of target phrase
|
||||
targetPhrase->SetAlignmentInfo(alignString);
|
||||
|
Loading…
Reference in New Issue
Block a user