한국어 형태소 분석기(POS) 분석 - 1편. 역사

승준·2021년 3월 3일
1

형태소 분석(POS-tagging)이란 원시 말뭉치(Corpus)를 형태소 단위로 쪼개고 각 형태소에 품사 정보를 부착하는 작업을 가리킨다.

현재 오픈 소스로 나와 있는 한국어 형태소 분석기(Korean POS Tagger)는 다음과 같다.

이름연도언어라이센스
KTS1995C/C++GPL v2
한나눔1999JavaGPL v3
MACH2002C/C++custom
Arirang2009JavaApache v2
꼬꼬마2010JavaGPL v2
KoNLP2011RGPL v3
Mecab-ko2013C/C++GPL v2,LGPI, BSD
KOMORAN2013Javacustom

가장 많이 사용되는 KoNLPy의 경우 기본 사전으로 세종 말뭉치(세종 계획 산출물)를 사용한다. 추가적으로 한국 법률 말뭉치, 대한민국 국회 의안 말뭉치를 사용 할 수 있다.

형태소 분석기의 역사

1) 한나눔

KAIST Semantic Web Rearch Center에서 Java버전으로 개발한 한나눔 한국어 형태소 분석기는 오픈소스로 릴리즈 되어 사용자가 쉽고 간편 하게 활용할 수 있도록 설계되었다. 이는 총 69개의 확장된 카이스트 태그셋을 기본으로 사용하고 있으며 현재는 6개 상위 태그에 대해서 20개의 새로운 태그를 세분화하여 사용하고 있다.

2) KLT

국민대학교 컴퓨터학부 강승식 교수가 C언어로 개발한 KLT 한국어 분석 모듈은 효율적인 불용어 처리 기능, ASCII 문자가 포함된 복수 질의어 처리 기능을 제공함으로 써 실용화된 정보검색 시스템 및 기계번역 시스템에서 사용되어 그 성능 및 안정성을 인정받고 있으며 연구용으로 공개하였다.

3) 꼬꼬마(KKMA)

서울 대학교 Intelligent Data Systems 연구실에서 Java로 개발한 꼬꼬마 한글 형태소 분석기는 띄어쓰기 오류에 덜 민감하며 기본적으로 동적 프로그래밍을 이용하여 모든 가능한 형태소 분석 후보를 생성하고 확률 모델을 이용하여 더 적합한 결과를 찾는다. 여기서 활용되는 확률 모델은 띄어쓰기 오류와 형태소 분석 후보 선택을 동시에 최적화하는 분석 후보를 찾는 것으로 기존의 방법들보다 발전되었다고 볼 수 있다.

4) 코모란

자소 단위로 TRIE 사전 탐색을 통해 형태소 후보를 얻어낸 후 lattice 격자를 은닉 마르코프 모델을 통해 분석한다. CRF(Conditional random field)를 이용하여 형태소 분할과 품사 태깅을 한 뒤, 사전 및 은닉 마르코프 모델을 기반으로 원형 복원을 하였다.

5) 미캡(Mecab)

지능형 형태소 분석기(분석 결과를 수작업으로 수정가능), MACH, HAM, KKMA, UTagger는 분석 사전이 분석기에 포함 되어 있어 새로운 단어 추가 불가능했지만 Mecab이 이를 해결했다. 한나눔이나 꼬꼬마(kkma) 분석기 프로젝트 등이 진행되고 있긴 하지만, 형태소 분석기임에도 띄어쓰기 구분의 오류나 공개 소스를 구하기 어렵다는 문제등의 문제들이 있어 이런 문제에 어떤 기여를 할 수 있을 것인지 고민하는 차원에서 미캡 프로젝트가 시작된 것이다.

6) 트위터

기존에 미캡이 띄어쓰기에서 가장 좋은 성능을 보여주었지만 트위터 등장 후 트위터가 가장 좋은 성능을 보여준다.

7) Khaiii

기존의 알고리즘과 달리 딥러닝을 통한 한국어 형태소 분석기 연구이다. 주로 사용되는 순환 신경망 대신 컨볼루션 신경망 (Convolutional Neural Network, CNN)을 사용하여 음절 단위로 형태소 분석을 하였다.

Conclusion

KoNLPy가 만들어진 목적은 교육, 또는 비 전공자 연구의 관점에서 java, C/C++ 프로그래밍 언어를 이용하는 것보다 python이 프로그래밍 언어를 습득하는데 드는 노력이 적기 때문에 파이썬으로 한국어 정보처리를 할 수 있는 패키지인 KoNLPy를 제안한다.
그래서 자연어 처리를 갓 배우기 시작한 학생이나 자연어 처리를 연구 목적으로 사용하려는 연구자에게 적합하다.

profile
내일을 기록하기 위해서 오늘을 기록합니다 🤗

0개의 댓글