본문 바로가기
Study/NLP

대규모 텍스트 분석을 위한 한국어 형태소 분석기의 실행 성능 비교

by GodKim 2021. 1. 25.

이 글은 논문 [대규모 텍스트 분석을 위한 한국어 형태소 분석기의 실행 성능 비교]를 읽고 정리한 글이다.

원혜진, 이현영, 강승식. (2020). 대규모 텍스트 분석을 위한 한국어 형태소 분석기의 실행 성능 비교. 한국정보과학회 학술발표논문집, (), 401-403.

대규모 텍스트 분석을 위한 한국어 형태소 분석기의 실행 성능 비교 - 한국정보과학회 학술발표논문집 - 한국정보과학회 : 논문 - DBpia, 연구를 돕는 똑똑한 학술콘텐츠 플랫폼

 

대규모 텍스트 분석을 위한 한국어 형태소 분석기의 실행 성능 비교

논문, 학술저널 검색 플랫폼 서비스

www.dbpia.co.kr


내가 멋대로 이해한 위 논문의 한 줄 요약!


 

 대규모 텍스트인 KCC 원시 말뭉치를 사용해 형태소를 분석해 본 결과 KLT2010 형태소 분석기의 KMA-windows 버전이 가장 좋은 효율을 보여주었다.


 

1. 한국어 형태소 분석기


 

 가장 대표적인 한국어 형태소 분석기로는 Konlpy가 존재한다, 해당 형태소 분석기는 파이썬 패키지 형태로 제공되며, 해당 패키지 내에는 Kkma, Mecab, Okt, Hannanum, Komoran 분석기가 존재한다. 이 중 Mecab은 linux 환경에서만 사용이 가능하다.

 이외에도 KLT2010(Korean Language Technology)가 존재한다. 해당 분석기는 C언어로 개발되어 속도가 빠르고 높은 정확도를 특징으로 가진다. 주 기능으로는 한국어 형태소 분석(KMA), 색인어 추출 및 복합명사 분해, 형태론적 중의성 해결, 한국어 태깅, 고유명사와 신조어 등 미등록어 분석이다. 해당 프로그램은 window 환경에서는 kma.exe 파일을 기반으로 실행이 가능하고, linux 환경에서는 KoNLTK 패키지를 통해 파이썬에서 사용이 가능하다.

KLT2000 한국어 형태소 분석기 -- 딥러닝(토큰화), 색인어/키워드 추출, 사용자 매뉴얼 등 : 네이버 카페 (naver.com)

 

KLT2000 한국어 형태소 분석기 -- 딥러닝(토큰화), 색인어/키워드 추출, 사용자 매뉴얼 등

