[python] 파이썬을 이용한 영화 리뷰 감성 분석

영화 리뷰의 텍스트 데이터를 분석하여 그 감성을 판단하는 감성 분석은 텍스트 마이닝에서 중요한 주제 중 하나입니다. 이번 블로그에서는 파이썬을 사용하여 영화 리뷰의 감성을 분석하는 방법을 알아보겠습니다.

1. 데이터 수집

영화 리뷰 데이터를 수집하기 위해 웹 크롤링을 사용할 수 있습니다. 예를 들어, Beautiful Soup 라이브러리를 이용하여 웹페이지에서 리뷰를 수집하는 방법을 사용할 수 있습니다.

from bs4 import BeautifulSoup
import requests

url = '영화 리뷰 웹페이지 URL'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

reviews = []
for review in soup.find_all('div', class_='review'):
    reviews.append(review.text)

2. 데이터 전처리

수집한 리뷰 데이터를 전처리하여 텍스트를 정제하고 정규화하는 작업이 필요합니다. 예를 들어, 특수 문자나 숫자를 제거하고 모든 단어를 소문자로 변환하는 등의 작업을 수행합니다.

import re

def preprocess_text(text):
    text = text.lower()
    text = re.sub(r'[^a-zA-Z\s]', '', text)
    return text

3. 감성 분석 모델 구축

데이터를 전처리한 후, 감성 분석 모델을 구축합니다. 여기서는 간단한 머신러닝 모델인 로지스틱 회귀를 사용하여 감성을 분류하는 예제를 보여드리겠습니다.

from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score

X = [preprocess_text(review) for review in reviews]
y = [label for label in sentiment]

vectorizer = TfidfVectorizer()
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

X_train_tfidf = vectorizer.fit_transform(X_train)
X_test_tfidf = vectorizer.transform(X_test)

model = LogisticRegression()
model.fit(X_train_tfidf, y_train)

y_pred = model.predict(X_test_tfidf)
accuracy = accuracy_score(y_test, y_pred)
print(f'Accuracy: {accuracy}')

4. 모델 평가

마지막으로 구축한 감성 분석 모델을 평가합니다. 정확도나 혼동 행렬 등을 통해 모델의 성능을 평가할 수 있습니다.

이렇게 파이썬을 사용하여 영화 리뷰의 감성을 분석하는 방법을 알아보았습니다. 감성 분석은 텍스트 마이닝 분야에서 매우 중요한 주제이며, 다양한 방법과 모델을 통해 보다 정확한 감성 분석을 수행할 수 있습니다.

Reference