搜索引擎中的查询模型
搜索排序也是搜索引擎的核心部分,技术已经比较成熟,其中的查询检索模型主要有以下几个:
1.布尔模型
布尔模型是最简单的查询模型,文档包含查询词标记为1,否则为0,最后通过使用与或关系进行匹配。如用户查询词A && B && (C || D),假设只有4个文档,包含查询词A,B,C,D的文档分别为A(1,0,0,1);B(1,0,0,0),C(1,1,1,0),D(0,0,1,1),则包含A&&B的文档为(1,0,0,0),包含C||D的文档为(1,1,1,1),则A&&B&&(C||D)为(1,0,0,0),即最后返回文档1。
布尔模型最为简单,计算复杂度较低,但查询效果并不理想,没有体现相关度这个概念,同时只考虑查询词的包含/不包含关系,逻辑较为简单。
2.向量空间模型
向量模型考虑到单词在文档中出现的频率,考虑到了相关度的问题。向量空间模型最关键的是特征提取,对于查询词组特征提取成向量q,文档D特征提取向量为d,则可以通过计算cos(q,d)来表示查询词与文档的相似度。如下图所示。
通过文档相似度理论的假设,比较每个文档向量和原始查询向量(两个向量的类型是相同的)之间的角度偏差,使得在文档中搜索关键词的关联规则是能够计算的。 实际上,计算向量之间夹角的余弦比直接计算夹角本身要简单。
其中 是文档向量(即右图中的d2)和查询向量(图中的q)的点乘。
是向量d2 的模, 而
是向量q的模. 向量的模通过下面的公式来计算:
由于这个模型所考虑的所有向量都是严格非负的,如果其余弦值为零,则表示查询向量和文档向量是正交的,即不符合(换句话说,就是该检索词在文档中没有找到)。
特征提取是关键部分,常用的模型是tf*idf,其中tf表示词频,即在文档中出现次数,通常会将tf转换成其变形模式:1+log(tf);idf为逆文档频率,idf=logN/ni,N表示文档个数,ni表示在第i个特征单词出现的文档个数,idf表示了文档的特征词在文档中的分布情况。
最后根据相似度的大小排序,作为查询结果返回给用户。
3.概率模型
概率模型效果比较好,被商业搜索引擎广泛使用。概率模型将文档分为相关文档和不相关文档两个集合,查询过程就是文档分类的过程,对于文档D,如果属于相关文档的概率大于属于不相关文档的概率,这可认为该文档与用户查询相关。这里使用到条件概率模型。
(1) BIM模型
(2) BM25模型
K=
上式中,dl表示文档的长度,avdl表示文档的平均长度,b通常取0.75。
查询计算的时候,由于并不知道相关文档的个数,因此会将R和ri设置为0.