에듀테크 프로젝트 대시보드
TF-IDF 텍스트 벡터화
글을 숫자로 바꿔야 컴퓨터가 비교·검색·분류를 할 수 있다. 그런데 단어가 몇 번 등장했는지(TF)만 세면 "은·는·이·다" 같은 흔한 말이 항상 점수가 높아진다. TF-IDF는 여기에 "이 단어가 여러 문서에 걸쳐 얼마나 흔한지(IDF)"를 곱해서, 이 문서에서만 자주 나오는 단어일수록 높은 점수를 주는 고전적이면서도 여전히 널리 쓰이는 방법이다.
문서 4개를 공백 기준으로 토큰화했다(조사 분리 같은 형태소 분석은 생략한 단순화 버전이다). 문서를 고르면 그 문서의 단어들이 TF-IDF 점수 순으로 막대그래프에 나열된다. 한 줄을 클릭하면 계산 과정이 아래에 펼쳐진다.
TF = 그 단어가 이 문서에 등장한 횟수 / 문서의 전체 단어 수.
한 문서 안에서 얼마나 중요해 보이는지를 나타낸다.
전체 문서 N개 중 그 단어가 등장한 문서의 개수. 거의 모든 문서에 나오는
단어라면 DF가 크다.
IDF = ln(N / DF). DF가 클수록(흔할수록) IDF는 작아진다 —
"흔함에 대한 벌점"이다.
TF-IDF = TF × IDF. "이 문서에서 자주 나오면서(TF↑) 다른 문서에는
잘 없는(IDF↑) 단어"일수록 점수가 커진다.
검색어와 TF-IDF 점수가 겹치는 문서를 랭킹 상위에 올린다(BM25 등은 이를 더 정교화한 버전).
각 문서를 TF-IDF 벡터로 만들고 코사인 유사도를 재면, 비슷한 주제의 문서를 찾을 수 있다.
한 문서에서 TF-IDF가 가장 높은 단어 몇 개를 뽑으면 그 글의 핵심 키워드가 된다.
TF-IDF = TF × IDF, 값이 클수록 "이 문서를 대표하는 단어"