잘난 척을 위한 한 줄 요약
TF-IDF는 어떤 단어가 “이 문서 안에서는 자주 나오지만, 전체 문서들에서는 흔하지 않을수록” 더 중요한 단어라고 보는 고전적인 텍스트 가중치 방식이다.
TF-IDF, 컴퓨터는 왜 “많이 나온 단어”보다 “여기서만 유독 많이 나온 단어”를 더 중요하게 볼까
먼저, TF-IDF가 뭔지부터
TF-IDF는 텍스트 분석에서 정말 오래 살아남은 대표 개념이다.
이름은 조금 딱딱하지만, 아이디어는 생각보다 직관적이다.
TF-IDF는 보통 이렇게 풀어쓴다.
- TF: Term Frequency
- IDF: Inverse Document Frequency
즉, 어떤 단어가
- 이 문서에서는 얼마나 자주 나오는지
- 전체 문서들에서는 얼마나 드문지
를 같이 봐서 중요도를 계산하는 방식이다.
아주 짧게 말하면 이렇다.
많이 나온다고 다 중요한 단어는 아니다.
‘여기서는 많이 나오는데 다른 데서는 잘 안 나오는 단어’가 진짜 중요할 가능성이 크다.
왜 이런 방식이 필요할까?
컴퓨터가 문서를 읽을 때 제일 먼저 부딪히는 문제는 이거다.
많이 나온 단어가 꼭 핵심은 아니다
예를 들어 어떤 문서에 이런 단어들이 많이 나온다고 해보자.
- 그리고
- 하지만
- 이
- 그
- 것이다
이 단어들은 엄청 자주 등장할 수 있다.
그런데 이 단어들만으로는 문서 주제가 잘 안 보인다.
반면 어떤 문서에서 이런 단어가 반복된다면 느낌이 다르다.
- 반도체
- 금리인상
- 벡터데이터베이스
- 양자컴퓨팅
이런 단어는 상대적으로 더 주제성이 있다.
그래서 텍스트 분석에서는 단순히 “많이 나왔는가”만 보면 부족하다.
전체 문서에서 흔한 단어는 덜 중요하게, 특정 문서에서 유독 두드러지는 단어는 더 중요하게 봐야 한다.
바로 이걸 해 주는 게 TF-IDF다.
TF는 무엇일까?
TF는 Term Frequency, 즉 단어 빈도다.
말 그대로 어떤 단어가 한 문서 안에서 얼마나 자주 등장했는지를 본다.
예를 들어 한 문서에서 “AI”라는 단어가 20번 나오고, “딸기”라는 단어가 1번 나온다면 그 문서 안에서는 AI가 더 중요한 단어일 가능성이 높다.
그래서 TF는 기본적으로 이런 감각을 담고 있다.
한 문서 안에서 자주 나온 단어는, 그 문서에서 더 중요한 단어일 수 있다.
하지만 여기엔 문제가 있다.
“은/는/이/가”처럼 어디서나 흔한 단어도 자주 나오기 때문이다.
그래서 TF만으로는 부족하고, IDF가 같이 붙는다.
IDF는 무엇일까?
IDF는 Inverse Document Frequency다.
직역하면 “역문서빈도”인데, 이 말은 사실 직관적이지 않다.
쉽게 말하면 이렇다.
전체 문서들에서 너무 흔한 단어는 중요도를 낮추자.
예를 들어 1,000개의 문서가 있는데
그중 990개에서 나오는 단어라면 그 단어는 특정 문서를 구별하는 힘이 약하다.
반대로 1,000개의 문서 중 5개에서만 나오는 단어라면 그 단어는 특정 문서의 특징을 더 잘 드러낼 가능성이 높다.
즉, IDF는 이런 역할을 한다.
- 전체 문서에서 흔한 단어 → 점수 낮춤
- 전체 문서에서 드문 단어 → 점수 높임
그래서 TF-IDF는 결국 문서 내부에서 자주 나오고, 전체 문서에서는 드문 단어를 높게 평가한다.
TF-IDF는 어떻게 계산된다고 보면 될까?
수식은 보통 이렇게 쓴다.
기본 아이디어
TF-IDF = TF × IDF
즉,
- TF가 높을수록 중요도는 올라가고
- IDF가 높을수록 중요도는 더 올라간다
직관적으로 보면 이런 뜻이다.
- 어떤 문서 안에서 자주 나온다
- 그런데 전체 문서에서는 흔하지 않다
- 그러면 그 단어는 이 문서를 설명하는 핵심 단어일 가능성이 높다
예를 들어 “축구”라는 단어가 스포츠 기사에서 여러 번 나오고, 전체 문서들에서는 그렇게 흔하지 않다면 그 문서에서 “축구”의 TF-IDF 값은 높게 나올 수 있다.
반대로 “그리고”는 특정 문서에서 자주 나와도 전체 문서 거의 전부에 등장하므로 IDF가 낮아져서 최종 TF-IDF 점수도 낮게 나온다.
예시로 보면 더 쉽다
문서가 3개 있다고 해보자.
문서 A
“사과 사과 바나나”
문서 B
“사과 오렌지”
문서 C
“포도 포도 포도”
이제 단어를 보면,
- “사과”는 여러 문서에 나온다
- “포도”는 문서 C에서만 나온다
그리고 문서 C 안에서는 “포도”가 아주 많이 나온다.
그럼 컴퓨터는 이렇게 생각할 수 있다.
- “사과”는 중요한 단어일 수 있지만, 여러 문서에 나오니까 구별력은 조금 떨어진다
- “포도”는 문서 C에서 반복되기도 하고, 다른 문서에는 거의 안 나오니까 문서 C를 대표하는 단어일 가능성이 높다
이게 TF-IDF의 핵심 감각이다.
어디에 쓰일까?
TF-IDF는 옛날 기법처럼 느껴질 수 있지만, 아직도 꽤 자주 등장한다.
1. 문서 검색
검색어와 문서를 비교할 때,
어떤 단어가 해당 문서를 얼마나 잘 대표하는지 계산하는 데 쓰인다.
예전 검색엔진이나 정보검색 시스템에서 TF-IDF는 아주 대표적인 기본기였다.
2. 문서 분류
뉴스 기사, 리뷰, 이메일 같은 문서를 분류할 때
문서를 숫자 벡터로 바꿔야 하는데, TF-IDF가 그 출발점으로 자주 쓰였다.
3. 키워드 추출
한 문서에서 핵심 키워드를 뽑고 싶을 때
TF-IDF 점수가 높은 단어를 후보로 볼 수 있다.
4. 텍스트 벡터화의 입문용 방식
요즘은 임베딩이 더 많이 쓰이지만, TF-IDF는 텍스트를 숫자로 바꾸는 가장 대표적인 고전 방식 중 하나다.
즉, TF-IDF는 단순한 이론이 아니라 컴퓨터가 텍스트를 숫자로 다루기 시작할 때 가장 먼저 배우는 기본기 같은 존재다.
Bag of Words랑은 뭐가 다를까?
이것도 자주 같이 나온다.
Bag of Words
문서에 어떤 단어가 몇 번 나왔는지만 보는 단순한 방식이다.
즉, 단어 빈도 자체를 세는 구조다.
TF-IDF
Bag of Words에서 한 단계 더 나아가,
그 단어가 전체 문서에서 얼마나 흔한지도 반영한다.
즉,
- Bag of Words: 많이 나오면 중요
- TF-IDF: 많이 나오되, 흔하지 않아야 더 중요
그래서 TF-IDF는 Bag of Words보다 조금 더 “문서 구별력”을 잘 반영한다고 볼 수 있다.
임베딩이 있는데 TF-IDF를 왜 배울까?
요즘은 임베딩, 트랜스포머, 벡터 검색 같은 말이 더 많이 들린다.
그래서 TF-IDF가 너무 옛날 방식처럼 느껴질 수 있다.
그런데도 TF-IDF를 배우는 이유는 분명하다.
1. 직관적이다
왜 어떤 단어가 중요한지 설명하기 쉽다.
딥러닝 임베딩보다 훨씬 해석 가능성이 높다.
2. 빠르고 가볍다
작은 데이터셋이나 간단한 분류 문제에서는
여전히 꽤 실용적이다.
3. 기준선(baseline)으로 좋다
텍스트 분류나 검색 실험에서 복잡한 모델을 쓰기 전에 기본 성능을 확인하는 용도로 자주 좋다.
즉, TF-IDF는 최신 유행의 중심은 아닐 수 있어도 텍스트 분석의 기초 체력 같은 역할은 여전히 한다.
TF-IDF의 한계도 있다
이 개념을 너무 만능처럼 보면 또 오해가 생긴다.
1. 단어 의미를 잘 모른다
TF-IDF는 단어가 몇 번 나왔는지, 얼마나 드문지만 본다.
그래서 “자동차”와 “차량”이 비슷한 뜻이라는 걸 스스로 이해하지 못한다.
2. 문맥을 모른다
단어 순서나 문장 구조를 잘 반영하지 못한다.
즉, “좋다”와 “좋지 않다”의 차이를 문맥적으로 깊게 이해하진 못한다.
3. 희소성이 크다
문서 수가 많고 단어 종류가 많아지면 벡터가 매우 희소(sparse)해진다.
즉, 대부분 0이고 일부만 값이 있는 구조가 된다.
그래서 요즘의 의미 기반 검색에서는 임베딩이 더 자주 쓰인다.
이 개념을 볼 때 같이 체크하면 좋은 것
TF-IDF를 볼 때는 아래를 같이 보면 좋다.
불용어(stop words)를 어떻게 처리했는가
“은, 는, 이, 가” 같은 단어를 그대로 둘지, 제거할지에 따라 결과가 달라질 수 있다.
단어 단위만 보는지, n-gram도 보는지
한 단어씩만 볼 수도 있고, “인공지능 모델”, “금리 인상”처럼 여러 단어 묶음을 같이 볼 수도 있다.
검색용인지, 분류용인지
같은 TF-IDF라도 문서 검색, 키워드 추출, 분류 모델 입력 중 어디에 쓰는지에 따라 해석 포인트가 다를 수 있다.
결국 핵심은 이것이다
TF-IDF는 텍스트 안의 단어가 얼마나 중요한지 계산하는 아주 고전적이면서도 강력한 방법이다.
핵심 아이디어는 단순하다.
어떤 단어가 이 문서 안에서는 자주 나오고, 전체 문서들에서는 흔하지 않다면 그 문서를 잘 설명하는 단어일 가능성이 높다.
즉, TF-IDF는 컴퓨터에게 이렇게 말해 주는 방식이라고 보면 된다.
“많이 나온 단어를 보되, 어디에나 많은 단어 말고 여기서만 유독 중요한 단어를 더 눈여겨봐.”
참고 자료
- scikit-learn, TfidfVectorizer
https://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.TfidfVectorizer.html - Wikipedia, tf–idf
https://en.wikipedia.org/wiki/Tf%E2%80%93idf - Stanford IR book, Term weighting and tf-idf
https://nlp.stanford.edu/IR-book/html/htmledition/term-weighting-and-tf-idf-1.html - Introduction to Information Retrieval (Stanford)
https://nlp.stanford.edu/IR-book/
TfidfVectorizer
Gallery examples: Topic extraction with Non-negative Matrix Factorization and Latent Dirichlet Allocation Biclustering documents with the Spectral Co-clustering algorithm Column Transformer with He...
scikit-learn.org
Introduction to Information Retrieval
06 Scoring, term weighting & the vector space model pdf html <!-- slides -->
nlp.stanford.edu
참고 영상
- TF-IDF explained
https://www.youtube.com/results?search_query=TF-IDF+explained - tf-idf information retrieval
https://www.youtube.com/results?search_query=tf-idf+information+retrieval - TF-IDF 설명
https://www.youtube.com/results?search_query=TF-IDF+%EC%84%A4%EB%AA%85
- YouTube
www.youtube.com
- YouTube
www.youtube.com
- YouTube
www.youtube.com
'개념 잡동사니' 카테고리의 다른 글
| 워드 임베딩(word embedding) (0) | 2026.04.20 |
|---|---|
| N-Gram (0) | 2026.04.19 |
| 보완자본(AT1, Additional Tier 1 capital) (1) | 2026.04.17 |
| 신종자본증권 (1) | 2026.04.16 |
| PRS(주가수익스와프, Price Return Swap) (0) | 2026.04.15 |