IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 【信息检索导论1】布尔模型 -> 正文阅读

[数据结构与算法]【信息检索导论1】布尔模型

1.Information Retrieval

定义:
Information retrieval (IR) is finding material (usually documents) of an unstructured nature (usually text) that satisfies an information need from within large collections (usually stored on computers).
web search

  • 数量庞大
  • 需要索引
  • 反欺诈
  • 利用超链接

personal information retrieval:

  • eg:Email
  • 分类
  • 垃圾邮件过滤
  • 存储大量类别
  • 维护免费
  • 磁盘空间

enterprise,institutional, and domain-specific search

  • stored on centralized file systems

线性查找:grep

  • 在文本中查某个词足够了,但有其他需求

其他需求:

  • 数据量大而多,快速处理
  • flexible matching operations
  • 排序

布尔模型

  • query:布尔表达式

任务:

  • ad hoc retrieval task.
    • 输入query,输出doc列表(排序后)

评估

  • precision
  • recall

专有名词

  • term:索引的单元,如词、词组、潜在词等
  • document:检索的单位,如网站列表,也可能是某一章节
  • collection或者corpus:doc的集合
  • information need
    • 用户向计算机传递的需求
    • 可能并不精确
  • relevant:如果用户认为包含与其个人信息需求相关的信息

1.1 term-document matrix

在这里插入图片描述
词袋->doc向量:每列一个doc向量,每行一个term向量
query:Brutus AND Caesar AND NOT Calpurnia,
在这里插入图片描述
答案:Antony and Cleopatra and Hamlet
问题

  • 稀疏,词表大难以存储–>倒排索引

1.2 倒排索引

在这里插入图片描述

INVERTED INDEX

  • dictionary(vacabulary):
    • 内存
    • key:term列表,也排序了,也会记录postings的长度(doc freq)
    • value:postings list/postings:排好序的,按doc id,出线相关词的freq,…
  • postings
    • posting记录:docid,term在doc中出现的位置、freq,…
    • 存储:disk
      • 固定长度:不行,浪费
      • linked list:链表,
        • 便于插入,
        • 便于扩展到advanced indexing strategies
          • skip list,需要新的指针
        • 问题:要存储指针
      • 可变数组
        • 顺序存储,遍历快
        • 无需存储指针,指针可以是offset
      • 混合
        • 不变数组的链表

建立:

  • Collect the documents to be indexed:
  • 分词
  • normalized
  • index
    • merge:相同term的相同doc合并
      在这里插入图片描述

1.3 Processing Boolean queries

  1. 得到每个term的postings
  2. OR:则两个表融合,取并集,AND:取交集,转化为AND链接的形式

取交集:(标准方法)
在这里插入图片描述
问题:取交集时,常数复杂度,但这个常数很大
解决:

  • 先按doc freq排序(posting的长度),先合并短的
    • 最终结果的长度不会超过最短的列表
    • 这是保存doc freq.的原因
    • 先算OR,再算AND
      在这里插入图片描述
  • 先算短的,然后保存到中间结果
    • 每次下一个输入与中间结果求交集
    • 问题:不对称
      • 中间结果:内存;下一个输入:disk
      • 但下一个输入可能比中间结果大得多(两个数量级?)
    • 加速合并过程
      • 中间结果的doc在长positng中二分查找合并
      • 长postings采用哈希存储
      • 上述无法用于压缩后的positngs
    • 都是常见词,仍可以用标准法

带中间结果的求交集:
在这里插入图片描述

1.4 对基本布尔操作的扩展和有序检索

布尔检索和有序检索(排序检索模型)对应

布尔检索:

  • query:精确的逻辑表达式
  • 结果:无序
  • 布尔操作符的扩展
    • 邻近操作符:term的距离在文档中接近(中间含有几个词,来表征接近的程度
  • 专业人士更喜欢布尔检索:查询精确,控制力和透明度
    • 排序:按时间。。。

有序检索

  • query:不像逻辑表达式这么精确,采用一个或多个词构建(自由文本查询)
  • 结果:有序

要点

  • term:提供,容忍拼写错误,词语表达不一致(语义相同)
  • 复合词和短语:(Gates Near Microsoft)
  • 相似度:布尔查询仅记录存在与否,但是我们需要得到文档相关的可靠程度
    • 词项频率:term在doc中的频率高,权重高
  • 排序

ad hoc search:

  • 大搜、电商搜索。。。
  • 部分支持布尔操作,专业人士喜欢,大多人用的少
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-05-01 15:57:52  更:2022-05-01 16:00:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:57:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码