Term Frequency - Inverse Document Frequency
쿼리(Query)와 문서(Document)를 비교할 때 많이 쓰이는 방법이다.
- Term Frequency(TF): 단어의 등장 빈도
- Inverse Document Frequency(IDF): 단어가 제공하는 정보의 양
Term Frequency(TF)
측정 방법
- 각각의 단어 개수 세기
- 정규화 : 위에서 센 값을 전체 단어의 수로 나누기
- binary, log normalization 등과 같은 방법으로도 정규화 가능
Inverse Document Frequency(IDF)
측정 방법
IDF(t)=logDF(t)N
Document Frequency(DF): Term t가 등장한 document 개수
N: 총 document 개수
식에 따르면 여러 문서에 등장하는 단어의 점수는 낮게 측정되며, 적은 문서에만 등장하는 단어의 점수는 높게 측정된다.
TF-IDF
TF(t,d)×IDF(t)
별로 의미가 없는 관사(a, the) 같은 경우 점수가 낮게 나오며, 고유명사와 같이 의미가 담긴 단어는 IDF 점수가 높기 때문에 TF-IDF 점수가 높게 측정된다.
TF값은 문서와 단어마다 값이 다르지만 단어의 IDF값은 모든 문서에서 동일하다.
TF-IDF 테이블을 만들어 미리 계산해두면, 쿼리와 가장 유사한 문서를 찾아낼 수 있다. 쿼리의 TF-IDF 값과 문서별 TF-IDF 값을 곱하면 유사도 점수를 계산할 수 있다.
Score(Q,D)=term∈Q∑TFIDF(term,Q)∗TFIDF(term,D)
BM25
TF-IDF의 개념을 바탕으로 문서의 길이까지 고려하여 점수를 매긴다.
TF 값에 한계를 지정해두어 일정한 범위를 유지하도록 하고, 평균적인 문서의 길이보다 더 짧은 문서에서 단어가 매칭된 경우 그 문서에 가중치를 부여한다.
현업에서도 많이 사용되는 알고리즘이다.
Score(Q,D)=term∈Q∑IDF(term)⋅TFIDF(term,D)+k1⋅(1−b+b⋅avgdl∣D∣))TFIDF(term,D)⋅(k1+1)