TF-IDF(Term Frequency – Inverse Document Frequency)

agnusdei·2025년 7월 28일

ICT

목록 보기
34/144

📚 TF-IDF(Term Frequency – Inverse Document Frequency) 정리


1. 개요 및 목적

TF-IDF는 정보 검색(Information Retrieval, IR) 및 자연어 처리(Natural Language Processing, NLP) 분야에서 문서 내 단어의 중요도를 정량적으로 평가하기 위해 사용되는 통계적 가중치 기법이다.

이는 단순히 많이 등장한 단어를 중요한 것으로 간주하는 **빈도 기반 접근(TF)**과, 전체 코퍼스에서 흔히 등장하는 일반적인 단어에는 낮은 가중치를 부여하는 **역문서빈도(IDF)**를 결합하여, 특정 문서에서 상대적으로 중요한 단어를 효과적으로 추출하는 데 활용된다.


2. 수식 정의

(1) TF(Term Frequency)

TF(t,d)=ft,dkfk,dTF(t, d) = \frac{f_{t,d}}{\sum_{k} f_{k,d}}
  • ft,df_{t,d}: 문서 dd에서 단어 tt의 등장 횟수
  • 분모는 문서 dd에 등장한 전체 단어 수
  • 문서 내부에서의 상대적 중요도를 나타냄

(2) IDF(Inverse Document Frequency)

IDF(t)=log(NDF(t))IDF(t) = \log\left(\frac{N}{DF(t)}\right)
  • NN: 전체 문서 수
  • DF(t)DF(t): 단어 tt가 등장한 문서 수 (Document Frequency)
  • 흔한 단어에는 낮은 가중치, 드문 단어에는 높은 가중치 부여

(3) TF-IDF

TF-IDF(t,d)=TF(t,d)×IDF(t)TF\text{-}IDF(t, d) = TF(t, d) \times IDF(t)
  • **문서 내 빈도(TF)**와 **전체 코퍼스 내 희소성(IDF)**을 결합한 지표
  • 단어 tt가 문서 dd에서 상대적으로 얼마나 중요한지를 나타냄

3. IDF에서 “역수를 취한다”의 의미

IDF의 핵심은 특정 단어가 전체 문서 집합에서 자주 등장할수록 중요도가 낮다는 직관이다.
단순한 역수 기반 개념은 다음과 같다:

Inverse DF=1DF(t)\text{Inverse DF} = \frac{1}{DF(t)}

이는 빈도가 클수록 가중치가 작아지는 형태이나, 수치 스케일의 급격한 변화를 완화하고 안정적인 가중치를 제공하기 위해 **로그 스케일(logarithmic scale)**로 변환하여 IDF를 정의한다.

즉,

  • 역수를 취한다 = "빈도의 역수를 사용한다" → 흔한 단어는 덜 중요
  • 로그를 취한다 = "스케일 왜곡을 줄이기 위한 수학적 처리"

4. TF-IDF의 활용 분야

분야설명
문서 검색(IR)검색 질의(Query)와 문서 간의 유사도 계산 기반
문서 분류/군집화문서 간 특성 벡터로 사용
텍스트 요약중요 단어 선별 기준
스팸 필터링비정상적으로 높은 빈도의 단어 감지
키워드 추출기사, 논문, 블로그 등에서 핵심 키워드 자동 추출

5. 실무적 해석 예

  • 예를 들어, 단어 "the"는 모든 문서에 등장할 수 있어 DF(t)=NDF(t) = N, 따라서:

    IDF=log(NN)=log(1)=0IDF = \log\left(\frac{N}{N}\right) = \log(1) = 0

    TF-IDF = 0 → 중요하지 않음

  • 반면, 단어 "quantum"이 일부 논문에만 등장한다면 DF(t)NDF(t) \ll N,
    IDF는 높아지고, 해당 문서에서의 TF가 존재하면 TF-IDF도 커진다


6. 장단점

✅ 장점

  • 간결하고 계산 비용이 적다
  • 불필요한 빈도 기반 단어 자동 필터링 가능
  • 텍스트 데이터의 벡터화(vectorization)에 유용

❌ 단점

  • 문맥(context) 정보 미반영 → "동의어", "다의어" 구분 불가
  • 단어 간 순서/관계 정보 손실 (bag-of-words 기반)
  • 희소 행렬(Sparse Matrix) 문제 발생

7. 결론

TF-IDF는 고전적인 텍스트 마이닝 접근법이지만, 현재에도 강력한 기초 피처로 널리 활용되며, BERT, GPT 등 현대 언어 모델의 사전 처리 기반에서도 여전히 참고 요소로 사용된다. 특히 키워드 기반 검색, 문서 분류와 같은 전통적 NLP 분야에서는 간단하면서도 효과적인 벡터화 전략으로 활용 가치가 높다.


profile
DevSecOps, Pentest, Cloud(OpenStack), Develop, Data Engineering, AI-Agent

0개의 댓글