개념
- 단어 빈도 - 역 문서 빈도
- DTM(Document-Term Matrix) 내에 있는 각 단어에 대한 중요도를 계산할 수 있음
- 정보 검색과 텍스트 마이닝에서 이용하는 가중치
- 여러 문서에서 어떤 단어가 특정 문서 내에서 얼마나 중요한 것인지를 나타내는 통계적 수치
- 모든 문서에서 자주 등장하는 단어는 중요도가 낮고, 특정 문서에서만 자주 등장하는 단어는 중요도가 높다고 판단함
- 즉, TF-IDF 값이 낮으면 중요도가 낮은 것이며, TF-IDF 값이 크면 중요도가 큰 것임
용도
- 문서의 핵심어 추출
- 검색 엔진에서 검색 결과의 순위 결정
- 문서들 사이의 비슷한 정도 계산
설명
- TF(Term Frequency)
- tf(d, t) : 특정 문서 d에서의 특정 단어 t의 등장 횟수
- 값이 높을수록 해당 단어가 문서에서 중요하다는 것을 의미함
- DF(Document Frequency)
- df(t) : 특정 단어 t가 등장한 문서의 수
- 값이 높을수록 해당 단어가 흔하게 등장한다는 것을 의미함
- IDF(Inverse Document Frequency)
- idf(d, t) : df(t)에 반비례하는 수
- 모든 문서에 자주 등장하는 단어일수록 낮은 가중치를 줌
$$
idf(d,t) = log(\frac{n}{1+df(t)})
$$ - log를 사용하는 이유
- log를 사용하지 않으면 총 문서의 수 n이 커질수록, IDF의 값이 기하급수적으로 커지게 됨
- 분모에 1을 더하는 이유
- 특정 단어가 전체 문서에서 등장하지 않을 경우 분모가 0이 되지 않도록 하기 위함
예시
아래와 같이 문서가 있을 때, TF와 IDF는 그 아래 표와 같고, TF와 IDF를 가지고 TF-IDF를 구하면 맨 아래 표와 같음
- 문서
- 문서 1 : 나는 학교에 갔다
- 문서 2 : 나는 집에 갔다
- 문서 3 : 나는 회사에 갔다
- TF = DTM
문서 갔다 나는 집에 학교에 회사에 문서 1 1 1 0 1 0 문서 2 1 1 1 0 0 문서 3 1 1 0 0 1 총 개수 3 3 1 1 1 - IDF
단어 IDF 갔다 $log(\frac{3}{1 + 3}) = -0.287682$ 나는 $log(\frac{3}{1 + 3}) = -0.287682$ 집에 $log(\frac{3}{1 + 1}) = 0.405465$ 학교에 $log(\frac{3}{1 + 1}) = 0.405465$ 회사에 $log(\frac{3}{1 + 1}) = 0.405465$ - TF-IDF
문서 갔다 나는 집에 학교에 회사에 문서 1 -0.287682 -0.287682 0 0.405465 0 문서 2 -0.287682 -0.287682 0.405465 0 0 문서 3 -0.287682 -0.287682 0 0 0.405465 - '집에', '학교에', '회사에'가 '갔다'와 '나는'보다 중요도가 높다고 볼 수 있음
Reference
'Study' 카테고리의 다른 글
분류 모델 성능 평가 지표(Accuracy, Precision, Recall, F1 score 등) (2) | 2022.01.02 |
---|---|
BM25 (0) | 2021.12.13 |
DTM(Document-Term Matrix) (0) | 2021.12.13 |
[논문] 사용자의 입력 의도를 반영한 음절 N-gram 기반 한국어 띄어쓰기 및 붙여쓰기 오류 교정 시스템 (0) | 2021.12.12 |
GLUE Benchmark (0) | 2021.11.07 |