【搜索引擎(三)】检索模型

检索模型的目的

  现实中搜索引擎的检索策略复杂多变,但是分析起来,核心的目的就两个,为了:

  1. 越相关的结果越靠前;

  2. 查询的结果是完整的。

经典检索模型

经典信息检索模型有三类:

    1.布尔模型

    2.向量模型

    3.概率

    不看内部, 查询的模型是:查询->查询模型->返回结果,一个查询是一组关键字,返回结果是一组文档

  1.布尔模型:

    返回包含一个查询中的n个关键字的文档, 即包含w1,w2,w3的文档的交集

  2.向量模型:

    考虑到布尔匹配的局限性太强,而提出的一个部分匹配的方法。通过对查询和文档中的索引赋予非布尔权重,最后用来计算文档和用户查询之间的相似度。

    向量d表示文本,向量q表示查询,它们的长度是一样的,d.length = q.length = 索引项总个数。

    当然可以用类似cosine,Jaccard的方法来计算相似度,并对结果进行排序。

    尽管它并不是最好的,但是在评测检索策略的时候经常作为baseline(基准)

  3.概率模型:

    这个概念有些复杂,其实看起来就好像是潜在语义的分析,对用户的输入进行一些分析,推测潜在属性,最后给出一个在假设下为,给出最大概率是用户想要文档的文档(拗口)。

    同时有一个虚拟的概念叫理想文档,就是恰好只包含用户想要的结果的文档。

    实现的方法:用朴素贝叶斯推断。可以想象在A属性下用户给出Q查询的概率,以及目前已有的过往查询中某个属性A下最终得到的概率,就应该知道它跟贝叶斯方法的推导有一些关系了。

    这个模型的缺陷在于几乎没有办法给定样本集。评测它的准确度也不是那么容易。

集合论模型

  1.基于集合的模型

    基于集合的模型是一种较新的方法,结合了集合论与向量空间模型的排序。它包含了布尔模型的特征(布尔=集合,向量=代数)。,我们把它看成布尔模型。主要的特点是利用项集建立索引,而非普通的索引。

    所谓项集,是文档中索引项的子集。一个集合可以有2^t个项集,但是实际用到的不会这么多。同时,项集也不是两两不相交的。

    频繁项集是项集的一种。设定一个阈值,当项集中的索引出现文档次数超过它的时候,这个项集就是频繁项集。频繁项集还有跟它相关的项集 Apriori算法,在关联规则的时候会用到它。

    用频繁项集来设计索引,可以在一些场景下减少搜索时间,提高检索效率。

  2.扩展布尔模型

    是一种将布尔模型和向量模型统一化的方法(布尔=集合,向量=代数)。用p范数泛化形式的析取、合取,统一了布尔模型和向量模型,并且还有一些中间的形态。目前不清楚它的应用,具体的数学形式不给了。

  3.模糊集模型

    为了处理布尔模型的突变问题而设计的模型。该模型中新增了同义词辞典,并且自然而然地采用了相似度的计算。

其他模型

模型分类 具体模型
代数模型 广义向量模型、潜在语义索引、神经网络
其他概率模型 BM25模型, 语言模型, 随机差异模型, 贝叶斯网络

结语

  检索的模型有很多种,并不能说哪一种更好,因为判定的标准不是唯一的。

  尽管如此,检索模型仍然没有达到完美的终点,还需要更多的研究。在为了得到良好结果而做的努力中,检索模型是一个基础,为了面对不同的文档集和不同的查询需求,模型是可能被同时结合到搜索引擎中并且由搜索引擎所调度的。

时间: 2024-07-30 01:37:12

【搜索引擎(三)】检索模型的相关文章

搜索引擎的检索模型-查询与文档的相关度计算

1. 检索模型概述 搜索结果排序时搜索引擎最核心的部分,很大程度度上决定了搜索引擎的质量好坏及用户满意度.实际搜索结果排序的因子有很多,但最主要的两个因素是用户查询和网页内容的相关度,以及网页链接情况.这里我们主要总结网页内容和用户查询相关的内容. 判断网页内容是否与用户査询相关,这依赖于搜索引擎所来用的检索模型.检索模型是搜索引擎的理论基础,为量化相关性提供了一种数学模型,是对查询词和文档之间进行相似度计算的框架和方法.其本质就是相关度建模.如图所示,检索模型所在搜索引擎系统架构位置: 当然检

这就是搜索引擎--读书笔记八--检索模型与搜索排序

