本文由 Gideon(AI)翻译自英文原版。

IIR 第 1.2 节:构建倒排索引的初步尝试

  1. 主要步骤:

    1. 收集待索引的文档

    2. 对文本进行分词,将每个文档转换为词条(token)列表

    3. 进行语言预处理,生成规范化词条列表,即索引项

    4. 通过创建由词典和倒排列表(postings)组成的倒排索引,对每个词项出现的文档进行索引

词典还记录一些统计信息,例如包含每个词项的文档数量。

假设每个文档在首次出现时都被赋予一个唯一的序列号(docID)。索引是每个文档的规范化词条列表,也可以等价地理解为词项与 docID 的配对列表。Screenshot 2019-01-13 22.46.58.png

练习 1.1 [⋆]

为以下文档集合绘制倒排索引(参见图 1.3 示例)。

Doc 1 new home sales top forecasts

Doc 2 home sales rise in july

Doc 3 increase in home sales in july

Doc 4 july new home sales rise

练习 1.2 [⋆]

考虑以下文档:

Doc 1 breakthrough drug for schizophrenia

Doc 2 new schizophrenia drug

Doc 3 new approach for treatment of schizophrenia

Doc 4 new hopes for schizophrenia patients

1. 为该文档集合绘制词项-文档关联矩阵

Brutus −→ 1 → 2 → 4 → 11 → 31 → 45 → 173 → 174

Calpurnia −→ 2 → 31 → 54 → 101

Intersection =⇒ 2 → 31

◮ 图 1.5:对图 1.3 中 Brutus 和 Calpurnia 的倒排列表求交集。

1. 按照图 1.3(第 7 页)的格式,为该文档集合绘制倒排索引表示。

练习 1.3 [⋆]

对于练习 1.2 中的文档集合,以下查询的返回结果是什么:

1. schizophrenia AND drug 1. for AND NOT(drug OR approach)

IIR 第 2 章:词项词表与倒排列表

确定词项词表显然十分重要,同时也需要注意,不同语言会有不同的倒排列表。本章还探讨了字符处理在不同语言之间的差异——不同语言在处理字符时有着截然不同的方式。

IIR 第 3 章:词典与容错检索

搜索结构在此发挥着关键作用,以确保一切正常运转;同时也可以借助算法方法来提升搜索效率。我们可以使用不同的查询方式,并借助索引进行搜索。在检索过程中,拼写可能出错,从而影响搜索效果,因此搜索系统应具备自动纠错或识别用户实际想要搜索的词语或信息的能力。