测量两个集合之间的重合度,但是没有考虑term frequency(罕见的词比常见的词包含更多信息)
不考虑词项在文档中出现的次序,但是出现的次数很重要。和布尔检索形成鲜明对比
t f t , d tf_{t,d} tft,d 代表 t t t 在 d d d 中出现的次数
我们经常采用 log \log log 的形式来计算权重
查询-文档对的得分可以用加和的形式来表示。-查询 q q q 中的所有词在文档 d d d 中的权重和
罕见的词比常见的词包含更多的信息,因此我们应该赋予更大的权重( t f tf tf 认为所有的词是一样重要的)
但是这不是相关性的确切指标(可能对于频繁出现的词项,我们想要比较大的权重)
d f t df_t dft :包含这个词的文档的数目(是信息的反向测量)
i d f f idf_f idff:逆文档频率
idf对于单个词项的查询排序没有效果,查询至少包括两个词才有效果
t f tf tf 和 i d f idf idf 的乘积(两方面综合考虑)
查询-文档对的得分
默认向量的计算使用 t f _ i d f tf\_idf tf_idf
一系列的文档在同一向量空间中的表示被称为向量空间模型。
文档向量:每个分量代表词项在文档中的相对重要性(每个词项对应一个坐标轴,文档是空间中的点)
思想:
将查询语句看作一篇极短的文档,查找与其相似的文档
将查询表示成空间中的向量
将文档按照其与查询的相似度进行排序
那么,如何进行相似度计算呢?
欧式距离?:不行,对与长度不同的向量,欧式距离很大。 q q q 和 d 2 d_2 d2 距离很大尽管他们比较相似
我们将一篇文档复制为原来的两倍,尽管他们表达的内容一样,但他们之间的距离很大,不过角度差却为0
思想:将向量进行归一化处理
算出来的值越大越相关
我们可以按照角度从小到大进行排序
也就是按照cos值从大到小进行排序
对于已经归一化后的向量,计算其余弦相似度其实就是点乘
算法流程(以查询中的词项为单位,增加文档的得分) w t , q w_{t,q} wt,q 是词项在查询语句中的权重
向量空间中各种相似度评分方法的不同,主要在于向量中的权重计算机制的不同。文档向量和查询向量权重计算方法的组合字母标识为ddd.qqq(SMART记号)。前三位是文档向量的权重计算方法,后三位是查询向量的权重计算方法
三位字母的含义
第一位: t f tf tf 因子
第二位: d f df df 因此
第三位:归一化方法