信息检索 Information Retrieval

news2024/11/19 5:49:17

信息检索主要是查找与用户查询相关的文档。
给定:大型静态文档集合 和信息需求(基于关键字的查询)
任务:查找所有且仅与查询相关的文档

典型的 IR 系统:
• 搜索一组摘要
• 搜索报纸文章
• 图书馆搜索
• 搜索网络
通常比语言有更多的统计数据,但要检索和处理的对象是语言

信息索引的几个方法

索引是找到很好地描述文档的术语的任务
• 手动:人工索引(使用固定词汇),劳动和培训密集
• 自动:术语操纵(某些单词算作相同的术语),术语加权(某些术语比其他术语更重要),自动从文本提取索引

对于大词汇表的信息索引(数千项)
Dewey Decimal System 杜威十进制系统
Library of Congress Subject Headings 国会图书馆主题词
ACM – subfields of CS
MeSH – Medical Subject Headings

MeSH — Medical Subject Headings 医学主题词,是一个非常大的受控词汇表,用于描述/索引医学文档,例如期刊论文和书籍。提供一些相关的主题词,用于分配给文档以描述其内容,层次结构有许多top-level 类别,例如 Anatomy [A],Organisms [B],Diseases [C],Chemicals and Drugs [D],Analytical, Diagnostic and Therapeutic Techniques and Equipment [E], Psychiatry and Psychology [F], Biological Sciences [G]

MEDLINE — Medical Literature Analysis and Retrieval System Online 在线医学文献分析和检索系统
每篇 MEDLINE 文章都使用 MeSH 中的 10-15 个描述符进行索引

对于手动索引
• 优点:
高精度搜索
适用于封闭式馆藏(图书馆中的书籍)
• 缺点:
搜索者需要了解术语以实现高精度
标签制作者需要接受培训以实现一致性,期望网络上的所有内容创建者都这样做是不可行的
收藏是动态的,因此方案不断变化

自动索引没有预定义的索引术语集,相反会使用自然语言作为索引语言,并且文档中的单词提供有关其内容的信息
自动索引的实现:倒排文件,Google 的 IR 系统就是这么做的
每个术语的记录,它出现的文档的 ID ,只在它出现或不出现时才重要,而不是出现了多少次。
在这里插入图片描述

一些更复杂的版本是
还记录了每个文档中出现的次数,这能帮助查找与查询更相关的文档。
在这里插入图片描述

还记录文档中每个术语出现的位置,可能有助于在文档中搜索短语
在这里插入图片描述

自动信息检索模型

布尔搜索:
用了二元决策比如文档相关与否
术语的存在对于匹配是必要且充分的
布尔运算符是集合运算(AND,OR)

方法:通过使用布尔运算符组合,基本搜索关键字来构建复杂的搜索命令
布尔运算符AND, OR, NOT, BUT, XOR 等
布尔查询为决定是否应返回任何文档提供了一个简单的逻辑基础,参考了两点:查询的基本术语是否出现在文档中其中逻辑运算符的含义
布尔运算符具有有效检索的集合论解释,整体文档集合构成最大文档集

该模型经常被书目搜索引擎,例如图书馆使用
但是对大多数用户不利因为:
大多数用户不熟悉编写布尔查询 → 不自然
大多数用户不想费力地浏览 1000 个未排序的结果列表 → 除非在小集合中进行非常具体的搜索
对于网络搜索影响尤其大 → 大集合文档

排序检索方法
会用到文档术语的频率,并非所有搜索词都必须出现在文档中
比如:
向量空间模型(SMART,Salton 等人,1971 年)
概率模型(OKAPI,Robertson/Sp ̈arck Jones,1976 年)
网络搜索引擎

向量空间模型的文档是高维向量空间中的点,索引中的每个术语都是一个维度。值是文档中术语的频率,或频率的变体。

查询方法,将查询向量与每个文档的向量进行比较
选择文档-查询相似度最高的文档。根据与查询的相似性对文档进行排名。使用排名,返回文档的数量不太相关,用户从顶部开始,在满意时停。

对于不同长度的向量,欧几里得距离值很大,即使只有一个项(例如 Doc2 和 Q),这表示项的频率的影响太大。
除此之外经常会用cosine相似度
在这里插入图片描述

信息检索的预处理

通常只使用单词,但要对它们进行预处理以进行泛化,Tokenisation,Capitalisation,Lemmatisation,Stemming,Normalisation
Tokenisation: 从标点符号中拆分单词(去掉标点符号)
大写:将所有单词标准化为小写(或大写)
词形还原:将一个词的不同变形形式合并为它们的基本形式(单数、现在时、第一人称)
词干提取:通过切断词缀来合并词法变体
规范化:合并因为拼写、连字符、空格出现的一些变体

