这就是搜索引擎——检索模型与搜索结果排序

布尔模型

布尔模型是检索模型中最简单的一种,理论基础就是集合论。
用户查询一般使用“与或非”这些逻辑连接词,比如用户希望找到与苹果公司相关的信息,可以用如下的逻辑表达式查询:苹果AND(乔布斯OR iPad),代表的涵义很容易理解。
在这里插入图片描述
对于上面的文档,满足搜索的要求是D3和D5。

布尔模型很简单,但是其结果是二元的,要么相关要么不相关。所以无法根据搜索结果进行排序,而且对普通用户来说,使用Or And Not很难。

向量空间模型

向量空间模型作为一种文档表示和相似性计算的工具,不仅仅在搜索领域,在自然语言处理、文本挖掘等诸多其他领域也是普遍采用的有效工具。


  • 文档表示

向量空间模型把每个文档看做是由t维特征组成的向量,这些特征可以是单词、词组等多种形式,最常用的还是单词。
直接看图,很容易明白:
在这里插入图片描述
特征与文档的交点就是权重。这种模型下,用户的查询也可以被看做一个特殊的文档,也将其转换为t维的特征向量。
权重怎么计算?
答案是:TF-IDF算法。 http://www.tfidf.com/

TF(t) = (Number of times term t appears in a document) / (Total number of terms in the document).
IDF(t) = log_e(Total number of documents / Number of documents with term t in it).
Weight=TF*IDF

在这里插入图片描述

文档转换为特征向量后,就可以计算文档之间或者查询与文档之间的相似性了。对于搜索排序这种任务来说,给定用户输入的查询,理论上应该计算查询和网页内容之间的“相关性”,以此来衡量排序的先后。

如何计算相似性呢?Cosine相似性是最常用也是非常有效的计算方式:
在这里插入图片描述
我们可以很简单的明白,Cosine(余弦)公式有一个明显的缺陷:
会抑制对长文档的相关度,因为长文档不光会讨论搜索关键词包含的内容,还会讨论其他一些内容。而短文档一般受限于篇幅,所以只会讨论搜索关键词包含的内容。这样会使得短文档更加的相关。

为了便于理解Cosine相似性,可以将每个文档以及查询看做是一个t维向量空间里的向量,Cosine公式就是求两个向量之间的夹角,夹角越小,两个内容越相似。我们知道,二维向量的余弦夹角计算公式如下:
在这里插入图片描述
所以拓展到t维,很容易理解。

概率检索模型

概率检索模型是目前效果最好的模型之一。


  • 概率排序原理

给定一个查询,如果搜索系统能够在搜索结果排序时按照文档和用户需求的相关性由高到底排序,那么这个搜索系统的准确性是最优的。而在文档集合的基础上尽可能准确的对这种相关性进行估计则是其核心。

从概率排序原理的表述来看,这是一种直接对用户需求相关性进行建模的方法,这点与向量空间模型不同,向量空间模型是以查询和文档的内容相似性来作为相关性的代替品。

怎样对文档与用户需求的相关性进行建模呢?
用户发出一个查询请求,如果我们对文档集合划分为两个分类:相关和不相关的文档子集,于是这样就可以转化为一个分类问题。
对于某个文档D来说,如果其属于相关文档子集的概率大于属于不相关文档子集的概率,我们就可以认为这个文档与用户查询是相关的。途中的P代表相关性的概率或者不相关的概率,那么P(R|D)表示,在文档D的基础上Relative的概率。如果P(R|D)>P(NR|D),我们可以认为文档与用户查询是相关的:
在这里插入图片描述
现在的问题是如何计算两个P的值呢?为了简化问题,首先我们根据贝叶斯规则对两个概率值进行改写,即:(概率论内容)
在这里插入图片描述
要判断P(R|D)>P(NR|D),就是判断:
在这里插入图片描述
因为是同一篇文档,所以P(D)是相同的,也就是判断:
在这里插入图片描述
尽管是个二元的分类问题,但搜索的时候并不需要真的分类,只需要按相关性结果由高到低排序即可,也就是按照公式P(D|R)/P(D|NR)排序即可。所以问题进一步化简为估算因子P(D|R)和P(D|NR)。
如何估算,二元独立模型(BIM)提供了计算这些因子的框架:

