Skip to content

Commit 71700ad

Browse files
committed
Fix wrong left cond on pretokenized spans
1 parent 581b310 commit 71700ad

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

src/PathEvaluator.hpp

+9-8
Original file line numberDiff line numberDiff line change
@@ -504,22 +504,23 @@ namespace kiwi
504504
if (prevPath.ownFormId)
505505
{
506506
leftFormFirst = ownForms[prevPath.ownFormId - 1].data();
507-
leftFormLast = ownForms[prevPath.ownFormId - 1].data() + ownForms[0].size();
507+
leftFormLast = leftFormFirst + ownForms[0].size();
508508
}
509-
else if (morphBase[prevPath.wid].kform)
509+
else if (morphBase[prevPath.wid].kform && !morphBase[prevPath.wid].kform->empty())
510510
{
511511
leftFormFirst = morphBase[prevPath.wid].kform->data();
512-
leftFormLast = morphBase[prevPath.wid].kform->data() + morphBase[prevPath.wid].kform->size();
512+
leftFormLast = leftFormFirst + morphBase[prevPath.wid].kform->size();
513513
}
514514
else
515515
{
516-
leftFormFirst = nullptr;
517-
leftFormLast = nullptr;
516+
leftFormFirst = prevPath.morpheme->getForm().data();
517+
leftFormLast = leftFormFirst + prevPath.morpheme->getForm().size();
518518
}
519519

520-
CondVowel cvowel = curMorph->vowel;
521-
CondPolarity cpolar = curMorph->polar;
522-
if (prevPath.morpheme->tag == POSTag::ssc)
520+
const CondVowel cvowel = curMorph->vowel;
521+
const CondPolarity cpolar = curMorph->polar;
522+
const bool leftFormEndswithSSC = leftFormFirst < leftFormLast && identifySpecialChr(leftFormLast[-1]) == POSTag::ssc;
523+
if (prevPath.morpheme->tag == POSTag::ssc || leftFormEndswithSSC)
523524
{
524525
// 이전 형태소가 닫는 괄호인 경우 좌측 결합조건을 적용하지 않음
525526
}

0 commit comments

Comments
 (0)