TF-IDF는 문서 내에서 특정 단어의 중요도를 수치화하는 방법으로, 다음 두 가지 요소의 곱으로 계산됨:
TF (Term Frequency): 특정 문서 내에서 단어가 얼마나 자주 등장하는가TF(t,d)=문서 d의 전체 단어 수단어 t의 빈도
TF(t,d)=단어 t의 빈도문서 d의 전체 단어 수TF(t, d) = \frac{\text{단어 t의 빈도}}{\text{문서 d의 전체 단어 수}}
IDF (Inverse Document Frequency): 전체 문서에서 이 단어가 얼마나 희귀한가IDF(t)=log(df(t)N)
IDF(t)=log(Ndf(t))IDF(t) = \log\left(\frac{N}{df(t)}\right)
📌 TF는 개별 문서 중심, IDF는 전체 말뭉치 중심
슬픔이라는 단어가 많이 등장하고, 다른 문서에는 전혀 없다면, IDF가 크고 TF도 크므로 → TF-IDF 최대정말처럼 모든 문서에 흔히 등장하는 단어는 → IDF 작음 → TF-IDF 작음| 장점 | 단점 |
|---|---|
| 단순하고 해석 용이 | 의미(semantic)를 고려하지 못함 |
| 특정 문서의 핵심 키워드 추출 가능 | 단어 형태만 보고 판단, 동의어 인식 불가 |
| 항목 | CountVectorizer | TfidfVectorizer |
|---|---|---|
| 의미 | 단어의 등장 횟수만 카운트 | 빈도와 희귀성을 함께 고려 |
| 예시 | '좋다': 5회 → 그대로 5 | '좋다'가 흔하면 TF-IDF 값 낮아짐 |
| 단점 | 흔한 단어가 중요하게 취급됨 | 의미는 고려하지 못함 |
| 결론 | 의미 |
|---|---|
CountVectorizer |
단어 빈도만 보는 단순한 방식. 자주 나온 단어일수록 중요하다고 판단. |
TfidfVectorizer |
자주 나오지만 너무 흔한 단어는 무시하고, 희귀하지만 중요한 단어에 집중하는 똑똑한 방식. |