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

Slides:



Advertisements
Similar presentations

Advertisements

湖南省长沙市第一中学 黄旭华. 开心辞典 1 、现在美国国旗星条旗上有多少颗星 ? 2 、英国绅士为什么总要手提一把雨伞,为什么? 3 、北极的气温比南极的气温高吗? 4 、企鹅是否可以生活在赤道附近? 5 、 “ 沪宁杭 ” 地区的 “ 宁 ” 是指哪座城市? 6 、 “ 七月流火 ” 指天气发生了什么变化?
信息检索与 Web 搜索 第 3 讲 词项词典及倒排记录表 The term vocabulary and postings lists 授课人:高曙明 * 改编自 “ 现代信息检索 ” 网上公开课件( )
练一练: 在数轴上画出表示下列各数的点, 并指出这些点相互间的关系: -6 , 6 , -3 , 3 , -1.5, 1.5.
北京师范大学生命科学学院 北京师范大学生命科学学院 余跃强 章腾勋 王航 余跃强 章腾勋 王航 2 目 录目 录目 录目 录  前言 前言  概述 概述  形态和生活史 形态和生活史  寄生适应特征 寄生适应特征  致病机制与症状 致病机制与症状  诊断 诊断  流行情况 流行情况.
第5讲 索引构建 Index construction 授课人:高曙明
東風西合一堂 姊妹学校情谊深长 東風西路小學李海鷹副校長 合一堂學校 梁秀芳副校長
2014届毕业生毕业论文与毕业实习动员 一、郑州航院毕业论文工作规定 二、法律系毕业论文工作安排 三、法律系毕业论文格式要求
第6讲 索引压缩 Index compression 授课人:高曙明
高一年级过渡性学习 活动汇报 高一年级组 教科研室 汉滨高中.
校內科學園遊會 製作說明會 教務處設備組
12年國教前哨站 談適性輔導及免試入學 12年國教前哨站 談適性輔導及免試入學 主講人:龍門國中王意蘭 校長 輔導主任 潘姿伶.
案例2 胸卡的制作. 案例2 胸卡的制作 知识要点: 学习重点及制作思路 学习目的: 邀请函的制作步骤: 1.掌握邮件合并功能 2.掌握比较并合并文档方法 3.掌握页面插入背景图 4.熟练使用文本框 知识要点: 1.邮件合并功能 2.文档中插入域内容 3.文本框的使用 技能要点: 1.域、文档部件操作.
广东省教育厅教研室 黄志红 ,     研究改进行动     反思促使成长 广东省教育厅教研室  黄志红 ,
《高等数学》(理学) 常数项级数的概念 袁安锋
模块4 授导型教学的设计 陈冬.
常用逻辑用语复习课 李娟.
只有一个词,它不会争,争到了也不受用,只让它静静安踞在并不明亮的高位上,留给那座唯一的城市。 这个词叫伟大,这座城市叫罗马。
检索 林琛 博士、副教授.
倒排检索构建 主讲人:陈文亮 苏州大学计算机学院.
倒排检索构建 主讲人:陈文亮 苏州大学计算机学院.
第四次大作业 登陆学校图书馆网站的电子数据库
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
如何使用CiteSpace分析Derwent专利数据
Hadoop I/O By ShiChaojie.
现代信息检索 Modern Information Retrieval
辅导课程六.
元素替换法 ——行列式按行(列)展开(推论)
SPARQL若干问题的解释 刘颖颖
以ISI平台为例,为您演示一下如何在Endnote文献中查看该文献的References
What have we learned?.
第二章 Java语言基础.
动态规划(Dynamic Programming)
《编译原理与技术》 期末复习 计算机科学与技术学院 郑启龙 李 诚 25/12/2018.
使用矩阵表示 最小生成树算法.
第4章 非线性规划 4.5 约束最优化方法 2019/4/6 山东大学 软件学院.
编程作业3:网页正文抽取 (10分).
数列.
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
顺序表的删除.
本节内容 随机读取 视频提供:昆山爱达人信息技术有限公司.
Three stability circuits analysis with TINA-TI
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
第二章 Java基本语法 讲师:复凡.
2019/4/ /4/25 学习科研好助手 NoteExpress文献管理与检索系统 北京爱琴海乐之技术有限公司.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
Web安全基础教程
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
iSIGHT 基本培训 使用 Excel的栅栏问题
3.16 枚举算法及其程序实现 ——数组的作用.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
第七、八次实验要求.
线 性 代 数 厦门大学线性代数教学组 2019年5月12日4时19分 / 45.
SpringerLink数据库使用说明 上海师范大学图书馆
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
实验目的:掌握数据的顺序存储结构及它们在计算机中的操作。 实验内容:
第六章 Excel的应用 五、EXCEL的数据库功能 1、Excel的数据库及其结构 2、Excel下的数据排序 (1)Excel的字段名行
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
数据表示 第 2 讲.
校內科學園遊會 製作說明會 教務處設備組
第十七讲 密码执行(1).
插入排序的正确性证明 以及各种改进方法.
基于学案制作ppt 录屏工具使用 郑建彬.
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
§4.5 最大公因式的矩阵求法( Ⅱ ).
§2 自由代数 定义19.7:设X是集合,G是一个T-代数,为X到G的函数,若对每个T-代数A和X到A的函数,都存在唯一的G到A的同态映射,使得=,则称G(更严格的说是(G,))是生成集X上的自由T-代数。X中的元素称为生成元。 A变, 变 变, 也变 对给定的 和A,是唯一的.
Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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

索引构建过程 : 词条表生成  将每篇文档转化为 二元组列表 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

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

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

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

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

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

合并算法的伪代码 18

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

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

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

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

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

布尔检索系统 : 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

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

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

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

课后作业  见课程网页 : 28