[python] scikit-learn을 사용한 문서 군집화

scikit-learn은 파이썬에서 기계 학습을 위한 라이브러리로, 다양한 머신러닝 알고리즘을 제공합니다. 그 중에서도 텍스트 데이터를 다루는 데에 특화된 기능을 제공하는데, 이를 활용하여 문서 군집화를 할 수 있습니다.

문서 군집화란?

문서 군집화는 비슷한 특성을 가진 문서들을 그룹으로 묶는 작업입니다. 이를 통해 비슷한 주제나 내용을 가진 문서들을 자동으로 분류하거나, 특정 주제에 대한 문서들을 검색하거나 요약하는 등의 다양한 활용이 가능합니다.

scikit-learn의 문서 군집화 기능

scikit-learn은 문서 군집화를 위해 다양한 알고리즘을 제공합니다. 그 중에서도 가장 대표적인 알고리즘은 K-means 알고리즘입니다. 이 알고리즘은 주어진 데이터를 K개의 클러스터로 분류하는 방법으로, 주어진 문서들을 특정한 개수의 그룹으로 나누는 데에 사용됩니다.

from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.cluster import KMeans

# 문서 데이터 전처리
documents = [
    "첫 번째 문서입니다.",
    "두 번째 문서는 무엇일까요?",
    "세 번째 문서는 마지막 입니다."
]

# TF-IDF 벡터화
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(documents)

# K-means 알고리즘으로 문서 군집화 수행
k = 2
kmeans = KMeans(n_clusters=k)
kmeans.fit(X)

# 군집화 결과 출력
labels = kmeans.labels_
for i, document in enumerate(documents):
    print(f"{document} -> Cluster {labels[i]}")

위의 코드는 scikit-learn을 사용하여 문서 군집화를 수행하는 간단한 예제입니다. 문서 데이터를 TF-IDF 벡터로 변환한 후, K-means 알고리즘을 사용하여 2개의 군집으로 분류합니다.

참고 자료

  1. scikit-learn 공식 문서: https://scikit-learn.org/stable/
  2. 문서 군집화 예제 코드: https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html