Kiwi 형태소 분석기 모델 학습 및 N-gram 언어모델 이론 정리

Source

  • Field Notes/ReturnZero/Daily Notes/Day 510. 2022-11-22.md

Summary

이 노트는 Kiwi 형태소 분석기의 C++ API를 통한 모델 빌딩 과정과 관련 언어모델(N-gram, Kneser-Ney Smoothing, Pitman-Yor Process) 이론을 학습하며 기록한 내용이다. 10만 건의 요청 처리 성능 테스트 결과와 함께, Kiwi 모델 생성에 필요한 사전(MM, CM, PCM) 파일 구조와 학습 파라미터(sbg, lmOrder 등)를 탐색했다. 특히 희소성 문제 해결을 위한 스무딩 기법과 품사 태그의 역할에 대한 고민이 담겨 있다.

Key Points

  • Kiwi C++ API를 통해 전처리된 사전 데이터(MM, CM, PCM)로부터 KiwiBuilder 생성 가능
  • 언어모델 학습 이론: N-gram의 0 확률 문제 해결을 위한 Modified Kneser-Ney Smoothing 및 Hierarchical Pitman-Yor LM(HPYLM) 개념 정리
  • Kiwi 모델 빌더 파라미터: skipbigram(sbg), lmOrder, morpheme 최소 카운트(morMinCnt) 등 설정 옵션 확인
  • 품사 태그는 형태소 구별(예: 나다 vs 나)을 위해 최상위 범주(N/V/M/I/J/E) 수준에서 유지 필요성 제기
  • 성능 테스트: 10만 건 요청(0.1초 텀) 시 3.5시간 소요, 입력 데이터 양(500자 미만)이 처리 속도에 영향