아래 파일들이 첨부되어 있습니다.- KLT2000-TestVersion.zip -- 형태소 분석기(윈도용: cmd창에서 실행) (또는 http://nlp.kookmin.ac....

cafe.naver.com


2. 형태소 분석기 성능 평가


 

 KoNLPy와 KMA의 성능을 비교하기 위해 Intel Core i7-9700K와 RAM 16G에서 Window, Linux에서 각각 진행하였다. 실험에 대한 평가 항목은 '분석기 로딩 시간', '초당 평균 어절 분석 개수', '대용량 말뭉치 분석 시간', '붙여 쓴 문장에서 띄어쓰기 복원', '불규칙 변형 어절의 원형 복원', '신조어 처리 기능', '형태소 분석기 별 태그 개수'이다. 

 

 다음은 위에서 설명한 분석기별 비교 결과를 담은 성능 표이다.

 

  Kkma Mecab Okt Hannanum Komoran KMA -win KMA-linux
로딩 시간(ms) 1.6 90.7 0.5 58.4 1267.5 14.5
14.5
한 어절 분석 시간(ms) 3432.9 90.7 1750.1 358.8 1489.5
KCC 150 분석 시간(s) 116,430 783 15,916 16,280 5,000 533 1,123
초당 분석 어절 수 1,294 192,471 9,468 9,257 30,141 282,749 134,198
품사 태그 개수(개) 56 43 21 22 45 9

 

 결과 표의 특징을 살펴보면, KMA와 Mecab의 로딩 시간과 한 어절 분석 시간의 동일한 것을 볼 수 있다. 이는 객체가 생성되는 시간과 어절 분석의 시간이 동일하게 측정되었기 때문이다. 이때 분석에 사용된 한 어절은 '안녕하세요'이다. 이는 ms으로 측정하기도 어려울 만큼 짧은 시간 안에 이루어졌기 때문이다.

 

 따라서 정확한 비교를 위해 대규모 텍스트 말뭉치인 KCC(Korean Contemporary written Corpus)를 사용하였다. 해당 말뭉치는 한국어 문어체 말뭉치로 주로 신문기사 문장들로 구성이 되어있다. KCC 150은 약 1억 5천만 어절 규모이고 인용문과 콤마와 마침포를 제외한 문장부호는 포함되어있지 않다.

 

 해당 말뭉치로 분석을 진행했을때 가장 좋은 성능을 보인 분석기는 KMA window 버전이다. 8분 53초로 가장 느렸던 Kkma보다는 약 200배 정도 더 빠른 성능을 보였다. 초당 분석이 이루어지는 어절 수 도 282,749개로 가장 많았으며 해당 성능에 대해 Mecab 형태소 분석기가 그 뒤를 따랐다. 

 

 또한, 구어체에 대한 테스트를 위해 네이버 영화평 말뭉치를 사용해 실험을 진행하였다. 구어체에서 나타날 수 있는 특징인 오타(왜곡된 형태)와 신조어 등을 KMA는 어느 정도 처리를 한 것을 확인할 수 있었다.

 


 

3. 결론 및 나의 생각


 

 이번에 읽은 논문은 형태소 분석기에 대한 성능을 비교한 논문이었다. 찾아보니 KMA는 해당 논문을 작성한 랩실에서 제작한 분석기로 올해에는 window에서도 python의 라이브러리 형태로 사용될 수 있게 제작할 계획이라고 한다. 아직 직접 성능 테스트를 해보진 못했지만 실험 결과 상으로는 준수한 성능을 보여주는 것으로 추정된다.

 

 속도상으로는 뛰어난 것을 확인할 수 있지만, 정확도 측면에서는 얼마나 정확히 분석을 진행하였는지에 대한 소스가 없는 것이 아쉬웠다. 또, 대표적 형태소 분석기인 Konlpy 이외에도 존재하는 Kiwi 형태소 분석기나 Sonlpy 형태소 분석기에 대한 비교는 없어 따로 진행해보는 것도 나쁘지 않을 것 같다는 생각을 했다.

형태소 분석기 (Kiwi와 Soynlp) (tistory.com)

 

형태소 분석기 (Kiwi와 Soynlp)

Kiwi 형태소 분석기 정의 Kiwipiepy는 한국어 형태소 분석기인 Kiwi(Korean Intelligent Word Identifier)의 Python 모듈입니다. C++로 작성되었고 다른 패키지에 의존성이 없으므로 C++ 컴파일이 가능한 환경이라..

godcode.tistory.com

 

 자연어처리에 있어 형태소 분석은 가히 필수적이라고 해도 무방할 정도로 필요한 과정이다. 시중에는 다양한 형태소 분석기들이 존재한다. 하지만 그 성능과 분석에 대한 결과물이 약간씩 다르기에, 목적에 맞게 알맞은 형태소 분석기를 사용하는 것이 좋은 결과를 얻을 것이라고 예상된다. 차후 모든 면에서 가장 뛰어난 성능을 보이는 형태소 분석기가 만들어진다면, NLP에서 더 많은 발전을 이룰 것으로 추측한다.

반응형

댓글