📚 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)=∑kfk,dft,d
- ft,d: 문서 d에서 단어 t의 등장 횟수
- 분모는 문서 d에 등장한 전체 단어 수
- 문서 내부에서의 상대적 중요도를 나타냄
(2) IDF(Inverse Document Frequency)
IDF(t)=log(DF(t)N)
- N: 전체 문서 수
- DF(t): 단어 t가 등장한 문서 수 (Document Frequency)
- 흔한 단어에는 낮은 가중치, 드문 단어에는 높은 가중치 부여
(3) TF-IDF
TF-IDF(t,d)=TF(t,d)×IDF(t)
- **문서 내 빈도(TF)**와 **전체 코퍼스 내 희소성(IDF)**을 결합한 지표
- 단어 t가 문서 d에서 상대적으로 얼마나 중요한지를 나타냄
3. IDF에서 “역수를 취한다”의 의미
IDF의 핵심은 특정 단어가 전체 문서 집합에서 자주 등장할수록 중요도가 낮다는 직관이다.
단순한 역수 기반 개념은 다음과 같다:
Inverse DF=DF(t)1
이는 빈도가 클수록 가중치가 작아지는 형태이나, 수치 스케일의 급격한 변화를 완화하고 안정적인 가중치를 제공하기 위해 **로그 스케일(logarithmic scale)**로 변환하여 IDF를 정의한다.
즉,
- 역수를 취한다 = "빈도의 역수를 사용한다" → 흔한 단어는 덜 중요
- 로그를 취한다 = "스케일 왜곡을 줄이기 위한 수학적 처리"
4. TF-IDF의 활용 분야
분야 | 설명 |
---|
문서 검색(IR) | 검색 질의(Query)와 문서 간의 유사도 계산 기반 |
문서 분류/군집화 | 문서 간 특성 벡터로 사용 |
텍스트 요약 | 중요 단어 선별 기준 |
스팸 필터링 | 비정상적으로 높은 빈도의 단어 감지 |
키워드 추출 | 기사, 논문, 블로그 등에서 핵심 키워드 자동 추출 |
5. 실무적 해석 예
-
예를 들어, 단어 "the"는 모든 문서에 등장할 수 있어 DF(t)=N, 따라서:
IDF=log(NN)=log(1)=0
→ TF-IDF = 0 → 중요하지 않음
-
반면, 단어 "quantum"이 일부 논문에만 등장한다면 DF(t)≪N,
→ IDF는 높아지고, 해당 문서에서의 TF가 존재하면 TF-IDF도 커진다
6. 장단점
✅ 장점
- 간결하고 계산 비용이 적다
- 불필요한 빈도 기반 단어 자동 필터링 가능
- 텍스트 데이터의 벡터화(vectorization)에 유용
❌ 단점
- 문맥(context) 정보 미반영 → "동의어", "다의어" 구분 불가
- 단어 간 순서/관계 정보 손실 (bag-of-words 기반)
- 희소 행렬(Sparse Matrix) 문제 발생
7. 결론
TF-IDF는 고전적인 텍스트 마이닝 접근법이지만, 현재에도 강력한 기초 피처로 널리 활용되며, BERT, GPT 등 현대 언어 모델의 사전 처리 기반에서도 여전히 참고 요소로 사용된다. 특히 키워드 기반 검색, 문서 분류와 같은 전통적 NLP 분야에서는 간단하면서도 효과적인 벡터화 전략으로 활용 가치가 높다.