zoukankan      html  css  js  c++  java
  • 【搜索引擎(三)】检索模型

    检索模型的目的

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

      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模型, 语言模型, 随机差异模型, 贝叶斯网络

    结语

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

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

  • 相关阅读:
    媒介管理系统权限设计方案
    document.ready和window.onload区别,顺带jQuery的ready方法
    nvm管理node版本
    async await一些小结
    Git学习
    详解JavaScript中的正则表达式
    JavaScript中的事件循环机制跟函数柯里化
    前端面试遇到的问题
    ES6在工作中会用到的核心知识点讲解
    JavaScript中的事件委托机制跟深浅拷贝
  • 原文地址:https://www.cnblogs.com/wangzming/p/7242363.html
Copyright © 2011-2022 走看看