Presentation is loading. Please wait.

Presentation is loading. Please wait.

信息检索与 Web 搜索 第 2 讲 布尔检索 Boolean Retrieval 授课人:高曙明 * 改编自 “ 现代信息检索 ” 网上公开课件( )

Similar presentations


Presentation on theme: "信息检索与 Web 搜索 第 2 讲 布尔检索 Boolean Retrieval 授课人:高曙明 * 改编自 “ 现代信息检索 ” 网上公开课件( )"— Presentation transcript:

1 信息检索与 Web 搜索 第 2 讲 布尔检索 Boolean Retrieval 授课人:高曙明 * 改编自 “ 现代信息检索 ” 网上公开课件( http://ir.ict.ac.cn/~wangbin )

2 布尔检索  针对布尔查询的检索,布尔查询是指利用 AND, OR 或者 NOT 操作符将词项连接起 来的查询 信息 AND 检索 信息 OR 检索 信息 AND 检索 AND NOT 教材  Google 支持布尔检索 2

3 布尔检索模型  检索模型: 查询与文档之间的相关性定义,文档及 查询的表示  布尔检索模型 文档采用词项集合表示 查询用词项的布尔表达式表示 相关性:整个查询的相关性通过对词项相关性进行布 尔运算得到,对于查询中的每个词项,包含则相关 相关性只有相关和不相关两种 3

4 基于扫描的布尔检索  信息需求: 确定莎士比亚的哪些剧本包含 Brutus 及 Caesar 但是不包含 Calpurnia  布尔查询表示: Brutus AND Caesar AND NOT Calpurnia  简单直接的方法: 从头到尾扫描所有剧本,对每部剧本 判断它是否包含 Brutus AND Caesar , 同时又不包含 Calpurnia  存在的问题 速度超慢 ( 特别是对超大型文档集 ) 难以支持更复杂的查询 (e.g., find the word Romans near countrymen) 不支持检索结果的排序 ( 即只返回较好的结果 ) 4

5 词项 - 文档关联矩阵 若某剧本包含某单词,则 该位置上为 1 ,否则为 0 Brutus AND Caesar BUT NOT Calpurnia  词项 - 文档关联矩阵: 给定一个词项集和一个文档集,指由 其中的 词项和文档之间的关联关系形成的矩阵

6 基于关联向量的布尔检索  关联向量: 指关联矩阵的每一行、每一列对应的向量  给定查询 Brutus AND Caesar AND NOT Calpurnia  具体步骤: 取出三个相应的行向量 ,并对 Calpurnia 的行向量求补,最后按位进行与操作 110100 AND 110111 AND 101111 = 100100  检索结果: Antony and Cleopatra 和 Hamlet 6

7 一个更真实的场景  假定 N = 1 百万篇文档 (1M), 每篇有 1000 个词 (1K)  假定每个词平均有 6 个字节 ( 包括空格和标点符 号 ) 那么所有文档将约占 6GB 空间.  假定词汇表的大小 ( 即词项个数 ) M = 500K 7

8 超大的词项 - 文档矩阵  矩阵大小为 500K x 1M=500G  但是该矩阵中最多有 10 亿 (1G) 个 1 词项 - 文档矩阵高度稀疏 (sparse). 稀疏矩阵  不应简单地建立和存储词项文档关联矩阵  应该有更好的表示方式 比如我们仅仅记录所有 1 的位置 8 Why?

9 倒排索引 (Inverted index) 9 Dictionary Postings 按 docID 排序 Posting Brutus Calpurnia Caesar 1245 61657132 231 124113145173174 54101 词典 倒排 ( 记录 ) 表 倒排记录  倒排索引示意图

10 倒排索引  核心思想: 对每个词项 t, 记录所有包含 t 的文档列 表,其中每篇文档用 docID 表示  文档列表的数据结构: 能否采用定长数组的方式 来存储 docID 列表 ?  通常采用变长表方式存储倒排表 磁盘上,顺序存储方式比较好,便于快速读取 内存中,采用链表或者可变长数组方式 存储空间 / 易插入之间需要平衡 10

11 Tokenizer 词条流 Friends RomansCountrymen 倒排索引构建 Linguistic modules 与词项对应的词条 friend romancountryman Indexer 倒排索引 friend roman countryman 24 2 13 16 1 待索引文档 Friends, Romans, countrymen. 词条化工具 语言分析工具

12 索引构建过程 : 词条表生成  将每篇文档转化为 二元组列表 I did enact Julius Caesar I was killed i' the Capitol; Brutus killed me. Doc 1 So let it be with Caesar. The noble Brutus hath told you Caesar was ambitious Doc 2

13 索引构建过程 : 排序  首先按词项排序  然后对每个相同词项按 docID 排序 索引构建的核心步骤

14 索引构建过程 : 词典 & 倒排表  某个词项在单篇文档中 的多次出现会被合并  拆分成词典和倒排记录 表两部分  每个词项出现的文档数 目 ( doc. frequency, DF ) 会被加入

15 存储开销计算 15 指针 词项及文 档频率 后续章节 : 如何快速构建索引 ? 如何减少存储开销 ? 倒排索引 docID 表 第一讲:布尔检索

16 布尔查询的处理 : AND  给定一个布尔查询 : Brutus AND Caesar  首先在词典中定位 Brutus 返回其倒排记录表  再在词典中定位 Caesar 返回其倒排记录表  合并 ( Merge ) 两个倒排记录表,即求交集 16 128 34 248163264123581321 Brutus Caesar

17 倒排表的合并  每个倒排记录表都有一个定位指针,两个指针同时从前 往后扫描, 每次比较当前指针对应的倒排记录,然后移 动某个或两个指针。  假定表长分别为 x 和 y, 那么上述合并算法的复杂度为 O(x+y)  关键原因 : 倒排记录表按照 docID 排序 17 34 12824816 3264 12 3 581321 128 34 248163264123581321 Brutus Caesar 2 8

18 合并算法的伪代码 18

19 布尔查询的处理 : OR/NOT  OR 表达式: Brutus OR Caesar 两个倒排记录表的并集  NOT 表达式: Brutus AND NOT Caesar 两个倒排记录表的差集  一般的布尔表达式 (Brutus OR Caesar) AND NOT (Antony OR Cleopatra)  查询处理依序而行? 19

20 查询处理的效率问题  考虑 n 个词项的 AND 查询  对每个词项,取出其倒排记录表,然后两两合并 Brutus Caesar Calpurnia 12358162134 248163264128 1316 查询 : Brutus AND Caesar AND Calpurnia 20

21 查询处理顺序的优化  优化策略:按照表从小到大的顺序进行处理 21 这是为什么保存 df 的原因之一 相当于处理查询 (Calpurnia AND Brutus) AND Caesar Brutus Caesar Calpurnia 12358162134 248163264128 1316

22 一般化的优化处理  针对一般的布尔表达式,首先进行形式转化, e.g., (madding OR crowd) AND (ignoble OR strife) 每个布尔表达式都能转换成上述形式 ( 合取范式 )  然后获取每个词项的 df ,并通过将词项的 df 相加估 计每个 OR 表达式对应的倒排记录表的大小  最后从小到大依次处理每个 OR 表达式 22

23 布尔检索的优点  构建简单,是构建 IR 系统的一种最简单方式  查询表达方式直观清晰,易于理解  在 30 多年中是最主要的检索工具  当前许多搜索系统仍然使用布尔检索模型 电子邮件、文献检索系统、 Mac OS X Spotlight 工具 23

24 布尔检索系统 : WestLaw  最大的商业化法律搜索服务引擎 (1975 年开始提 供服务 ; 1992 年加入排序功能 )  几十 T 数据, 700,000 付费用户  大部分用户仍然使用布尔查询  查询的例子 : 有关对政府侵权行为进行索赔的诉讼时效 (What is the statute of limitations in cases involving the federal tort claims act? ) LIMIT! /3 STATUTE ACTION /S FEDERAL /2 TORT /3 CLAIM 24

25 布尔检索的不足  难以表达复杂的用户信息需求 想查关于 2011 年快女 6 进 5 比赛的新闻,用布尔表 达式怎么构造查询? (2011 OR 二零壹壹 ) AND ( 快乐女声 OR 快女 OR 快乐女生 ) AND (6 进 5 OR 六进五 OR 六 AND 进 AND 五 ) 表达式相当复杂,构造困难! 不严格的话结果过多,而且很多不相关;非常严格 的话结果会很少,漏掉很多结果 25

26 布尔检索的不足  没有充分利用词项的频率信息  不能对检索结果进行排序  检索输出量无法合理控制  难以支持相关反馈 26

27 参考资料  《信息检索导论》,第一章  莎士比亚全集 : http://www.rhymezone.com/shakespeare/  Managing Gigabytes( 深入搜索引擎 ), 3.2 节  《现代信息检索》, 8.2 节 27

28 课后作业  见课程网页 : http://www.cad.zju.edu.cn/home/smgao/IR 28


Download ppt "信息检索与 Web 搜索 第 2 讲 布尔检索 Boolean Retrieval 授课人:高曙明 * 改编自 “ 现代信息检索 ” 网上公开课件( )"

Similar presentations


Ads by Google