布尔模型(Boolean Model)
布尔模型(Boolean Model)介绍最早的IR模型,也是应用最广泛的模型;目前仍然应用于商业系统中;Lucene是基于布尔(Boolean)模型的。布尔模型描述文档D表示:一个文档被表示为关键词的集合查询式Q表示:查询式(Queries)被表示为关键词的布尔组合,用“与、或、非”连接起来,并用括弧指示优先次序。匹配F:一个文档当且仅当它能够满足布尔查询式时,才将其检索出来。
·
布尔模型(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等方法,以及二次排序。
参考
更多推荐
所有评论(0)