随笔分类 -  信息检索

搜索引擎查询扩展
摘要:查询扩展 查询扩展的动机:提高召回率 问题:考虑查询q: [aircraft],某篇文档d包含“plane”, 但是不包含“aircraft”,显然对于查询q,一个简单的IR系统不会返回文档d,即使d是和q最相关的文档。我们试图改变这种做法:也就是说,我们会返回不包含查询词项的相关文档。 方法:不考虑查询(即与查询无关)及其返回文档情况下对初始查询进行扩展和重构,即进行一次性的全局分析(比如分... 阅读全文

posted @ 2012-09-24 15:00 God bless you 阅读(5236) 评论(0) 推荐(0) 编辑

Lucene的分析过程
摘要:Lucene的分析过程回顾倒排索引的构建收集待建索引的原文档(Document)将原文档传给词条化工具(Tokenizer)进行文本词条化将第二步得到的词条(Token)传给语言分析工具(Linguistic modules)进行语言学预处理,得到词项(Term)将得到的词项(Term)传给索引组件(Indexer),建立倒排索引注:详细文档->倒排索引的理论过程见词项词典及倒排记录表分析操作的使用场景1.如上,倒排索引的构建阶段2.针对自由文本的查询阶段QueryParser parser = new QueryParser(Version.LUCENE_36, field, anal 阅读全文

posted @ 2012-09-19 09:10 God bless you 阅读(3604) 评论(0) 推荐(3) 编辑

一个完整的搜索系统
摘要:一个完整的搜索系统 层次型倒排索引 基于前面非精确top K检索中的胜者表的思路,实际搜索系统可以建立多层索引结构。 基本思路:建立多层索引,每层对应索引词项的重要性 查询处理过程中,从最高层索引开始。如果最高层索引已经返回至少k (比如, k = 100)个结果,那么停止处理并将结果返回给用户。如果结果 < k 篇文档,那么从下一层继续处理,直至索引用完或者返回至少k 个结果为止。 例... 阅读全文

posted @ 2012-09-12 14:10 God bless you 阅读(3981) 评论(6) 推荐(0) 编辑

信息检索笔记(10)-Lucene文档评分机制
摘要:Lucene文档评分机制 再论文档评分中提到可以不对所有文档的评分结果排序而直接选出Top K篇文档 计算出文档的得分以后,最后一步就是选出得分最高的K 篇文档呈现给用户。尽管可以先对上述所有得分进行排序然后再挑选出前K 个结果,但是一个更好的方法是通过某种堆结构只返回头K 篇文档。假定余弦相似度(或某种相似度计算方法)得分非零的文档数目是J,那么建立这样的堆结构需要2J 次比较,对于排名前K ... 阅读全文

posted @ 2012-08-31 12:59 God bless you 阅读(2470) 评论(0) 推荐(1) 编辑

信息检索笔记(9)-再论文档评分
摘要:考虑从文档集的所有文档中找出K 个离查询最近的文档的过程:对每个文档评分(如计算余弦相似度),按照评分高低排序,选出前K个结果。显然对大文档集,评分、排序都是非常耗时的操作,那么如何加速评分及排序呢? 思路1:能否加快每个余弦相似度的计算? 思路2:能否不对所有文档的评分结果排序而直接选出Top K篇文档? 思路3:能否不需要计算所有N篇文档的得分? 快速计算余弦相似度 一般而言,在... 阅读全文

posted @ 2012-08-28 11:33 God bless you 阅读(3420) 评论(1) 推荐(3) 编辑

信息检索导论学习笔记(8)-向量空间模型
摘要:向量空间模型 在有了tf-idf权重计算之后,一个自然的数学建模的想法是:tf-idf权重矩阵 向量空间模型 把文档看成是一个向量(vector),其中的每个分量都对应词典中的一个词项,分量值为采用tf-idf计算出的权重值。当某词项在文档中没有出现时,其对应的分量值为0。 于是,我们有一个|V|维实值空间,空间的每一维都对应词项(V为词项数目)。 对于Web搜索引擎,空间可能会上千... 阅读全文

posted @ 2012-08-23 11:09 God bless you 阅读(4159) 评论(0) 推荐(0) 编辑

信息检索导论学习笔记(7)-文档评分、词项权重计算
摘要:文档评分、词项权重计算 迄今为止,我们介绍了支持布尔查询的索引处理办法,给定一个布尔查询,一篇文档要么满足查询的要求要么不满足(布尔查询是一种非黑即白的处理方式)。因此对布尔查询常常会导致过少(=0)或者过多(>1000)的结果。因此要对搜索结果进行排序,那么如何设计排序算法呢? 集合重合度 对查询进行数学建模,采用jaccard系数计算两个集合重合度的,根据jaccard系数对搜索结果进行排序... 阅读全文

posted @ 2012-08-20 16:18 God bless you 阅读(3921) 评论(0) 推荐(1) 编辑

信息检索导论学习笔记(6)-索引压缩
摘要:索引压缩为什么要压缩?增加内存存储内容, 增加高速缓存(caching)技术的利用率(加快速度)加快从磁盘到内存的数据传输速度 (同样加快速度)。(读压缩数据到内存+在内存中解压)比直接读入未压缩数据要快很多。(前提: 解压速度要很快)减少磁盘空间 (节省开销)词典压缩:词典压缩的主要动机: 使之能够尽量放入内存中倒排记录表压缩:倒排记录表压缩的主要动机: 减少磁盘存储空间,减少从磁盘读入内存的时间注意: 大型搜索引擎将相当比例的倒排记录表都放入内存有损(Lossy) vs 无损(Lossless)压缩有损压缩: 丢弃一些信息。前面讲到的很多常用的预处理步骤可以看成是有损压缩:统一小写,去除停 阅读全文

posted @ 2012-08-17 17:04 God bless you 阅读(3858) 评论(3) 推荐(0) 编辑

信息检索导论学习笔记(5)
摘要:参数化索引及域索引 迄今为止,我们都将文档看成一系列词项的序列。实际上,大多数文档都具有额外的结构信息。数字文档通常会把与之相关的元数据(metadata)以机读的方式一起编码。所谓元数据,指的是和文档有关的一些特定形式的数据,比如文档的作者、标题以及出版日期等等。 问题:考虑查询“ 寻找由 William Shakespeare于 1601年撰写、其中包含短语 alas poor Yoric... 阅读全文

posted @ 2012-08-17 10:14 God bless you 阅读(1822) 评论(0) 推荐(0) 编辑

信息检索导论学习笔记(4)
摘要:索引构建 回顾倒排索引的构建,首先,我们扫描一遍文档集合得到所有的词项—文档 ID 对。然后,我们以词项为主键、文档 ID 为次键进行排序。最后,将每个词项的文档 ID组织成倒排记录表, 并计算诸如词项频率或者文档频率的统计量。对于小规模文档集来说,上述过程均可在内存中完成。对于大规模文档集,由于内存不足,我们必须使用基于磁盘的外部排序算法(external sorting algorithm... 阅读全文

posted @ 2012-08-15 16:30 God bless you 阅读(4145) 评论(0) 推荐(1) 编辑

信息检索导论学习笔记(3)
摘要:词典及容错式检索 如上图,倒排索引记录表构建好后。对于查询请求“solr”,我们的首要任务是确定查询词项solr是否在词典的词项词汇表中,如果在,则返回该词项对应的倒排记录表的指针。如何在数据结构(即词典)中快速定位词项? 词典(即存储词项词汇表的数据结构) 快速定位词项主要有两大类解决方案 哈希表方式 每个词项通过哈希函数映射成一个整数,映射函数的目标空间需要足够大,以减少哈希结果... 阅读全文

posted @ 2012-08-13 12:48 God bless you 阅读(4171) 评论(3) 推荐(0) 编辑

信息检索导论学习笔记(2)
摘要:词项词典及倒排记录表回顾倒排索引的构建收集待建索引的原文档(Document)将原文档传给词条化工具(Tokenizer)进行文本词条化将第二步得到的词条(Token)传给语言分析工具(Linguistic modules)进行语言学预处理,得到词项(Term)将得到的词项(Term)传给索引组件(Indexer),建立倒排索引文档文档分析以及编码转换语言识别、编码方式识别、文件格式等处理,得到字符序列。如何确定索引的单位? 合理组织“索引粒度”,确定文档单位注:语言识别和编码识别,理论上都可以看成是分类问题,基于分类方法进行处理。但实际中,常采用启发式方法词条化定义好文档单位之后,词条化是将 阅读全文

posted @ 2012-08-10 15:46 God bless you 阅读(4692) 评论(0) 推荐(0) 编辑

信息检索导论学习笔记(1)
摘要:布尔检索 信息检索概述 信息检索:是从大规模非结构化数据(通常是文本)的集合(通常保存在计算机上)中找出满足用户信息需求的资料(通常是文档)的过程。 Information Retrieval (IR) is finding material (usually documents) of an unstructured nature (usually text) that satisfies ... 阅读全文

posted @ 2012-08-10 15:35 God bless you 阅读(3869) 评论(1) 推荐(3) 编辑

导航