본문 바로가기
Python/머신러닝, 딥러닝

KoNLPy 설치 및 한국어 형태소 라이브러리 비교

by IT두잇 2022. 4. 29.
 

KoNLPy 라이브러리를 통해 총 5가지 종류의 형태소 분석기를 활용할 수 있습니다. 

이 중 Okt, 한나눔, 꼬꼬마 라이브러리를 비교해보려 합니다 :)

 

KoNLPy 라이브러리 설치 방법

1. 아나콘다에서 설치되어 있는지 확인

>> conda install konlpy

 

2. 설치

>> pip3 install konlpy

 


Okt한나눔꼬꼬마 라이브러리는 다음과 같은 메서드를 공통적으로 제공합니다.

  • .pos( ) : 품사 부착
    결과값 예시: [('아버지', 'Noun'), ('가방', 'Noun'), ('에', 'Josa'), ('들어가신다', 'Verb')]

  • .morphs( ) : 형태소 추출
    결과값 예시: ['아버지', '가', '방', '에', '들어가신다']

  • .nouns( ): 명사 추출
    결과값 예시: ['아버지', '방']

Okt 형태소 분석기

* Okt는 이전에 Twitter 형태소 분석기로 사용되었습니다. KoNLPy v0.4.5 버전부터 Okt로 변경되었다고 합니다.

import konlpy # KoNLPy 설치
from konlpy.tag import Okt #Okt 설치
 
okt = Okt()
 
okt.pos('아버지 가방에 들어가신다')
 
 
cs
결과값:
[('아버지', 'Noun'), ('가방', 'Noun'), ('에', 'Josa'), ('들어가신다', 'Verb')]

 

 

띄어쓰기를 하지 않아도 자동적으로 분류되는 걸 보실 수 있습니다. 😲

okt.pos('아버지가방에들어가신다')
cs
결과값:
[('아버지', 'Noun'), ('가방', 'Noun'), ('에', 'Josa'), ('들어가신다', 'Verb')]

 

 

출력 옵션을 따로 지정할 수도 있습니다.

  • norm 옵션: '그래욬ㅋ' 처럼 작성했을 때 -> '그래요'로 변환
  • stem 옵션: '들어가신다' --> '들어가다' 라고 원형을 찾아줌
okt.pos('아버지 가방에 들어가신다', norm = True, stem = True)
cs
결과값:
[('아버지', 'Noun'), ('가방', 'Noun'), ('에', 'Josa'), ('들어가다', 'Verb')]

 

 


한나눔 형태소 분석기

from konlpy.tag import Hannanum
 
hannanum = Hannanum()
 
hannanum.pos(phrase) #1
hannanum.morphs(phrase) #2
hannanum.nouns(phrase) #3
cs
결과값:
#1
[('아버지', 'N'), ('가', 'J'), ('방', 'N'),  ('에', 'J'), ('들', 'P'), ('어', 'E'), ('가', 'P'),  ('시ㄴ다', 'E')]

#2
['아버지', '가', '방', '에', '들', '어', '가', '시ㄴ다']

#3['아버지', '방']

 


꼬꼬마 형태소 분석기

from konlpy.tag import Kkma
kkma = Kkma()
 
kkma.pos(phrase) #1
kkma.morphs(phrase) #2
kkma.nouns(phrase) #3
cs
결과값:
#1
[('아버지', 'NNG'), ('가', 'JKS'), ('방', 'NNG'), ('에', 'JKM'), ('들어가', 'VV'), ('시', 'EPH'), ('ㄴ다', 'EFN')]

#2
['아버지', '가', '방', '에', '들어가', '시', 'ㄴ다']

#3
['아버지', '방']