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: 사전 로딩 속도 개선
    이형태 통합 유무 옵션 추가
    분석 속도 향상
  • v0.8: URL, 이메일, 해시태그, 멘션 검출 추가
    치(하지), 컨대(하건대), 토록(하도록), 케(하게) 축약형이 포함된 동사 활용형 분석 개선
    사용자 사전에 알파벳이나 숫자, 특수 기호가 포함시 버그 수정
    특정 상황에서 결합조건이 무시되던 문제를 해결
  • v0.9: default.dict에 포함된 활용형 단어 때문에 발생하는 오분석 수정
    custom allocator에서 발생하는 멀티스레딩 메모리 누수 해결
    형태소 탐색 시 조사/어미의 결합조건을 미리 고려하도록 변경, 속도 개선
    일부 명사(전랑 처럼 받침 + 랑으로 끝나는 미등재 명사) 입력시 분석이 실패하는 버그 수정
    공백문자만 포함된 문자열 입력시 분석결과가 /UN로 잘못나오는 문제 수정

특징

외부 라이브러리 의존 없이 순수 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

 

데모

결과 개수:
 
 

링크

 

GUI버전

 

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

SEARCH

MENU NAVIGATION