布尔检索模型

最近在看《Introduction to Information Retrieval》(中文版为《信息检索导论》,下文简称为“IR”),是最经典的信息检索书籍之一了。由于淞姐要求我细读这本书然后跟同事分享,就有了这个版块,之后会陆续添加后续章节内容。即使是站在巨人的肩膀上了(看了中文版和英文版IR,也从网上搜集了不少内容),但很多细节往往还是需要自己用心体会。从一个读者到一个讲解人,在第一次做分享的时候已经感觉很不容易了,有些东西原来只是一知半解,能自己想清楚但却很难表述。这些内容就是个人的一些读书笔记,希望能给刚好想了解搜索引擎的你带来一些启发。文中会尽量备注英文原版中的术语以免丢失本意。英文电子书可以从官网获取 Introduction to Information Retrieval

线性扫描和倒排索引

从线性扫描讲起

如果需要从文档集合 D D 中搜索包含某个关键词 k 的文档,最直接的方法就是从头到尾扫描文档集 D D ,对每个文档 d i 都查看是否包含关键词 k k 。这种线性扫描的方式最为直观易懂,在Unix/Linux系统中的文本扫描命令grep做的就是这种工作。然而,当需要检索的文档规模非常大时,这种线性扫描的方式的效率会变得非常低下。线性扫描的时间复杂度与文档集大小成正比,在大规模文本检索的场景下,线性扫描不再适用。大型的Web搜索引擎需要检索千亿级别数量的网页,如果采用类似grep的线性扫描方式,就需要依次扫描这么多的文本来判断每一个网页是否符合查询要求,这样的检索慢如蜗牛,用户显然无法接受。目前,搜索引擎通过事先给文档建立索引(index)的方法来避免这种线性扫描,使得搜索过程非常快速,这种技术称为倒排索引。

IR中,以《莎士比亚全集》为例子来说明倒排索引的基本知识。这里笔者就重新举个例子吧。假设某文档集中存在这样的三篇文档(还有其他文档不列举),分别是 d 1 为“Apple and cat”, d2 d 2 为“I like cat”, d3 d 3 为“I have an apple”,用矩阵表示,当文档d中存在词项t时,矩阵元素(d, t)为1,否则为0:

文档\词项 apple and cat I like have an ... . . .
d1 d 1 1 1 1 0 0 0 0 ... . . .
d2 d 2 0 0 1 1 1 0 0
  • 6
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值