信息检索导论——一、布尔检索

Information retrieval (IR) is finding material (usually documents) of an unstructured nature (usually text) that satisfies an information need from within large collections (usually stored on computers).

信息检索是从大规模非结构化数据(通常是文本)的集合(通常保存在计算机上)中找出满足用户信息需求的资料(通常是文档)的过程。

布尔检索:利用AND、OR、NOT等操作符将词项连接起来进行查询。(google高级检索,图书馆、知网等库的高级检索)


正确率(precision):返回的结果中真正和信息需求相关的文档所占的百分比。

召回率(recall):所有和信息需求真正相关的文档中被检索系统返回的百分比。


倒排检索:通过一个信息检索例子来讲述:

在《莎士比亚全集》这本书中想知道其中那些剧本包含Brutus和Caesar但不包含Calpurnia。

最直接的想法是通过线性扫描的方式,这个过程通常称为grepping。这种方式能处理规模不大的文档集,但在很多情况下,这种扫描方式远远不够:

1、大规模文档集条件下的快速查找。(可能需要在几十亿到上万亿单词的数据规模下查找)。

2、更灵活的匹配方式。(比如NEAR操作符的定义可能为“5个词之内”或者“同一个句子中”)。

3、需要对结果进行排序。

所以:建立索引,得到如下 词项-文档关联矩阵



所以关联矩阵得到的布尔结果就是110100AND110111AND101111=100100,所以就得到第一个和第四个剧本。

而上面关联列表如果处理更大的数据则会有巨大的数据稀疏性,所以采用如下方式进行记录:


上图成为倒排索引,左边部分为词项词典(常存在内存中),右边部分为倒排记录表,记录出现左侧词项的文章的ID号(常存在磁盘中)。


建立倒排索引的方式:


当得到倒排索引表后,求AND就变成了求两个倒排记录表的交集。


值得注意的是,多个词项的并集操作应该从记录表长度短的先开始。


正确率(precision):返回的结果中真正和信息需求相关的文档所占的百分比。

召回率(recall):所有和信息需求真正相关的文档中被检索系统返回的百分比。

你可能感兴趣的:(信息检索导论)