특정 단어 t가 모든 문서에 등장하는 일반적인 단어(예 a, the)라면, TF-IDF 가중치를 낮추어 줄 필요가 있습니다. 따라서 DF 값이 클수록 TF-IDF의 가중치 값을 낮추기 위해 DF 값에 역수를 취하는데, 이 값이 IDF입니다. 역수를 취하면 전체 문서 개수가 많아질수록 IDF 값도 커지므로 IDF는 로그(log)를 취해야 합니다. 이것을 수식으로 표현하면 다음과 같습니다.
이때 중요한 점은 전체 문서에 특정 단어가 발생하는 빈도가 0이라면 분모가 0이 되는 상황이 발생합니다. 이를 방지하고자 다음과 같이 분모에 1을 더해 주는 것을 스무딩(smoothing)이라고 합니다.
TF-IDF는 다음 상황에서 사용됩니다.
• 키워드 검색을 기반으로 하는 검색 엔진
• 중요 키워드 분석
• 검색 엔진에서 검색 결과의 순위를 결정
사이킷런의 TfidfVectorizer()를 이용한 TF-IDF 예제를 살펴보겠습니다.
코퍼스를 정의하고 TfidfVectorizer()를 적용한 후 유사도를 계산하여 행렬로 표현합니다.