前面我们给出了文档评分中词项权重计算的理论,并由此导出向量空间模型和基本余弦相似度评分算法。当然不少策略不会精确返回与查询相匹配的K篇文档,一些策略也可以推广到余弦相似度计算之外的其他场合中去。
快速评分算法以及排序
前面介绍通过计算查询与文档的余弦相似度来给文档评分:
在上面这个公式中,我们对V(q),进行了一个归一化处理。例如查询q=[jealous gossip],归一化后为v(q)=[0.707 0.707]。其实我们没必要归一化,直接用[1 1]的查询向量,这样我们做向量乘积的时候就乘1,这个就不需要乘了,最后直接转换为加法。
根据上面的分析计算出每篇文档的得分,然后利用TopK算法选出得分最高的K篇文档。如果我们每次都要计算N篇文档的分数,那么这个工作量很大,下面介绍一下简单的方法: