[python] 파이썬을 활용한 자동화된 문서 분류

본 포스트에서는 파이썬을 사용하여 텍스트 문서를 자동으로 분류하는 방법에 대해 살펴보겠습니다. 문서 분류는 텍스트 데이터를 특정 범주 또는 카테고리로 자동으로 분류하는 작업을 말합니다. 이를 통해 텍스트 문서를 효율적으로 관리하거나 해당 문서의 내용을 분석하는 데 도움이 됩니다.

목차

  1. 필요 라이브러리 설치
  2. 데이터 준비
  3. 텍스트 전처리
  4. 문서 분류 모델 구축
  5. 모델 성능 평가
  6. 결론

1. 필요 라이브러리 설치

파이썬에서 문서 분류 작업을 위해 다음과 같은 라이브러리들이 필요합니다.

pip install pandas scikit-learn nltk

2. 데이터 준비

분류 모델을 훈련시키기 위해 훈련 데이터테스트 데이터가 필요합니다. 적절한 데이터셋을 선택하고 불러온 뒤 이를 데이터프레임으로 변환합니다.

import pandas as pd

# 데이터 불러오기
data = pd.read_csv('document_dataset.csv')

# 데이터 확인
print(data.head())

3. 텍스트 전처리

텍스트 데이터를 모델에 활용하기 전에 전처리 과정이 필요합니다. 주요 전처리 작업에는 토큰화, 불용어 제거, 어간 추출 등이 포함됩니다.

from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords
from nltk.stem import PorterStemmer
import string

# 텍스트 전처리 함수 정의
def preprocess_text(text):
    # 토큰화
    tokens = word_tokenize(text)
    # 불용어 제거
    tokens = [word for word in tokens if word.lower() not in stopwords.words('english')]
    # 어간 추출
    stemmer = PorterStemmer()
    tokens = [stemmer.stem(word) for word in tokens]
    return ' '.join(tokens)

# 전처리 적용
data['preprocessed_text'] = data['text'].apply(preprocess_text)

4. 문서 분류 모델 구축

이제 머신러닝 모델을 사용하여 문서를 분류할 수 있습니다. 대표적인 분류 모델로는 나이브 베이즈 분류기, 로지스틱 회귀, 서포트 벡터 머신 등이 있습니다. 본 예시에서는 나이브 베이즈 분류기를 사용해 보도록 하겠습니다.

from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import accuracy_score

# TF-IDF 벡터화
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(data['preprocessed_text'])
y = data['category']

# 훈련 데이터와 테스트 데이터로 분리
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 모델 훈련
model = MultinomialNB()
model.fit(X_train, y_train)

# 예측
y_pred = model.predict(X_test)

# 정확도 평가
accuracy = accuracy_score(y_test, y_pred)
print('모델 정확도:', accuracy)

5. 모델 성능 평가

모델의 성능을 평가하기 위해 정확도 외에도 혼동 행렬, 정밀도, 재현율 등을 확인할 수 있습니다. 이러한 지표들을 통해 모델의 분류 성능을 더 다양한 각도에서 평가할 수 있습니다.

6. 결론

본 포스트에서는 파이썬과 관련 라이브러리들을 사용하여 자동화된 문서 분류를 수행하는 방법에 대해 알아보았습니다. 텍스트 분류 작업은 다양한 분야에서 활용되며, 모델의 성능을 개선하기 위해 다양한 전처리 기법이나 모델링 기법을 적용할 수 있습니다.

참고 자료