TF-IDF 알아보기 전에 TF-IDF를 왜 사용하는지에 대해 정리해보도록 합니다. 먼저 TF-IDF는 특징을 추출하는 방법 중 하나입니다. 많이 사용되는 방법으로 CountVectorizer이 있습니다. 이름처럼 말 그대로 count기반으로 특징을 추출하는 방법입니다. 하지만 단순 카운트로 특징을 추출했을때의 문제점은 무엇일까요??
영어나 한국에서 많이 사용되는 단어들을 생각해 봅시다. 예를들면 The, 조사 등이 있습니다. 하지만 이러한 단어들을 실제로 큰 의미가 없는 단어들입니다. 이러한 상황을 보완하여 나온것이 바로 TF-IDF입니다.
TF-IDF(Term Frequency - Inverse Document Frequency)는 정보 검색과 텍스트 마이닝에서 이용하는 가중치로, 여러 문서로 이루어진 문서군이 있을 때 어떤 단어가 특정 문서 내에서 얼마나 중요한 것인지를 나타내는 통계적 수치이다. 문서의 핵심어를 추출하거나, 검색 엔진에서 검색 결과의 순위를 결정하거나, 문서들 사이의 비슷한 정도를 구하는 등의 용도로 사용할 수 있다.
출처: 위키백과
TF(Term Frequency)란?
TF는 Term Frequency의 약자로 어떤 단어가 특정 문서에 얼마나 많이 쓰였는지 빈도를 나타내 줍니다. 즉 많이 쓰인 단어가 중요하다는 가정을 전체로 한 수치입니다.
DF(Document Frequency)란?
DF는 Document Frequency의 약자로 특정 단어의 나타나는 문서 수를 의미합니다. 예시로 A라는 단어가 말뭉치 전체에서 문서1, 문서3에만 등장했다고 한다면 DF는 2가 됩니다. DF가 클수록 다수의 문장에서 쓰이는 단어라고 할 수 있습니다.
정리하자면 TF는 단어의 빈도를, DF는 문서의 빈도를 의미합니다.
IDF(Inverse Document Frequency)란?
IDF는 전체 문서수를 해당 단어의 DF로 나눈 뒤 로그를 취해준 값입니다. 그 값이 클수록 특이한 단어임을 의미합니다.
IDF는 DF에 Inverse를 해주는 의미로 DF의 역수를 의미합니다. 역수를 취하게 되면 원래의 큰 값들을 작은 값으로 줄이는 효과를 낼 수 있습니다. 이렇게 IDF는 많이 등자하는 단어를 약간의 패널티를 줄 수 있기 때문에 IDF라고 부르게 됩니다.
정리를 하자면 TF-IDF는 각각의 문서에서 자주 등장하는 단어에 높은 가중치를 주고, 모든 문서에서 자주 등장하는 단어에 대해서는 페널티를 주는 방식으로 값을 부여하게 되는 것입니다. 이러한 방식으로 정말 해당 단어가 실제로 중요한지를 체크할 수 있습니다.
'Machine Learning' 카테고리의 다른 글
[R] rfcv(Cross-validation in randomForest) (0) | 2021.04.14 |
---|---|
머신러닝 춤 (0) | 2021.03.02 |
특이값 분해(Singular Value Decomposition, SVD) (0) | 2020.08.11 |
고유값, 고유벡터, 고유값 분해 (0) | 2020.08.11 |
차원 축소(Dimension Reduction) (0) | 2020.06.17 |