티스토리 뷰

 

설치

 

KoNLPy 홈페이지 https://konlpy-ko.readthedocs.io/ko/v0.4.3/ 에서 사용하기 - 설치하기 - 윈도우를 클릭해보면 다음과 같은 과정이 나온다.

KoNLPy를 사용하기 위해서는 반드시 이 순서대로 진행해야 정상적으로 작동한다.

(마음대로 설치하다가 다 지우고 다시 설치함ㅠㅠ)

이제 설치해보자.

 

 

1. Java 설치 -> https://www.java.com/ko/download/win10.jsp

 

2. jdk 설치 -> https://www.oracle.com/technetwork/java/javase/downloads/index.html

 

3. JAVA_HOME 설정

  제어판 - 시스템 속성 - 환경 변수 - 사용자 변수 - 새로 만들기/편집 누른 후

  변수: JAVA_HOME,  값 : jdk 설치 경로 (ex: C:\Program Files\Java\jdk-15.0.2 ) 를 입력하고 확인

(설치과정에서 자동으로 설정되었을 수도 있다)

 

4. JPype 설치

https://www.lfd.uci.edu/~gohlke/pythonlibs/#jpype 에서 자신의 컴퓨터 환경과 파이썬 버전에 맞는 파일을 다운로드한다.

(ex: python 3.7, 64bit이JPype1-1.2.0-cp37-cp37m-win_amd64.whl 다운로드)

다운로드 한 파일을 konlpy 모듈을 사용할 파일의 위치로 이동시켜주고, 터미널 상에서 JPype 파일이 있는 경로로 이동한다.

터미널에  > pip install --upgrade pip 를 입력하여 pip를 우선 업그레이드 해준다! (중요)

그런 다음  > pip install JPype1-1.2.0-cp37-cp37m-win_amd64.whl 를 입력하여 JPype를 설치한다. (본인이 설치한 파일 명에 따라서 입력해야한다!)

 

5. KoNLPy 설치

cmd 창에  > pip install konlpy 를 입력하여 설치하면 설치 완료!!

 

 


 

사용법

 

KoNLPy를 설치하면 원래는 Kkma, Komoran, Hannanum, Okt, Mecab 5개의 분석기를 사용할 수 있는데,

처리속도도 빠르고 비교적 정확하게 분석하는 Mecab은 윈도우에서는 지원되지 않는다 ㅠㅠ

그래서 처리속도는 가장 느리지만 그나마 정확히 분석하는 Kkma 분석기를 사용해보았다.

 

 

from konlpy.tag import Kkma
tokenizer = Kkma()

Kkma 분석기를 이용하는 코드인데, 다른 분석기를 사용하려면 Kkma가 써있는 부분만 변경해주면 된다.

 

혹시 에러가 난다면 더보기 클릭!

더보기

 

'SystemError: java.nio.file.InvalidPathException: Illegal char <*> at index 46: C:\...\lib\site-packages\konlpy\java\*'

'TypeError: can't apply this __setattr__ to _jpype._JClass object'

JPype1 특정 버전에서 이런 에러가 나곤 한다. (내 경우 1.2.1, 1.3.0 에서 그랬음)

다른 버전의 Jpype1를 설치하면 해결될 것이다.

> pip install "jpype1==1.1.2"

 

 

 

morphs() 메소드는 형태소만을 반환한다.

tokenizer.morphs("카페에서의 여유 참 좋네요")

출력 결과>>

['카페', '에서', '의', '여유', '참', '좋', '네요']

 

pos() 메소드는 형태소와 그에 대한 품사를 반환한다.

tokenizer.pos("카페에서의 여유 참 좋네요")

출력 결과>>

[('카페', 'NNG'), ('에서', 'JKM'), ('의', 'JKG'), ('여유', 'NNG'), ('참', 'MAG'), ('좋', 'VA'), ('네요', 'EFN')]

 

nouns() 메소드는 형태소 분석한 것 중 품사가 명사(NNG)인 것만 반환한다.

tokenizer.nouns("카페에서의 여유 참 좋네요")

출력 결과>>

['카페', '여유']

반응형

댓글