본문 바로가기

DATA SCIENCE/NLP

[NLP] 한국어 형태소 분석

이 포스트는 책 '한국어 임베딩(자연어 처리 모델의 성능을 높이는 핵심 비결 Word2Vec에서 ELMo, BERT까지, 이기창 저)'을 기반으로 작성되었습니다.

한국어 NLP를 위해 사용할 수 있는 공개된 데이터

  • 위키백과 : 한국어 말뭉치(corpus) 문서 중 가장 방대한 데이터 (https://dumps.wikimedia.org/kowiki/)
    (TMI - 위키백과는 누구나 편집할 수 있는 문서라서 자연어처리에서는 잘 이용하지 않을 것 같았다. 하지만 실제 현업에서뿐만 아니라 NLP 연구에서 보편적으로 쓰이는 데이터 중 하나인 것 같다. 관련 논문을 찾아봐도 wiki 관련 내용이 많이 나오고, 인턴을 시작할 때 가장 먼저 처리한 데이터도 위키백과였다.)
  • KorQuAD : LG CNS에서 구축한 문서 - 질문 - 답변 형태의 한국어 데이터 (https://korquad.github.io/)
  • 네이버 영화 리뷰 : 영화 리뷰 및 감정 레이블(긍정/부정) 데이터 (https://github.com/e9t/nsmc)

지도 학습을 통한 형태소 분석

지도 학습의 경우, 이미 학습이 된 형태소 분석기로 직접 바로 이용할 수 있다. 

  • KoNLPy : Mecab, Hannanum, Kkma, Komoran, Okt 등의 오픈소스 사용 가능
  • Khaiii : 2018년 카카오에서 개발한 것으로, 국립국어원 세종 corpus 데이터에 CNN을 적용 (https://brunch.co.kr/@kakao-it/308)

비지도 학습을 통한 형태소 분석

비지도 학습의 경우, 사용자가 직접 학습을 시켜줘야 하는 형태소 분석기로 이용하기 전 보유하고 있는 데이터로 학습을 시켜주어야 한다.

  • sonlpy : 문자열끼리 자주 나타나는지에 대한 응집 확률과 문자열 주변에 다양한 단어가 등장하는지에 대한 Branching Entropy를 기반으로 만들어진 한국어 NLP 패키지로, 띄어쓰기 교정 모듈까지 제공 (https://github.com/lovit/soynlp)
  • sentencepiece : 2018년 구글에서 개발한 것으로, BPE(Byte Pair Encoding) 기법 이용
    (BERT 모델 또한 BPE를 통해 학습된 어휘 집합을 이용)

 

 

반응형