zoukankan      html  css  js  c++  java
  • 信息检索与排序模型之布尔模型

    学习布尔模型之前首先让我们了解一下模型的基本概念为后面的学习奠定基础。模型是采用数学工具对现实世界某种事物或某种运动的抽象描述,面对相同的输入,模型输出应能够无限地逼近现实世界的输出(如:天气预报模型)。 信息检索模型就是表示文档与用户查询以及查询与文档的关系框架。下图是常用的信息检索模型以及所支撑其的相关数学背景。

    信息检索模型以及支撑的数学背景
    信息检索模型以及支撑的数学背景
    布尔模型描述:

    文档(用D表示)—— 一个文档被表示为关键字的集合;
    查询式(用Q表示)—— 用于表示用户查询的关键词的布尔组合,并用“与(And)、或(or)、非(Not)”链接起来,且用括号知名优先次序;
    举例
    下面有2个文档:

    文档1:a b c f g h;
    文档2:a f b x y z;
    用户想找出出现a或者b但一定要出现z的文档。当然我们仔细一看,结果显而易见是文档2符合用户的需求。但是对于计算机布尔排序模型它是怎么实现的呢 ?

    将查询表示为布尔表达式Q=(a∨b) ∧z,并转换成析取范式qDNF=(1, 0,1) ∨(0,1,1) ∨(1,1,1);
    文档1和文档2的三元组对应值分别为(1,1,0)和(1,1,1);
    经过匹配,将文档2返回;
    布尔模型的优点:

    通过使用复杂的布尔表达式,可以很方便地控制查询结果,经过某种训练的用户可以容易地写出布尔查询表达式;
    相当有效的实现方法,相当于识别包含了一个某个特定term的文档式;
    布尔模型问题:

    不支持部分匹配,而完全匹配会导致太多或者太少的,非常刚性: ―与”意味着全部; ―或”意味着任何一个;
    很难控制被检索的文档数量原则上讲,所有被匹配的文档都将被返回;
    很难对输出进行排序;
    如果一篇文档被用户确认为相关或者不相怎样,相应地修改查询式呢。
  • 相关阅读:
    .NETCORE CONSUL
    Jenkins+github自动化部署.Net Core程序到Docker
    CleanArchitecture原则CQRS模式
    BFF架构了解
    .NET 生态系统的蜕变之 .NET 6
    Deislabs开源 使用WebAssembly打造的PaaS项目Hippo
    微软认真聆听了开源 .NET 开发社区的炮轰: 通过CLI 支持 Hot Reload 功能
    单体应用 适合采用 dapr 构建吗?
    微软发布了Visual Studio 2022 RC版,并将在11月8日发布正式版
    [LeetCode] 1248. Count Number of Nice Subarrays 统计优美子数组
  • 原文地址:https://www.cnblogs.com/bjanzhuo/p/3575882.html
Copyright © 2011-2022 走看看