首页 > 编程知识 正文

电子信息检索系统,信息检索pdf

时间:2023-05-05 04:32:58 阅读:108258 作者:2486

文章目录1 .受伤裙子简介2 .布尔查询方法2.1 .相关矩阵索引2.2 .转置索引2.2.1 .转置索引简介2.2.2 .转置索引3 .布尔查询处理3.1 .布尔查询转置表中的

1 .受伤裙子简介

对于布尔查询搜索,布尔查询是使用AND、OR或NOT操作符连接单词项的查询。

例如,以下哪一个文档包含搜索请求: Brutus和Caesar,但不包含Calpurnia?

布尔表达式: Brutus AND Caesar AND NOT Calpurnia

2 .布尔索引方法2.1 .相关矩阵索引相对于小规模的文档集,每文档的单词数少,文档数少。 您可以在文档集中创建单词和文档(term-doc )的关系矩阵,如下图所示。

在上图中,各列是关联向量,该向量内的0,1分别表示文件(蓝色)中的词项)是否出现。 同样,每行的0,1表示该单词(褐色)出现在文档(蓝色)中。

有了这样的关联矩阵之后,就可以进行布尔查询了。 返回到前面提到的布尔查询表达式。 Brutus AND Caesar AND NOT Calpurnia,很容易找到。

同时满足Brutus和Caesar且没有Calpurnia的文档为Antony and Cleopatra和Hamlet。

2.2 .倒排索引2.2.1 .倒排索引的概要,很容易看出文档集越大,相关矩阵的实用性就会大幅降低。 假设目前有100万个文档(1M ),每个文档1000个词(1K ),平均每个词有6个字节,则所有文档将占用约6GB的空间。 另外,由于单词数量庞大,相关矩阵的高度变得稀疏,相关矩阵的搜索效率变差。

基于此,提出了通过转置索引来解决相关矩阵问题。 转置是指依存关系矩阵,在依存关系矩阵中,统计一个文件内出现的词项,但该方法稀疏度高(多为0 )。 因此,我们改变想法,统计单词项目出现在了哪个文件中。

首先,将文档名称替换为文档ID,然后按每个单词按照文档ID号从小到大的顺序排列。 示例:

这样创建的索引不是稀疏的,也不需要使用连续的空间存储。

2.2.2 .倒排索引(1) 文本预处理

词条化)

把字符串分成词条。 例如,将“You are welcome .”分成you、are、welcome三个词条。 “John’s”(s怎么处理? “state-of-the-art”是一个还是四个词条? 的问题; 归一化)。

将文档和查询中的单词项目映射到同一格式。 例如,U.S.A .和USA必须视为同一个单词。 词干还原(Stemming )

将同一词汇的不同形式恢复为词根。 例如,authorize、authorization是同一个词根,在检索时全部列出,避免用户在检索时可能发生的记述的不准确; 禁用单词删除(Stopwords removal ) )。

去除the、a、to、of等高频但意义不大的单词。(2) 建立词条序列

简单地说,将预处理后的词条和它们所属的文档一起制作词条,将文档ID组成二元组。

(3) 词条排序

首先用某种方法对词条进行排序。 例如,英语可以按字母顺序排序; 然后,按文档ID对已排序的列表进行排序,使与同一词条对应的ID较小的文档显示在顶部。

(4) 建立词典和倒排记录表

合并多次出现的单词,并记录其出现频率。 然后,按照文档ID从小到大的顺序制作转置记录表,并与词典链接。

现在已经创建了转置索引。

3 .布尔查询的处理3.1 .在布尔查询的转置表中的操作http://www.Sina.com/(brutusandcaesar ) )。

两个转置表的交点http://www.Sina.com/(brutusorcaesar ) )。

两个转置表的并集http://www.Sina.com/(brutusandnotcaesar ) )。

处理两个转置表的减法集3.2. AND查询时考虑实现布尔查询表达式。 Brutus AND Caesar

首先,需要在词典中搜索Brutus和Caesar,并返回两个单词项目的转置表。

然后,为每个转置索引定义一个定位指针,两个指针同时从前到后被扫描,每次比较与当前指针相对应的转置记录,直到检索到一个转置索引为止,为http://www.Sina.com

这样可以很容易地找到符合Brutus AND Caesar标准的文档,例如文档1、文档2和文档4。

OR和NOT一样,只是把表颠倒排列的操作不同。 注意NOT操作

不能简单理解为某一词项的补集,因为补集可能会很大,必须是两个倒排表的减集。

3.3. 布尔查询在倒排表上的优化

有两个简单的优化方法:

倒排表的文档ID升序排列
正如在AND操作中演示的那样,文档ID升序排列可以尽量地提前结束对倒排表的操作,而不需要对两个倒排表从头到尾进行检索。优先处理词频小的词项
在复杂布尔表达式中,例如(tangerine OR trees) AND (marmalade OR skies) AND (kaleidoscope OR eyes),优先合并词频小的词项,生成文档数量少的词项,有利于结合上面的优化方法尽量地提前结束对倒排表的操作。 4. 受伤的裙子的优缺点

优点

构建简单,或许是构建IR系统的一种最简单方式;易被接收,仍是目前最主流的检索方式之一;操作专业化,对于非常清楚想要查什么、能得到什么的用户而言,受伤的裙子是个强有力的检索工具。

缺点

布尔查询构建复杂,不适合普通用户。如果构建不当, 检索结果就会过多或者过少;没有充分利用词项的频率信息;不能对检索结果进行排序。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。