【信息检索与数据挖掘】期末笔记(一)

news2024/11/23 10:58:39

文章目录

  • 什么是信息检索
  • 词项-文档矩阵
  • 倒排索引
      • 构建过程
      • 前三步
      • 最后一步
  • 布尔检索模型
      • 布尔查询的处理
      • 查询优化
  • 如何存储词典
      • 哈希表
  • 有序检索模型
  • 对基本布尔操作的扩展
      • 短语查询和位置索引
      • 短语查询
        • 第一个解决方案
        • 第二个解决方案
  • 更快的索引表合并

什么是信息检索

信息检索是从大规模非结构化数据的集合中找出满足用户信息需求的资料的过程

按照处理数据的规模进行区分

  • 以Web搜索为代表的大规模级别
  • 面向企业和特定领域搜索等的中等规模
  • 个人信息检索等小规模

一些基本概念

  • 文档:指的是信息检索系统的检索对象
  • 文档集 / 语料库:由所有文档组成
  • 信息需求:指的是用户想查找的信息主题,和查询不同

词项-文档矩阵

线性扫描是一种最简单的计算机文档检索方式,但有些情况下线性扫描不适用

  • 大规模文档集条件下的快速查找
  • 需要更灵活的匹配方式 :Romans NEAR countrymen
  • 需要对结果进行排序

解决:构建词项-文档关联矩阵,词项是索引的单位

在这里插入图片描述

问题:数据量大的时候,不适用

  • 数据量大的时候,关联矩阵的内存巨大
  • 稀疏矩阵

在这里插入图片描述

显然,只记录原始矩阵中1的位置的表示放大比词项-文档矩阵更好。由此引出倒排索引。

