TF-IDF란 무엇인가?

텍스트 데이터를 처리하고 분석할 때 자주 등장하는 용어 중 하나가 바로 TF-IDF입니다. 이는 문서 내 단어의 중요도를 측정하기 위한 통계적 방법으로, 정보 검색, 텍스트 마이닝, 자연어 처리 등 다양한 분야에서 널리 사용됩니다. 이번 포스트에서는 TF-IDF의 개념과 계산 방법, 그리고 실제 활용 사례에 대해 알아보겠습니다.


TF-IDF의 정의

TF-IDF는 Term Frequency-Inverse Document Frequency의 약자로, 단어의 빈도(TF)와 역문서 빈도(IDF)를 결합하여 특정 단어가 얼마나 중요한지를 측정하는 지표입니다.

1. TF (Term Frequency, 단어 빈도)

단어 빈도는 특정 단어가 문서 내에서 얼마나 자주 등장했는지를 나타냅니다. 계산 공식은 다음과 같습니다:

TF(t, d) = 특정 문서 내 단어 t의 등장 횟수 / 특정 문서 내 모든 단어 수

즉, 단어가 문서에서 많이 등장할수록 TF 값이 커집니다.

2. IDF (Inverse Document Frequency, 역문서 빈도)

역문서 빈도는 단어가 전체 문서 집합에서 얼마나 희귀한지를 나타냅니다. 계산 공식은 다음과 같습니다:

IDF(t, D) = log( 전체 문서 수 / 단어 t가 등장한 문서 수 )

IDF는 흔히 등장하는 단어(예: “the”, “is”)의 중요도를 낮추고, 드물게 등장하는 단어의 중요도를 높이는 역할을 합니다.

3. TF-IDF 값

TF와 IDF를 곱하여 최종 TF-IDF 값을 계산합니다:

TF-IDF(t, d, D) = TF(t, d) x IDF(t, D)

이 값을 통해 특정 단어가 문서에서 얼마나 중요한지를 정량적으로 평가할 수 있습니다.


TF-IDF의 특징

  1. 단어의 중요도 평가
    • 특정 단어가 문서에서 자주 등장할수록(TF가 높을수록) 중요도가 높아집니다.
    • 반대로, 전체 문서에서 흔히 등장하는 단어는(IDF가 낮을수록) 중요도가 낮아집니다.
  2. 계산 효율성
    • 단순한 수학적 계산으로 텍스트 데이터를 효과적으로 분석할 수 있습니다.
  3. 확장성
    • 다양한 문서 집합과 도메인에 적용 가능합니다.

TF-IDF의 활용 사례

  1. 문서 검색 및 랭킹
    • 검색 엔진은 TF-IDF를 활용해 검색 쿼리와 문서 간의 유사도를 측정하고, 검색 결과를 중요도 순으로 정렬합니다.
  2. 키워드 추출
    • 문서에서 중요한 키워드를 자동으로 추출하는 데 사용됩니다. 예를 들어, 뉴스 기사에서 핵심 주제를 파악할 때 유용합니다.
  3. 자연어 처리
    • TF-IDF 값은 머신 러닝 모델의 피처(feature)로 사용되며, 텍스트 분류, 군집화, 요약 등 다양한 작업에 기여합니다.

간단한 예시

다음은 3개의 문서를 예로 듭니다:

  • 문서 1: “고양이는 귀엽다.”
  • 문서 2: “강아지는 사랑스럽다.”
  • 문서 3: “고양이와 강아지는 친구다.”

단어 고양이의 TF-IDF를 계산해 보겠습니다:

단어목록 : [고양이, 강아지, 고양이, 강아지, 친구]

  1. TF 계산
    • 문서 1에서 고양이는 1회 등장하므로 TF = 1/2 = 0.5
    • 문서 3에서 고양이는 1회 등장하므로 TF = 1/3 = 0.333…
  2. IDF 계산
    • 고양이는 전체 3개 문서 중 2개 문서에서 등장하므로 IDF = log(3/2) = 0.17609125905568124208128900853062…
  3. TF-IDF
    • 문서 1에서 고양이의 TF-IDF 값은 TF-IDF = 0.5 * 0.176.. = 0.088
    • 문서 3에서 고양이의 TF-IDF 값은 TF-IDF = 0.333… * 0.176… = 0.0586…

결론

TF-IDF는 간단하지만 강력한 도구로, 텍스트 데이터를 분석하고 중요한 정보를 추출하는 데 매우 유용합니다. 문서 검색, 키워드 추출, 자연어 처리 등 다양한 응용 분야에서 그 가치를 입증하고 있으며, Sparse Retrieval 방식(BM25 등)에서도 핵심적인 역할을 합니다. 텍스트 데이터를 다룰 때 TF-IDF를 적극 활용해 보시길 바랍니다.