파이썬/라이브러리(API)

파이썬 한글 형태소 분석, 태깅 라이브러리 KoNLPy 사용법

코데방 2024. 3. 26.
728x90

KoNLPy

 

패키지 및 JDK설치, 설정은 아래 링크를 참조해주시면 됩니다.

 

https://codevang.tistory.com/351

 

 

코엔엘파이를 통해서 사용할 수 있는 형태소 분석기로 Okt(Open Korea Text), 메캅(Mecab), 코모란(Komoran), 한나눔(Hannanum), 꼬꼬마(Kkma) 다섯가지가 있습니다.

 

한국어 NLP에서 형태소 분석기 사용은 단어의 토큰화라기보다는 형태소(morpheme) 단위로 형태소 토큰화(morpheme tokenization)를 수행하게 됨을 뜻합니다. 영어는 공백 기준으로 끊어주면 되지만 한글은 조사 등 여러 형태에 따라 나눠줘야 하기 때문입니다.

 

 

 

 

KoNLPy 사용하기

 

Kkma(꼬꼬마)를 비롯한 다섯가지 라이브러리들의 사용법은 동일합니다. import와 객체 생성만 해당 라이브러리에서 해주면 됩니다.

 

주로 사용되는 메소드는 아래와 같습니다. 

 

 

1) nouns : 명사 추출

1) morphs : 형태소 추출
2) pos : 품사 태깅

 

 

잘 사용되는 세 가지로 테스트를 해보겠습니다. 

 

 

1. 명사추출하기

from konlpy.tag import Okt

# 분석할 문자열
str = "코스피 반등…외국인·기관이 이끌고 8만전자가 당겼다"

# Okt 객체 생성
okt = Okt()

# 명사 추출
print(okt.nouns(str))

 

 

 

 

각 분석기별로 결과가 많이 다릅니다. 순차적으로 여러 개를 동시에 쓰거나 샘플 데이터 등의 테스트를 통해서 분석 데이터에 맞는 분석기를 사용해야합니다.

 

 

 

 

 

 

2. 형태소 추출하기

 

print()

from konlpy.tag import Okt
from konlpy.tag import Kkma
from konlpy.tag import Hannanum


# 분석할 문자열
str = "코스피 반등…외국인·기관이 이끌고 8만전자가 당겼다"

# 각 분석기 객체 생성
okt = Okt()
kkma = Kkma()
han = Hannanum()

# 명사 추출
print("Okt : ", okt.morphs(str))
print("Kkma : ", kkma.morphs(str))
print("Hannanum : ", han.morphs(str))




print()

 

 

 

 

 

3. 품사 태깅하기

 

위 형태소 분석에서 나온 단어의 품사를 태깅해줍니다. 

print()

from konlpy.tag import Okt
from konlpy.tag import Kkma
from konlpy.tag import Hannanum


# 분석할 문자열
str = "코스피 반등…외국인·기관이 이끌고 8만전자가 당겼다"

# 각 분석기 객체 생성
okt = Okt()
kkma = Kkma()
han = Hannanum()

# 명사 추출
print("Okt : ", okt.pos(str))
print("Kkma : ", kkma.pos(str))
print("Hannanum : ", han.pos(str))




print()

 

 

 

 

다들 다른 기준을 가지고 있어 태깅된 품사 표시의 의미를 알고 싶다면 아래와 같이 "tagset"을 통해 찾아볼 수 있습니다.

print("Okt : ", okt.tagset)

 

 

 

 

 

KoNLPy의 기본 사용법은 위와 같고, 좀 더 파워풀한 사용법은 추후 미니 프로젝트 포스팅에서 이어나가도록 하겠습니다. 

 

 

 

 

 

 

 

 

 

728x90

댓글

💲 추천 글