Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kiwi.tokenize()에 음절 분해 여부를 선택할 수 있는 decompose_syllables 인자 추가 #193

Open
bab2min opened this issue Dec 31, 2024 · 0 comments
Assignees

Comments

@bab2min
Copy link
Owner

bab2min commented Dec 31, 2024

#161 처럼 원 입력의 음절은 최대한 유지하면서 형태소 분석을 수행해야하는 상황이 자주 발생하는 것으로 보인다. 현재는 여러 형태소가 결합되어 이뤄진 음절의 경우 그 음절을 자소단위까지 분해하여 형태소 분석 결과를 내고 있기에 원 입력의 음절을 유지하려면 추가적인 후처리 단계가 필요해 비효율적이다.

테스트입니다.
Mecab: (테스트, NNG), (입니다, VCP+EF)
Kiwi: (테스트, NNG), (이, VCP), (ㅂ니다, EF)

참고로 Mecab에서는 음절 기반 분석을 사용하기에 위와 같이 원 음절을 보존한 결과 출력이 가능하다.

이에 Kiwi에서도 음절을 유지한 채 분석할 수 있도록 신규 인자인 decompose_syllables을 제안한다.
default값은 True로 이 경우 기존와 동일하게 음절을 분해하여 음소단위까지 분석을 수행하며, 이 값을 False 준 경우 Mecab 결과와 유사하게 음절을 분해하지 않고 음절을 살리는 수준까지만 분석을 수행한다.

고려해야할 사항

Kiwi.tokenize()의 반환 타입인 Tokentag property는 기존까지 단일 태그만 가진다는 전제하여 쓰였지만, decompose_syllables=False로 분석을 하게 되면 Token.tag에 +로 연결된 여러 태그가 입력될 수 있으므로, Token.tag를 사용하는 부분에서 복합 태그를 처리할 수 있도록 별도의 로직이 추가되어야 한다.

@bab2min bab2min self-assigned this Dec 31, 2024
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

No branches or pull requests

1 participant