본문 바로가기

ANALYSIS

텍스트 분석 도전기 (1) : 킹받는 KONLPY 설치

이번 RA로 텍스트 분석을 하게 되어서 허겁지겁 패키지를 깔았다.

정말 많은 우여곡절이 있었다... 킹받음...

 

ANACONDA3를 사용, PYTHON 3.8.8을 JUPYTER를 통해 이용했다.

우선 RA를 하며 무슨 패키지를 깔게 될지 몰라서 새로운 가상환경을 만들었닷, 이름은 RA로 설정 !

 

 

여기에다가 KONLPY를 깔기 시작한다. 읽는 법은 코엔엘파이~.~

코엔엘파이는 형태소 분석을 위해서라면 꼭꼭 필요한 패키지이다. 아래처럼 따라와 보자.

 

 

 

 

1) 우선 Jpype 패키지를 설치하기 위한 파일을 다운받는다.

-주소: https://www.lfd.uci.edu/~gohlke/pythonlibs/

-'jpype' 서치하여 나에게 맞는 버전 다운로드

-난 Python 3.8이므로 cp38, windows 64이므로 win amd 64를 다운

 

 

2) 아나콘다 프롬프트를 켜, 이 파일을 다운받은 위치까지 포함하여 'pip install' 한다.

-내 코드: pip install C:\Users\SARAH\Downloads\JPype1-1.3.0-cp38-cp38-win_amd64.whl

 

 

3) 아나콘다 프롬프트에서 konlpy 패키지 설치

-코드: pip install konlpy

 

 

4) 과연 잘 깔렸을까? test.

-내가 만든 가상환경을 열고, untitled.ipynb를 만들어 코드를 입력해주었다.

-code::

path = jpype.getDefaultJVMPath()
print(path)

 

 

역시나 실망시키지 않고 에러.

 

 

그래... 기대도 안했다.

의연하게 대처하자. 그대로 코드를 복사하여 구글링한다.

찾아보니 JDK가 없어서 발생하는 문제라고 한다. 블로그가 알려주는 대로 따라해보자.

 

 

가) 파이썬 bit를 확인하자.

*** 파이썬에서 bit 확인하는 방법:

import platform
print(platform.architecture())

 

나) 오라클에서 JDK를 다운받는다. 난 WINDOWS 64를 설치했다.

주소: https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

 

 

다) 다운받은 파일 설치.

여기서 중요한 건 다운받은 위치를 꼭 알아둘 것!

 

뜬 주소를 복사 못해서 메모장에 그대로 옮겨적었다 ㅋㅋ

 

 

 

라) 메모장에 적어둔 JDK가 설치된 위치로 이동한다. 이 경로를 시스템 환경 변수에 추가한다.

-참고로 주소는 저기까지가 아니라 sever까지 들어가야 한다.

-내 경로는 다음과 같다, 이걸 꼭 참고해라:

C:\Program Files\Java\jre1.8.0_301\bin\server

 

 

server 찾아서 들어왔긔

 

 

-그리고 시스템 환경 변수를 추가하는 방법 또 구글링.

 

*** 시스템 환경변수 추가하는 방법:

제어판>시스템 및 보안>시스템

>고급 시스템 설정(오른쪽 회색 글씨)>환경변수>새로 만들기

 

-변수 이름은 JAVA_HOME으로 하여 경로 입력.

 

 

변수 값에 경로 입력, server까지 있어야 완벽한 경로다.

 

 

 

마) 환경 변수까지 완료했으면, 다시 파이썬으로 가서 print(path) 실행.

 

얏호 ! 성공 !

 

 

 

아주 신난다.

이제 형태소 분석이 될까 싶어 코드를 입력해주었다.

5) 형태소 분석을 위한 코드를 불러오자:

from konlpy.tag import Kkma
kkma = Kkma() 

 

또 에러~

 

 

이것도... 예상했다.

형태소 분석이 이렇게 쉽게 될리가 없다.

의연한 마음으로 다시 구글링을 해봤다.

어떤 분이 친절하게 버전이 안맞아서 발생하는 에러라며 코드를 다 알려주셨다.

구세주.......

 

 

 

해결방법) 아나콘다 프롬프트를 실행하여 아까 시도한 코드를 다시 입력한다.

-나는 일단 가상환경부터 접속한 뒤, python을 켰다.

-아까 코드 다시 입력:

from konlpy.tag import Kkma
kkma = Kkma()

 

아까 떴던 에러코드가 다시 등장한다.

 

 

이건... 코드를 해석하면 jpype1에 문제가 있는 거라 한다.

사실 아무리 봐도 jpype1에 문제가 있다는 말이 안보인다.

유일하게 발견한 '~~~line1'이 'jpype1'이라는 의미인가 싶어 일단 밑줄 쳐놨는데 다시 보니까 걍 첫번째 줄인 듯

 

부끄러워서 사진 뺄까 하다가 그래도 설명을 위해 넣었다.

아무튼 축약하자면,

 

python 3.7일 경우, jpype1을 다운그레이드 해주고
python 3.8일 경우, jpype1 버전을 올려준다.

 

 

3.7 코드:

pip install "jpype1<1"

 

일단 다 해보려고 시도한 다운그레이드, 결과적으론 3.8코드 또 했다.

 

 

3.8 코드:

pip install "jpype1<1.1"

이러면 1.0.2로 버전이 바뀐다고 한다.

 

 

*** REMARK.

근데 여기서 pip install~을 입력했을 때 "invalid syntax"가 뜨는 사람이 있을 거다.

이유는 간단하다, 설치를 파이썬이 아니라 기존 명령행에서 해야 돼서 그렇다.

(나 같은 경우엔 (RA) C:~>            여기다가 코드를 쳐야 된다.)

방법:

Ctrl+Z를 눌러서 뒤로 가주면 해결!

 

 

 

 

이제 버전도 바꿔주었으니, 다시 프롬프트에서 코드를 돌려보자.

 

와 !!!!!!!!!!!!!!

 

 

드디어 해결했다.

6) 이제 다시 jupyter notebook를 켜서, 형태소 분석을 직접 실행해보자.

 

앞에서 꼭 kkma=kkma() 해줘야 한다!

 

-코드:

#0. package
from konlpy.tag import Kkma
kkma = Kkma()

 

##1. Seperate sentences.
# 문단>문장으로 나누기
para = "안녕하세요. 이건 문단이고 저는 사라입니다." 
ex_sent = kkma.sentences(para)
print(len(ex_sent))
print(ex_sent)

 

##2. Extract nouns
# 문단에서 명사 추출
ex_nouns = kkma.nouns(para) 
print(len(ex_nouns))
print(ex_nouns)

 

##3. Extract morpheme. (형태소)
# 문단에서 형태소 추출
ex_pos = kkma.pos(para) 
ex_pos

 

 

 

 

여기까지로, 오늘의 텍스트 분석을 마무리 짓는다.

이제 막 단계에 들어온 것 같은데 시간을 많이 낭비해서 아쉽다.

다음엔 좀 진도를 팍팍 빼보도록 하자~

 

아래는 도움을 받은 갓-블로거분들의 주소다.

이자리에 빌어 정말정말 감사드린다...

패키지 설치: https://joyfuls.tistory.com/67

jdk 해결: https://stricky.tistory.com/398

konlpy 설치시 에러: https://daewonyoon.tistory.com/386