倒排检索构建 主讲人:陈文亮 苏州大学计算机学院.

Slides:



Advertisements
Similar presentations

Advertisements

DOC 推廣活動 月餅星光大道. 中秋  農曆八月十五日,是中國傳統的中秋節。 古人將一年分成春夏秋冬四季,而一季又 分為孟、仲、季三月,八月是仲秋之月, 而十五又是這個月中間的一天,正處在秋 季的正中,所以把八月十五稱為「中秋」 或「仲秋」。  中秋夜,月亮最圓,月色最美,因此人們 把月圓看成是團圓的象徵,同時也稱八月.
信息检索与 Web 搜索 第 3 讲 词项词典及倒排记录表 The term vocabulary and postings lists 授课人:高曙明 * 改编自 “ 现代信息检索 ” 网上公开课件( )
练一练: 在数轴上画出表示下列各数的点, 并指出这些点相互间的关系: -6 , 6 , -3 , 3 , -1.5, 1.5.
中 五 級中 五 級 戰後國共關係 與 中華人民共和國成立 中國歷史科 1 )認識國共政治協商的概況 2 )認識國共內戰的概略經過及結果 3 )中華人民共和國成立.
北京师范大学生命科学学院 北京师范大学生命科学学院 余跃强 章腾勋 王航 余跃强 章腾勋 王航 2 目 录目 录目 录目 录  前言 前言  概述 概述  形态和生活史 形态和生活史  寄生适应特征 寄生适应特征  致病机制与症状 致病机制与症状  诊断 诊断  流行情况 流行情况.
信息检索与 Web 搜索 第 2 讲 布尔检索 Boolean Retrieval 授课人:高曙明 * 改编自 “ 现代信息检索 ” 网上公开课件( )
河北衡水中学 康新江 高效课堂与激情教育 河北衡水中学 康新江
快教育 · 英 语 快乐 快速 学习 英语 回归人,让我们.
第5讲 索引构建 Index construction 授课人:高曙明
人文地理專題研究 王志明.
第三章及第四章資產負債表的重點整理 取材自1.課本 2.鄭丁旺中會第九版 3.營業員題庫重點.
2014年爱婴医院复核方案解读 省卫生计生委妇幼处 邱灵.
東風西合一堂 姊妹学校情谊深长 東風西路小學李海鷹副校長 合一堂學校 梁秀芳副校長
杨宇航 百度社区技术部 推荐技术在 百度UGC产品中的应用 杨宇航 百度社区技术部
社團經費申請 及核銷相關規定 製作:世新大學會計室.
2014届毕业生毕业论文与毕业实习动员 一、郑州航院毕业论文工作规定 二、法律系毕业论文工作安排 三、法律系毕业论文格式要求
第6讲 索引压缩 Index compression 授课人:高曙明
“卓越工程师”培养的质量保障体系构建探索
得人如得魚 為何与如何;戰略与戰術 馬太福音4:18~22 路加福音5:1~10 科學的專題証道
老師:鍾郁芬 老師 指導 組長:陳欣怡 組員:曾郁雯 倪敏富 王宣化 簡宏倫 黃郁涵
臺東縣政府 所屬一、二級機關 (警、消、環、衛、動防、家庭教育中心) 公文線上簽核系統 全面推行辦理事項說明會
题目回顾 泉水在地下蓄积,一旦有机会,它便骄傲地涌出地面,成为众人瞩目的喷泉,继而汇成溪流,奔向远方。但人们对地下的泉水鲜有关注,其实,正是因为有地下那些默默不语的泉水的不断聚集,才有地上那一股股清泉的不停喷涌。 请根据你对材料的理解和感悟,自选一个角度,写一篇不少于800字的文章,文体自定,标题自拟。要求:立意明确,不要套作,不得抄袭。
典型案例---医院.
广 东 技 术 师 范 学 院 美术学院 装潢专业 2012级(3)班 郑可珊
高雄縣政府 98年度 人事業務˙法令宣導 公務人員協會專區網址:
第十九章 散文 教学要求: 了解散文的含义、分类、特点,学习写作抒情散文。 重点: 散文的特点,散文的写作。 难点: 散文的写作训练。
學術型職涯路徑 實務型職涯路徑 未來發展 高等考試 碩士班 專業證照 會展專業人才 管理幹部 觀光專業人才 偏重學理領域 偏重實用領域
證券投資實務 講師:方俊儒教授.
模块4 授导型教学的设计 陈冬.
农机化项目管理培训会 柳州市农机局 郑崇宁
一二·九运动                                                                    0712班.
只有一个词,它不会争,争到了也不受用,只让它静静安踞在并不明亮的高位上,留给那座唯一的城市。 这个词叫伟大,这座城市叫罗马。
中小学教育科研课题的选择 王典伟.
检索 林琛 博士、副教授.
倒排检索构建 主讲人:陈文亮 苏州大学计算机学院.
学前教育原理 主讲:李德明.
● 四 (2)班 家 长 网络交 流 会 ● 快乐成长 与您 共享 家庭 学校 社会.
你的潜能是无限的 ——高三心理辅导.
Hadoop I/O By ShiChaojie.
现代信息检索 Modern Information Retrieval
辅导课程六.
What have we learned?.
动态规划(Dynamic Programming)
工业机器人技术基础及应用 主讲人:顾老师
使用矩阵表示 最小生成树算法.
工业机器人技术基础及应用 主讲人:顾老师
如何讓孩子成為明日之星 芃芃森林幼稚園 許玉芳 園長.
第4章 非线性规划 4.5 约束最优化方法 2019/4/6 山东大学 软件学院.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
顺序表的删除.
本节内容 随机读取 视频提供:昆山爱达人信息技术有限公司.
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
第二章 Java基本语法 讲师:复凡.
Aspect Oriented Programming
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
Web安全基础教程
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
指導老師:邱登裕老師 組員:B 張萬鈞 B 鄭瑞傑 B 蔡譯陞 B 胡瑜真
iSIGHT 基本培训 使用 Excel的栅栏问题
香港道教聯合會圓玄學院石圍角小學 中國清朝衣服 By:蔡思敏.梁嘉敏.杭依澄.
第七、八次实验要求.
SpringerLink数据库使用说明 上海师范大学图书馆
实验目的:掌握数据的顺序存储结构及它们在计算机中的操作。 实验内容:
第六章 Excel的应用 五、EXCEL的数据库功能 1、Excel的数据库及其结构 2、Excel下的数据排序 (1)Excel的字段名行
基于列存储的RDF数据管理 朱敏
第十七讲 密码执行(1).
第十二讲 密码执行(上).
插入排序的正确性证明 以及各种改进方法.
Presentation transcript:

