호랭이 분석가

#0. KoNLPy 설치 및 분석기 본문

Python/NLP

#0. KoNLPy 설치 및 분석기

데이터호랑이 2022. 8. 3. 23:49
반응형

1. KoNLPy 설치

 

KoNLPy는 자바(java)로 만들어진 형태소 분석기를 사용하기 때문에 1.7 이상의 버전을 설치하여야 합니다.

 

## 버전이 1.7 이상
java -version

 

※ Window

 

window의 경우 Jpype1을 먼저 설치해야 합니다.

아래 코드를 예제로 링크로 가셔서 환경에 맞는 버전으로 설치하시면 됩니다.

 

# JPype 0.5.7버전 이상, Python버전(아래 코드는 3.9버전), 64비트 윈도우
pip install JPype1‑1.4.0‑cp39‑cp39‑win_amd64.whl

 

 

 

Archived: Python Extension Packages for Windows - Christoph Gohlke

Archived: Python Extension Packages for Windows - Christoph Gohlke by Christoph Gohlke. Updated on 26 June 2022 at 07:27 UTC. This page provides 32 and 64-bit Windows binaries of many scientific open-source extension packages for the official CPython

www.lfd.uci.edu

 

JPype를 설치하셨다면 konlpy를 설치하여 주시면 설치가 완료됩니다.

 

pip install konlpy

 

※ MacOS

 

Mac의 경우는 JPype1의 설치 없이 아래 명령어로 바로 설치 가능합니다.

 

pip install konlpy

 

2. 형태소 분석 및 품사 태깅

 

KoNLPy의 형태소 분석기 목록은 아래와 같습니다.

  • Hannanum
  • Kkma
  • Komoran
  • Mecab (window 사용 불가)
  • Okt(Twitter)

각 분석기마다 성능이 조금씩 다르므로 비교해보시면서, 분석을 하고 있는 데이터에 가장 적합한 분석기를 선택해 사용하시길 바랍니다.

아래에서는 Okt 분석기를 사용한 예제로 알아보겠습니다.

 

from konlpy.tag import Okt
okt = Okt()

 

우선 Okt 객체가 제공하는 4개의 함수를 비교해보도록 하겠습니다.

  • okt.morphs(norm=False, stem=False) 
     : 텍스트를 형태소 단위로 나누어줍니다. norm은 문장을 정규화하는 역할을 하고, stem은 각 단어의 어간을 추출해줍니다.
  • okt.nouns()
     : 명사를 추출합니다.
  • okt.phrases() :
     : 어절을 추출합니다.
  • okt.pos(norm=False, stem=False, join=False)
     : 각 품사를 태깅합니다. norm과 stem 파라미터는 morphs와 동일한 기능을 가지며,
       join은 '형태소/품사' 형태로같이 붙여서 리스트로 만들어 줍니다.

 

text = '호랭이 분석가 블로그에 오신 것을 환영합니다.'

# 형태소
okt.morphs(text)
okt.morphs(text, stem=True)

 

 

어간 추출을 한 경우에는 '합니다'의 어간인 '하다'로 추출되었습니다.

 

# 명사
okt.nouns(text)
# 어절
okt.phrases(text)

 

 

# 형태소/품사 태깅 
okt.pos(text)
okt.pos(text, join=True)

 

 

join을 사용하지 않았을 경우에는 형태소와 품사가 튜플 형태로,

join=True로 추출하면 '형태소/품사' 형태로 추출되는 것을 확인할 수 있습니다.

Comments