Skip to content

fix: HAPSYO_END_RE가 Kiwi EF 출력(조합용 ᆸ)과 매칭되지 않는 자모 불일치 - #2

Open
voiddeveloper wants to merge 1 commit into
gongnyang:mainfrom
voiddeveloper:fix/hapsyo-ef-jamo
Open

voiddeveloper wants to merge 1 commit into
gongnyang:mainfrom
voiddeveloper:fix/hapsyo-ef-jamo

Conversation

@voiddeveloper

Copy link
Copy Markdown

문제

scripts/fingerprint.pyHAPSYO_END_RE에 있는 ㅂ니다|ㅂ니까가 **호환 자모 (U+3142)**로 적혀 있습니다. 그런데 Kiwi가 내놓는 EF 형태소는 **조합용 자모 (U+11B8)**입니다. 두 글자는 겉보기엔 같지만 다른 코드포인트라 매칭이 한 건도 되지 않습니다.

그 결과 합니다/됩니다/드립니다류 종결이 hapsyo가 아니라 haeche_handa로 전량 분류됩니다. 같은 파일의 음슴체 처리(ᆷ/EF 주석)는 조합용을 바르게 쓰고 있어서, 이 줄만의 표기 실수로 보입니다.

재현

from kiwipiepy import Kiwi
import re
k = Kiwi()
ef = [t for t in k.tokenize('오늘 회의를 진행합니다.') if t.tag == 'EF'][0]
print(repr(ef.form))                     # 'ᆸ니다'  (첫 글자 U+11B8)
old = re.compile(r"(습니다|습니까|ㅂ니다|ㅂ니까|시오|십시오)$")
print(bool(old.search(ef.form)))         # False  ← 버그

수정

조합용 ᆸ니다|ᆸ니까를 추가했습니다. 호환 자모 표기는 다른 토크나이저 출력에 대비해 방어적으로 남겨 뒀습니다.

영향

제 코퍼스(슬랙 메시지 31,660건)로 실측하니 전체 EF의 약 15%(격식 대화가 많은 채널은 21%)가 재분류됐습니다. hapsyo 비율이 0.08→0.17로 바뀌는 수준이라, register 분포를 쓰는 팩 수치·게이트 임계값에 영향이 큽니다.

좋은 도구 공개해 주셔서 감사합니다. 자기 코퍼스로 재사용해도 된다는 라이선스 조항 덕에 잘 쓰고 있습니다.

🤖 Generated with Claude Code

정규식의 ㅂ니다/ㅂ니까가 호환 자모(U+3142)로 적혀 있어 Kiwi가 내놓는
EF 형태(조합용 U+11B8 'ᆸ니다')와 한 건도 매칭되지 않았다. 그 결과
'~합니다/됩니다'류 종결이 hapsyo가 아니라 haeche_handa로 전량 분류된다.
조합용 자모를 추가하고 호환 자모는 방어적으로 유지.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants