1. 总述

本章主要介绍一下几个问题:

  • 给定关键词,如何评定包含这些关键词的文档中哪些更重要,即如何给文档进行相关性排序
  • tf-idf算法是什么? 怎样给文档中的词项进行打分?
  • 支配了IR界几十年的空间向量模型是什么?他存在什么缺点?

2. 参数索引及域索引

本节以一个简单的例子介绍如何给文档进行排序。
元数据(metadata):一个文档固定有的字段,并且该字段取值范围是有限的,如文档的创建时间,创建者,文档类型等。
文本域(zone): 一个文档的某些字段,并且该字段的取值范围是无限的,如文档标题,摘要,正文等。
参数索引:根据metadata进行的索引,如图书馆中查找作者是 “白洁” 的书。
域索引:根据zone中的内容进行索引,如查找正文中包含 “白洁” 的作品。或者查找标题中包含有 “阿宾” 的书。
域加权评分:显然,不同域中的词项应该具有不同的权重,如标题中包含 “阿宾” 的文档比正文中包含 “阿宾” 的文档具有更大的可能性是读者想检索的。因此,在这里就可以给每个域设置一个权值(假定有L个域),其权值为 {g1,g2,....,gl}\{g_1, g_2, ...., g_l \}{g1​,g2​,....,gl​},则对于给定关键字,我们可以给一个文档进行评分。其分数为 ∑i=1i=lgi∗si\sum_{i=1}^{i=l} g_i * s_i∑i=1i=l​gi​∗si​. 其中si∈{0,1}s_i \in \{0,1\}si​∈{0,1}表示该关键字是否在对应域中。通过这种方式,我们可以给每个文档进行评分。这种检索方式又被成为排序式布尔索引

3. 词项权重的计算

显然,我们可以更精细化的对文档中包含的词项进行打分,本节介绍通过为文档中的词项赋予权值,来对一个文档进行打分。
词项频率(term frequency): 针对文档而言的表示某词项在某文档中的出现次数,如tft,dtf_{t, d}tft,d​表示词项t在·文档d中出现的次数。
词袋模型(bag of words): 统计文档中各个词项的次数形成一个词项-次数的对应表,用该表表示原文档。忽略了词项之间的顺序,这就就是词袋模型,相当于把所有词项扔到一个袋子里,没有顺序。
文档频率(document frequency): 为了个每个词项规定一个权值,一个直接的想法是出现次数少的权重高。 如果一个词在所有文档中都出现,那么说明该词对于理解文档语义没有太多帮助,如停用词 “的”,反之则说明其属于某些文档特有的词,可以代表文档的含义。出于这种想法,我们统计文档频率dftdf_tdft​,其代表语料库中,包含有词项t的文档数。
逆文档频率(inverse document frequence): 很显然,文档频率越高的词项,其权值应该越低。因此我们定义逆文档频率:idft=logNdftidf_t = log{\frac N {df_t}}idft​=logdft​N​ 来代表词项t的权重。
TF-IDF权重:首先将文档D用词袋模型来表示,然后我们可以对该文档进行评分,对于文档D的词项t,其分数为tft,D∗idfttf_{t,D} * idf_ttft,D​∗idft​, 给定查询Q,假设其包含了L个词{q1,q2...ql}\{q_1,q_2...q_l\}{q1​,q2​...ql​}, 其对于文档d的评分为:
Score(Q,D)=∑t=q1qltft,D∗idftScore(Q, D) = \sum_{t=q_1}^{q_l} tf_{t, D} * idf_t Score(Q,D)=t=q1​∑ql​​tft,D​∗idft​
即对于将询问中包含的词对于该文档的tf-idf权重求和。该式子有直观的理解: 如果一个词项的idf值高(该此项语义信息丰富),并且他在文档D中出现很多次(该文档的典型词汇),那么该文档的tf-idf分数会较大,反之如果该此项的idf值不高,或者出现次数不多,该文档的tf-idf值会相对小。 但是这个式子只考虑了文档的tf-idf值,对于询问中的每个词都平等的对待,但是显然文档中的词汇也具有不同的重要程度。

4. 空间向量模型(Vector space model)

