IR学习笔记 #01 概论&布尔模型

本文最后更新于:2022年11月28日 下午

该笔记是本人于哈尔滨工业大学(深圳)2021 年夏季学期「信息检索」课程的笔记,授课教师为 陈清财 教授。姑且算是一门 NLP 入门课程。

概论 | Overview

What’s Information Retrieval?

Indexing, retrieving, and organizing text by probabilistic or statistical.

Comparing IR to Databases:

DatabasesIR
DataStructuredUnstructured
FieldsClear semanticsNo fields
QueriesDefined(SQL)Free text (自然语言) + Boolean
RecoverabilityCriticalDownplayed
MatchingExactImprecise (need to measure)

信息检索的基本方法 | Basic Approach to IR

大多数成功的方法都是基于概论统计,而不是自然语言理解。因为自然语言在缺少约束的状态(unrestricted domains)下具有极大不确定性,而人工标注又十分昂贵。

统计方法的核心思想:Relevant (相关) Items are Similar (相似). Usually look for documents matching query words.

The similarity can be measured by:

  • String matching/comparison (字符串匹配)
  • Same vocabulary (词汇)
  • Probability that documents arise from same model (文档出现概率)
  • Same meaning of text (语义) -- Hard to achieve

词袋 | “Bag of Words”

Compares words without regard to order.

Stop word (停用词):屏蔽对文章分类无效的高频词。

基础检索模型 | Retrieval Models

检索模型:建立在 Doc 和 Query 之间的模型,用于描述相似性、排序相似性。

检索变量:queries (查询), documents (文档), terms (术语), relevance judgments (相关性判别)。

Exact vs. Best Match

精确匹配:二值 (0/1) 匹配,检索结果无序,可以用 boolean queries (布尔查询)、proximity operators (邻接算子)、simple regular expressions (正则表达式)。对文档量级有限制。

最佳匹配:相似度 (0~1) 匹配,检索结果按照相似度排序。

布尔模型 | Boolean Retrieval

一种最常见的精确匹配模型,通常结果是无序呈现(unranked),有的模型会增加简单的排序。

精确匹配模型最直接的想法:线性扫描,从头到尾扫描文档集,对每个文档都查看是否包含关键词。在 Unix/Linux 系统中的文本扫描命令 grep 做的就是这种工作。然而,当需要检索的文档规模非常大时,这种线性扫描的方式的效率会变得非常低下。

如何实现 Boolean Retrieval

需要实现如下的模块:

  • Term-document incidence (词典表): 类似 index (索引) 的文档呈现的形式,一个矩阵中,用 0 和 1 标记文档中出现的 term (词项)。

  • Boolean queries (布尔查询): AND, OR, AND-NOT.

  • Incidence vector (关联向量): 0/1 vector, bitwise AND。

  • Proximity operators (邻接算子): phrases - “”、same sentence - “ /s ”、same paragraph - “/p” 等等。

实现中的要点

在词典表实现中,为了避免矩阵过大,还可以引入 inverted index (倒排索引) 存储矩阵,这里不再赘述。下面介绍两个实现步骤中的概念。

token (词条) vs. term (词项)

对于英文文本而言,词条就是根据空格把单词一个一个地提取出来,把原始文本分割开。词项则是更加统一规范的的词条。

例如在文本中可能出现 “apple”、“apples”、“Apple” 这类 token,但我们知道这几个 token 都是表达苹果(apple)的意思,因此,在构建索引的时候通常会把这几个 token 统一还原为 “apple”,只为 “apple” 建立索引项,那么 “apple” 就是一个 term 了。

Features to Note about Queries

  • Queries are developed incrementally. 查询表达式是可增长的,往往一直增加直到查询出正确结果。
  • Queries are complex. 用到了一定公式,对初学者不友好。
  • Queries are long (av. 9-10 words). 不同于通常的自然语言询问,只需要 1-2 个单词。

IR学习笔记 #01 概论&布尔模型
https://hwcoder.top/IR-Note-1
作者
Wei He
发布于
2021年8月22日
许可协议