TF-IDF 변환 Transform Frequency-Inverse Document Frequency

2024. 3. 31. 17:51DATA/BIGDATA

반응형

 

 

 

TF-IDF(Transform Frequency-Inverse Document Frequency)는 자연어 처리에서 사용되는 특징 추출 기법 중 하나이다. 주로 텍스트 분류, 정보 검색, 텍스트 유사도 측정 등의 작업에서 활용된다. TF-IDF는 각 단어의 중요도를 계산하여 텍스트의 특징을 표현하는 데 사용된다.

TF-IDF는 두 가지 개념의 조합으로 이루어져 있다

1. TF (Term Frequency):
   - 문서 내에서 각 단어의 등장 빈도를 나타낸다.
   - 특정 단어 \( t \)의 TF는 해당 단어가 문서 내에서 등장하는 횟수로 정의된다.
   - 일반적으로 문서의 길이가 길면 해당 단어의 TF 값도 증가할 수 있다.

\[ \text{TF}(t, d) = \frac{\text{단어 } t \text{가 문서 } d \text{에 등장하는 횟수}}{\text{문서 } d \text{의 총 단어 수}} \]

2. IDF (Inverse Document Frequency):
   - 단어의 희귀성을 나타내는 지표이다.
   - 특정 단어가 등장한 문서의 수에 반비례하여 계산된다.
   - 흔하게 등장하는 단어에는 낮은 가중치를 부여하고, 드물게 등장하는 단어에는 높은 가중치를 부여한다.

\[ \text{IDF}(t, D) = \log\left(\frac{\text{전체 문서 수}}{\text{단어 } t \text{가 등장한 문서의 수}}\right) \]

TF-IDF는 TF와 IDF를 곱하여 단어의 중요도를 나타내는 값으로 계산된다.

\[ \text{TF-IDF}(t, d, D) = \text{TF}(t, d) \times \text{IDF}(t, D) \]

TF-IDF 변환은 이를 통해 각 문서 내의 단어들을 TF-IDF 값으로 표현하여, 특정 문서에서 중요하게 여겨지는 단어를 강조하고, 불필요하거나 일반적인 단어에는 낮은 가중치를 부여한다. 이를 통해 문서의 특징을 더 잘 표현하고, 문서 간의 유사성을 측정하는 등의 작업, 정보 검색이나 텍스트 분류 등의 다양한 자연어 처리 작업에서 효과적으로 사용된다.

 

 

from sklearn.feature_extraction.text import TfidfVectorizer

# 문서들의 리스트
documents = [
    "This is the first document.",
    "This document is the second document.",
    "And this is the third one.",
    "Is this the first document?",
]

# TF-IDF 변환기 생성
tfidf_vectorizer = TfidfVectorizer()

# TF-IDF를 계산하여 문서를 변환
tfidf_matrix = tfidf_vectorizer.fit_transform(documents)

# 결과 확인
print("TF-IDF 행렬:")
print(tfidf_matrix.toarray())

# 각 단어의 인덱스 확인
print("각 단어의 인덱스:")
print(tfidf_vectorizer.vocabulary_)

 

- scikit-learn 라이브러리에서 TfidfVectorizer 모듈을 import한다. 이 모듈은 텍스트 데이터를 TF-IDF 행렬로 변환하는 데 사용된다.

 

- TfidfVectorizer 객체를 생성한다. 이 객체는 TF-IDF를 계산하는데 사용된다.

 

- fit_transform 메서드를 사용하여 문서를 TF-IDF 행렬로 변환한다. fit_transform은 문서 집합에 대해 토큰화와 IDF 가중치 계산을 수행하고, TF-IDF 행렬을 생성한다.

 

 

 

- TF-IDF 행렬을 출력한다. toarray() 메서드를 사용하여 희소 행렬을 밀집 행렬로 변환한다.

 

- 각 단어의 인덱스를 출력한다. vocabulary_ 속성은 각 단어가 어떤 열에 해당하는지를 나타내는 딕셔너리이다.

 

 

 

주어진 TF-IDF 행렬과 단어의 인덱스를 사용하여 결과를 해석

 이 행렬은 행이 문장을 나타내고 열이 단어를 나타내며, 각 셀은 해당 문서에서 해당 단어의 TF-IDF 값이다.

주어진 TF-IDF 행렬은 4개의 문서로 구성되어 있고, 9개의 단어로 이루어져 있다. 또한 각 단어의 인덱스도 제공되었다.

 

TF-IDF 값이 높은 단어일수록 해당 문서에서 중요한 역할을 할 가능성이 높다.


1. 첫 번째 문서: first, this, document와 같은 단어가 두드러지게 나타나며, second와 third와 같은 단어는 상대적으로 덜 중요하다.
2. 두 번째 문서: document와 second와 같은 단어가 두드러지게 나타나며, first와 third와 같은 단어는 상대적으로 덜 중요하다
3. 세 번째 문서: this, second, third와 같은 단어가 두드러지게 나타나며, first와 document와 같은 단어는 상대적으로 덜 중요하다.
4. 네 번째 문서: 첫 번째 문서와 유사하게 first, this, document와 같은 단어가 두드러지게 나타나며, second와 third와 같은 단어는 상대적으로 덜 중요하다.

반응형

'DATA > BIGDATA' 카테고리의 다른 글

기술 통계량(Descriptive Statitistics)  (0) 2024.04.01
앙상블 Ensemble method  (0) 2024.03.31
특징 공학(feature engineering)을 통한 교호작용  (0) 2024.03.31
선형 회귀 모델에서 교호작용  (0) 2024.03.31
엘보우 실루엣  (0) 2024.03.31