NMTKD
/
translation
/tools
/mosesdecoder
/phrase-extract
/extract-mixed-syntax
/ConsistentPhrase.cpp
/* | |
* ConsistentPhrase.cpp | |
* | |
* Created on: 20 Feb 2014 | |
* Author: hieu | |
*/ | |
using namespace std; | |
ConsistentPhrase::ConsistentPhrase( | |
int sourceStart, int sourceEnd, | |
int targetStart, int targetEnd, | |
const Parameter ¶ms) | |
:corners(4) | |
,m_hieroNonTerm(*this, params.hieroNonTerm, params.hieroNonTerm) | |
{ | |
corners[0] = sourceStart; | |
corners[1] = sourceEnd; | |
corners[2] = targetStart; | |
corners[3] = targetEnd; | |
} | |
ConsistentPhrase::~ConsistentPhrase() | |
{ | |
// TODO Auto-generated destructor stub | |
} | |
bool ConsistentPhrase::operator<(const ConsistentPhrase &other) const | |
{ | |
return corners < other.corners; | |
} | |
void ConsistentPhrase::AddNonTerms(const std::string &source, | |
const std::string &target) | |
{ | |
m_nonTerms.push_back(NonTerm(*this, source, target)); | |
} | |
bool ConsistentPhrase::TargetOverlap(const ConsistentPhrase &other) const | |
{ | |
if ( other.corners[3] < corners[2] || other.corners[2] > corners[3]) | |
return false; | |
return true; | |
} | |
std::string ConsistentPhrase::Debug() const | |
{ | |
stringstream out; | |
out << "[" << corners[0] << "-" << corners[1] | |
<< "][" << corners[2] << "-" << corners[3] << "]"; | |
out << "NT:"; | |
for (size_t i = 0; i < m_nonTerms.size(); ++i) { | |
const NonTerm &nonTerm = m_nonTerms[i]; | |
out << nonTerm.GetLabel(Moses::Input) << ":" << nonTerm.GetLabel(Moses::Output); | |
} | |
return out.str(); | |
} | |