Skip to content

Commit

Permalink
Merge pull request #160 from bab2min/dev_issue_150_151
Browse files Browse the repository at this point in the history
문장 분리 오류 수정
  • Loading branch information
bab2min authored Apr 13, 2024
2 parents c62b968 + f9a18b7 commit e91047b
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 9 deletions.
20 changes: 11 additions & 9 deletions src/Kiwi.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,12 @@ namespace kiwi
}
}

/*
* 문장 분리 기준
* 1) 종결어미(ef) (요/jx)? (z_coda)? (so|sw|sh|sp|se|sf|(닫는 괄호))*
* 2) 종결구두점(sf) (so|sw|sh|sp|se|(닫는 괄호))*
* 3) 단 종결어미(ef) 바로 다음에 '요'가 아닌 조사(j)나 보조용언(vx), vcp, etm, 다른 어미(ec)가 뒤따르는 경우는 제외
*/
class SentenceParser
{
enum class State
Expand Down Expand Up @@ -240,6 +246,7 @@ namespace kiwi
case POSTag::jx:
case POSTag::vcp:
case POSTag::etm:
case POSTag::ec:
if (t.tag == POSTag::jx && *t.morph->kform == u"")
{
if (state == State::ef)
Expand All @@ -262,9 +269,11 @@ namespace kiwi
case POSTag::sh:
case POSTag::sp:
case POSTag::se:
case POSTag::sf:
case POSTag::ssc:
break;
case POSTag::sf:
state = State::sf;
break;
case POSTag::sso:
if (lineNumber == lastLineNumber) break;
default:
Expand Down Expand Up @@ -354,13 +363,6 @@ namespace kiwi
*/
inline void fillSentLineInfo(vector<TokenInfo>& tokens, const vector<size_t>& newlines)
{
/*
* 문장 분리 기준
* 1) 종결어미(ef) (요/jx)? (z_coda)? (so|sw|sh|sp|se|sf|(닫는 괄호))*
* 2) 종결구두점(sf) (so|sw|sh|sp|se|(닫는 괄호))*
* 3) 단 종결어미(ef) 바로 다음에 '요'가 아닌 조사(j)나 보조용언(vx), vcp, etm이 뒤따르는 경우는 제외
*/

SentenceParser sp;
uint32_t sentPos = 0, lastSentPos = 0, subSentPos = 0, accumSubSent = 1, accumWordPos = 0, lastWordPos = 0;
size_t nlPos = 0, lastNlPos = 0, nestedSentEnd = 0, nestedEnd = 0;
Expand Down Expand Up @@ -536,7 +538,7 @@ namespace kiwi

auto next = first;
++next;
while(next != last)
while (next != last)
{
TokenInfo& current = *first;
TokenInfo& nextToken = *next;
Expand Down
1 change: 1 addition & 0 deletions test/test_cpp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -332,6 +332,7 @@ TEST(KiwiCpp, SentenceBoundaryErrors)
Kiwi& kiwi = reuseKiwiInstance();

for (auto str : {
u8"어떻게 보면 신제품에 대한 기대 이런 모멘텀들이 국내 증시의 적감의 수세를 촉발시킬 수도 있는 요인이 될 수도 있다라고 보시면 될 것 같습니다.",
u8"관련 법령 이전에 만들어져 경사로 설치 의무 대상은 아닙니다.",
u8"적법절차의 실질적인 내용을 침해하였는지 여부 등에 관하여 충분히 심리하지",
u8"2023. 5. 10 주식회사 키위(이하 '회사'라 한다) 대표이사 XXX는 저녁을 직원들에게 사주었다.",
Expand Down

0 comments on commit e91047b

Please sign in to comment.