为什么要增加一个反向文档频率?


9

我的课本将idf列为,其中log(1+Nnt)

  • N:文件数
  • nt:包含术语的文档数t

维基百科将此公式列为实际的平滑版本。我了解的一个:范围从到,看起来很直观。 但是从到似乎太奇怪了…… 我对语言建模的平滑知识有所了解,但是您会在分子中添加一些东西以及分母中,因为您担心概率质量。但是,只加对我来说没有意义。我们要在这里完成什么?log(Nnt)log(NN)=0
log(1+Nnt)log(1+1)
1



正确的平滑处理将是
log(N(1+nt))
ashishpatel.co.in 18'Mar

Answers:


7

正如您将在其他地方指出的那样,讨论了tf-idf,没有通用的用于计算tf-idf甚至(如您所问的)idf的单一公式。的目的是实现两个目标之一:a)避免除以零,例如当术语没有出现在文档中时,即使严格按“词袋”方法不会发生这种情况,或b)设置一个下限以避免一个术语的权重为零,因为该术语出现在所有文档中。+1

尽管您提到了一本教科书,但实际上我从未见过公式。但是,目的是要设置的下限,而不是您正确解释的零。我看过1 +,其下限设置为1。最常用的计算似乎是,如曼宁(Chris的曼宁(Manning) D,Prabhakar Raghavan和HinrichSchütze(2008)信息检索导论,剑桥大学出版社,p118或Wikipedia(基于类似来源)。log(1+Nnt)log(2)log(Nnt)log(Nnt)

与查询不直接相关,但上限不是,而是,其中取决于您的平滑公式。对于出现在0或1个文档中的术语会发生这种情况(同样,取决于是否使用平滑以将其定义为文档频率为零的术语-如果不是,则最大值出现在仅出现在一个文档中的术语)。当且时,IDF。k+log(N/s)k,s0,1s1+nt=1N

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.