首先问顾一下构建倒排索引的几个主要步骤:
()收集待建索引的文档:
(2) 对这些文档中的文本进行词条化
(3)对第2步产生的词条进行语言学预处理得到词项
(4)根据词项对所有文档建立索引。
本章首先定义文档的基本组成单位并介绍在文档中确定这些单涉及到的主要的语言学相见2 1节)。接着我]将详细讨论在词条化和语言学预处理过程中所大问题通过词条化和语言学预处理可以确定系统所用的词项词典(参见22)。所谓训条化(okizio)指的是将原始的字符流转模成个个词条(oken) 的过程。而语言学顾处理的上要目的在于建立词条的等价类其中每个等价类对应一个词项这些词项最终用于建立文档的索引。构建索引的过程主要在第1章和第4章介绍本京暂不详述。本章最后讨论倒排记录表的具体实现可题。2 3节考察了一个扩展的带跳表倒排记录表数据结构该结构能够支持查询的快速处理。2.4节主要介绍适合于处理短语查询和邻近查询的索引结构这些查询在支持扩展布尔操作的检索系统和Web搜索系统中的使用十分普遍。
2.1文档分析及编码转换
2 1.1字符序列的生成
作为索引构建过程的输人数字文档一般由文件中或者Web服务器上的一系列字节组成。
因此文档处理的第一步往往是将这些字节序列转换成线性的字符序列。对于ASCI编码的纯英文文本来说处理起来似平并非难事。然而、实际中往往会遇到非常复杂的情况。比如字符序列可能采用各种单字节或者多字节编码方式(比如Unicode中的UTF-8编码)也可能采用不同国家、不同厂家的特定编码方式。因此为了实现从字节序列到字符序列的转换首先要正确地判断出文档的编码方式。可以将该判断过程看成是一个基于机器学习的分类问题“(我们将在第13 章讨论) 来处理但在实际中往往通过启发式方法来实现也可以利用文档的元信息或者直接由用户手工选择来确定。确定编码方式后我们就可以将字节序列转换成字符序列在此过程中还应该保存编码信息因为该信息有时能帮助确定文档的语言种类。
分类器是个将具有同种属性的对象归人一个或多个类别的的数它往往通过机器学习方法(如慨率方法) 来实现当然它也可以通过人工编写的规则来实现。