【信息检索】简易搜索引擎基本原理及实现
文章平均质量分 93
介绍有关信息检索的内容,简易搜索引擎基本原理及实现,代码用Java编写
频率coo
seu计算机
展开
-
【信息检索】Java简易搜索引擎原理及实现(一)建立倒排索引
什么是倒排索引?在搜索引擎中每个文件都对应一个文件ID,文件内容被表示为一系列关键词的集合(实际上在搜索引擎索引库中,关键词也已经转换为关键词ID)。例如“文档1”经过分词,提取了20个关键词,每个关键词都会记录它在文档中的出现次数和出现位置。得到正向索引的结构如下:“文档1”的ID > 单词1:出现次数,出现位置列表;单词2:出现次数,出现位置列表;……“文档2”的ID > ...原创 2019-05-14 10:58:46 · 5272 阅读 · 4 评论 -
【信息检索】Java简易搜索引擎原理及实现(二)新增停用词表 + 查询处理
实现步骤1)新增停用词表(stop word):常指介词、代词、冠词,剔除倒排索引结构的字典中的停用词。2)基本布尔操作基本算法:2 组/6 个基本操作算法,即:2-way Merge: AND(p1,p2), OR(p1,p2), ANDNOT(p1,p2)m-way Merge: AND(<p1,p2,…,pn>), OR(<p1,p2,…,pn>), AN...原创 2019-05-15 13:26:54 · 1583 阅读 · 0 评论 -
【信息检索】Java简易搜索引擎原理及实现(三)B+树索引和轮排索引结构
目标:支持通配符查询在原有字典的基础上,扩展索引结构,实现支持通配符查询。建立轮排索引(Permuterm Index)和 B+树索引结构通配符查询原理比如查询语句 mon*:找出所有以mon开头的单词。如果采用树(或者B-树)结构词典,我们可以很容易的解决,只需要查询范围在mon ≤ w < moo的所有单词就ok了。但是查询语句 *mon:找出所有以mon结尾的单词就比较困难了...原创 2019-05-29 13:10:39 · 6667 阅读 · 0 评论 -
【信息检索】Java简易搜索引擎原理及实现(四)利用布尔模型和向量模型计算权值
本篇主要是掌握和测试布尔模型和向量模型在信息检索中应用的基本方法,计算出一些参数值,辅助搜索引擎去对最终各查询结果计算权值,排序。首先介绍几个概念:1. df(document frequency):总文档中包含每个 term 的文档数2. tf(term frequency):每个 term 在每个文档中词频数3. wf(weighting term frequency):根据 tf 计...原创 2019-05-29 18:02:30 · 1617 阅读 · 0 评论 -
【信息检索】Java简易搜索引擎原理及实现(五)计算查询与文档相似度 + 搜索界面开发 + 服务器快速搭建
在上一篇文章中,我们已经计算出了最终数据呈现所需使用到的大部分数据,本篇我们将完成最后一步:对查询词进行预处理,并计算出查询词与相关文档的相似度,将文档按相似度由高到低排序。同时,完成搜索界面开发和服务器快速搭建的工作。1.计算查询与文档相似度(1)查询词预处理我们在第三篇文章中,构建出了轮排 加上 B+树的索引结构,本次的查询就是基于该结构开展的,因此我们需要首先获取到构建好的B+树。在...原创 2019-05-30 09:44:43 · 1436 阅读 · 0 评论