文本索引的技术有哪些?
有几种流行的文本检索索引技术,例如倒排索引和签名文件。
倒排索引 − 倒排索引是一种索引结构,它维护两个哈希索引或B+树索引表:document_table 和 term_table,其中 document_table 包含一组文档记录,每个记录包含两个字段:doc_id 和 posting_list,其中 posting_list 是出现在文档中的一系列方法(或指向方法的指针)的列表,根据某种相关性度量排列。
term_table 包含一组术语记录,每个记录包含两个字段:term_id 和 posting_list,其中 posting_list 指定术语出现的记录标识符列表。
它可以查找与给定术语集相关的所有文档。它用于查找与给定文档集相关的所有术语。例如,要查找与一组术语相关的所有文档,我们可以首先在术语表中为每个术语找到一个文档标识符列表,然后将其相交以获得相关记录的集合。
倒排索引广泛应用于市场。它们易于执行。发布列表可能很长,导致存储需求相当大。它们易于实现,但在管理同义词(两个截然不同的词可能有相同的含义)和多义词(一个词可能有几种含义)方面并不令人满意。
签名文件是一个文件,它保存数据库中每个记录的签名数据。每个签名都有一个常数大小为 b 位的定义术语。一个简单的编码设计如下所示。记录签名的每一位都从 0 开始。
如果它定义的术语出现在记录中,则将一位设置为 1。签名 S1 与另一个签名 S2 匹配,如果 S2 中设置的每一位也在 S1 中设置。因为通常术语比可用位多,所以多个术语可以映射到相同的位。
这种多对一的映射使搜索变得昂贵,因为连接查询签名的记录不一定包含查询的关键字集。必须检索、解析、词干化和测试记录。可以通过首先实现频率分析、词干化和过滤停用词,然后利用哈希方法和叠加编码技术将方法列表编码为位表示来进行改进。