[python] scikit-learn을 이용한 TF-IDF 피처 추출

자연어 처리에서 문서를 피처로 변환하는 과정은 매우 중요합니다. 특히, TF-IDF(Term Frequency-Inverse Document Frequency) 방법은 문서 집합에서 각 단어의 중요도를 계산하는 방법입니다. scikit-learn 라이브러리를 사용하면 손쉽게 TF-IDF 피처를 추출할 수 있습니다.

TF-IDF란?

TF-IDF는 문서 내에서 특정 단어의 중요도를 계산하는 방법입니다. 먼저, Term Frequency(TF)는 특정 단어가 문서 내에서 얼마나 자주 등장하는지를 측정합니다. Inverse Document Frequency(IDF)는 전체 문서에서 해당 단어가 얼마나 희소하게 등장하는지를 측정합니다. 이 두 가지를 곱하여 TF-IDF 값을 얻습니다.

예제 코드

Python에서 scikit-learn을 사용하여 TF-IDF 피처를 추출하는 예제 코드를 살펴보겠습니다.

from sklearn.feature_extraction.text import TfidfVectorizer

# 문서 집합
corpus = ["I like to eat apples.",
          "I love apples and oranges.",
          "I prefer bananas over apples."]

# TF-IDF 객체 생성
tfidf_vectorizer = TfidfVectorizer()

# TF-IDF 피처 추출
tfidf_features = tfidf_vectorizer.fit_transform(corpus)

# 추출된 피처 정보 확인
print(tfidf_vectorizer.get_feature_names())
print(tfidf_features.toarray())

위 코드에서는 TfidfVectorizer 클래스를 사용하여 TF-IDF 피처를 추출합니다. fit_transform 메서드를 사용하여 문서 집합을 변환하고, get_feature_names 메서드를 사용하여 추출된 피처 목록을 확인할 수 있습니다.

정리

TF-IDF는 자연어 처리에서 중요한 개념 중 하나입니다. scikit-learn을 사용하여 TF-IDF 피처를 추출하는 방법을 알아보았습니다. 이를 통해 문서의 단어들로 이루어진 피처 벡터를 만들어 다양한 머신러닝 및 텍스트 분석 작업에 활용할 수 있습니다.

참고자료