倒排表讲解

简介: 倒排表讲解

前言


在问答系统中,我们应该根据用户提出的问题,然后在知识库里找相关的问题以及返回概率最高的答案,我们遇到的问题是假设知识库里有n个问题,那么我们每次需要做n次的相似度计算,这样的话对计算机的负担是极大的,那么如何降低复杂度呢?核心思路是根据倒排表做一个层次过滤,过滤掉不相关的问题以及答案。


一、倒排表


1-1、基本概念


文档:比如Word、PDF、Excell等不同格式的文件都可以称之为文档。

文档集合:由若干文档构成的集合称之为文档集合。

文档编号:每个文档都会被赋予一个唯一的编号当作标识。

单词编号:与文档编号类似,作为单词的唯一表征。

倒排索引:实现“单词-文档矩阵”的一种具体存储形式,通过倒排索引,可以根据单词快速获取包含这个单词的文档列表。倒排索引主要由两个部分组成:单词词典和倒排文件。

单词词典:文档集合中出现的所有单词构成的字符串集合,单词词典内每条索引项记载单词本身的一些信息以及指向“倒排列表”的指针。

倒排列表:记载了出现过某个单词的所有文档的文档列表以及单词在该文档中出现的位置信息,每条记录成为一个倒排项。根据倒排列表,即可以获知哪些文档包含某个单词。

倒排文件(Inverted File):所有单词的倒排列表往往顺序地存储在磁盘的某个文件里,这个文件即被称之为倒排文件,倒排文件是存储倒排索引的物理文件。


1-2、简单应用


假设包含三个文档,对这三个文档建立倒排索引。

5ae25d98c0fe4d5c8555f31e698b6a33.png

先对中文进行分词,然后再赋予每个单词唯一的编号,在倒排列表中记录下了哪些文档包含这个单词。除了记录哪些文档包含这个单词,还可以记录词频等信息。

de4640a3286f4397bfa21d377c84ef8f.png


参考文章:


一文了解倒排表.

NLP——倒排表.


总结


不知不觉就到12月了,今年可过的真快。

相关文章
|
10月前
蓝桥杯真题代码记录(数位排序
蓝桥杯真题代码记录(数位排序
68 0
|
搜索推荐 算法
【排序算法 上】带你手撕常见排序 (插入,希尔,选择,堆排序) (动图详解)
【排序算法 上】带你手撕常见排序 (插入,希尔,选择,堆排序) (动图详解)
138 0
【排序算法 上】带你手撕常见排序 (插入,希尔,选择,堆排序) (动图详解)
|
搜索推荐
手撕七大排序 (一)
手撕七大排序 (一)
92 0
手撕七大排序 (一)
|
算法 搜索推荐
手撕七大排序 (四)
手撕七大排序 (四)
91 0
手撕七大排序 (四)
|
存储 算法
学会二叉树不知道干啥?二叉树的深度优先搜索和广度优先搜索,我要打十个乃至二十个(打开你的LeetCode撸起来)学练并举
学会二叉树不知道干啥?二叉树的深度优先搜索和广度优先搜索,我要打十个乃至二十个(打开你的LeetCode撸起来)学练并举
学会二叉树不知道干啥?二叉树的深度优先搜索和广度优先搜索,我要打十个乃至二十个(打开你的LeetCode撸起来)学练并举
|
编译器 测试技术 C++
听说三数之和是你梦碎的地方?Leetcode每日刷题(day1)(上)
听说三数之和是你梦碎的地方?Leetcode每日刷题(day1)
听说三数之和是你梦碎的地方?Leetcode每日刷题(day1)(上)
|
存储 索引
【牛客刷题】链表的奇偶重排
【牛客刷题】链表的奇偶重排
【牛客刷题】链表的奇偶重排
L1-019 谁先倒 (15 分)
L1-019 谁先倒 (15 分)
102 0