TF-IDF
TF-IDF는 단어 빈도(TF)와 역문서 빈도(IDF)를 곱해 문서 집합 안에서 특정 단어가 그 문서에 얼마나 중요한지를 가중하는 정보검색 통계 지표입니다. 흔하게 쓰이는 단어의 가중치는 낮추고 드물게 등장하는 단어의 가중치는 높입니다.
- TF-IDF = 단어 빈도(TF) × 역문서 빈도(IDF)로, 문서 안 단어의 상대적 중요도를 수치화하는 정보검색 표준 지표입니다.
- TF는 한 문서에서 단어가 등장한 빈도, IDF는 전체 문서 집합에서 그 단어가 얼마나 드문지를 측정합니다.
- 1972년 Karen Spärck Jones가 IDF를 제안했고, 검색엔진·텍스트 마이닝·문서 분류에 폭넓게 쓰입니다.
- 구글이 TF-IDF를 직접적인 랭킹 요소로 쓰지 않는다는 것이 공식·업계의 중론이며, SEO에서는 원리 참고용으로만 다루는 편이 안전합니다.
개요
TF-IDF(Term Frequency–Inverse Document Frequency)는 어떤 단어가 한 문서 안에서 얼마나 중요한지를, 그 단어가 전체 문서 집합에서 얼마나 흔한지로 보정해 가중하는 정보검색 통계 지표입니다. 특정 문서에서 자주 등장하지만 다른 문서에는 잘 나타나지 않는 단어일수록 높은 점수를 받습니다. 즉 "이 문서를 특징짓는 핵심 단어"를 찾아내는 데 쓰입니다.
두 축으로 구성됩니다. TF(단어 빈도)는 한 문서 안에서 해당 단어가 얼마나 자주 나오는지를 보고, 빈도가 높을수록 그 문서에 더 중요한 단어로 봅니다. IDF(역문서 빈도)는 전체 문서 집합 기준으로 해당 단어가 얼마나 드문지를 측정해, 거의 모든 문서에 등장하는 흔한 단어(예: 조사·관사 성격의 단어)의 가중치를 낮추고 일부 문서에만 나타나는 단어의 가중치를 높입니다.
계산 개념
가장 표준적인 정의는 다음과 같습니다. TF는 한 문서 안 단어 비중, IDF는 전체 문서 수를 그 단어가 등장한 문서 수로 나눈 값에 로그를 취한 값이며, 둘을 곱해 최종 점수를 얻습니다.
tf(t, d) = (문서 d에서 단어 t의 등장 횟수) / (문서 d의 전체 단어 수)
idf(t, D) = log( N / df(t) )
N = 전체 문서 수
df(t) = 단어 t가 등장한 문서 수
tfidf(t, d, D) = tf(t, d) × idf(t, D)예를 들어 전체 문서가 1,000개(N = 1000)일 때, 어떤 단어가 1,000개 문서 모두에 등장하면 idf = log(1000/1000) = 0이 되어 TF가 아무리 높아도 최종 점수는 0에 가깝습니다. 반대로 그 단어가 단 10개 문서에만 등장하면 idf = log(1000/10) = log(100)으로 값이 커져, 해당 문서에서의 빈도가 높을수록 점수가 크게 올라갑니다. 이렇게 "흔한 단어는 누르고 드문 단어는 키우는" 방식으로 단어별 중요도에 차등을 둡니다.
| 구성 요소 | 측정 대상 | 효과 |
|---|---|---|
| TF (단어 빈도) | 한 문서 내 단어 등장 빈도 | 자주 쓰인 단어일수록 가중치 상승 |
| IDF (역문서 빈도) | 전체 문서 집합에서의 희소성 | 흔한 단어 가중치 하향, 드문 단어 상향 |
| TF-IDF (곱) | 문서 내 상대적 중요도 | 그 문서를 특징짓는 단어를 부각 |
SEO 활용과 한계
TF-IDF는 1972년 Karen Spärck Jones가 IDF("단어 특정성")를 제안한 이후 검색엔진, 텍스트 마이닝, 문서 분류, 추천 시스템 등에서 표준적으로 쓰여 온 고전적 지표입니다. SEO 도구들은 이 원리를 빌려, 상위에 노출되는 경쟁 문서들이 어떤 단어를 상대적으로 자주 쓰는지 분석해 콘텐츠에 보강할 단어 후보를 제안하는 식으로 활용합니다.
다만 "구글이 TF-IDF를 직접 랭킹 요소로 쓴다"는 통념에는 신중할 필요가 있습니다. 구글의 John Mueller는 TF-IDF를 두고 "꽤 오래된 지표이고 그동안 많이 발전해 왔다. 다른 지표도 많다"고 언급했고, Search Engine Journal은 이를 "랭킹 요소가 아니다(definitely not)"라고 결론지었습니다. 이유로는 (1) TF-IDF만으로는 같은 단어를 포함한 수백만~수십억 개 문서를 의미 있게 변별하지 못하고, (2) 구글이 단어 벡터, 코사인 유사도, 자연어 처리, 의도·맥락 매칭 등 더 정교한 방법을 쓰며, (3) TF-IDF 점수를 제대로 계산하려면 구글 전체 색인 데이터가 필요해 개별 사이트가 그대로 최적화하기 어렵다는 점이 꼽힙니다.
실무적으로는 TF-IDF를 직접적인 최적화 목표로 삼는 것은 권장되지 않습니다. 단어 빈도 자체를 끌어올리는 접근은 키워드 밀도 맞추기, 나아가 키워드 스터핑으로 흐르기 쉽기 때문입니다. "빈도와 문서 희소성"이라는 핵심 원리는 모든 현대 검색엔진의 바탕에 깔려 있으므로, TF-IDF는 직접 점수를 좇기보다 콘텐츠가 다뤄야 할 핵심 단어·관련 어휘를 점검하는 참고 틀로 쓰는 것이 적절합니다.
참고·출처
- tf–idf — Wikipedia (정의·수식·Karen Spärck Jones 1972 IDF 제안)
- TF-IDF: Is It A Google Ranking Factor? — Search Engine Journal (구글 랭킹 요소 여부, John Mueller 발언)
- Does Google Really Use TF-IDF? — MarketMuse (구글의 TF-IDF 활용에 대한 절충적 관점)
- Understanding TF-IDF — GeeksforGeeks (TF·IDF 계산 개념)