Base/Python

[python] 영화 리뷰에 대한 자연어 처리분석/ 감성분석하기 feat. 스크래핑

반응형

※아나콘다가 깔려있는 환경에서 실행했습니다.

 

자연어 처리를 하기 위해서는 jdk 가 필요하다. 그 이유는 자바 가상 머신 위에서 돌아가기 때문이다. 그래서 jdk를 다운로드한다.

 

https://www.oracle.com/kr/java/technologies/javase/javase-downloads.html

버전은 무난하게 8 정도를 받는다.

 

그다음 anaconda prompt를 들어가 아래와 같이 konlpy를 받는다.

conda install konlpy

 

설치 한 다음 python으로 들어간 다음 

import nltk를 실행해본다. 정상적으로 설치가 되면 아래와 같이 뜨고 

nltk.download()

라고 칠 경우 하나의 창이 뜬다.

 

All packages에서 punkt를 받고

punkt 은 받고 사용하면서 필요한 부분은 또 받도록 하자 

 

그다음 

conda install gensim

워드를 벡터로 만들어주는 라이브러리다. 요새 많이 쓴다고 한다.

 

중간에 proceed가 뜨면 y를 눌러 다운로드를 이어간다.

 

그다음은

conda install -c conda-forge jpype1

자바와 파이썬이 통신하기 위해서 다운로드한다.

 

이것 또한 y를 입력해 다운을 받는다.

 

 

이제 기본적인 자연어 처리를 해보자

 

nouns는 명사를 추출하고 pos는 문장 내 단어들의 품사를 식별을 한다.

멀쩡히 되는 걸 확인한다.

 

 

감성 분석 하기


감성 분석을 하기 위해 위와 같이 import를 한다.

여기서는 영화 리뷰에 대한 감성 분석이다.

 

이 부분은 영화 리뷰에 대해 스크래핑을 하기 위한 작업이다.

 

 

감성 분석을 하기 위해 위 함수를 넣는다.

이렇게 해당 값들을 빼오고

tokenize.sent_tokenize(content)를 통해 content 값을 토큰화 한다. 

그다음 토큰화 한 값을 문장을 단어별로 분석해서 긍정, 부정, 중립에 대한 점수를 계산하고 반환하는 로직을 구현한다.

 sid에 있는 함수 polarity_scores라는 함수를 통해 토큰화 한 sent를 넣어 점수를 계산하고 sum에서 점수를 합한다.

그렇게 총점을 구한 뒤 길이로 나눠 점수를 매긴다.

 

우리가 만들었던 리스트를 데이터 프레임 형태로 만들고 그것을 to_csv로 csv 파일로 만든다.

csv 파일의 결과는 위와 같다. 이렇게 해당 리뷰에 대한 감성 분석을 할 수 있다.

반응형