信息检索导论笔记之1--3章
2017-12-23 21:21
441 查看
第一章 布尔检索
信息检索是从大规模非结构化数据(通常是文本)的集合(通常保存在计算机上)中找出满足用户信息需求的资料(通常是文档)的过程.”非结构化数据”指的是那些没有清晰和明显的语义结构的数据,与之相对的,最典型的就是关系数据库.1.基本概念
检索系统(搜索结果质量)的评价指标:
正确率(precision): 返回的结果中真正和信息需求相关的文档所占的比例
召回率(recall): 所有和信息需求真正相关的文档中被检索系统返回的百分比.
两种构建方式:
词项-文档矩阵: 高度稀疏,即大部分元素为0
倒排索引: 左部为词项词典,右侧为倒排记录表.词项词典往往在内存中,而指针指向的每个倒排记录表往往存放在磁盘上.
2.布尔查询
以 Brutus AND Calpunia 为例,首先Brutus,Calpunia各自的倒排记录表后,求交集.
两个倒排记录表合并的算法: 对每个表都维护一个位置指针,让其同时在两个列表中后移.
查询优化: 考虑倒排记录表的访问顺序.例如,对于Brutus AND Caesar AND Calpurnia, 按照词项的文档频率(也就是倒排记录表的长度)从小到大依次进行处理.
第二章 词项词典及倒排记录表
确定文档的编码方式,将字节序列转换成字符序列.确定索引的文档单位,即”索引粒度”问题.这里存在着正确率和召回率之间的权衡问题.
词条化,注意特定词条的处理,如”C++”,IP地址,邮件地址,连字符,特殊空格.
对于一些东亚语言,不存在空格,需要首先进行分词.
去除停用词: 随着信息检索系统的发展,Web搜索引擎通常都不用停用词表.
词项归一化
词干还原和词形归并
倒排记录表的其他形式:
基于跳表的倒排记录表:
倒排记录表的基本合并算法:同时在两个表中遍历,并且最后算法的时间复杂度为记录表大小的线性函数。可以通过跳表来改进。
包含位置信息的倒排记录表
对每个词项,以如下方式存储倒排记录表: 文档ID: <位置1,位置2,…>
短语查询,近邻搜索:基于位置信息,可以计算词之间的偏移距离,也可用于k词近邻搜索。
第三章 词典及容错式检索
1. 词典搜索的数据结构
前面介绍的倒排记录表被称为普通倒排索引。现在介绍的倒排索引表对普通倒排索引表的词典部分再进行一层索引。词汇表的查找往往采用称为词典的数据结构,有两大解决方案:
1).哈希表方式:每个词项通过哈希函数映射成一个整数,映射函数的空间需要足够大,以较少哈希冲突的可能。
缺点:难以处理轻微变形的情况,特别的,很难处理前缀式查询。
在词汇表不断增长的环境中(如Web),为当前需求所设计的哈希函数可能在几年内会失效。
2).搜索树方式
可以解决上述大多数问题。
一种平衡树: B树
2. 通配符查询
2.1 单通配符查询同时使用B树和反向B树,可以处理单通配符查询,如se*mon。
具体处理时,通过B树返回所有前缀为se且后缀非空的词项子集W,再通过反向B树返回所有后缀为mon且前缀非空的词项子集R。然后求交集
2.2 一般的通配符查询
轮排索引
k-gram索引:
一个k-gram代表由k个字符组成的序列。用$来表示词项的开始或结束。对于castle来说,所有的3-gram包括$ca,cas,ast,stl,tle及le$.
在k-gram索引结构中,其词典由词汇表中所有词项的所有k-gram形式构成,而每个倒排记录表则由包含该k-gram的词项组成。
考虑查询re*ve,我们构造布尔查询$re AND ve$,这个可以在3-gram索引中查找处理,返回诸如relive,remove等词项,
然后我们可以在普通倒排索引中查找这些返回的词项,从而得到与查询匹配的文档。然后,进行后过滤步骤。
3. 拼写校正
两种拼写校正方法:词项独立的校正,上下文敏感的校正。两种词项独立的校正方法:编辑距离方法及k-gram重合度方法。
3.1 编辑距离方法
主要解决思路:动态规划。
查询字符串q需要和字符串集合V逐一计算编辑距离,这种穷举搜索开销很大,实际中多使用启发式方法。如将搜索限制在于查询词具有相同首字母的字符串上。
3.2 拼写校正中的k-gram索引
利用k-gram索引来辅助返回与q具有较小编辑距离的词项。
例如对bord进行拼写校正,首先查询bord的2-gram索引,返回3个2-gram包含的倒排记录表,然后线性扫描并合并倒排记录表。
3.3 上下文敏感的拼写校正
相关文章推荐
- 信息检索导论学习笔记(8)-向量空间模型
- 信息检索导论学习笔记(3)——词典及容错式检索
- 信息检索导论学习笔记(6)-索引压缩
- 信息检索导论:第二章 词项词典及倒排记录表 学习笔记
- 信息检索导论 第一章 阅读笔记
- 信息检索导论学习笔记(6)-文档评分,词项权重计算及向量空间模型
- 信息检索导论学习笔记 -- 第二章:词项词典及倒排记录表
- 信息检索导论学习笔记(7)-文档评分、词项权重计算
- 信息检索导论学习笔记 --第一章 布尔检索
- 信息检索导论 第二章 阅读笔记
- 信息检索导论学习笔记(一) 布尔检索
- 信息检索导论:第一章 布尔检索 学习笔记
- 信息检索导论学习笔记(2)——词项词典及倒排记录表
- 算法导论笔记:08线性排序
- 《Java编程思想》笔记 第一章 对象导论
- MIT 6.00 导论课程笔记(一)
- 算法导论学习笔记 第2章 算法基础
- 算法导论学习笔记-5.2 指示器随机变量
- 信息检索导论1
- 【信息检索导论】第1章 布尔检索