第五章文本索引和搜索

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在关系数据库上建索引
查询式: 姓名 = “张三”
姓名索引
张三
姓名
地址
张三 哈尔滨工业大学
如上图所示,对”姓名”字段使用便于查找的数 据结构(如排序数组、B树或散列等)建立索引, 当查询某个名字时,就不需要从头至尾遍历整 个字段,而可以快速找到该姓名,从而查找出 与其对应的信息。
倒排文件组成
词汇表(vocabulary)+记录表(posting list) 词汇表
基于内存的方法 基于排序的方法 基于归并的方法
倒排文件的建立
建立倒排文件的最关键问题是由于需要 索引的文档数量过大,有可能导致不能 在内存中存储整个倒排文件。
根据索引文档的大小,介绍三种倒排文 件的建立方法。
基于内存的方法 基于排序的方法 基于归并的方法
基于内存的方法
输入:文档集合 输出:基于文档集合的倒排文件 算法:
同步遍历记录表,实现合并过程
倒排索引主要内容
倒排索引简介 倒排文件的使用 倒排文件的建立 倒排文件的维护 倒排文件的压缩 倒排文件的性能分析 词汇表的存取
倒排文件的建立
建立倒排文件的最关键问题是由于需要 索引的文档数量过大,有可能导致不能 在内存中存储整个倒排文件。
根据索引文档的大小,介绍三种倒排文 件的建立方法。
文本搜索的概念
不使用任何索引技术,而快速的在给定 文本或文本集合中查找是否出现某一关 键词,这种技术通常被称为单模式匹配
应用领域
信息过滤、检索结果后处理等
常用算法
BF KMP BM
大纲
索引和搜索的概念 倒排文件索引 后缀数组索引 签名文件索引 文本搜索技术
倒排索引主要内容
(1) 初始遍历文档集合。对于每一个单词w,统计包含该 单词的文档数fw;
(2) 在内存中建立长度为∑w∈词表fw的数组,并且对于
每一个单词w,生成指向其记录表块首的指针pw。 (3) 第二次遍历文档集合,对每个文档d中的每一个单词
w,在pw中追加文档d的序号,pw后移。
基于内存的方法
核心思想是经过两次遍历
建立倒排文件的最关ຫໍສະໝຸດ Baidu问题是由于需要 索引的文档数量过大,有可能导致不能 在内存中存储整个倒排文件。
根据索引文档的大小,介绍三种倒排文 件的建立方法。
基于内存的方法 基于排序的方法 基于归并的方法
基于排序的方法
基于内存方法的不足
从磁盘读取和分析文档的操作需要花费较多时间, 如果反复调用,必将成为倒排文件建立的一个瓶颈
但是,当有了一大堆资料之后,并不能立即 开始搜索.
为什么?
图书馆实例
在检索前必须建立索引!
索引的定义
所谓建立索引,是指将待搜索的信息进行一 定的分析,并将分析的结果按照一定的组织 方式存储起来,通常是存储在文件中.
存储了分析结果的文件的集合就是所谓的 索引.
准确定义:索引(Index)是一种数据结构, 其将关键词与包含该关键词的文档(或关 键词在文档中的位置)建立了一种映射关 系,以加快检索的速度。
树状结构,如:B树和Trie树
前缀查询和范围查询
散列
检索速度快,但是不支持前缀查询和范围查询等
需要根据实际需求情况,决定采用什么样 的数据结构。
记录表操作
如果查询中仅包含一个单词,则在词汇 表中找到该单词,并取出其对应的记录 表即完成了检索操作
如果查询中包含多个单词,则需将各个 单词检索出的记录表进行合并
第一次遍历首先获得每个单词出现的文档的个数, 从而获得所需内存的大小;
第二次遍历充分利用内存的随机访问功能,快速更 新每个单词的记录表;
优点:
只要内存比最终生成的倒排文件(包括词汇表和记 录表)大一些,该算法是可行的;
可以很方便地扩展该方法,在记录表中增加更多的 信息,如单词的位置等;
倒排文件的建立
也称倒排索引,索引对象是文档或文档集合中 的单词等,用来存储这些单词在一个文档或者 一组文档中的存储位置,是对文档或文档集合 的一种最常用的索引机制
倒如:有些书往往在最后提供的索引(单词—页 码列表表)就可以看成是一种倒排索引.即通过 一些关键词,在全书中检索出与之相关的部分;
这种思想也被应用于数据库技术中,即对数据 库中需要经常进行检索的域建立索引结构,从 而实现快速查询.
倒排文件的使用
三个步骤
词汇表检索
将出现在查询(Query)中的单词分离出来,并在词 汇表中进行检索。
记录表检索
检索出所有找到的单词对应的记录表。
记录表操作
对检索出的记录表进行后处理,以实现短语查询、相 邻查询或者布尔查询。
词汇表检索
规模相对较小的独立文件,全部调入内存 常用数据结构
文档或文档集合中所包含的所有不同单词的集合
占用的空间V=cnβ,c是常数,n是文档集合的大小,β是一个0到1
之间的常数,一般在0.4到0.6之间
记录表
对于词汇表中的每一个单词在文档中出现的位置或者其出现的文 档编号构成的列表
占用的空间P=cn,其中c是常数,随着记录表中存储的信息丰富
程度而变化 记录表既可以存储文本中单词的编号位置,也可以指向单词首字
母的字符位置,还可以是其所在的文档编号,即可以根据不同的 应用需求,使用不同的寻址粒度(addressing granularity)
对单文档的倒排文件
对文档集合的倒排文件
倒排索引主要内容
倒排索引简介 倒排文件的使用 倒排文件的建立 倒排文件的维护 倒排文件的压缩 倒排文件的性能分析 词汇表的存取
倒排索引简介 倒排文件的使用 倒排文件的建立 倒排文件的维护 倒排文件的压缩 倒排文件的性能分析 词汇表的存取
倒排索引主要内容
倒排索引简介 倒排文件的使用 倒排文件的建立 倒排文件的维护 倒排文件的压缩 倒排文件的性能分析 词汇表的存取
倒排文件简介
倒排文件 (Inverted File)
第五章:文本索引和搜索
任飞亮 东北大学自然语言处理实验室
2010
大纲
索引和搜索的概念 倒排文件索引 后缀数组索引 签名文件索引 文本搜索技术
大纲
索引和搜索的概念 倒排文件索引 后缀数组索引 签名文件索引 文本搜索技术
应用索引的例子
检索的目的是为了在一大堆的信息中发 现自己感兴趣的信息;
相关文档
最新文档