布尔模型(Boolean Model)介绍

最早的IR模型,也是应用最广泛的模型;目前仍然应用于商业系统中;Lucene是基于布尔(Boolean)模型的。

布尔模型描述

  • 文档D表示:一个文档被表示为关键词的集合
  • 查询式Q表示:查询式(Queries)被表示为关键词的布尔组合,用“与、或、非”连接起来,并用括弧指示优先次序
  • 匹配F:一个文档当且仅当它能够满足布尔查询式时,才将其检索出来
  • 检索策略基于二值判定标准
  • 算法R:根据匹配框架F判定相关, 计算相关度排名,这里不涉及doc得分和tfidf,只是boolean关系。
    查询表示
    在布尔模型中,所有索引项的权值变量和文档d与查询q的相关度都是二值的,查询q被表述成一个常规的布尔表达式,为方便计算查询q和文档d的相关度,一般将查询q的布尔表达式转换成析取范式DNF。也就是QueryParser解析后,看到的BooleanQuery。

示例

文档集包含两个文档:
文档1:a b c f g h
文档2:a f b x y z
用户查询:文档中出现a或者b,但一定要出现z。
将查询表示为布尔表达式 ,并转换成析取范式
文档1和文档2的三元组对应值分别为(1,1,0)和(1,1,1)
经过匹配 ,将文档2返回

优点

到目前为止,布尔模型是最常用的检索模型,因为:

  • 由于查询简单,因此容易理解 通过使用复杂的布尔表达式,可以很方便地控制查询结果 相当有效的实现方法
  • 相当于识别包含了一个某个特定term的文档 经过某种训练的用户可以容易地写出布尔查询式
  • 布尔模型可以通过扩展来包含排序的功能,即“扩展的布尔模型”

问题

  • 布尔模型被认为是功能最弱的方式,其主要问题在于不支持部分匹配,而完全匹配会导致太多或者太少的结果文档被返回
    非常刚性: “与”意味着全部; “或”意味着任何一个
    很难控制被检索的文档数量,原则上讲,所有被匹配的文档都将被返回很难对输出进行排序.
  • 不考虑索引词的权重,所有文档都以相同的方式和查询相匹配
  • 这个过程是“data retrieval” 而不是 “information retrieval”。

总结

如果不需要排序,就适合boolean Model,该模型就是布尔运算的结果,不涉及复杂的排序。最多按命中boolean条件的个数粗略排序。简单理解, 可以认为是命中模型。 而涉及排序的则是VSM或者BM25等方法,以及二次排序。

参考

https://en.wikipedia.org/wiki/Standard_Boolean_model

布尔模型(Boolean Model)相关推荐

  1. 信息检索—布尔模型(Boolean )和向量空间模型(VSM)

    文章目录 布尔模型(Boolean Model) 布尔模型缺点 向量空间模型(Vector Space Model) 计算VSM的步骤 计算VSM的公式 VSM缺点 布尔模型(Boolean Mode ...

  2. 文档查询匹配的方法:布尔模型,向量空间模型

    文档查询匹配的方法:布尔模型,向量空间模型 文档表示:词袋方法Bag-of-Words Approach • 在 IR 中表示文档(和查询)的传统方法: 记录出现的单词(术语; 通常,加上每个文档中的 ...

  3. Django(五)模型(model)系统 -- 常用字段和字段参数

    Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...

  4. 判别模型和生成模型(Discriminative Model Generative Model)【转】

    又是碰到了一些简单的基本概念,但是仔细想想发现自己没有理解透彻,Search一下,总结如下: [摘要] - 生成模型:无穷样本==>概率密度模型 = 产生模型==>预测 - 判别模型:有限 ...

  5. Django文档翻译:模型参考(Model Reference)

    Django文档翻译:模型参考(Model Reference) 翻译者: 木野狐(Neil Chen) Django 版本: 0.95.1 进度: 未完,持续更新中. 最后更新时间: 2007-2- ...

  6. B-07 Django-第二部分(熟练掌握)-模型(Model)设计-数据访问操作(记录查询-基本)

    模型(Model)设计-数据访问操作(查询操作介绍与基本API) 文章目录 模型(Model)设计-数据访问操作(查询操作介绍与基本API) 回顾 a.模型(Model)设计流程过程说明 目标 参考 ...

  7. 基于pytorch的模型压缩和模型剪枝Model Prune示例

    神经网络和卷积神经网络的模型剪枝Model Prune 1,神经网络和卷积神经网络模型剪枝方法. 2,可指定剪枝率进行定向剪枝,并输出剪枝后参数统计和finetune. 3,支持MLP, Lenet, ...

  8. 参数化模型(parametric model)和非参数化模型non-parametric model)的区别?哪些模型是参数化模型,哪些模型是非参数化模型?

    参数化模型(parametric model)和非参数化模型non-parametric model)的区别?哪些模型是参数化模型,哪些模型是非参数化模型? 统计学习模型又可以分为参数化模型(para ...

  9. Ember——在构建Ember应用程序时,我们会使用到六个主要部件:应用程序(Application)、模型(Model)、视图(View)、模板(Template)、路由(...

    在构建Ember应用程序时,我们会使用到六个主要部件: 模板(Template).应用程序(Application).视图(View).路由(Routing).控制器(Controller)和模型(M ...

最新文章

  1. python读取txt文件并写入excel-Python读excel生成数据存入txt文件
  2. 【原】SQL 取当前年 (年初 1月1号) 当前月 (月初 1号) 当前日 (零点)
  3. The size of tensor a (4) must match the size of tensor b (3) at non-singletonThe size of
  4. JS事件 卸载事件 当用户退出页面时(页面关闭、页面刷新等),触发onUnload事件,同时执行被调用的程序。注意:不同浏览器对onunload事件支持不同。...
  5. 浅谈javascript函数劫持
  6. 基于selenium生成Csdn 博客文章简索的excel文件
  7. 《Linux4.0设备驱动开发详解》笔记--第七章:Linux设备中的并发控制
  8. 初识kmp算法(呕心沥血之文----看视频+总结)
  9. SQL Server 2019 Developer/Express 版本下载
  10. docker 阿里镜像加速
  11. 2020 全国的邮政编码 json
  12. 命令行解析工具gflags
  13. Windows系统下使用WCP搭建自己的本地知识库管理平台
  14. 流程挖掘如何助力采购数字化转型?
  15. mysql 二进制分发版_安置MySQL二进制代码分发
  16. 2020年阴历二月十一 投资理财读书笔记~漫步华尔街①
  17. C++不知算法系列之高精度数值处理算法
  18. 只有标准账户,如何取得管理员权限?
  19. 光谷计算机专业好的学校,华一寄、华一初、华一光谷哪所学校更好(综合对比)...
  20. slf4j日志的使用和配置

热门文章

  1. YOLOv7:无需预训练模型的最新最实时的目标检测框架
  2. 来看看这份超全面的《Android面试题及解析》,知乎上已获万赞
  3. 关于杜曼和七田真早教的两篇文章
  4. php 留两个小数点,PHP小数点保留两位
  5. 网页版几何画板开发笔记(一)
  6. 同义词SYNONYM
  7. 从校园到职场,听听他们的成长之路
  8. C#窗体,如何开启另一个进程,并打开指定的应用程序
  9. 计算机毕业设计ssm校内考研吧hd450系统+程序+源码+lw+远程部署
  10. 达人评测 苹果MacBook Air对比华为Matebook X Pro选哪个好