自然语言处理(NLP)

『IR 信息检索入门必看』#1 概论&布尔模型(简明)

2021-10-13  本文已影响0人  Hwcoder

访问博客查看 本文 最新内容,排版更美观ヾ(•ω•`)o 如有错误欢迎指出~

IR 信息检索系列笔记:

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

概论 | Overview

What’s Information Retrieval?

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

Comparing IR to Databases:

Databases IR
Data Structured Unstructured
Fields Clear semantics No fields
Queries Defined(SQL) Free text (自然语言) + Boolean
Recoverability Critical Downplayed
Matching Exact Imprecise (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:

词袋 | “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

需要实现如下的模块:

实现中的要点

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

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

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

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

Features to Note about Queries

上一篇 下一篇

猜你喜欢

热点阅读