为了使得估算可行,BIM模型做出了两个假设:

  1. 二元假设:一篇文章由特征进行表示的时候,分两种情况“出现”“不出现”,不考虑词频等其他因素。按特征表示一个文档D,应该这样表示D{1,0,1,0,1},也就是说出现了第1、3、5个特征。
  2. 词汇独立性假设:假设文档里出现的单词之间没有任何关联,也就是说每个单词是独立同分布的,不依赖其他单词是否出现。当然这个假设很明显与事实不符,出现“乔布斯”的话,很容易会出现“苹果”一词。但是为了简化计算,我们不得不这么做。

在二元假设中提到了表示法D{1,0,1,0,1},我们用pi表示第i个特征在相关文档集合内出现的概率,于是文档D的P(D\R)概率为:
在这里插入图片描述
同理P(D|NR)为:
在这里插入图片描述
所以,估算表达式为:
在这里插入图片描述
也就是:
在这里插入图片描述
经过化简和取对数:
在这里插入图片描述
剩下就是知道pi和si怎么计算了,我们利用下表所列数据来估算单词概率:
在这里插入图片描述
表中第3行的N为文档集合包含的文档总数,R为相关文档的个数,所以N-R就是不相关文档的个数。
对于某个单词di来说,假设包含这个单词的文档共有ni个,其中相关的文档有ri个,不相关的文档有ni-ri个。
再考虑第二列,因为相关文档个数是R个,其中出现过单词di的有ri个,那么相关文档中没有出现di的就是R-ri个,同理不相关文档里没有出现这个单词的个数就求出来了。
如果假设我们知道N、R、ni、ri的话,其他数值是可以求出来的。
根据表格数据,即可估算si和pi。为了使得pi和si平滑,我们对等式做了一点点变形:
在这里插入图片描述
在这里插入图片描述
将这两个估值因子带入相关性估算公式:
在这里插入图片描述
终于说完了这个模型,但是根据BIM计算相关性的实际效果并不好,但是这个模型确实非常成功的概率模型方法BM25的基础,这就是我们为什么介绍BIM的原因。


  • BM25模型

我放弃了!


  • BM25F模型

开心就好,头发重要。

语言模型方法

借鉴了语音识别领域采用的语言模型技术,将语言模型和信息检索相互融合的结果。

有缘再看吧。

机器学习排序

略。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Elasticsearch 是一个开源的分布式搜索和分析引擎,用于实时搜索和分析大规模数据。在 Elasticsearch 中,word 搜索结果的页面展示可以通过以下几个方面来实现。 1. 搜索结果列表:在搜索结果页面上,通常会展示出与搜索词匹配的文档的列表。每个文档通常会显示标题、摘要、相关信息等,以便用户快速浏览和识别是否与其需求匹配。可以通过 Elasticsearch 的查询语句来过滤和排序搜索结果,以提供更有针对性的展示。 2. 分页与翻页:若搜索结果数量较大,需要将搜索结果分页展示。通常会显示每页的搜索结果数量和总页数,用户可以通过翻页操作浏览更多的搜索结果。可以使用 Elasticsearch 的分页查询语句,如 `from` 和 `size` 参数来实现结果的分页展示。 3. 高亮关键词:为了让用户更清晰地了解搜索结果与搜索词的匹配程度,可以将搜索词在搜索结果中进行高亮显示。Elasticsearch 提供了 `highlight` 查询,可以针对匹配的关键词添加 HTML 标签或其他样式,用以突出显示。 4. 搜索过滤器:为了让用户更方便地缩小搜索结果的范围,可以提供一些搜索过滤器,如按照时间、类型等进行筛选。这可以通过 Elasticsearch 的过滤器功能来实现,如 `range` 和 `term` 过滤器。 5. 搜索建议:为了提高用户体验,可以在搜索结果页面上提供搜索建议功能,根据用户当前的搜索词,展示相关的搜索建议。这可以通过 Elasticsearch 的自动补全功能来实现,如 `suggest` 查询。 总之,Elasticsearch 可以通过查询语句、分页查询、高亮显示、过滤器和搜索建议等功能来实现 word 搜索结果页面的展示,提供给用户更准确、便捷的搜索体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值