为什么在计算术语频率权重和IDF,逆文档频率时使用日志?

ste*_*nix 30 information-retrieval tf-idf

IDF的公式是log(N/df t)而不是N/df t.

其中N =集合中的总文档,df t =术语t的文档频率.

据说使用日志是因为它"抑制"了IDF的影响.这是什么意思?

另外,为什么我们使用对数频率的对数频率称量,如下所示:

在此输入图像描述

sut*_*hee 39

Debasis的答案是正确的.我不确定他为什么会被投票.

这是直觉:如果doc1中"计算机"一词的术语频率为10,而doc2中的术语频率为20,我们可以说doc2与"计算机"这个词的doc1相关性更高.

但是,如果同一个词的术语频率''计算机',对于doc1是100万而doc2是2百万,那么在相关性方面就没有太大差别,因为它们都包含非常高的计数'电脑'.

就像Debasis的答案一样,添加日志是为了抑制具有高频率的术语的重要性,例如使用log base 2,100万的计数将减少到19.9!

我们还在log(tf)中加1,因为当tf等于1时,log(1)为零.通过添加一个,我们区分tf = 0和tf = 1.

希望这可以帮助!

  • 很好的答案,但问题不是关于 IDF 而不是 TF 吗?看来你的推理应该适用于TF (2认同)

Deb*_*sis 21

不一定是文档中术语的出现更多是相关性的情况......术语频率对文档相关性的贡献本质上是一个子线性函数...因此日志近似于该子线性功能...

同样适用于idf ...线性idf函数可能会提高过高的idf条件的文档分数(由于拼写错误可能是罕见的术语)......子线性函数执行得更好......