선생님 외부화 및 Kiwi 형태소 분석기 커스터마이징

Source

  • Field Notes/ReturnZero/Daily Notes/Day 512. 2022-11-24.md

Summary

이 노트는 ‘선생님’이라는 내부 띄어쓰기/형태소 분석 서비스를 AWS Lambda를 통해 외부화하는 기술적 고려사항과, Kiwi 형태소 분석기의 사전 및 모델 커스터마이징 방법을 기록한 개발 일지이다. 주요 내용은 1) Flask/Lambda 기반 HTTPS 엔드포인트 구축 및 비용 산정(프리티어 한도 내 운영 목표), 2) 한국어 띄어쓰기 규칙 정리, 3) Kiwi 분석기의 .dict 파일 형식, 점수(scoring) 체계, n-gram 모델의 한계(모호성 해결 어려움), 4) VTS 데이터나 위키백과 표제어를 활용한 커스텀 사전 학습 가능성 탐구 등이다. 아직 실험 단계의 아이디어와 미해결 질문(점수 산정 방식, 코퍼스 구성 방법 등)이 혼재되어 있다.

Key Points

  • 서비스 아키텍처: 도커 컨테이너화 후 AWS Lambda(Function URL)로 외부화하여 HTTPS API 제공. Python/Flask 기반.
  • 비용 최적화: AWS Lambda 프리티어(월 100만 요청, 400K GBit-s 컴퓨팅) 내로 운영하기 위해 배치 처리(500자 단위 등) 및 실행 시간 단축 필요.
  • Kiwi 커스터마이징: .dict 파일을 통해 형태소 추가/수정 가능. 점수(scoring)는 모델의 확률적 기반(Kneser-ney LM)에 영향을 주며, 기본 점수 범위(-22.32 ~ -1.63) 내에서 조정 필요.
  • 데이터 소스: 위키백과/나무위키 표제어를 고유명사 사전으로 활용 중이나, 일반명사 오분류 문제 발생. VTS 데이터나 세종/모두의 코퍼스를 활용한 n-gram 재학습 가능성 검토 중.
  • 한계점: 현재 n-gram 기반 모델은 장기 의존성 모호성 해결에 한계가 있으며, Skip-gram 또는 Neural LM 도입 시 속도 저하 trade-off 존재.
  • 띄어쓰기 규칙: 합성어(사전 등재 여부), 조사, 의존명사, 숫자/단위명사, 보조용언 등에 대한 띄어쓰기 원칙과 예외 사항 정리.