倒排索引

  • 每个词项都有一个记录出现该词项的所有文档的列表
  • 表中的每个元素被称为倒排记录(posting)
  • 每个词项对应的整个表称为倒排记录表 / 倒排表(posting list)(按文档id从小到大排序
  • 所有词项的倒排表一起构成全体倒排记录表(postings)

在这里插入图片描述

构建过程

  • 收集文档
  • 词条化:将每篇文档转换成一个个词条(token)的列表
  • 归一化:进行语言学预处理,产生归一化的词条来作为词项
  • 建立倒排索引(一部词典和一个全体倒排记录表)
    • 词典放在内存中
    • 全体倒排记录表太大,放在磁盘中

在这里插入图片描述

前三步

在这里插入图片描述

最后一步

  • 得到了归一化的词条表

在这里插入图片描述

  • 将列表按照词项的字母顺序排序(建立索引中最核心的步骤

在这里插入图片描述

  • 最后结果:词典 + 倒排记录表

在这里插入图片描述

  • 词典中存储词项,文档频率,指向倒排索引表的指针
  • 存储:倒排记录表可以用单链表或变长数组,或混合

布尔检索模型

布尔检索模型接受布尔表达式,即通过 and or not等逻辑操作符将词项连接起来的查询。每篇文档只被看成是一系列词的集合

在这里插入图片描述

布尔检索的问题:

  • 一个普遍问题就是,用 A N D AND AND 操作符产生的结果正确率高但是召回率低。用 O R OR OR操作符召回率高但是正确率低

布尔查询的处理

通过具有精准语义的逻辑表达式再来构建查询,得到的是无序的结果集

  • 考虑简单的 “与” 查询

    • 首先在词典中定位一次词,然后返回其倒排索引表

    在这里插入图片描述

    • 合并操作使用双指针,需要 O(x + y) 次操作,时间复杂度为 O(N) , N 是文档集合中文档的数目

      在这里插入图片描述

查询优化

  • 概念:指的是如何通过组织查询的处理过程来使处理工作量最小

在这里插入图片描述

  • 按照词项的文档频率(倒排索引表的长度)从小到大依次处理:因为中间结果的长度不会超过最短的倒排记录表

    • 添加文档频率可以决定访问次序

    在这里插入图片描述

如何存储词典

我们在进行查询的时候,首要任务是确定每个查询词项是否在词汇表中,如果在,则返回该词项对应的倒排记录表的指针

词汇表的查找操作采用称为字典的数据结构,有两大类解决方案:哈希表方式搜索树方式

哈希表

  • 每个词项通过哈希函数(自己设计的)映射成一个整数

  • 优点:查询速度很快

  • 缺点:

    • 无法处理轻微变形和前缀式查询
    • 失效快

    在这里插入图片描述

  • B树

    • 类似于平衡二叉树(任何节点两棵子树下的词项数目要么相等要么差1)

    • root区分词的开头,分为 a – m 和 a – z

    • 子孩子节点区分词的开头,将以 a – hu 开头和以 ht – m 开头的词分开 ⋯ ⋯ \cdots \cdots

      在这里插入图片描述

    • 每个内部节点的子节点数目在区间[a , b]内取值(放宽平衡的条件)

      在这里插入图片描述

  • 优点:解决了前缀问题(查询以 xxx 为开头的词)

  • 缺点:

    • 查询速度不如哈希快
    • 需要平衡数,平衡很费力
    • 但是B树减轻了这个问题

    在这里插入图片描述

有序检索模型

  • 和布尔检索模型相对
    • 不通过具有精准语义的逻辑表达式再来构建查询
    • 采用一个或多个词来构成自由文本查询
    • 要能够确定哪篇文档最能满足用户需求

对基本布尔操作的扩展

短语查询和位置索引

短语查询

在这里插入图片描述

第一个解决方案

  • 双词索引:将连续的两个词都作为短语

    在这里插入图片描述

  • 长短语索引:拆分成双词索引

    • 可能出现的问题:出现false positive的情况,即有些文档不含有这个短语,我们也返回了
      • 确实含有这三个biword,但是不是拼在一起的,可能是不同位置的

    在这里插入图片描述

  • 双词索引的问题

    在这里插入图片描述

第二个解决方案

  • 位置信息索引:在索引表中记录每个 term 出现的位置

    在这里插入图片描述

    在这里插入图片描述

    • 缺点:位置信息索引极大地增加了索引表的存储空间。

      • 即使如此,由于其强大的短语索引和邻近查询功能,该方法被广泛应用
    • 应用:短语索引和邻近查询

      • 邻近查询

        在这里插入图片描述

        • 这里可以用位置信息索引的方法,但是双词索引的方法就不适用了

更快的索引表合并

  • Skip pointers

    • 对于一个长度为 L L L 的索引表,可以选择设置 L \sqrt{L} L 个skip pointers

    在这里插入图片描述

在这里插入图片描述

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

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

相关文章

nuxt3:我们开始吧!

一、背景介绍 2022 年 11 月 16 日,全球最大的 Nuxt 会议 Nuxt Nation 2022 在线举行,并正式发布了 Nuxt.js 3.0 的第一个稳定版本。Nuxt 3 是基于 Vite、Vue3 和 Nitro 的 Nuxt 框架的现代重写,具有一流的 Typescript 支持,是两…

深入浅出的给大家分析下现在做抖音短视频还来得及吗?

2500字,需要一些耐心用心读完,让自己对于未来更清晰一些! 大家好,我是我赢助手短视频运营,专注于短视频运营和创作;今天给大家分享下现在还来得及做短视频吗?深入浅出的给大家分析下这个问题。…

加缪——人生到底有什么意义?生命的意义就是生命本身

核心问题:人生到底有什么意义?如果人生没有意义,那么人是否应该自杀? 如果不是,那么人要以什么样的态度活着? 目录 一、《局外人》 二、名言 三、「个人感悟」对活着意义的幡然醒悟 四、《西西弗神话》…

SpringBoot+Vue实现前后端分离的校园健康检测管理系统

文末获取源码 开发语言:Java 使用框架:spring boot 前端技术:JavaScript、Vue.js 、css3 开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code 数据库:MySQL 5.7/8.0 数据库管理工具:phpstudy/Navicat JD…

整合Druid数据源

1.数据库连接池简介 数据库连接池是个容器,负责分配、管理数据库连接(Connection)。它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个; 释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。…

如何构建 API 生态促进企业上下游合作

构建 API 生态是互联网趋势 技术变革推动API数量爆发式增长 互联网在这10多年里,已经经历了多次的技术变革: 2010年以前,还是比较传统的开发模式。单体架构,自己开发大部分的代码,只有少量边缘业务会使用开源的项目代…

二肽Ile-Ala,24787-73-3,H2N-IA-OH

Forms nanotubes as its retroanalog H-Ala-Ile-OH 形成纳米管作为它的反模拟h - ala - il - oh。 编号: 196850中文名称: 二肽Ile-Ala英文名: Ile-AlaCAS号: 24787-73-3单字母: H2N-IA-OH三字母: H2N-Ile-Ala-COOH氨基酸个数: 2分子式: C9H18N2O3平均分子量: 202.25精确分子量…

PyCharm安装教程

PyCharm安装教程第一阶段:安装python第二阶段:安装pycharm第三阶段:新建python项目安装包链接:链接:https://pan.baidu.com/s/1JIbdnhupYLVHK6Q_fzNCcw?pwddvzo 提取码:dvzo 第一阶段:安装pyt…

2022CTF培训(四)花指令字符串混淆入门

附件下载链接 花指令 花指令的介绍 花指令(JunkCode)指的是使用一些技巧将代码复杂化,使人难以阅读的技术。广义上花指令与代码混淆(ObfusedCode)同义,包括结构混淆、分支混淆、语句膨胀等等 狭义上指的主要是干扰反汇编解析的技术。 花指令的原理 …

Sentinel规则持久化到Nacos教程

环境: 1、sentinel版本:1.8.6,下载地址:https://github.com/alibaba/Sentinel/releases/tag/1.8.6 2、nacos版本:2.1.2,下载地址:https://github.com/alibaba/nacos/releases 3、JDK版本&#x…

欧洲航天局(ESA)< ESA WorldCover 10m 2020 > 介绍

欧洲航天局&#xff08;ESA&#xff09;< ESA WorldCover 10m 2020 > 产品基于 Sentinel-1 和 Sentinel-2 数据提供了一种新的全球地表覆盖产品&#xff0c;分辨率为 10 米&#xff0c;时间为 2020 年。 该产品是在欧空局世界覆盖项目 < ESA WorldCover Project >的…

1. 认识复杂度和简单排序算法

1. 认识复杂度和简单排序算法 常数时间的操作&#xff0c;一个操作如果和样本的数据量没有关系&#xff0c;每次都是固定时间内完成的操作&#xff0c;叫做常数操作。 例子: int a arr[i];时间复杂度为一个算法流程中&#xff0c;常数操作数量的一个指标。常用O(读作big O)来…

基于随机森林、svm、CNN机器学习的风控欺诈识别模型

在信息爆炸时代&#xff0c;“信用”已成为越来越重要的无形财产。 ”数据风控“的实际意义是用DT&#xff08;Data Technology&#xff09;识别欺诈&#xff0c;将欺诈防患于未然&#xff0c;然后净化信用体系。 最近我们被客户要求撰写关于风控欺诈识别模型的研究报告&#x…

JavaScript基础语法(输出语句)

JavaScript基础语法&#xff08;输出语句&#xff09; 1.书写规范 区分大小写&#xff1a;与 Java 一样&#xff0c;变量名、函数名以及其他一切东西都是区分大小写的 每行结尾的分号可有可无 如果一行上写多个语句时&#xff0c;必须加分号用来区分多个语句。 注释 单行注释…

C++【IO流】

文章目录一、C语言的输入和输出二、C中的IO流自动类型识别scanf和cin等输入&#xff0c;都是通过空格或者换行分隔开来的多行测试用例如何写输入三、文件流ifstream读取文件读取文件中不同类型的数据一、C语言的输入和输出 C语言中我们用到的最频繁的输入输出方式就是scanf ()…

【附源码】计算机毕业设计JAVA政府采购线上招投标平台

【附源码】计算机毕业设计JAVA政府采购线上招投标平台 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; JA…

SBT20100VDC-ASEMI超低压降、低功耗肖特基SBT20100VDC

编辑-Z SBT20100VDC在TO-263封装里采用的2个芯片&#xff0c;其尺寸都是87MIL&#xff0c;是一款超低压降 低功耗肖特基二极管。SBT20100VDC的浪涌电流Ifsm为180A&#xff0c;漏电流(Ir)为6uA&#xff0c;其工作时耐温度范围为-65~150摄氏度。SBT20100VDC采用金属硅芯片材质&a…

电磁仿真设计RMxprt-6p72s电励磁凸极同步电机分析案例

作者 | 电机设计青年 仿真秀专栏作者 导读&#xff1a;大家好&#xff0c;我是仿真秀专栏作者——电机设计青年&#xff0c;曾担任ANSYS低频电磁工程师一职&#xff0c;后入职电机企业&#xff0c;一直从事电机产品研发工作。研究的电机类型涉及电励磁同步电机、永磁同步电机、…

力扣 889. 根据前序和后序遍历构造二叉树

题目 给定两个整数数组&#xff0c;preorder 和 postorder &#xff0c;其中 preorder 是一个具有 无重复 值的二叉树的前序遍历&#xff0c;postorder 是同一棵树的后序遍历&#xff0c;重构并返回二叉树。 如果存在多个答案&#xff0c;您可以返回其中 任何 一个。 示例 输…

MQ通道接收端绑定步骤

不同类型的绑定 IBM MQ 支持应用程序可以连接的两种方式&#xff1a; 1.本地绑定&#xff1a;这是当应用程序和队列管理器在同一个操作映像上时。 CHLAUTH 与此类应用程序连接无关。 2. 客户端绑定&#xff1a;这是应用程序和队列管理器使用网络进行通信的时候。 应用程序和队列…