使用停止列表删除来排除非内容词

为了帮助识别短语,可能允许使用多词术语,或者允许多词索引。备选方案:在检索过程中识别多词短语位置索引,在文档中存储术语的位置。

词权重

二进制权重 - 0/1:文档中是否存在术语,但是多次出现查询关键字的文档可能更相关

document collection D collection (set) of documents 文档集
size of collection |D| total number of documents in collection 集合中的文档总数
term freq tfw ,d number of times w occurs in document d w 在文档 d 中出现的次数
collection freq cfw number of times w occurs in collection w 在集合中出现的次数
document freq dfw number of documents containing w 包含 w 的文档数
信息量与(文档)频率成反比,不太常见的术语对查找相关文档更有用的想法
计算方法为 size of collection / term freq
Inverse document frequency (idf) 是log(size of collection / term freq)

tf.idf是tfw ,d · idfw ,D
在这里插入图片描述

在这里插入图片描述
cos(Q, D1) = (19.2 ∗ 56.4) + (34.5 ∗ 122.4) + · · · + (0 ∗ 0) + (0 ∗ 344.2)/(41.9 ∗ 622.9)
= 5305.68/26071.72 = 0.20
cos(Q, D2) = (19.2 ∗ 112.2) + (34.5 ∗ 0) + · · · + (0.0 ∗ 452.2) + (0.0 ∗ 0.0)/(41.9 ∗ 467.5)
= 2583.8/19570.0 = 0.13
所以文档 D1 比 D2 更类似于 Q

Page rank 算法

利用链接结构:PageRank 算法
• 利用网页链接结构的关键方法:
PageRank 算法以其发明者的名字命名:Larry Page(Google 的联合创始人)为网络上的每个页面分配一个分数:
它的 PageRank 分数 • 可以看出代表页面的权威(或质量)
• 关键思想:
从页面 A 到页面 B 的链接赋予 B 权威 赋予 B 多少权威取决于A 的权威(PageRank 得分)及其出局数外链,即 A 的权限在其外链之间共享 ,此度量是递归定义的,即任何页面的分数取决于所有其他页面的分数
PageRank 分数有另一种解释:随机冲浪者访问该页面的概率
从一个随机页面开始,向前点击随机选择的链接,然后(感到无聊)跳转到一个新的随机页面,等等以此类推

在检索过程中,文档d 的排名得分是以下各项的加权组合:
它的 PageRank 得分:衡量其权威性的指标
它的 IR-Score:d 与查询 q 的匹配程度,基于向量空间模型、TF.IDF、重要术语的加权等

性能评估

使用预先创建的基准测试语料库(又名黄金标准数据集)比较性能,提供:
• 一组标准的文档和查询
• 人类受试者会判断与每个查询相关的文档列表
• 相关分数,通常被视为二进制

recall : proportion of relevant documents returned
Precision: proportion of retrieved documents that are relevant
Precision 和 Recall 解决了检索 retrieved和 relevant文件集的的关系
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

F-measure 是调和平均值:比算术平均值更能惩罚一个值的低性能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/106966.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

毕业后,我已经离开机械行业转行码农一年多了......

背景 鄙人本科毕业两年有余,机械工程专业,我已经离开机械行业转行码农一年多了。 如果有正在学习的,退学还是千万不要,不过能换专业就换专业,不能换就往机电一体化靠,加上自学编程,以后做嵌入…

计算机毕设Python+Vue野生动物保护资讯管理系统(程序+LW+部署)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

STM32的ST-link调试下载

调试原理 STM32F-10X使用M3内核,该内核支持复杂的同i傲视操作,硬件调试模块允许在取指令(指令单步运行)或访问数据(数据断电时)使得内核停止。在内核停止时,内核状态都可被查询,完成…

范登堡(van den berg)CPT使用记录

前段时间的CPT外业所使用的设备是范登堡的井下式或者说交互式的静力触探仪(CPT),型号是WISON-APB,下面是官网提供的照片。根据官网的介绍,它的探测工具分为三种,分别50KN(3m)、100KN…

KVM部署操作-尚文网络xUP楠哥

~~全文共1250字,阅读需约5分钟。 进Q群11372462,领取专属报名福利! # 安装KVM先决条件 KVM 需要有 CPU 的支持(Intel VT 或 AMD SVM),在安装 KVM 之前检查一下 CPU 是否提供了虚拟技术的支持。 基于 Intel 处理器的…

Qt之使用CQU库快速开发统一风格界面

在使用Qt开发时,肯定是想让开发的项目界面统一风格;不希望每个界面都要程序员用代码去修饰美化以及进行事件处理等等,这样非常繁琐,容易出错而且没有格调;所以我就开发一个动态链接库,封装统一的风格界面、…

