SunFly의 코딩 및 정보 블로그

KoNLPy 실행 및 활용(Kkma, Komoran, Okt) 본문

딥러닝(Deep Learning)

KoNLPy 실행 및 활용(Kkma, Komoran, Okt)

SunFly 2022. 2. 21. 21:59

※KoNLPy (기본적인 한국어 자연어 처리를 위한 파이썬 라이브러리)

KoNLPy에 대한 자세한 설명은 konlpy.org/ko/latest/ 에 방문하세요.

 

토큰의 단위는 형태소(언어학에서 사용되는 용어)로 사용.

한국어의 9품사. -> (명사, 대명사, 수사, 동사, 형용사, 관형사, 부사, 조사, 감탄사)

 

★Kkma

- morphs(phrase) = 인자로 입력한 문장을 형태소 단위로 토크나이징함.토크나이징된 형태소들은 리스트 형태로 반환됨

- nouns(phrase) = 인자로 입력한 문장에서 품사가 명사인 토큰만 추출함.

- pos(phrase, flatten=True) = POS tagger라 부르며, 인자로 입력한 문장에서 형태소를 추출한 뒤 품사 태깅을 함. 추출된 형태소와 그 형태소의 품사가 튜플 형태로 묶여서 리스트로 반환됨.

- sentences(phrase) = 인자로 입력한 여러 문장을 분리해주는 역할을 합니다. 분리된 문장은 리스트 형태로 반환됨.

from konlpy.tag import Kkma

# 꼬꼬마 형태소 분석기 객체 생성
kkma = Kkma()

text = "아버지가 방에 들어갑니다."

# 형태소 추출
morphs = kkma.morphs(text)
print(morphs)

# 형태소와 품사 태그 추출
pos = kkma.pos(text)
print(pos)

# 명사만 추출
nouns = kkma.nouns(text)
print(nouns)

# 문장 분리
sentences = "오늘 날씨는 어때요? 내일은 덥다는데."
s = kkma.sentences(sentences)
print(s)

=> NNG(일반 명사), JKS(주격 조사), JKM(부사격 조사), VV(동사), EFN(평서형 종결 어미), SF(마침표, 물음표, 느낌표)

 

★Komoran

- morphs(phrase) = 인자로 입력한 문장을 형태소 단위로 토크나이징함. 토크나이징된 형태소들은 리스트로 반환됨.

- nouns(phrase) = 인자로 입력한 문장에서 품사가 명사인 토큰들만 추출함.

- pos(phrase, flatten=True) = POS tagging라 부르며, 인자로 입력한 문장에서 형태소를 추출한 뒤 품사 태깅을 함. 추출된 형태소와 그 형태소의 품사가 튜플 형태로 묶여서 리스트로 반환됨.

from konlpy.tag import Komoran

# 코모란 형태소 분석기 객체 생성
komoran = Komoran()

text = "아버지가 방에 들어갑니다."

# 형태소 추출
morphs = komoran.morphs(text)
print(morphs)

# 형태소와 품사 태그 추출
pos = komoran.pos(text)
print(pos)

#명사만 추출
nouns = komoran.nouns(text)
print(nouns)

=> NNG(일반 명사), JKS(주격 조사), JKM(부사격 조사), VV(동사), EFN(평서형 종결 어미), SF(마침표, 물음표, 느낌표)

 

★Okt

- morphs(phrase) = 인자로 입력한 문장을 형태소 단위로 토크나이징함. 토크나이징된 형태소들은 리스트로 반환됨.

- nouns(phrase) = 인자로 입력한 문장에서 품사가 면사인 토큰들만 추출함.

- pos(phrase, stem=False, join=False) = POS tagging라 부르며, 인자로 입력한 문장에서 형태소를 추출한 뒤 품사 태깅을 함. 추출된 형태소와 그 형태소의 품사가 튜플 형태로 묶여서 리스트로 반환함.

- normalize(phrase) = 입력한 문장을 정규화시킴.

- phrases(phrase) = 입력한 문장에서 어구를 추출함.

from konlpy.tag import Okt

#Okt 형태소 분석기 객체 생성
okt = Okt()

text = "아버지가 방에 들어갑니다."

# 형태소 추출
morphs = okt.morphs(text)
print(morphs)

# 형태소와 품사 태그 추출
pos = okt.pos(text)
print(pos)

# 명사만 추출
nouns = okt.nouns(text)
print(nouns)

# 정규화, 어구 추출
text = "오늘 날씨가 좋아욬ㅋㅋ"
print(okt.normalize(text))
print(okt.phrases(text))

 

'딥러닝(Deep Learning)' 카테고리의 다른 글

토크나이징(Tokenizing) 이란?  (0) 2022.02.21