布尔模型(Boolean Model)
布尔模型(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)相关推荐
- 信息检索—布尔模型(Boolean )和向量空间模型(VSM)
文章目录 布尔模型(Boolean Model) 布尔模型缺点 向量空间模型(Vector Space Model) 计算VSM的步骤 计算VSM的公式 VSM缺点 布尔模型(Boolean Mode ...
- 文档查询匹配的方法:布尔模型,向量空间模型
文档查询匹配的方法:布尔模型,向量空间模型 文档表示:词袋方法Bag-of-Words Approach • 在 IR 中表示文档(和查询)的传统方法: 记录出现的单词(术语; 通常,加上每个文档中的 ...
- Django(五)模型(model)系统 -- 常用字段和字段参数
Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...
- 判别模型和生成模型(Discriminative Model Generative Model)【转】
又是碰到了一些简单的基本概念,但是仔细想想发现自己没有理解透彻,Search一下,总结如下: [摘要] - 生成模型:无穷样本==>概率密度模型 = 产生模型==>预测 - 判别模型:有限 ...
- Django文档翻译:模型参考(Model Reference)
Django文档翻译:模型参考(Model Reference) 翻译者: 木野狐(Neil Chen) Django 版本: 0.95.1 进度: 未完,持续更新中. 最后更新时间: 2007-2- ...
- B-07 Django-第二部分(熟练掌握)-模型(Model)设计-数据访问操作(记录查询-基本)
模型(Model)设计-数据访问操作(查询操作介绍与基本API) 文章目录 模型(Model)设计-数据访问操作(查询操作介绍与基本API) 回顾 a.模型(Model)设计流程过程说明 目标 参考 ...
- 基于pytorch的模型压缩和模型剪枝Model Prune示例
神经网络和卷积神经网络的模型剪枝Model Prune 1,神经网络和卷积神经网络模型剪枝方法. 2,可指定剪枝率进行定向剪枝,并输出剪枝后参数统计和finetune. 3,支持MLP, Lenet, ...
- 参数化模型(parametric model)和非参数化模型non-parametric model)的区别?哪些模型是参数化模型,哪些模型是非参数化模型?
参数化模型(parametric model)和非参数化模型non-parametric model)的区别?哪些模型是参数化模型,哪些模型是非参数化模型? 统计学习模型又可以分为参数化模型(para ...
- Ember——在构建Ember应用程序时,我们会使用到六个主要部件:应用程序(Application)、模型(Model)、视图(View)、模板(Template)、路由(...
在构建Ember应用程序时,我们会使用到六个主要部件: 模板(Template).应用程序(Application).视图(View).路由(Routing).控制器(Controller)和模型(M ...
最新文章
- python读取txt文件并写入excel-Python读excel生成数据存入txt文件
- 【原】SQL 取当前年 (年初 1月1号) 当前月 (月初 1号) 当前日 (零点)
- The size of tensor a (4) must match the size of tensor b (3) at non-singletonThe size of
- JS事件 卸载事件 当用户退出页面时(页面关闭、页面刷新等),触发onUnload事件,同时执行被调用的程序。注意:不同浏览器对onunload事件支持不同。...
- 浅谈javascript函数劫持
- 基于selenium生成Csdn 博客文章简索的excel文件
- 《Linux4.0设备驱动开发详解》笔记--第七章:Linux设备中的并发控制
- 初识kmp算法(呕心沥血之文----看视频+总结)
- SQL Server 2019 Developer/Express 版本下载
- docker 阿里镜像加速
- 2020 全国的邮政编码 json
- 命令行解析工具gflags
- Windows系统下使用WCP搭建自己的本地知识库管理平台
- 流程挖掘如何助力采购数字化转型?
- mysql 二进制分发版_安置MySQL二进制代码分发
- 2020年阴历二月十一 投资理财读书笔记~漫步华尔街①
- C++不知算法系列之高精度数值处理算法
- 只有标准账户,如何取得管理员权限?
- 光谷计算机专业好的学校,华一寄、华一初、华一光谷哪所学校更好(综合对比)...
- slf4j日志的使用和配置