Python(Colab) 형태소 분석 KoNLPy

2023. 6. 9. 16:10파이썬

✔ 자연어란?

- 일상에서 사용하는 언어

- 컴퓨터는 자연어를 직접적으로 이해 할 수 없다.

- 컴퓨터가 자연어의 의미를 분석해 처리 할 수 있도록 하는 일 : 자연어 처리(Natural Language Processing)
✔ 토크나이징

- 문장을 의미가 있는 가장 단어로 나눈다

- 나눠진 단어들을 이용해 의미를 분석

- 가장 기본이 되는 단어들을 "토큰"이라고 부른다.

- 문장 형태의 데이터를 처리하기 위해 제일 처음 수행 해야하는 기본적 작업이다!

- 토크나이징을 어떻게 하느냐에 따라 성능 차이가 생길 수 있다.
✔ 형태소 분석

- 자연어의 문장을 형태소라는 최소 단위로 분할하고 품사를 판별하는 직업

- 영어 형태소 분석은 형태소마다 띄어쓰기를 해서 문장을 구성하는 것이 기본(분석이 상대적으로 쉽다)

- 아시아 계열의 언어 분석은 복잡하고 많은 노력이 필요

- 한국어 형태소 분석 라이브러리 : KoNLPy
✔ KoKLPy 라이브러리

- 기본적인 한국어 자연어 처리를 위한 파이썬 라이브러리

- 명사, 대명사, 수사, 동사, 형용사, 관형사, 부사, 감탄사, 부사 로 나눈다.

- Hannanum(한나눔)  : 카이스트
- KKma(꼬꼬마): 서울대학교 
- Komoran(코모란) : Shineware
- Okt(Open Korean Text): 오픈소스 한국어 분석기

 

 

 

Colab으로 형태소 분석 해보기 

 

 

기초설정 

! pip install KoNLPy
 
# kolaw는 대한민국 헌법 텍스트파일을 제공한다.
from konlpy.corpus import kolaw

 

예제 파일 law 변수에 담기

 

#kolaw에 파일 이름 확인하기
kolaw.fileids()
 
 
law = kolaw.open('constitution.txt').read()
law
 

 

 

KoKLPy 사용해보기

from konlpy.tag import *
 
hannanum = Hannanum()
kkma =Kkma()
komoran = Komoran()
okt = Okt()

 

테스트할 파일의 문장 범위 설정 후 확인

law[:50]
 

 

nouns(): 명사를 추출

한나눔ver

hannanum.nouns(law[:50])
 

꼬꼬마ver

kkma.nouns(law[:50])
 

 

코모란ver

 

komoran.nouns(law[:50])
 

 

오픈소스ver

 

okt.nouns(law[:50])
 

 

 

morphs(): 모든 품사를 추출 

pos():품사 + 추출

 

 

print(hannanum.morphs(law[:50]))

print(hannanum.pos(law[:50]))
 
# 첫번째: morphs()
 
# 두번째: pos() (어떤 품사인지 같이 출력)
 

 

tagset: 품사별 내용 확인 가능

 

okt.tagset
 
 

 

728x90