回顾: 基于检索的问答系统
复杂度 O(n), n是知识库的大小. 所以必须降低复杂度
倒排表 (Inverted Index)
对句子进行过滤
假设有4个文档
- doc 1: 我们 今天 运动
- doc 2: 我们 昨天 运动
- doc 3: 你们 上 课
- doc 4: 你们 上 什么 课
词典是[我们, 今天, 运动, 昨天, 上, 课, 什么]
倒排表:
- 我们: [doc 1, doc 2]
- 今天: [doc 1]
- 运动: [doc 1, doc 2]
- 昨天: [doc 2]
- 上: [doc 3, doc 4]
- 课: [doc 3, doc 4]
- 什么: [doc 4]
如果用户输入了"运动", 则可以直接返回[doc 1, doc 2]作为候选集合
如果用户输入了"我们 课", 则可以返回[doc 1, doc 2] ∪ \cup ∪ [doc 3, doc 4]
然后再用排序方法对候选文档进行排序
过滤的方法可以进一步改成, 选择至少包含两个关键词的文档