检索与倒排索引

本文介绍了信息检索中的倒排索引,详细讲解了倒排索引的构造过程和查询机制,并探讨了优化查询的WAND算法。此外,文章还深入讨论了BM25算法,一种用于评估搜索词与文档相关性的方法,其中考虑了单词频率和IDF权重。
摘要由CSDN通过智能技术生成

引言

Information Retrieval (IR):
从大规模非结构化数据 的集合中找到满足用户信息需求的资料。
包括信息的获取表示存储组织访问

一、倒排索引

1、倒排索引介绍

其中倒排索引实现了“单词-文档矩阵”的存储,是实现单词到文档映射关系的最佳实现方式。

所谓正向索引通过 文档docID 查找 单词wordID
在这里插入图片描述
而反向索引(倒排索引)是 通过 wordID 查找 docID,从词的关键字去查找文档。
在这里插入图片描述
倒排索引主要由两个部分组成:“单词词典”和“倒排文件”
单词词典:文档中所有单词的集合,词典中每条索引项记录单词本身的信息和指向“倒排列表”的指针
倒排文件:所有单词按照docID排序具有可变长度的记录列表。
在这里插入图片描述
通常,进行 索引建立 会给分词后的单词做些预处理,以防 索引列表过于稀疏。
在这里插入图片描述

2、建立倒排索引

步骤:
1)建立 词条序列 (wordID -> docID)
在这里插入图片描述
2)排序:先按照词条排序,再按照docID排序在这里插入图片描述

3、倒排索引查询

查找Brutus AND Caesar都出现的文档:

  • 在字典中分别找到Brutus和Caesar,得到它们的倒排记录表
    Brutus: 2,4,8,16,32,64,128
    Caesar:1,2,3,5, 8, 13, 21,34
  • 通过双指针合并两个倒排记录表
    双指针查找步骤:
    比较docID大小:2>1 -> 下方指针右移一位 -> 2=2 -> 保留记录2,两边都右移一位 -> 4>3 -> 下方指针右移一位 -> 4< 5 -> 上方指针右移 -> 8>5 -> 下方指针右移一位 -> 8=8 -> 保留记录8,两边都右移一位 -> 16>13 -> 下方指针右移一位 -> 16< 21 -> 上方指针右移一位 -> 32>21 -> 下方指针右移一位 -> 32< 34 -> 上方指针右移一位 -> 64>34 -> 下方已遍历完,结束
    在这里插入图片描述

二、BM25算法

bm25是一种评价 搜索词和所有文档 之间相关性的算法,用来检索模型。

有一个query和一批文档,求query和每篇文档D之间的相关性(相关性计算中统计的query和文档之间的相关概率可通过query的倒排索引来计算):

1、加权求和

首先对query切分,得到单词qi,计算qi的分数:
- 每个单词的权重Wi
- 相关性分数R:单词和D之间的相关性
- 最后对于每个单词的分数求和,得到**query和文档之间的分数**

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值