一个查询(query)中每个关键字(key word)w的权重应该反映这个词对查询提供了多少信息。一个简单的方法就是用每个词的信息量作为权重,即:
I(w)=−P(w)logP(w)=−NTF(w)logNTF(w)==NTF(w)logTF(w)N
其中,N是整个语料库的大小,是个可以省略的常数。因此上面公式可以简化成:
I(w)=TF(w)logTF(w)N
但是,这个公式还是有个缺陷:两个词出现的频率TF相同,但是,一个是特定文章的常见词,另一个词是分散在多篇文章中,显然第一个词应该有更高的区分度,权重应该更大。这个公式却不能体现这个区分度。
如果做一些假设:
- 每个文献大小基本相同,均为M个词,即M=DN=D∑wTF(w),D表示文献总数。
- 一个关键词在文献中一旦出现,不论次数多少,贡献都相同,这样一个词要么在一个文献中出现c(w)=D(w)TF(w) 次,要么出现0次。注意,c(w)<M,M是这个文献的单词总数,当然大于前者。这里,D(w) 表示出现w文献的个数。
根据上述假设,则有:
I(w)=TF(w)logTF(w)N=TF(w)logc(w)D(w)MD=TF(w)log(D(w)Dc(w)M)
则有:
TF−IDF(w)=TF(w)logD(w)D=I(w)−TF(w)logc(w)M
因此,可以得出结论,一个词的信息量I(w)越多,TF-IDF值就越大;同时w命中的文献中w平均出现的次数越多,第二项越小,TF-IDF也越大。
第二点结论的证明:
