왜 역 문서 빈도로 하나를 추가해야합니까?


9

내 교과서에는 idf가 되어 있습니다.log(1+Nnt)

  • N : 문서 수
  • nt : 용어 포함하는 문서 수t

Wikipedia는이 수식을 실제 의 부드러운 버전으로 나열합니다 . 내가 이해하는 것 : ~ 이르기까지 직관적으로 보입니다. 그러나 는 에서 로 너무 이상해 보입니다 ... 언어 모델링에서 스무딩에 대해 조금 알고 있지만 분자에 무언가를 추가 할 것입니다 확률 질량에 대해 걱정하기 때문에 분모에 있습니다. 그러나 추가하는 것은 의미가 없습니다. 우리는 여기서 무엇을 이루려고 노력합니까?log(Nnt)log(NN)=0
log(1+Nnt)log(1+1)
1



올바른 평활화가 될 것입니다
log(N(1+nt))
ashishpatel.co.in

답변:


7

tf-idf가 논의 된 다른 곳 에서 지적했듯이 tf-idf 또는 심지어 (질문과 같이) idf 계산을 위해 보편적으로 동의 된 단일 공식은 없습니다 . 의 목적은 다음 두 가지 목표 중 하나를 달성하는 것입니다. a) 용어가 문서에 나타나지 않을 때처럼 0으로 나누기를 피하는 것 (이것은 엄격하게 "단어"접근법으로 발생하지는 않지만) b) 용어가 모든 문서에 나타나기 때문에 가중치가 0이되지 않도록 하한을 설정합니다.+1

실제로 교과서를 언급했지만 공식 본 적이 없습니다 . 그러나 올바르게 해석 할 때 0이 아닌 의 하한을 설정하는 것이 목적입니다 . 나는 1 + 하한을 1로 설정했습니다. 가장 일반적으로 사용되는 계산은 Christopher Manning에서와 같이 인 것 같습니다 D, Prabhakar Raghavan 및 Hinrich Schütze (2008) 정보 검색 입문 , Cambridge University Press, p118 또는 Wikipedia (유사 출처).log(1+Nnt)log(2)log(Nnt)log(Nnt)

쿼리와 직접적인 관련이 있지만, 상한하지하지 않습니다 아니라 여기서 당신의 평활 배합에 따라 달라집니다. 이것은 0 또는 1 개의 문서에 나타나는 용어에 대해 발생합니다 (다시 말해서 문서 빈도가 0 인 용어에 대해 를 사용하여 매끄럽게 정의 하는지 여부에 따라 다름). 그렇지 않은 경우 하나의 문서에 나타나는 용어에 대해 최대 값이 발생합니다. 때 IDF 이고 입니다.k+log(N/s)k,s0,1s1+nt=1N

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.