第六章 文档评分、词项权重计算及向量空间模型
在文档集规模很大时,满足布尔查询结果的文档数量可能非常多,往往会大大超过用户能够浏览的文档的数目。对于给定的查询,搜索引擎会计算每个匹配文档的得分并排序。
6.1.参数化索引及域索引
之前,我们都是将文档看成一系列词项的序列。但实际上,文档除了文本外还有元数据,比如创建时间、文档标题,作者信息等,因此我们也可以对他进行限制;比如限制查询文档结果必须是2010年发表的;
参数化索引(parametric index):某个字段取值存在一定限制,如取值范围的限制,日期,则为参数化索引;
域索引:某个字段取值没有任何限制,比如标题,可以是任意的自由文本;
1. 域加权评分
给定一系列文档,假定每篇文档有l个域,其对应的权重分别是
g1,...,gl∈[0,1]g1,...,gl∈[0,1],且满足
∑li=1gi=1∑i=1lgi=1。
令sisi为查询和文档的第i个域的匹配得分(1表示匹配上,0表示没匹配上),则域加权评分方法定义为:∑li=1gisi∑i=1lgisi,该方法有时也被称为排序式布尔检索(ranked Boolean retrieval)。
例如,一个文档集,每篇文档都有三个域–author,title,body,三个域的权重系数分别为g1=0.2,g2=0.3,g3=0.5g1=0.2,g2=0.3,g3=0.5,查询shakespeare,出现shakespeare时得分为1,否则为0。如果shakespeare出现在某文档的title和body域,则该文档最后得分为0.8。
2.权重学习
对于不同域的权重,可以从训练数据学习得到。
6.2 词项频率及权重计算
自由文本查询(参见第一章,没有任何搜索连接符如布尔操作符),在Web上很流行,它将查询看成多个词组成的集合。先对于每个词项计算它与文档的匹配得分,然后将所有查询词项的得分求和。
这样,我们对文档中每个词项都赋予了一个权重。最简单的,可以将权重设置为词项频率。
词项频率(term frequency):词项t在文档d中的出现次数,记为tft,dtft,d。
词袋模型(bag of words model):忽略文档在文档中的出现次序,只关心出现的次数。词袋模型下,文档Mary is quicker than John和John is quicker than Mary是等价的。
只考虑词项频率有一个严重