布尔模型(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

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