khaiii(Kakao Hangul Analyzer iii)
형태소 분석기를 설치하는 방법에 대해 정리해보고자 한다.
khaiii 형태소 분석기는 MacOS 혹은 Linux(Ubuntu) 환경에서만 사용할 수 있다. (Windows OS 미지원)
khaiii는 카카오가 2018년에 공개한 한국어 형태소 분석기이다. 국립국어원에서 배포한 세종 corpus(형태 분석 말뭉치)를 일부 수정한 85만 문장(1천 만 어절)의 corpus와 카카오에서 자체적으로 구축한 6만 어절의 corpus를 함께 사용하여 학습되었다. (음절, 형태소 정렬 후 최종적으로 약 85만 문장(1003만 어절)이 학습 corpus이고, 이중 1만 문장을 validation corpus(50%), test corpus(50%)로 사용하였다.)
세종 corpus의 품사 집합을 대부분 그대로 사용하고 있으나, 분석이 불가능하거나 어려운 SWK, ZN, ZV, ZZ의 경우 한글 자모가 나타나거나(ex. 가운ㄷㅔ) 띄어쓰기 오타에 한해 제한적으로 사용하였다.
분류 | 품사 | 설명 |
---|---|---|
체언 | NNG | 일반 명사 |
체언 | NNP | 고유 명사 |
체언 | NNB | 의존 명사 |
체언 | NP | 대명사 |
체언 | NR | 수사 |
용언 | VV | 동사 |
용언 | VA | 형용사 |
용언 | VX | 보조 용언 |
용언 | VCP | 긍정 지정사 |
용언 | VCN | 부정 지정사 |
수식언 | MM | 관형사 |
수식언 | MAG | 일반 부사 |
수식언 | MAJ | 접속 부사 |
독립언 | IC | 감탄사 |
관계언 | JKS | 주격 조사 |
관계언 | JKC | 보격 조사 |
관계언 | JKG | 관형격 조사 |
관계언 | JKO | 목적격 조사 |
관계언 | JKB | 부사격 조사 |
관계언 | JKV | 호격 조사 |
관계언 | JKQ | 인용격 조사 |
관계언 | JX | 보조사 |
관계언 | JC | 접속 조사 |
의존 형태 | EP | 선어말 어미 |
의존 형태 | EF | 종결 어미 |
의존 형태 | EC | 연결 어미 |
의존 형태 | ETN | 명사형 전성 어미 |
의존 형태 | ETM | 관형형 전성 어미 |
의존 형태 | XPN | 체언 접두사 |
의존 형태 | XSN | 명사 파생 접미사 |
의존 형태 | XSV | 동사 파생 접미사 |
의존 형태 | XSA | 형용사 파생 접미사 |
의존 형태 | XR | 어근 |
기호 | SF | 마침표, 물음표, 느낌표 |
기호 | SP | 쉼표, 가운뎃점, 콜론, 빗금 |
기호 | SS | 따옴표, 괄호표, 줄표 |
기호 | SE | 줄임표 |
기호 | SO | 붙임표(물결, 숨김, 빠짐) |
기호 | SL | 외국어 |
기호 | SH | 한자 |
기호 | SW | 기타 기호(논리, 수학 기호, 화폐 기호 등) |
기호 | SWK | 한글 자소 |
기호 | SN | 숫자 |
추정 | ZN | 분석 불능(명사 추정) |
추정 | ZV | 분석 불능(용언 추정) |
추정 | ZZ | 분석 불능(기타) |
khaiii는 C++14로 개발하여 이를 지원하는 빌드 툴을 필요로 한다. pip를 이용해 cmake
3.10 이상 버전을 설치한다.
pip install cmake
cmake가 설치되었으면 khaiii 깃 저장소를 클론받아온 뒤, build
디렉토리를 생성하고 cmake를 실행한다.
# khaiii 깃 저장소 클론 받아오기
git clone https://github.com/kakao/khaiii.git
# build 디렉토리 생성 후 이동하기
mkdir build
cd build
# cmake 실행하기
cmake ..
cmake 실행이 완료되었으면 cmake로 khaiii와 resource를 빌드한다.
make all
make resource
# 동작 확인 테스트
ctest
정상적으로 빌드 되었으면 pip 명령을 이용하여 package를 설치한다.
sudo make install
make package_python
cd ./package_python
pip install .
정상적으로 설치되었다면 python 인터프리터에서 다음과 같이 사용할 수 있다.
from khaiii import KhaiiiApi
api = KhaiiiApi()
for word in api.analyze('형태소 분석기 설치 완료.'):
print(word)