检索模型与搜索排序 前言 搜索结果排序是搜索引擎最核心的构成部分,很大程度上决定了搜索引擎的质量好坏以及用户接受与否.尽管搜索引擎在实际结果排序时融合了上百种排序因子,但最重要的两个因素还是用户查询和网页的内容相关性及网页链接情况.那么,我们得到用户搜索词之后,如何从内容相关性的角度上对网页进行排序输出呢? 判断网页内容是否与用户查询相关,这依赖于搜索引擎所采用的检索模型.搜索引擎的核心是判断哪些文档是和用户需求相关的,并按照相关程度排序输出,所以相关程度计算是将用户查询和文档进行匹配的过程,而

Django学习笔记(三)—— 模型 model

疯狂的暑假学习之 Django学习笔记(三)-- 模型 model 参考:<The Django Book> 第5章 1.setting.py 配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.', # 用什么数据库管理系统 'NAME': '', # 数据库名称,如果用sqlite,要写完整路径 'USER': '', # 如果用sqlite,这个不用写 'PASSWORD': '', # 如果用sqlite,这个不用写

信息检索 3 检索模型

检索模型分为两种,一种是boolean model 一种是ranked retrieval 一 boolean查找: 1 binary decision:is document relevant or not? 文档只有相关和不相关两种,并没有排行 2 presence of term is necessary and sufficient for match 我们只需要记录每个文档有那些词汇就ok了 3 我们查询时的操作可以有 and和or都是集合操作 二 ranked algorithm:

Cisco QOS 知识详解第一篇 三种模型

作为一个努力在IT一线奋斗的人,励志做到以下几点: 搬的了机器,玩的了系统,精通了协议,敲得了代码. --谨以此让自己不断努力! ------------------------------------------------------------------------------------------------------------------------------------- QOS的三种模型 网络服务质量即QOS,在网络中实施QOS,有三种模型需要参考,用来指导在各种需求下,

Javascript事件模型系列(一)事件及事件的三种模型

转载: http://www.cnblogs.com/lvdabao/p/3265870.html 一.开篇 在学习javascript之初,就在网上看过不少介绍javascript事件的文章,毕竟是js基础中的基础,文章零零散散有不少,但遗憾的是没有看到比较全面的系列文章.犹记得去年这个时候,参加百度的实习生面试,被问到事件模型,当时被问的一头雾水,平时敲onclick敲的挺爽,却没有关注到事件模型的整体概念.这个周末难得清闲,决定就javascript中的事件模型写个系列,算是对知识点的一个

三户模型

今天见群里有童鞋问账户的架构体系,原来做过,但猛一下子还没起来,理了一下才回想回来,为了下次想不起来的时候能有个地方查找,纪录一下. 账户体系一般用的都是三户模型.用户,账户,客户. 一个用户有多个账户,一个账户被多个用户使用,一个客户有多个账户,一个客户有多个用户. 一个用户有且最多是一个客户. 用户是使用者,或者触发交易的.账户是交易结算的地方.客户是交易买单的. 一个用户有多个账户,交易的时候可以选择一个账户进行交易.交易时,根据账户扣款.一个客户可以把自己的账户授权给多个用户使用.一个客

搜索引擎三个定律

第一定律 相关性定律 听起来象是一篇学术论文,的确,就连第一,第二定律的提法以前也没有过,但是第一,第二定律的内容确早已在业界和学术界得到了公认.其实这第一定律是早在互联网出现之前就被学术界广泛研究过的,那就是所谓的相关性定律.这个领域那时叫情报检索,或信息检索,也有 叫全文检索的. 那时的相关性都是基于词频统计的,也就是说,当用户输入检索词时,搜索引擎去找那些检索词在文章(网页)中出现频率较高的,位置较重要的,再加上一些对检索词本身常用程度的加权,最后排出一个结果来(检索结果页面).早期的搜索

深度学习方法:受限玻尔兹曼机RBM(三)模型求解,Gibbs sampling

技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入. 接下来重点讲一下RBM模型求解方法,其实用的依然是梯度优化方法,但是求解需要用到随机采样的方法,常见的有:Gibbs Sampling和对比散度(contrastive divergence, CD[8])算法. RBM目标函数 假设给定的训练集合是S={vi},总数是ns,其中每个样本表示为vi=(vi1,vi2,-,vinv),且都是独立同分布i.i.d的.RBM采用最大似然估计,即最大化 lnLS=ln∏i=1n