Kiwi : 지능형 한국어 형태소 분석기

개요

가볍게 만들어 본 c++기반 한국어 형태소 분석기 Kiwi입니다. 현재 문학작품이나 신문기사 등의 텍스트에 대해 약 94% 성능을 보이며, 성능은 앞으로 더욱 개선될 예정입니다.

 

업데이트 내역

  • v0.1: 첫 릴리즈. 약 80% 정확도
  • v0.2: 정확도 85%까지 향상.
    상호정보량 맵을 이용하여 분석 모호성 감소
    서술격 조사 생략 추적 가능해짐
  • v0.3: 알고리즘 및 메모리 관리 최적화
    실행 속도 약 86% 향상. (0.14MB/s)
  • v0.4: 알고리즘 개선
    실행 속도 약 101% 향상. (0.28MB/s)
  • v0.5: 언어 모형 개선 (Kneser-Ney 3-gram LM)
    전반적인 정확도 상승 (최소 89%에서 94%까지)
    코퍼스에서 미등록 단어 추출 기능 추가
  • v0.6: 검색 알고리즘 최적화로 인한 속도 향상 (분석 속도: 0.33MB/s)
    전반적인 정확도 상승 (92%~96%까지)
  • v0.7: 사전 로딩 속도 개선
    이형태 통합 유무 옵션 추가
    분석 속도 향상

특징

외부 라이브러리 의존 없이 순수 C++로만 작성되어 어떤 환경에서도 사용할 수 있습니다.

사용자가 필요에 따라 사전 내용을 추가할 수 있습니다.

 

성능 비교

다음의 성능 평가는 konlpy-0.5.1에 포함된 Hannanum, Kkma, Komoran, Okt를 Kiwi와 비교한 것입니다.

평가는 AMD Ryzen 7 3700X @3.6GHz, RAM 32GB, Windows 10(64bit) 환경에서 진행되었습니다.

형태소 분석기 실행 속도 비교

  Loading 1 10 100 1000 10000 100000
Hannanum 0.434 0.003 0.005 0.015 0.055 0.424 5.360
Kkma 2.481 0.004 0.062 0.087 0.348 2.058 21.054
Komoran 1.068 0.005 0.003 0.009 0.045 0.469 17.974
Okt 1.787 0.005 0.023 0.040 0.094 0.376 2.527
Kiwi 1.009 0.002 0.002 0.004 0.029 0.137 1.361

Kiwi의 로딩 시간 및 처리 속도는 기존의 분석기들과 비교할 때 매우 빠른 편임을 확인할 수 있습니다.

라이센스

LGPL v3

 

데모

결과 개수:
 
 

링크

자세한 개발기는 블로그, 소스코드 및 라이센스에 대해서는 https://github.com/bab2min/Kiwi 를 참조해주세요.

 

GUI버전

 

Kiwi GUI 버전을 배포합니다. 자세한 내용은 http://bab2min.tistory.com/586를 참조하세요.

SEARCH

MENU NAVIGATION