倒排检索构建 主讲人:陈文亮 苏州大学计算机学院

提纲 倒排索引 布尔查询的处理

一个简单的例子(金庸小说) 金庸的哪本小说包含郭靖和黄蓉但不包含洪七公? 布尔表达式为 郭靖 AND 黄蓉 AND NOT 洪七公 笨方法: 从头到尾扫描所有小说,对每本小说判断它是否包含郭靖和黄蓉但不包含洪七公 笨方法为什么不好? 速度超慢 (特别是大型文档集) 不太容易支持其他操作 (e.g., find the word Romans near countrymen) 不支持检索结果的排序 (即只返回较好的结果) Grep is line-oriented; IR is document oriented.

词项-文档(term-doc)的关联矩阵 射雕英雄传 神雕侠侣 天龙八部 倚天屠龙记 鹿鼎记 郭靖 1 黄蓉 洪七公 张无忌 韦小宝 若某小说包含某单词,则该位置上为1,否则为0 郭靖 AND 黄蓉 BUT NOT 洪七公

关联向量(incidence vectors) 关联矩阵的每一列都是 0/1向量,每个0/1都对应一个词项 给定查询郭靖 AND 黄蓉 BUT NOT 洪七公 取出三个列向量 ,并对 洪七公的列向量求补,最后按位进行与操作 11010 AND 11010 AND 00111 = 00010.

上述查询的结果文档 倚天屠龙记

IR中的基本假设 文档集Collection: 由固定数目的文档组成 目标: 返回与用户需求相关的文档并辅助用户来完成某项任务 相关性Relevance 主观的概念 反映对象的匹配程度 不同应用相关性不同

典型的搜索过程 Get rid of mice in a politically correct way 任务 Get rid of mice in a politically correct way 是否转义? 信息需求 Info about removing mice without killing them 是否转义? 自然语言描述 How do I trap mice alive? 是否转义? 查询 mouse trap 搜索 引擎 查询 重构 结果 文档集

检索效果的评价 正确率(Precision) : 返回结果文档中正确的比例。如返回80篇文档,其中20篇相关,正确率1/4 召回率(Recall) : 全部相关文档中被返回的比例,如返回80篇文档,其中20篇相关,但是总的应该相关的文档是100篇,召回率1/5 正确率和召回率反映检索效果的两个方面,缺一不可。 全部返回,正确率低,召回率100% 只返回一个非常可靠的结果,正确率100%,召回率低

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

