倒排表讲解

简介: 倒排表讲解

前言


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


一、倒排表


1-1、基本概念


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

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

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

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

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

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

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

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


1-2、简单应用


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

5ae25d98c0fe4d5c8555f31e698b6a33.png

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

de4640a3286f4397bfa21d377c84ef8f.png


参考文章:


一文了解倒排表.

NLP——倒排表.


总结


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

相关文章
|
搜索推荐
二分查找(非要5个字)
二分查找(非要5个字)
41 0
二叉树详解一万字(基础版)看着一篇就够了(下)
对于堆的调整相当于是对数组的一种调整,将数组的首地址传进来,要调整的数组的长度,相当于是退出的循环条件,向下传给进来parent(root),向上传给child(size-1),然后再用一个表示另外一个。将参数传进来之后进行比较,先比较两个孩子,找出小的那个,然后交换较小孩子和双亲节点,在比较左右孩子的时候要保证右孩子也存在才可以进行比较,就是child+1<size,原因就是这里是堆,是完全二叉树
60 0
|
存储 机器学习/深度学习
二叉树详解一万字(基础版)看着一篇就够了(上))
树的结构是一种非线性的数据结构,它是由n(n>=0)个节点组成的一个有层次的关系集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说他是根朝上,而叶朝下。
140 0
L1-019 谁先倒 (15 分)
L1-019 谁先倒 (15 分)
86 0
|
算法
蓝桥杯 算法 猴子吃包子、 查找整数
蓝桥杯 算法 猴子吃包子、 查找整数
120 0
|
搜索推荐 算法
排序总结(跑路人笔记1)
排序总结(跑路人笔记)
排序总结(跑路人笔记1)
|
存储 机器学习/深度学习 算法
|
机器学习/深度学习 存储
【刷穿 LeetCode】165. 比较版本号 : 简单字符串模拟题
【刷穿 LeetCode】165. 比较版本号 : 简单字符串模拟题