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

Slides:



Advertisements
Similar presentations

Advertisements

DOC 推廣活動 月餅星光大道. 中秋  農曆八月十五日,是中國傳統的中秋節。 古人將一年分成春夏秋冬四季,而一季又 分為孟、仲、季三月,八月是仲秋之月, 而十五又是這個月中間的一天,正處在秋 季的正中,所以把八月十五稱為「中秋」 或「仲秋」。  中秋夜,月亮最圓,月色最美,因此人們 把月圓看成是團圓的象徵,同時也稱八月.
中 五 級中 五 級 戰後國共關係 與 中華人民共和國成立 中國歷史科 1 )認識國共政治協商的概況 2 )認識國共內戰的概略經過及結果 3 )中華人民共和國成立.
不吃早餐的影響: 體內的葡萄糖無法 足夠供應給大腦與 肌肉,會感覺疲勞, 注意力無法集中。。 營養的早餐:乳品 + 全榖類食品 + 蛋白質 + 水果 早餐你吃了嗎?
信息检索与 Web 搜索 第 2 讲 布尔检索 Boolean Retrieval 授课人:高曙明 * 改编自 “ 现代信息检索 ” 网上公开课件( )
河北衡水中学 康新江 高效课堂与激情教育 河北衡水中学 康新江
第5讲 索引构建 Index construction 授课人:高曙明
人文地理專題研究 王志明.
台灣基督長老教會 教會如何推動 門徒培育事工 總會研發中心 李位鼎牧師.
重大危险源培训 主讲:工程部 张剑 1.
2014年爱婴医院复核方案解读 省卫生计生委妇幼处 邱灵.
导言 第四 单元 凡尔赛—华盛顿体系与第二次世界大战
完善固定资产加速折旧 企业所得税政策.
社團經費申請 及核銷相關規定 製作:世新大學會計室.
会计实验.
第6讲 索引压缩 Index compression 授课人:高曙明
导游资格证考试概要.
食品添加剂生产许可情况介绍 江苏省食品药品监督管理局 彭弘雷 2014年12月
“卓越工程师”培养的质量保障体系构建探索
土地出让转让的政策与实务 岳晓武 国土资源部利用司.
老師:鍾郁芬 老師 指導 組長:陳欣怡 組員:曾郁雯 倪敏富 王宣化 簡宏倫 黃郁涵
臺東縣政府 所屬一、二級機關 (警、消、環、衛、動防、家庭教育中心) 公文線上簽核系統 全面推行辦理事項說明會
题目回顾 泉水在地下蓄积,一旦有机会,它便骄傲地涌出地面,成为众人瞩目的喷泉,继而汇成溪流,奔向远方。但人们对地下的泉水鲜有关注,其实,正是因为有地下那些默默不语的泉水的不断聚集,才有地上那一股股清泉的不停喷涌。 请根据你对材料的理解和感悟,自选一个角度,写一篇不少于800字的文章,文体自定,标题自拟。要求:立意明确,不要套作,不得抄袭。
典型案例---医院.
2014年度企业所得税业务培训 蚌埠市地方税务局所得税科.
广 东 技 术 师 范 学 院 美术学院 装潢专业 2012级(3)班 郑可珊
高雄縣政府 98年度 人事業務˙法令宣導 公務人員協會專區網址:
第十九章 散文 教学要求: 了解散文的含义、分类、特点,学习写作抒情散文。 重点: 散文的特点,散文的写作。 难点: 散文的写作训练。
證券投資實務 講師:方俊儒教授.
易學基礎教程 國文系99 王隆運. 易學基礎教程 國文系99 王隆運.
企业所得税年度纳税申报表(2014年版)培训 国家税务总局公告2014年第63号
农机化项目管理培训会 柳州市农机局 郑崇宁
一二·九运动                                                                    0712班.
只有一个词,它不会争,争到了也不受用,只让它静静安踞在并不明亮的高位上,留给那座唯一的城市。 这个词叫伟大,这座城市叫罗马。
第一章 质点 运 动 学 一. 描述质点运动的基本物理量 研究物体(质点)的位置随时间而变化的规律
中小学教育科研课题的选择 王典伟.
出口农产品风险管理 企业分类及监督管理表格
检索 林琛 博士、副教授.
倒排检索构建 主讲人:陈文亮 苏州大学计算机学院.
● 四 (2)班 家 长 网络交 流 会 ● 快乐成长 与您 共享 家庭 学校 社会.
学科科研工作与科研 奖励政策解读讲座 朱文斌 博士 教授 2015年9月8日.
第9章 金融监管.
首都师范大学.
1.关键词组合 深圳 深圳 志愿者 深圳 大运会 志愿者.
社會學(一) 空中大學花蓮中心 鍾燕菁
如何使用CiteSpace分析Derwent专利数据
Hadoop I/O By ShiChaojie.
關心今天的老人, 就是關心明天的自己 作者:周儀.
动态规划(Dynamic Programming)
给孩子做一面明亮的镜子 给孩子做一面明亮的镜子.
顺序表的插入.
使用矩阵表示 最小生成树算法.
第4章 非线性规划 4.5 约束最优化方法 2019/4/6 山东大学 软件学院.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
《郑伯克段于鄢》 黎兰老师制作.
顺序表的删除.
本节内容 随机读取 视频提供:昆山爱达人信息技术有限公司.
第二章 Java基本语法 讲师:复凡.
Web安全基础教程
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
iSIGHT 基本培训 使用 Excel的栅栏问题
SpringerLink数据库使用说明 上海师范大学图书馆
实验目的:掌握数据的顺序存储结构及它们在计算机中的操作。 实验内容:
仲裁处理细则及常见问题解析.
嘉義縣立溪口國民中學 辦理96年度推動自由軟體學校資訊融入教學
基于列存储的RDF数据管理 朱敏
第十七讲 密码执行(1).
第十二讲 密码执行(上).
插入排序的正确性证明 以及各种改进方法.
Presentation transcript:

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

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

一个简单的例子(金庸小说) 金庸的哪本小说包含郭靖和黄蓉但不包含洪七公? 布尔表达式为 郭靖 AND 黄蓉 AND NOT 洪七公 笨方法: 从头到尾扫描所有小说,对每本小说判断它是否包含郭靖和黄蓉但不包含洪七公 Grep is line-oriented; IR is document oriented.

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

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

IR中的基本假设 文档集Collection: 由固定数目的文档组成 目标: 返回与用户需求相关的文档并辅助用户来完成某项任务 相关性Relevance

大文档集 假定N = 1 百万篇文档(1M), 每篇有1000个词(1K) 假定每个词平均有6个字节(包括空格和标点符号) 那么所有文档将约占6GB 空间. 假定 词汇表的大小(即词项个数) |V| = 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排序 (原因后面再讲) 词典

索引构建过程: 词条序列 <词条,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 22

查询优化 按照表从小到大(即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)信息 不能对检索结果进行排序