词项-文档矩阵将非常大 矩阵大小为 500K x 1M=500G 但是该矩阵中最多有10亿(1G)个1 应该有更好的表示方式 词项-文档矩阵高度稀疏(sparse). 稀疏矩阵 应该有更好的表示方式 求方法? Why?

词项-文档矩阵将非常大 应该有更好的表示方式 比如我们仅仅记录所有1的位置

倒排索引(Inverted index) 对每个词项t, 记录所有包含t的文档列表. 能否采用定长数组的方式来存储docID列表 Brutus 1 2 4 11 31 45 173 174 Caesar 1 2 4 5 6 16 57 132 Calpurnia 2 31 54 101 文档14中加入单词Caesar时该如何处理?

倒排索引(续) 通常采用变长表方式 磁盘上,顺序存储方式比较好,便于快速读取 内存中,采用链表或者可变长数组方式 存储空间/易插入之间需要平衡 倒排记录 Posting Brutus 1 2 4 11 31 45 173 174 Dictionary Linked lists generally preferred to arrays Dynamic space allocation Insertion of terms into documents easy Space overhead of pointers Caesar 1 2 4 5 6 16 57 132 Calpurnia 2 31 54 101 Postings 倒排(记录)表 按docID排序 (原因后面再讲) 词典

Friends, Romans, countrymen. 倒排索引构建 待索引文档 Friends, Romans, countrymen. Tokenizer 词条流 Friends Romans Countrymen 词条化工具 More on these later. Linguistic modules 修改后的词条 friend roman countryman 语言分析工具 Indexer 倒排索引 friend roman countryman 2 4 13 16 1

索引构建过程: 词条序列 <词条,docID>二元组 Doc 1 Doc 2 I did enact Julius Caesar I was killed i' the Capitol; Brutus killed me. So let it be with Caesar. The noble Brutus hath told you Caesar was ambitious

索引构建过程: 排序 按词项排序 然后每个词项按docID排序 索引构建的核心步骤

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

第一讲:布尔检索 倒排索引 存储开销计算 docID表 词项及文档频率 指针

第一讲:布尔检索 提纲 倒排索引 布尔查询的处理 (继续)

第一讲:布尔检索 假定索引已经构建好 如何利用该索引来处理查询?

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

AND查询的处理 考虑如下查询(从简单的布尔表达式入手): Brutus AND Caesar 在词典中定位 Brutus 返回对应倒排记录表(对应的docID) 在词典中定位Caesar 再返回对应倒排记录表 合并(Merge)两个倒排记录表,即求交集 2 4 8 16 32 64 128 Brutus 1 2 3 5 8 13 21 34 Caesar

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

其它布尔查询的处理 一般的布尔表达式 (Brutus OR Caesar) AND NOT (Antony OR Cleopatra) OR表达式:Brutus AND Caesar 两个倒排记录表的交集 NOT表达式: Brutus AND NOT Caesar 两个倒排记录表的减 一般的布尔表达式 (Brutus OR Caesar) AND NOT (Antony OR Cleopatra) 查询处理的效率问题!

查询优化 查询处理中是否存在处理的顺序问题? 考虑n 个词项的 AND 对每个词项,取出其倒排记录表,然后两两合并 Brutus 2 4 8 16 32 64 128 Caesar 1 2 3 5 8 16 21 34 Calpurnia 13 16 查询: Brutus AND Calpurnia AND Caesar 26

查询优化 按照表从小到大(即df从小到大)的顺序进行处理: 每次从最小的开始合并 2 4 8 16 32 64 128 Caesar 1 2 这是为什么保存 df的原因之一 Brutus 2 4 8 16 32 64 128 Caesar 1 2 3 5 8 16 21 34 Calpurnia 13 16 相当于处理查询 (Calpurnia AND Brutus) AND Caesar.

布尔检索的优点 构建简单,或许是构建IR系统的一种最简单方式 在30多年中是最主要的检索工具 当前许多搜索系统仍然使用布尔检索模型: 电子邮件、文献编目、Mac OS X Spotlight工具

布尔检索的缺点 布尔查询构建复杂,不适合普通用户。构建不当,检索结果过多或者过少 没有充分利用词项的频率信息 不能对检索结果进行排序 1 vs. 0 次出现 2 vs. 1次出现 3 vs. 2次出现, … 通常出现的越多越好,需要利用词项在文档中的词项频率(term frequency, tf)信息 不能对检索结果进行排序