余弦相似度(cosine similarity): 给定两个向量v⃗(d1)\vec{v}_{(d1)}v(d1)​, v⃗(d2)\vec{v}_{(d2)}v(d2)​, 他们的余弦相似度相当于两者归一化之后单位向量的内积。即:
sim(d1,d2)=v⃗(d1)∣v⃗(d1)∣∗v⃗(d2)∣v⃗(d2)∣sim(d_1,d_2) = \frac {\vec{v}_{(d1)}} {|\vec{v}_{(d1)}|} * \frac {\vec{v}_{(d2)}} {|\vec{v}_{(d2)}|} sim(d1​,d2​)=∣v(d1)​∣v(d1)​​∗∣v(d2)​∣v(d2)​​
其中,∣v⃗(d1)∣{|\vec{v}_{(d1)}|}∣v(d1)​∣ 表示向量的欧几里得长度: 对于一个M维的向量{v1(d),...vm(d)}\{\ v_1(d),...v_m(d)\}{ v1​(d),...vm​(d)}而言,其欧几里得长度为∑i=1Mvi2(d)\sqrt{ \sum_{i=1}^M v_i^2(d)}∑i=1M​vi2​(d)​.
向量间的余弦相似度代表着他们之间夹角余弦值的大小。而余弦相似度小也在空间层面上意味着两个向量更加接近。如下图所示:

查询向量与文档向量:我们可以将查询和文档看成两个向量,然后通过计算两者间的余弦相似度来衡量查询Q与文档D之间的相关性。文档或查询向量定义如下: 假设语料库中包含N个词项, 那么文档与查询向量的维数就是N,每一维度对应一个词项。对于某个文档d而言,其向量v⃗(d)\vec v_{(d)}v(d)​的第i维,即代表词项tit_iti​,而其第i维的值v⃗(d)[i]=tfti,d∗idfti\vec v_{(d)}[i] = tf_{t_i,d}*idf_{t_i}v(d)​[i]=tfti​,d​∗idfti​​.

根据查询向量给文档评分: 使用查询向量与语料库中待检索文档进行逐一计算余弦相似度,就可以得到每个文档的分数。具体算法如下图:

5. 其他tf-idf权重

对数缩减tf(sublinear tf scaling):

为了防止把一个文档复制20次之后,该文档的重要性比原文档大,因此给tf项加上log,防止增长过快
最大值tf归一化(maximum tf normlization):

其中a为阻尼系数。
SMART系统
给不同的tf,idf实现方式命名:

回转长度归一化: 为了考虑文档长度而考虑的一种措施。

6. 总结

1.问题:给定关键词,如何评定包含这些关键词的文档中哪些更重要,即如何给文档进行相关性排序
答案:可以使用tf-idf权值构造文档向量和查询向量,通过计算查询向量与文档向量之间的余弦相似度衡量各个文档之间的相关性。

2.问题:tf-idf算法是什么? 怎样给文档中的词项进行打分?
答案:tf即词项频率,描述某词项在某文档中的出现次数。 idf是逆文档频率,即 logNdfilog \frac N {df_i}logdfi​N​, 其中dfidf_idfi​是词项i的文档频率,描述语料库中包含词项i的文档比例。注意词项频率是在某个文档中统计得到的,而文档频率是在整个语料库中统计得到的

3.问题:支配了IR界几十年的空间向量模型是什么?他存在什么缺点?
答案:即使用查询向量和文档向量来代表查询和文档,并且通过计算向量间的相似度来衡量查询与文档之间的相似度。 主要缺点是:和词袋模型一样,忽略了词项之间的相对顺序,而这一点在语义理解中是非常重要的,如“小明给老王戴帽子”和“老王给小明戴帽子”。这实际上语义信息完全不同的两个句子,但是在空间向量模型中,其向量表示就是一样的。

7. 本章知识图谱

