본문 바로가기
python

[python] KoNLPy 사용법

by _eunji_ 2021. 3. 20.

KoNLPy를 사용하기 전, 우선 KoNLPy패키지를 설치한다.

설치 방법은 아래 링크 참고!

konlpy-ko.readthedocs.io/ko/v0.4.3/install/#id2

 

설치하기 — KoNLPy 0.4.3 documentation

주석 설치 및 사용 도중 문제가 발생하는 경우 다음 페이지들을 참고해주세요: 리눅스. 맥 OS. 윈도우. 발생한 문제가 어디에도 없는 경우 “New Issue” 버튼을 눌러 새로운 이슈를 생성해주시기

konlpy-ko.readthedocs.io

KoNLPy 형태소 분석기 종류

  • Hannanum(한나눔) - KAIST 말뭉치를 이용해 생성된 사전 
  • Kkma(꼬꼬마) - 세종 말뭉치를 이용해 생성된 사전 -> 정확한 품사 분류 
  • Mecab(메캅) - 세종 말뭉치로 만들어진 CSV형태의 사전
  • Komoran(코모란) - Java로 쓰여진 오픈소스 한글 형태소 분석기 -> 정확성과 속도
  • Twitter(Okt) - 오픈소스 한글 형태소 분석기 -> 빠른 분석

*메캅은 윈도우에서 지원하지 않는다

 

KoNLPy를 사용한 형태소 분석은 간단하다.

  1. 형태소 분석기 import
  2. 메소드를 이용한 형태소 분석

 

Hannanum

  • hannaum import하기
from konlpy.tag import Hannanum
hannanum=Hannanum()
  • ​morphs() - 문장을 형태소 단위로 추출
print(hannanum.morphs('안녕. 나는 하늘색과 딸기를 좋아해'))
>> ['안녕', '.', '나', '는', '하늘색', '과', '딸기', '를', '좋', '아', '하', '어']
  • nouns() - 문장을 명사 단위로 추출
print(hannanum.nouns('안녕. 나는 하늘색과 딸기를 좋아해'))
>> ['나', '하늘색', '딸기']
  • pos() - 형태소의 종류와 함께 출력
print(hannanum.pos('안녕. 나는 하늘색과 딸기를 좋아해'))
>> [('안녕', 'I'), ('.', 'S'), ('나', 'N'), ('는', 'J'), ('하늘색', 'N'), ('과', 'J'), ('딸기', 'N'), ('를', 'J'), ('좋', 'P'), ('아', 'E'), ('하', 'P'), ('어', 'E')]
  • tagset - 품사의 종류 출력
print(hannanum.tagset)
>> {'E': '어미', 'EC': '연결 어미', 'EF': '종결 어미', 'EP': '선어말어미', 'ET': '전성 어미', 'F': '외국어', 'I': '독립언', 'II': '감탄사', 'J': '관계언', 'JC': '격조사', 'JP': '서술격 조사', 'JX': '보조사', 'M': '수식언', 'MA': '부사', 'MM': '관형사', 'N': '체언', 'NB': '의존명사', 'NC': '보통명사', 'NN': '수사', 'NP': '대명사', 'NQ': '고유명사', 'P': '용언', 'PA': '형용사', 'PV': '동사', 'PX': '보조 용언', 'S': '기호', 'X': '접사', 'XP': '접두사', 'XS': '접미사'}

 

Kkma

from konlpy.tag import Kkma
kkma=Kkma()
#형태소 분석
print(kkma.morphs('안녕. 나는 하늘색과 딸기를 좋아해'))
>> ['안녕', '.', '나', '는', '하늘색', '과', '딸기', '를', '좋아하', '어']

#명사 추출
print(kkma.nouns('안녕. 나는 하늘색과 딸기를 좋아해'))
>> ['안녕', '나', '하늘색', '딸기']

#품사와 함께 반환
print(kkma.pos('안녕. 나는 하늘색과 딸기를 좋아해'))
>> [('안녕', 'NNG'), ('.', 'SF'), ('나', 'NP'), ('는', 'JX'), ('하늘색', 'NNG'), ('과', 'JC'), ('딸기', 'NNG'), ('를', 'JKO'), ('좋아하', 'VV'), ('어', 'ECS')]

#문장 추출
print(kkma.sentences('안녕하세요. 나는 하늘색과 딸기를 좋아해'))
>> ['안녕하세요.', '나는 하늘색과 딸기를 좋아해']

 

Komoran

from konlpy.tag import Komoran
komoran=Komoran()
#형태소 추출
print(komoran.morphs('안녕. 나는 하늘색과 딸기를 좋아해'))
>> ['안녕', '.', '나', '는', '하늘색', '과', '딸기', '를', '좋아하', '아']

#명사 추출
print(komoran.nouns('안녕. 나는 하늘색과 딸기를 좋아해'))
>> ['하늘색', '딸기']

#품사 정보와 함께 추출
print(komoran.pos('안녕. 나는 하늘색과 딸기를 좋아해'))
>> [('안녕', 'IC'), ('.', 'SF'), ('나', 'NP'), ('는', 'JX'), ('하늘색', 'NNP'), ('과', 'JC'), ('딸기', 'NNP'), ('를', 'JKO'), ('좋아하', 'VV'), ('아', 'EC')]

 

Okt

from konlpy.tag import Okt
okt=Okt()
#형태소 추출
print(okt.morphs('안녕. 나는 하늘색과 딸기를 좋아해'))
>> ['안녕', '.', '나', '는', '하늘색', '과', '딸기', '를', '좋아해']

#명사 추출
print(okt.nouns('안녕. 나는 하늘색과 딸기를 좋아해'))
>> ['안녕', '나', '하늘색', '딸기']

#품사와 함께 추출
print(okt.pos('안녕. 나는 하늘색과 딸기를 좋아해'))
>> [('안녕', 'Noun'), ('.', 'Punctuation'), ('나', 'Noun'), ('는', 'Josa'), ('하늘색', 'Noun'), ('과', 'Josa'), ('딸기', 'Noun'), ('를', 'Josa'), ('좋아해', 'Adjective')]

#어절 추출
print(okt.phrases('안녕. 나는 하늘색과 딸기를 좋아해'))
>> ['안녕', '하늘색', '하늘색과 딸기', '딸기']

 

 

 


참고

'python' 카테고리의 다른 글

[python] 뉴스 기사 크롤링 (newspaper 모듈)  (0) 2021.03.21

댓글