tf–idf

  • 2025-09-13
  • 별칭: TFIDF, TF*IDF

특정 단어가 특정 문서 내에서 얼마나 중요한지를 계산하는 방법 중 하나.

직관적인 의미

다른 문서들에는 잘 안나오는 단어(즉 idf(t,D)idf(t, D)가 높음)가 특정 문서에 유독 자주 나오면(즉 tf(d,t)tf(d, t)가 높음), 그 단어는 해당 문서의 키워드일 가능성이 높다.

Term frequency

tf(d,t)tf(d, t)는 특정 문서 dd에서 특정 단어 tt가 나오는 비율이다. 일반적인 계산식 중 하나:

tf(d,t)=ft,dtdft,dtf(d,t) = \frac{f_{t,d}}{\sum_{t' \in d} f_{t', d}}

위 식에서 ft,df_{t,d}는 문서 dd 안에 단어 tt가 나오는 빈도를 뜻한다.

Inverse document frequency

idf(t,D)idf(t, D)는 전체 문서 집합 DD 중에서 단어 tt가 담긴 문서가 얼마나 희소한지를 나타낸다. 희소할수록 값이 커진다.

idf(t,D)=logNntidf(t, D) = log \frac{N}{n_t}

위 식에서 DD, NN, ntn_t는 각각 다음과 같다:

  • DD는 말뭉치를 구성하는 모든 문서의 집합
  • NN은 문서의 수, 즉 집합 DD의 크기 D|D|
  • ntn_t는 단어 tt가 한 번이라도 나오는 문서의 수, 즉 dD:td|{d \in D : t \in d}|. tt가 말뭉치에 앖다면 분모가 0이므로 1을 더해주기도 한다(smoothing).

어떤 단어가 모든 문서에서 한 번 이상 나오면 idf(t,D)idf(t, D)는 0이 된다.

tf-idf

tf-idf는 아래와 같이 구한다.

tfidf(t,d,D)=tf(t,d)idf(t,D)tfidf(t, d, D) = tf(t, d) \cdot idf(t, D)

See also