TF-IDF(Term Frequency-Inverse Document Frequency)는 문장이나 문서 군(Corpus) 내에서 특정 단어가 얼마나 중요한지를 나타내는 통계적 수치입니다. 주로 정보 검색(Information Retrieval)이나 텍스트 마이닝에서 핵심 단어를 추출하거나 문서 간 유사도를 구할 때 사용됩니다. 쉽게 요약하자면, "이 문서에서 자주 나오면서도(TF), 다른 문서들에서는 흔치 않은 단어(IDF)가 진짜 중요한 단어다"라는 원리입니다.
1. TF-IDF의 두 가지 구성 요소
이름에서 알 수 있듯이 두 가지 지표를 곱해서 계산합니다.
① TF (Term Frequency, 단어 빈도)
- 의미 : 특정 단어가 하나의 문서 내에서 얼마나 자주 등장하는지 나타내는 값입니다.
- 특징 : 문서 내에 단어가 많을수록 중요도가 높다고 가정합니다.
- 계산 : $\frac{\text{특정 단어 등장 횟수}}{\text{문서 내 전체 단어 수}}$
② IDF (Inverse Document Frequency, 역문서 빈도)
- 의미 : 특정 단어가 전체 문서 군에서 얼마나 드물게 나타나는지 나타내는 값입니다.
- 특징 : 모든 문서에 흔하게 등장하는 단어(예: '그리고', '은/는/이/가', 'the')는 정보 가치가 낮다고 판단하여 가중치를 낮춥니다.
- 계산 : $\log\left(\frac{\text{전체 문서 수}}{\text{단어가 포함된 문서 수}}\right)$ (로그를 취해 값이 너무 커지는 것을 방지합니다.)
2. 핵심 공식
두 값을 곱한 것이 최종 TF-IDF 점수입니다.
$$TF\text{-}IDF(t, d, D) = TF(t, d) \times IDF(t, D)$$
- $t$: 단어 (Term)
- $d$: 개별 문서 (Document)
- $D$: 전체 문서 집합 (Corpus)
3. 왜 TF-IDF를 사용하나요?
우리가 '축구'에 관한 문서 100개를 분석한다고 가정해 보겠습니다. 단순 빈도(TF)만 본다면? 모든 문서에 등장하는 '나', '그', '있다' 같은 단어가 가장 중요한 단어로 뽑힐 것입니다. 하지만 이 단어들은 문서의 주제(축구)를 설명하는 데 도움이 되지 않습니다.
TF-IDF를 적용하면?
'축구', '오프사이드', '손흥민' 같은 단어는 특정 문서에서 자주 나오지만(TF 높음), 모든 문서(예: 요리, 정치 문서 등)에서 흔하게 나오지는 않습니다(IDF 높음). 따라서 이 단어들의 TF-IDF 점수가 높게 책정되어, 해당 문서의 핵심 키워드로 분류됩니다.
4. 주요 특징 및 한계
- 장점 : 구현이 매우 간단하면서도 효과적입니다. 검색 엔진에서 검색어와 가장 관련성 높은 문서를 찾는 데 필수적입니다.
- 단점 : 단어의 의미(Semantics)나 문맥을 이해하지 못합니다. 예를 들어 '사과(과일)'와 '사과(사죄)'를 구분하지 못하고 단순히 글자 형태의 빈도만 계산합니다. (이를 해결하기 위해 최근에는 Word2Vec이나 BERT 같은 딥러닝 기반 임베딩 기술을 함께 사용합니다.)
Apriori 알고리즘이 "함께 자주 발생하는 패턴"을 찾는 것이라면, TF-IDF는 "이 문서만의 독특한 특징"을 찾는 도구라고 이해하시면 좋습니다.

5. "this"에 대한 값 계산하기
문제를 보면 분석 대상 단어는 "this"이고, 문서 집합 $D$에는 문서가 딱 2개($d1$, $d2$)뿐입니다.
① IDF 값 구하기 (가장 중요!)
- 전체 문서 수 ($N$) : 2개 ($d1, d2$)
- "this"가 포함된 문서 수 ($df$) : 2회 ($d1$에 1회 , $d2$에 1회) 따라서 $df = 2$입니다.
- IDF 값 : $\log\left(\frac{2}{2}\right) = \log(1) = \mathbf{0}$
② TF-IDF 값 구하기
IDF 값이 0이 나왔기 때문에, 문서 $d1$이나 $d2$에서 "this"가 몇 번 나왔는지($TF$)와 상관없이 결과는 무조건 0이 됩니다.
- $TF\text{-}IDF(\text{"this"}, d1, D)$: $1 \times 0 = \mathbf{0}$
- $TF\text{-}IDF(\text{"this"}, d2, D)$: $2 \times 0 = \mathbf{0}$
6. 결과 해석 및 팁
왜 0이 나올까요? TF-IDF의 철학은 "모든 문서에 다 등장하는 흔한 단어는 정보로서의 가치(중요도)가 없다"는 것입니다. 이 문제에서 "this"는 문서 $d1$과 $d2$ 모두에 등장하므로, 이 문서 군 내에서는 변별력이 전혀 없는 단어라고 판단되어 점수가 0점이 된 것입니다.
만약 시험 문제에서 어떤 단어의 TF-IDF를 묻는데, 그 단어가 제시된 모든 문서에 한 번씩이라도 다 들어있다면 계산할 것도 없이 IDF는 0, TF-IDF도 0입니다. 이 원리를 알면 5초 만에 풀고 넘어갈 수 있습니다.
