From 27a6cf2ebc2ac8b60890f3f06f2a2973ca466375 Mon Sep 17 00:00:00 2001 From: Hieu Hoang Date: Sat, 10 Nov 2012 17:09:07 +0000 Subject: fuzzy match bug. Still not bug-free --- scripts/fuzzy-match/create_xml.cpp | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/scripts/fuzzy-match/create_xml.cpp b/scripts/fuzzy-match/create_xml.cpp index e189bb58c..48d957f2d 100644 --- a/scripts/fuzzy-match/create_xml.cpp +++ b/scripts/fuzzy-match/create_xml.cpp @@ -34,6 +34,7 @@ int main(int argc, char **argv) string *input = NULL; int count; + int lineCount = 1; string inLine; int step = 0; @@ -91,6 +92,8 @@ int main(int argc, char **argv) step = 0; break; } + + ++lineCount; } delete input; @@ -272,7 +275,7 @@ CreateXMLRetValues createXML(const string &source, const string &input, const st int rule_pos_t = 0; map ruleAlignT; - for (size_t t = -1 ; t < targetBitmap.size(); t++ ) { + for (size_t t = 0 ; t < targetBitmap.size(); t++ ) { if (t >= 0 && targetBitmap[t]) { ret.ruleT += targetsToks[t] + " "; ruleAlignT[t] = rule_pos_t++; @@ -288,18 +291,21 @@ CreateXMLRetValues createXML(const string &source, const string &input, const st } } - ret.ruleAlignment; + ret.ruleAlignment = ""; for (map::const_iterator iter = ruleAlignT.begin(); iter != ruleAlignT.end(); ++iter) { int s = iter->first; - const std::map &targets = alignments.m_alignS2T[s]; - - std::map::const_iterator iter; - for (iter = targets.begin(); iter != targets.end(); ++iter) { - int t =iter->first; - if (ruleAlignT.find(s) == ruleAlignT.end()) - continue; - ret.ruleAlignment += ruleAlignS[s] + "-" + SPrint(ruleAlignT[t]) + " "; + + if (s < alignments.m_alignS2T.size()) { + const std::map &targets = alignments.m_alignS2T[s]; + + std::map::const_iterator iter; + for (iter = targets.begin(); iter != targets.end(); ++iter) { + int t =iter->first; + if (ruleAlignT.find(s) == ruleAlignT.end()) + continue; + ret.ruleAlignment += SPrint(ruleAlignS[s]) + "-" + SPrint(ruleAlignT[t]) + " "; + } } } -- cgit v1.2.3