【信息检索导论】第六章 词项权重及向量空间模型相关推荐

  1. WWW 2020 | 信息检索中基于上下文的文本词项权重生成

    ©PaperWeekly 原创 · 作者|金金 单位|阿里巴巴研究实习生 研究方向|推荐系统 本文由卡耐基梅隆大学发表于 WWW 2020,介绍了基于上下文的文本词项权重生成方法 HDCT.原有的搜索 ...

  2. TF-IDF词项权重计算

    一.TF-IDF 词项频率: df:term frequency. term在文档中出现的频率.tf越大,词项越重要. 文档频率: tf:document frequecy.有多少文档包含此term, ...

  3. 实体链接(Entity Linking)、依存句法分析、成分句法树、词袋模型、文本向量空间模型(TF-IDF)、

    实体链接(Entity Linking).依存句法分析.成分句法树.词袋模型.文本向量空间模型(TF-IDF) 目录

  4. 【算法基础】数据结构导论第六章-查找.pptx

    上课的课件分享,适合教学用. 文末提供下载 已发布: 数据结构导论第一章-绪论 数据结构导论第二章-线性表 数据结构导论第三章-栈.队列和数组 数据结构导论第四章-树 数据结构导论第五章-图 本文参考 ...

  5. 第六章 深入理解Magento – 高级Magento模型(EAV)

    2019独角兽企业重金招聘Python工程师标准>>> 我们讲过Magento有两种模型,简单模型和EAV(Entity Attribute Value)模型.上一章我们讲过所有的M ...

  6. 信息系统安全导论第六章之软件安全

    一.软件安全现状及基本概念 出现软件故障现象的原因是软件存在漏洞. "任何软件,不论它看起来是多么安全,其中都隐藏漏洞". 软件安全的目的是尽可能消除软件漏洞,确保软件在恶意攻击下 ...

  7. 计算机科学导论第六章计算机网路 学习笔记+习题答案

    笔记 通过本章学习,学生应该能够: 描述网络标准.物理结构和网络分类; 区分互联网(internet)与因特网(Internet); 描述作为因特网网络模型的TCP/IP协议族; 定义TCP/IP协议 ...

  8. 计算机系统导论第六章答案,《计算机系统概论》-第4章-习题答案

    写出冯·诺依曼模型的5个组成部分,并写出各个部件的功能和目的. 输入设备:输入数据 输出设备:输出结果 控制器:控制程序执行 内存:存放程序(各类运行指令) 处理器:对数据进行处理和运算git 简要描 ...

  9. 算法导论 第六章 堆排序 习题6.5-8 k路合并排序

    /*  * 请给出一个时间为O(nlgk),用来将k个已排序链表合并为一个排序链表的算法.  * 此处n为所有输入链表中元素的总数.(提示:用一个最小堆来做k路合并)  *  * 思路:利用有k个元素 ...

最新文章

  1. tomcat-users.xml 配置(转的)
  2. php拆分数字字符串方法
  3. 机器学习笔记:VAE
  4. USB接口定义(Z)
  5. 将 SharePoint 开发与其他形式的开发进行比较
  6. IOS沙盒中的Documents、Library、tmp区别
  7. IIS错误代码500.21 ,Nhibernate更新报错,委托的使用。action传参数
  8. rstudio和matlab,R语言与matlab循环时间对比
  9. Spring学习总结(12)——Druid连接池及监控在spring配置
  10. mysql 浮点型详解 简书_MySQL数据类型;基本操作
  11. aspx页面,中文乱码解决方案
  12. kindle DXG 安装多看
  13. Android音频系统之二音频框架
  14. 第三方统计分析埋点工具对比,神策、Ptmind、GrowingIO、国双,还有谷歌分析,谁更好?...
  15. Python Dataframe之excel、csv、pickle、feather、parquet、jay、hdf5 文件存储格式==》存读效率对比
  16. 抖音电商直播基地项目运营规划商业品牌计划书方案模板
  17. idea创建SpringBoot工程
  18. Centos篇-Centos Minimal安装
  19. Jenkins-API
  20. 从零开始学Python人脸识别技术,人工智能不过如此!

热门文章

  1. 易语言 图片插入超级列表框_新手教程!如何在PDF文件中插入图像
  2. 甘肃非税收缴实现“一网通办”:随时随地扫码“搞定”
  3. MAC下生成密钥,并使用ssh密钥登录
  4. oracle 删除用户 ora-00604,删除用户ORA-00604和ORA-00054
  5. top-level object
  6. LeetCode 1103[Python]. 分糖果 II 排排坐,分糖果。 我们买了一些糖果 candies,打算把它们分给排好队的 n = num_people 个小朋友。
  7. html h5 php 语音录入,H5添加语音输入功能-
  8. 2017年4月24号课堂笔记
  9. Spring 4 Hello World 例子(带源码)
  10. OneNav一为主题魔改教程(一):优化后台新增网站时调用API却没有赋好值的BUG,以减少复制编辑工作量--一梦