尚医通-前端Vue学习(九)

(1)vscode的安装及使用 (2)前端知识-ES6语法知识点 (3)Vue-入门 (4) Vue的生命周期 (5)Vue-Axios的使用 (6)ElemmentUI介绍 &…

Java项目:SpringBoot课程在线学习系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 采用SpringBootSpringMybatisThyeleaf实现的在线学习系统,一共2个角色:管理员与学生。 管理员角色功能: 登录…

Unreal Engine中的Actor:理解、生成与消亡

目录 谈谈Actor 生成(实例化)Acotr StaticClass/UClass:类模板/类的快照 Actor的生命周期 Actor的消亡 Destroy:标记删除 SetLifeSpan:设置存活时间 Destroyed:消亡Actor的通知 EndPlay&#xff1…

chatGPT对接微信

代码地址: https://github.com/jeffcail/go-wecaht-bot 喜欢的帅锅美女可以点个star哦😊 背景 玩一玩chatGPT。只因GPT你太美~~~ wechat SDK go get github.com/eatmoreapple/openwechat实现功能 自动通过好友申请用户私聊回…

我的转行之路

我一直想为自己没有继续从事编程,而转到铁路行业找一个合理的理由,来掩饰我的愚蠢。我日思夜想终于找到了更合理更有说服力的理由,十个字,目光的短浅,认知的缺乏。 那个时候,只被一毕业就能拿到不错的工资…

Python还有发展前景吗?现在该怎么去学习?

从2008年开始Python就突然火了起来,腾讯最近组织了一个大型Python技术交流峰会,由此可见Python现在已经到了我们不能想象的境界,一切的步伐都要跟着大公司走,腾讯这样级别的公司都这样重视Python技术,可见Python的发展…

什么样的人适合当黑客?

别说我没资格说这些话或是我的话是废话(对你来说是,对别人呢?),我想任何人都有资格尽自己的能力帮助别人. 首先,看到这篇文章,觉得好长,好烦,懒的看,走人… OK,我觉的你不适合做黑客! 07年我考上大学,选择了机械制造及其自动化(数控编程&a…

【linux kernel】linux内核裁剪随想

为什么需要裁剪? 首先,裁剪并不一定是缩小内核镜像的大小,而是移植和适配。内核支持的特性很多,站在项目的角度,不一定全部需要这些特性和功能。这时候就需要将不需要的特性和功能剔除,随着这个过程的进行…

LabVIEW在两台计算机之间传输数据

LabVIEW在两台计算机之间传输数据 有几种网络协议可用于完成此任务。使用正确的网络协议白皮书将完成为应用选择正确协议的任务。它涵盖了控制和监视应用中最常用的通信模型,并根据配置、性能、易用性等推荐最适合每种情况的网络协议。 参考的白皮书重点介绍了三种…

【MAX7800与ESP8266mcu通讯关键字控制】

【MAX7800与ESP8266mcu通讯关键字控制】 1. 前言2. 实验条件2.1 硬件条件2.2 软件条件3. 程序编写3.1 ESP8266程序解剖3.2 MAX7800程序解剖4. 实验效果4.1 esp8266打印如下4.2 max7800打印如下5. 小结1. 前言 前期搭好MAX7800 的eclipse和ESP82666的Arduino开发环境,现在开始…

98.第十九章 MySQL数据库 -- MySQL数据库架构、存储引擎、服务器配置和状态(八)

4.MySQL架构和性能优化 MySQL是C/S 架构的,connectors是连接器;可供Native C API、JDBC、ODBC、NET、PHP、Perl、 Python、Ruby、Cobol等连接mysql;ODBC叫开放数据库(系统)互联,open database connection; JDBC是主要用于java语言利用较为底层的驱动连接数据库;以上这…

[网络工程师]-VLAN

1、VLAN基础 虚拟局域网(Virtual Local Area Network,VLAN)是一种将局域网设备从逻辑上划分成一个个网段,从而实现虚拟工作组的数据交换技术。VLAN技术主要应用在三层交换机中。 VLAN是基于物理网络构建的逻辑子网,所以…

Java项目:springboot在线选课系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 后端技术包含springbootmybatisspring securitymysqlredis 前端技术包含 semanticUI thymeleaf模板引擎 使用教程 1. 下载项目之后 等待ma…

网络存储ISCSI实战

一、网络存储 目前应用最为广泛的两种数据存储设备:NAS与SAN 1、NAS NAS的全称是Network-attached storage,即网络附加存储,并不需要单独的网络用于存储IO,更适用于中小型的存储解决方案。 NAS设备通常是一个完整的服务器架构…