IDF的公式是log(N/df t),而不仅仅是N/df t。
其中,N表示集合中的文档总数,df t表示词项t的文档频率。
据说使用对数是因为它“减弱”了IDF的影响。这是什么意思?
此外,为什么我们在这里使用对数频率加权来进行词项频率的加权呢?
其中,N表示集合中的文档总数,df t表示词项t的文档频率。
据说使用对数是因为它“减弱”了IDF的影响。这是什么意思?
此外,为什么我们在这里使用对数频率加权来进行词项频率的加权呢?
Debasis的回答是正确的。我不知道他为什么会被downvote。
这里有一个直觉: 如果单词“computer”在doc1中的词频为10,在doc2中为20,则我们可以说doc2与单词“computer”更相关。
然而,如果相同单词“computer”在doc1中的词频为100万,在doc2中为200万,这时,它们对于单词“computer”的相关性没有太大的差异了,因为它们都包含了非常高的单词“computer”计数。
就像Debasis的答案一样,添加对数是为了降低具有高频率的词的重要性,例如使用以2为底数的对数,100万的计数将减少到19.9!
我们还将log(tf)加1,因为当tf等于1时,log(1)等于零。通过加一,我们区分了tf = 0和tf = 1。
希望这有所帮助!
在文档中一个术语出现的次数越多并不一定意味着相对重要性更高... 术语频率对文档相关性的贡献本质上是一个次线性函数... 因此使用对数来近似这个次线性函数...
同样适用于idf... 线性idf函数可能会过度提高具有高idf术语(由于拼写错误而变得罕见)的文档分数... 采用次线性函数则效果更好...