Tf-idf
"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
목차
1. 개요
TF-IDF는 단어 빈도(TF)와 역문서 빈도(IDF)를 곱하여 계산하는 기법으로, 특정 단어가 문서 내에서 얼마나 자주 나타나는지와 전체 문서 집합에서 얼마나 흔하게 나타나는지를 반영한다. TF는 문서 내 단어의 빈도를, IDF는 전체 문서에서 해당 단어가 나타나는 빈도의 역수를 나타낸다. TF-IDF 값을 통해 모든 문서에 흔하게 나타나는 단어를 걸러내는 효과를 얻을 수 있다. 이 기법은 텍스트 마이닝, 정보 검색 등 다양한 분야에서 활용되며, 단어 외에도 인용 분석, 객체 매칭, 문장 분석 등에도 적용될 수 있다.
더 읽어볼만한 페이지
- 벡터 공간 모델 - 명시 의미 분석
명시 의미 분석은 텍스트 모음에서 단어와 문서 간 관계를 분석하여 단어의 의미적 관련성을 추정하는 방법으로, 위키백과 데이터를 활용해 단어를 개념 벡터로 표현하고 코사인 유사도 등으로 관련성을 측정하며, 문서 관련성 계산 등 다양한 분야에 응용된다. - 벡터 공간 모델 - 일반화 벡터 공간 모델
일반화 벡터 공간 모델은 단어 간의 상관도를 고려하여 문서와 질의의 유사도를 계산하며, 단어 벡터를 여러 벡터의 선형 조합으로 표현하고 단어 간의 의미적 상관도를 계산하여 의미 정보를 처리한다. - 통계적 자연어 처리 - 확률적 앵무새
확률적 앵무새는 거대 언어 모델이 의미를 이해하지 못하고 확률적으로 단어를 연결하여 텍스트를 생성하는 것을 앵무새에 비유한 용어로, 환경적 비용, 편향성, 허위 정보 생성 가능성 등의 위험성을 경고하며 LLM의 이해 능력에 대한 논쟁을 불러일으킨다. - 통계적 자연어 처리 - 언어 모델
언어 모델은 단어 시퀀스에 확률을 할당하는 통계적 모델로서 자연어 처리 분야에서 중요한 역할을 하며, 초기 마르코프 과정 기반 모델에서 지수 함수 모델, 신경망 모델을 거쳐 음성 입력 모델 등 다양한 형태로 연구되고, 벤치마크 데이터 세트를 통해 성능이 평가된다. - 자연어 처리 - 정보 추출
정보 추출은 비정형 또는 반구조화된 텍스트에서 구조화된 정보를 자동으로 추출하는 기술로, 자연어 처리 기술을 활용하여 개체명 인식, 관계 추출 등의 작업을 수행하며 웹의 방대한 데이터에서 유용한 정보를 얻는 데 사용된다. - 자연어 처리 - 단어 의미 중의성 해소
단어 의미 중의성 해소(WSD)는 문맥 내 단어의 의미를 파악하는 계산 언어학 과제로, 다양한 접근 방식과 외부 지식 소스를 활용하여 연구되고 있으며, 다국어 및 교차 언어 WSD 등으로 발전하며 국제 경연 대회를 통해 평가된다.
Tf-idf | |
---|---|
일반 정보 | |
이름 | TF-IDF (Term Frequency-Inverse Document Frequency) |
한국어 명칭 | 단어 빈도-역문서 빈도 |
유형 | 가중치 부여 방식 |
상세 정보 | |
목적 | 문서 내 단어의 중요도 측정 |
사용 분야 | 정보 검색 텍스트 마이닝 |
주요 개념 | 단어 빈도 (TF, Term Frequency) 역문서 빈도 (IDF, Inverse Document Frequency) |
계산 방법 | |
단어 빈도 (TF) | 특정 문서 내에서 특정 단어가 나타나는 횟수 |
역문서 빈도 (IDF) | 전체 문서 집합에서 특정 단어가 포함된 문서 수의 역수 (로그 스케일 적용) |
TF-IDF 계산 | TF 값과 IDF 값을 곱하여 계산 |
장점 | |
특징 | 계산 용이성 직관적인 해석 |
효과 | 문서 내에서 중요한 단어 식별 용이 |
단점 | |
고려 사항 | 단어의 의미적 중요성 미반영 짧은 문서에 편향될 가능성 존재 |
활용 예시 | |
문서 검색 | 검색어와 관련된 문서를 찾는데 사용 |
문서 분류 | 문서의 특징을 추출하여 문서를 분류하는데 사용 |
사용자 모델링 | 사용자의 관심사를 파악하는데 사용 |
참고 자료 | |
관련 논문 | Research-paper recommender systems: a literature survey 국제 디지털 도서관 저널 |
관련 서적 | Mining of Massive Datasets 스탠포드 대학교 |
2. 정의
TF-IDF(Term Frequency-Inverse Document Frequency)는 정보 검색과 텍스트 마이닝에서 이용하는 가중치로, 여러 문서로 이루어진 문서 집합이 있을 때 어떤 단어가 특정 문서 내에서 얼마나 중요한 것인지를 나타내는 통계적 수치다. TF-IDF는 단어 빈도(TF, Term Frequency)와 역문서 빈도(IDF, Inverse Document Frequency)의 곱으로 계산된다.
- '''단어 빈도 (TF)'''는 특정 단어가 문서 내에 얼마나 자주 등장하는지를 나타내는 값이다.
- '''역문서 빈도 (IDF)'''는 특정 단어가 전체 문서 집합에서 얼마나 희소하게 등장하는지를 나타내는 값이다. 문서 집합 전체에서 흔하게 나타나는 단어일수록 IDF 값은 낮아지고, 특정 문서에만 드물게 나타나는 단어일수록 IDF 값은 높아진다.
TF-IDF 값은 다음과 같은 수식으로 표현된다.
:
여기서 는 단어, 는 특정 문서, 는 전체 문서 집합을 의미한다.
결과적으로, 특정 문서 내에서 단어 빈도(TF)가 높을수록, 그리고 전체 문서들 중 그 단어를 포함한 문서가 적을수록(IDF가 높을수록) TF-IDF 값은 높아진다. 이 값을 이용하면 "the", "a", 조사 등과 같이 모든 문서에 흔하게 나타나는 단어(불용어)의 중요도는 낮추고, 특정 문서의 주제를 잘 나타내는 중요한 단어의 중요도는 높이는 효과를 얻을 수 있다.[31] IDF 계산에 사용되는 로그 함수의 특성상 IDF 값과 TF-IDF 값은 항상 0 이상이 된다.
2. 1. 단어 빈도 (TF, Term Frequency)
'''단어 빈도'''(TF, Term Frequency)는 특정 문서 내에서 특정 단어가 얼마나 자주 나타나는지를 나타내는 값이다. TF-IDF는 단어 빈도(TF)와 역문서 빈도(IDF)의 곱으로 계산된다.단어 빈도 tf(t,d) 값을 산출하는 가장 간단한 방법은 문서 d 내에 나타나는 해당 단어 t의 총 빈도수(raw count), 즉 f(t,d)를 사용하는 것이다.
:
그러나 문서의 길이에 따라 단어 빈도값이 영향을 받을 수 있으므로, 이를 보정하기 위한 여러 가지 TF 가중치 계산 방식이 존재한다.[31][5][20]
가중치 방식 | tf 가중치 |
---|---|
불린(binary) | (단어가 문서에 있으면 1, 없으면 0) |
원시 빈도 (raw count) | |
단어 빈도 (term frequency) | (단어 빈도 / 문서 내 전체 단어 수) |
로그 정규화 (log normalization) | [6][21] |
이중 0.5 정규화 (double normalization 0.5) | (긴 문서에 대한 편향 조정) |
이중 K 정규화 (double normalization K) | (K는 보통 0.5 사용) |
- 불린 빈도: tf(t,d) = t가 d에 한 번이라도 나타나면 1, 아니면 0.
- 로그 스케일 빈도: tf(t,d) = log (1 + f(t,d)). 단어 빈도수의 절대적인 차이보다는 상대적인 중요도를 반영한다.[6]
- 상대 빈도: tf(t,d) = f(t,d) / (문서 d 내 전체 단어 수). 문서의 길이를 고려하여 정규화한다.
:
- 증가 빈도 (Augmented frequency) / 이중 정규화: 문서 내에서 가장 자주 등장하는 단어의 빈도를 이용하여 정규화하는 방식으로, 긴 문서에서 특정 단어가 과도하게 높은 빈도를 갖는 것을 방지한다. 예를 들어, 이중 0.5 정규화 방식은 다음과 같다.
:
최초의 단어 가중치 부여 기법 중 하나는 한스 피터 루은(Hans Peter Luhn)이 1957년에 제안한 것으로, 문서 내 단어의 가중치는 그 출현 빈도에 단순 비례한다는 개념에 기반한다.[18] TF-IDF는 이러한 단어 빈도 개념을 바탕으로 문서 간 단어의 중요도를 비교하기 위해 역문서 빈도(IDF)를 추가로 고려한다.
2. 2. 역문서 빈도 (IDF, Inverse Document Frequency)
'''역문서 빈도'''(Inverse Document Frequency, IDF)는 한 단어가 문서 집합 전체에서 얼마나 공통적으로 나타나는지를 나타내는 값으로, 단어가 제공하는 정보의 양을 측정하는 척도이다. 즉, 어떤 단어가 특정 문서 내에서는 자주 등장하더라도 다른 여러 문서에서도 흔하게 등장한다면, 그 단어의 중요도는 낮다고 판단하고 반대로 특정 문서에서만 집중적으로 사용된다면 중요도가 높다고 판단하는 방식이다. 이는 모든 문서에 흔하게 나타나는 단어(예: "the", "a", 조사 등)의 가중치를 줄이고, 특정 문서에 집중되는 드문 단어의 가중치를 높이는 효과를 가져온다.[19]IDF는 1972년 캐런 스패르크 존스(Karen Spärck Jones)가 "용어 특정성"(term specificity)이라는 개념으로 처음 소개했으며, 이는 정보 검색 분야에서 용어 가중치 부여 방식의 중요한 기초가 되었다.[3][19] 스패르크 존스는 "용어의 특정성은 그 용어가 나타나는 문서 수의 역함수로 정량화할 수 있다"고 설명했다.[3]
IDF 값은 전체 문서의 수를 해당 단어 를 포함한 문서의 수로 나눈 뒤 로그를 취하여 계산한다.
: