胡晓光信息检索实验室.ppt_第1页
胡晓光信息检索实验室.ppt_第2页
胡晓光信息检索实验室.ppt_第3页
胡晓光信息检索实验室.ppt_第4页
胡晓光信息检索实验室.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

胡晓光 信息检索实验室,索引和查找,提纲,顺序查找 索引查找 签名文件 倒排文件 PAT树(Patricia tree) 关于压缩,说明,索引和查找的关系 索引和查找其实是密不可分的 建索引时必须不断的执行查找操作 查找和查询的区别 查找(search) 如何在索引中定位关键词信息 查询(query) Query处理:如何根据用户输入确定关键词 检索模型:如何利用查找返回的信息计算相似度等 文本压缩和索引压缩的区别 注意文本压缩不能有效地减少索引文件的大小,顺序查找,精确匹配算法 Brute Force Knuth-Morris-Pratt Boyer-Moore Shift-Or Suffix Automaton 容错匹配算法 Dynamic Programming Non-deterministic Finite Automaton Bit-Parallelism 正则表达式和扩展模式,索引,索引文件 为方便查找,描述原文件信息组织的文件 签名文件,倒排文档,后缀树都是索引文件,签名文件,Karp-Rabin匹配思想 假设我们现在要判断字符串A和字符串B是否匹配 把A和B分别散列成数字hash (A)和hash (B) 如果hash (A) != hash (B) 则A != B 然而hash (A) = hash (B) 不能说明 A B,Karp-Rabin匹配例子 关键词 x05 : A A C T C T Hash( x05 ) = 17579 文本y09 : G C A A C T C T C A Hash( y05 ) = 17819 文本y09 : G C A A C T C T C A Hash( y16 ) = 17533 文本y09 : G C A A C T C T C A Hash( y27 ) = 17579,签名文件,文档的签名 把文档中的关键词散列成F位的位串Signature 顺序访问原文档的关键词,把散列所得的位串依次存入文件 重叠编码(superimposed coding) 我们不需要为每个关键词都保存一个Signature 多个关键词共用一个Signature可以减少文件的长度 错误匹配(False drop) 由于重叠编码和哈希冲突的原因,关键词和Signature不是一一对应的关系 Signature匹配并不能保证关键词一定出现,还需要检查,Block 1 Block2 Block3 Block4,000101 110101 100100 101101,文本,签名文件,h(text) =000101 h(many) =110000 h(words) =100100 h(made) =001100 h(letters) =100001,This is a text. A text has many words. Words are made from letters.,签名文件,签名文件,优点 文件组织简单,基本和原文档顺序一致 维护容易,生成,插入,删除都很方便 所需空间小,特别是采用重叠编码之后 缺点 检索速度慢,需要顺序扫描 并且,当False Drop发生的时候需要比较原文档 总之 签名文件是倒排文档和全文扫描之间的折中,倒排文件,倒排索引思想 每个文档都可以用一系列关键词来表示 如果按关键词建立到文档的索引便可以根据关键词快速地检索到相关文档 倒排文件组成 词汇表(Vocabulary) 根据Heaps定律,通常比较小O (n), : 0.40.6 通常我们称存放词汇表的文件为索引文件(index file) 出现位置(Occurrence) 较大,O(n),通常在原文本的3040 通常我们称存放出现位置的文件为置入文件(posting file),倒排文件,1 6 9 11 17 19 24 28 33 40 46 50 55 60 This is a text. A text has many words. Words are made from letters.,letters 60 made 50 many 28 text 11, 19 words 30, 40 ,Vocabulary Occurrences,Text,addressing granularity: inverted list word positions character positions inverted file document,倒排文件,块地址索引 有时候为了节省索引空间,可按块地址建索引 把原文划分为多个块,只记录关键词的块地址,Block1 Block2 Block3 Block 4 This is a text. A text has many words. Words are made from letters.,letters 4 made 4 many 2 text 1, 2 words 3 ,Vocabulary Occurrences,Text,Inverted index,倒排文件,倒排文件的性能 时间代价主要取决于词汇表的组织方式 词表文件通常较小且比较固定 对于未登录词和数词可以按字建索引 空间代价主要取决于对置入文件的压缩能力 置入文件的压缩能减少IO操作,也能提高部分时间性能 词汇表文件的组织方式 采用Hash散列表 按字母表顺序有序排列 采用Trie树,B树等查找树 置入文件的压缩 通常采用差值压缩(delta compression),倒排文件,词汇表的哈希存储 根据给定的关键字,散列成一个整数 用该整数作为词汇的访问地址 例如:如果我们按字索引,那么可以直接用字的编码 作为访问地址,对于2字节编码只需64K地址 优点 实现简单 速度极快 缺点 关键在于找到一个好的散列函数 随着现在散列空间的增大,问题相对简单 当冲突过多时效率会下降,倒排文件,词汇表的顺序排列 把词汇按照字典顺序排列 词汇的查找采用二分查找 优点 实现简单 词汇表体积小(通常只有几兆) 缺点 索引构建的效率一般 对于插入的文档需要反复地调用排序和查找算法 排序的时间复杂度为N*log N (分配排序例外) 索引合并时还需要堆排序等方法合并多个有序的词汇表 如果合并最主要的时间开销在于IO操作的话,这点还是次要的 检索的效率一般 二分查找logN的复杂度已经具有较好的效率 能不能变成和词汇数量无关的常数复杂度,倒排文件,Lucene的词汇表即采用这种方式 假设现在词表中有16,000个词 indexInterval=16 则在词表中需要查找次数为16log(1000) = 26次,倒排文件,词汇表的查找树 把词汇表中的关键词以树的形式组织 二叉树,B树,Trie 等 二叉查找树 考虑到平衡性,性能低于二分查找 B树 是多路查找树,效率高于二叉树,实现更麻烦 Trie 树 查找时间只跟词的长度有关 而于词表中词的个数无关 词表较大时才能体现出速度优势 Log (词表长度) E(词长) E表示期望,Trie树,什么是trie树 trie树是一种用于快速检索的多叉树结构 trie树把要查找的关键词看作一个字符序列。 根据这一序列构造用于检索的树结构。 在trie树上进行检索类似于查阅英语词典。 例如,电子英文词典,为了方便用户快速检索英语单词,可以建立一棵trie树。,词典单词:a、b、c、aa、ab、ac、ba、ca、 aba、abc、baa、bab、bac、cab、abba、baba、caba、abaca、caaba,Trie树,优点 查找效率高,与词表长度无关 Trie树的查找效率只与关键词长度有关 目前我们分词词表最长的词为13个字 “大不列颠及北爱尔兰联合王国” 事实上索引词表中词过长会降低检索召回率 用户如果只输入“北爱尔兰”则无法返回该结果 索引的插入,合并速度快 注意,直接遍历Trie树需要搜索大量的无效节点 可以把数据存在一个数组中,Trie只保存指针 这样合并时,只需要对数组进行遍历即可 缺点 所需空间较大 如果是完全m叉树,节点数指数级增长 好在Trie不是,但所需空间仍然很大 不可达上限: 词数 字符序列长度 字符集大小 指针长度 例如:20000 6 256 4 120M 实现较复杂,差值压缩(Delta Compression),置入文件 置入文件必须包含如下信息 当前词出现的文档号ID,以及在文档中的位置Pos 差值压缩 记录当前ID和前一ID的差值 记录当前Pos和前一Pos的差值 这样做能有效减少表示ID,Pos所需的字长 例如:关键词A在文档13,124,346中出现 如果不压缩,由于346256,需要要两个字节 而346124222256,只需一个字节 应用实例 Lucene对词汇表和置入文件都采用了这种压缩,PAT树(Patricia tree),什么是Patricia树 Patricia树是Trie树的压缩表示 所有只有一个子节点的节点都和父节点合并 后缀树(Suffix tree) 以文本所有后缀为关键词的Patricia树 后缀树的引入主要是针对字符串的高效查找 子串查找 最长重复子串 最长公共子串 回文子串 后缀数组(Suffix array) 按后缀树的先根遍历顺序,存储后缀,1 6 9 11 17 19 24 28 33 40 46 50 55 60 This is a text. A text has many words. Words are made from letters.,Suffix Trie,60,50,28,19,11,40,33,l,m,a,d,n,t,e,x,t,w,o,r,d,s,60,5,50,28,19,11,40,33,l,m,d,n,t,w,1,6,3,Suffix Tree,space overhead: 120%240% over the text size,Text,difference between suffix array and inverted list,suffix array: the occurrences of each word are sorted lexicographically by the text following the word inverted list: the occurrences of each word are sorted by text position,1 6 9 11 17 19 24 28 33 40 46 50 55 60 This is a text. A text has many words. Words are made from letters.,Suffix Array,Inverted list,Vocabul

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论