중의성 해소 기능 #42
bab2min
started this conversation in
신기능에 대한 아이디어
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
중의성 해소 기능과 관련해서 구체적인 논의를 진행해보아요~ @P1zz4 cc. @hexists
먼저 Kiwi의 설계 지향점은 다른 의존관계가 없어 가볍고, 속도가 빠른 형태소 분석기입니다. 그래서 중의성 해소를 위해 복잡하고 무거운 모델을 도입할 계획이 없음을 미리 밝히는 바입니다. 그런 작업들이 필요하다면 Kiwi 자체의 기능으로 추가하기보다는 별도의 스택으로 분리되는게 맞을 것 같습니다.
Kiwi에서 고려하는 중의성 해소는 형태소 분석을 위해 경로 탐색을 수행하는 과정에 자연스럽게 녹아들 수 있는 비교적 가벼운 방법이에요 (아마 정확도도 좀 낮지 않을까 싶어요). 사실 이와 관련해서 이미 Kiwi 형태소 분석 함수에는 품사 태그를 이용한 미약한 중의성 해소 기능이 들어가 있습니다.
보다/VV
와보다/VX
,등/NNG
과등/NNB
처럼 형태는 같은데 품사가 다른 경우 품사 태그를 통해 의미가 구분됩니다. 이는 복잡한 과정을 거쳐서 구분되는게 아니라, 단순히 언어모델을 통해먹/VV, 어/EC
다음에보/VX
가 올 확률이보/VV
가 올 확률보다 크다는 사실,어깨/NNG, 와/JC
다음에등/NNG
이 올 확률이등/NNB
이 올 확률보다 크다는 사실을 바탕으로 구분됩니다.따라서 현재 제가 생각하고 있는 방법은 이 메카니즘을 자연스럽게 확장시켜서 탐색 대상인 형태소 집합을
등/NNG
,등/NNB
대신에등__1/NNG
,등__2/NNG
,등__3/NNB
와 같이 설정한 뒤, 기존과 동일하게 경로탐색 과정에서 등장 확률이 가장 높은 형태소를 뽑아내는 것입니다. 이 경우 기존 코드를 거의 수정하지 않고, 형태소 사전과 언어 모델만 교체함으로써 달성가능합니다. 사실 이 방법이 얼마나 정확하게 작동할지 아직 감이 안 오는데요, 중의성 해소를 위한 다른 접근법들과 비교하는 작업이 필요할 것 같습니다.그래서 확인해야할 것은
세 가지가 잘 결정된다면 3번에서 구한 말뭉치를 잘 전처리하여 Kiwi 모델 학습 형태에 맞추는 코드를 작성함으로써 중의성 해소 기능에 기여할 수 있을 것으로 보입니다. @P1zz4 님이 이번 기회에 WSD 관련하여 공부하고 정리하시는 김에 위 내용도 함께 고려해주신다면 Kiwi 중의성 해소 기능 구현에도 도움이 많이 될 것 같아요.
Beta Was this translation helpful? Give feedback.
All reactions