[python] gensim을 활용한 네이버 영화 리뷰 감정 분석 성능 평가 방법

이번 포스트에서는 gensim 라이브러리를 활용하여 네이버 영화 리뷰 데이터를 이용한 감정 분석 모델의 성능을 평가하는 방법에 대해 알아보겠습니다.

1. Introduction

감정 분석은 텍스트의 긍정적, 부정적, 또는 중립적인 감정을 분류하는 자연어 처리의 중요한 분야입니다. 우리는 gensim 라이브러리를 사용하여 Word2Vec 방법을 통해 단어 임베딩을 학습하고, 이를 활용하여 네이버 영화 리뷰 데이터를 학습하고 평가할 것입니다.

2. 데이터 수집 및 전처리

네이버 영화 리뷰 데이터를 수집하고, 형태소 분석기를 사용하여 데이터를 전처리합니다. 이후 각 리뷰를 단어로 분할하여 모델에 입력할 수 있도록 합니다.

# 데이터 수집
import pandas as pd
naver_movie_reviews = pd.read_csv('naver_movie_reviews.csv')

# 데이터 전처리
from konlpy.tag import Okt
okt = Okt()
naver_movie_reviews['tokenized_text'] = naver_movie_reviews['text'].apply(lambda x: okt.morphs(x))

3. Word2Vec 모델 학습

Word2Vec 모델을 학습하여 단어 임베딩을 생성합니다. Gensim 라이브러리를 사용하여 Word2Vec 모델을 구축하고 학습시킵니다.

from gensim.models import Word2Vec
word2vec_model = Word2Vec(sentences=naver_movie_reviews['tokenized_text'], vector_size=100, window=5, min_count=1, workers=4)

4. 감정 분석 모델 학습 및 평가

Word2Vec 모델을 사용하여 감정 분석 모델을 학습하고, 이를 평가합니다. 정확도, 정밀도, 재현율, F1 점수 등을 활용하여 모델의 성능을 평가합니다.

# 감정 분석 모델 학습
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
X_train, X_test, y_train, y_test = train_test_split(word2vec_features, naver_movie_reviews['sentiment'], test_size=0.2, random_state=42)
model = LogisticRegression()
model.fit(X_train, y_train)

# 성능 평가
from sklearn.metrics import classification_report
y_pred = model.predict(X_test)
print(classification_report(y_test, y_pred))

5. 결론

이러한 방식으로 gensim을 활용하여 네이버 영화 리뷰 감정 분석 모델의 성능을 평가할 수 있습니다. 이를 통해 모델의 성능을 개선하고 실제 응용에 적용할 수 있는 강력한 감정 분석 모델을 구축할 수 있습니다.

6. 참고 자료

  1. “Gensim: Topic modelling for humans.” Radim Řehůřek. 링크
  2. “네이버 영화 리뷰 데이터셋.” 네이버. 링크