머신러닝&딥러닝/Algorithm

TF-IDF(Term Frequency - Inverse Document Frequency)

e냥냥 2022. 9. 21. 14:48
728x90

Fastcampus 추천시스템 구현하는 방법을 공부하면서 컨텐츠기반 추천알고리즘의 대표적인

TF-IDF(Term Frequency - Inverse Document Frequency) 추천알고리즘에 대해 정리해보도록 하겠습니다. 


TF-IDF는 단어의 빈도와 문서의 빈도에 특정 식을 취하여 DTM(문서 단어 행렬) 내의 각 단어들마다 중요한 정도를

가중치로 주는 방법입니다. 우선 DTM을 만든 후, TF-IDF 가중치를 부여합니다. 

 

1. Vector Representation

  • m개의 review 문서가 있다고 가정
  • review 문서 전체에 등장하는 단어의 수는 n개
  • 각 항목은 해당 단어가 review에 등장하는 빈도수를 의미
    • (Review 1, Word0) = 2 → Review 1에 Word 0은 2번 등장

 

 

2. Term Vector Representation

  • Term Weight
    • $(i, j)$ = weight
    • Term Frequency Vector :  단어의 빈도수로 벡터를 나타냄. 문서 i에서의 단어 j의 중요도

 

  • TF-IDF 특징 
    • 흔하게 등장하는 단어는 중요하지 않은 단어
    • Information Retrieval에서 많이 사용하는 개념
    • 각 단어에 가중치를 부여해서 Keyword extraction 등에 활용
    • 문서에서 특정 단어가 등장하는 것을 바탕으로 문서끼리 관련있음을 표현할 수 있음

 

3.  TF-IDF 공식

$$TF-IDF(w,d) = TF(w,d)×IDF(w)$$ 

  • TF : 단어(Word) w가 문서(Document) d에 등장한 빈도수
  • DF : 단어(Word) w가 등장한 문서(Document) d의 수
  • N : 전체 문서의 수
  • $TF(w,d) = \frac{문서내단어w의수}{문서내모든 단어의수}$
  • $IDF(w) = log(\frac{전체문서수(N)}{단어w가포함된문서수(DF(w))})$
    • if  "단어w가 포함된 문서 수 = 전체 문서 수", then TF-IDF(w,d) = 0
    • 단어 w의 정보력은 없다

 

  • DF가 큰 단어는 정보력이 적다
    • 문서 Corpus(말뭉치)에 모두 포함된 단어는 흔히 등장하는 단어로, 의미가 크지 않음
    • 흔하게 등장하는 단어는 유사도 계산에서도 제외
    • 대부분 문법적인 역할을 하는 조사, 관사 등이 해당

 

4.  결론

TF는 해당 단어가 해당 문서에 얼마나 자주 등장하는지 확인하는 것

IDF는 해당 단어가 얼마나 다른 문서에 비해 해당 문서에 자주 등장하는지 확인하는 것

 

 

728x90

'머신러닝&딥러닝 > Algorithm' 카테고리의 다른 글

나이브 베이즈(Naive Bayes)  (0) 2022.09.15
loading