国科大现代信息检索技术第一次作业

第一次作业

题目1:考虑以下文档

文档名内容
文档1new home sales top forecasts
文档2home prices rise in june
文档3increase in home sales in june
文档4july new home sales rise

1、画出文档集对应的词项-文档矩阵

文档1文档2文档3文档4
forecasts1000
home1111
in0110
increase0010
july0001
June0110
new1001
prices0100
rise0101
sales1011
top1000

2、参考以下图例,画出该文档集的倒排索引(需要按照字典序排列
在这里插入图片描述

forecasts
1
home
1 | 2 | 3 | 4
in
2 | 3
increase
3
july
4
june
2 | 3
new
1 | 4
prices
2
rise
2 | 4
sales
1 | 3 | 4
top
1

3、给定如下查询,返回的结果是什么?

  • rise AND new
    • 0101 and 1001 = 0001
    • rise->2,4 new->1,4(参考)
    • 文档4
  • sales AND NOT (forecasts OR july)
    • forecasts OR july = 1000 or 0001 = 1001
    • NOT(forecasts OR july) = 0110
    • 1011 and 0110 = 0010
    • 文档3

题目2、VB编码与γ编码

​ 写出倒排记录表(777,17743,294068,31251336)的VB编码以及 γ \gamma γ 编码,在可能的情况下对间距而不是文档ID编码。请以8进制串的方式写出这些编码。( γ \gamma γ 编码不考虑对0编码的问题,仅对原始文档ID以及间隔进行编码)

VB编码计算:

  1. 计算相邻数的间距(后一个减前一个)
  2. 将间距转换为二进制
  3. 将结果写入有效编码区间,每个字节的后7位是字节有效编码区间,每个字节的高8位置0(如果是最后一个字节置1)。

777的二进制编码,7个一组进行拆分:110 0001001

然后在最后一个字节的专用位(高位)c置为1。

得到777的VB编码为:0000,0110,1000,1001

然后每个文档ID计算与前一个的间距,使用同样的方式计算VB编码。

γ编码计算:

  1. 计算相邻数的间距(后一个减前一个)
  2. 将间距转换为二进制
  3. 将间距的二进制形式首部的1去除,作为偏移,偏移的位数作为长度
  4. 将长度转换为一元编码
  5. 将长度和偏移拼接

将间隔G表示成长度偏移两部分。

偏移对应G的二进制编码,去除首部1;

长度部分表示偏移的位数,采用一元编码(将n表示n个1和末位补0)

777的二进制编码去除高位1得到偏移部分:100001001

偏移部分位数为7,因此长度部分编码为:11111110

文档ID7771774329406831251336
间距01696627632530957268
VB编码0000,0110,1000,10010000,0001,0000,0100,1100,01100001,0000,0110,1110,1110,01010000,1110,0110,0001,0011,1101,1101,0100
γ编码1,1111,1101,0000,10011,1111,1111,1111,1000,0010,0100,01101,1111,1111,1111,1111,1000,0011,0111,0110,01011,1111,1111,1111,1111,1111,1110,1101,1000,0101,1110,1101,0100

题目3:K-gram索引

在这里插入图片描述

1、计算查询 “bord” 与图中每个包含 2-gram “or” 的词项之间的 2-gram Jaccard 系数,并写出计算过程。

“bord”与图中包含2-gram ”or”的词项,2-gram集合:

包含or的词项2-gram
bord$b, bo, or, rd, d$
border$b, bo, or, rd, de, er, r$
lord$l, lo, or, rd, d$
morbid$m, mo, or, rb, bi, id, d$
sordid$s, so, or, rd, di, id, d$

Jaccard系数计算公式
J a c c a r d ( a , b ) = ∣ a ∩ b ∣ ∣ a ∪ b ∣ Jaccard(a,b)=\frac{|a \cap b|}{|a \cup b|} Jaccard(a,b)=abab
不考虑首尾标志符:

bord与border:

  • bord ∩ border = {bo, or, rd}
  • bord ∪ border = {bo, or, rd, de, er}
  • Jaccard(bord, border) = 3/5

bord与lord:

  • bord ∩ lord = {or, rd}
  • bord ∪ lord = {bo, lo, or, rd}
  • Jaccard(bord, lord) = 2/4 = 1/2

bord与morbid:

  • bord ∩ morbid = {or}
  • bord ∪ morbid = {bo, mo, or, rb, rd, bi, id}
  • Jaccard(bord, morbid) = 1/7

bord与sordid:

  • bord ∩ sordid = {or, rd}
  • bord ∪ sordid = {bo, so, or, rd, di, id}
  • Jaccard(bord, sordid) = 2/6 = 1/3

考虑首尾标志符:

bord与border:

  • bord ∩ border = {$b, bo, or, rd}
  • bord ∪ border = {$b, bo, or, rd, d$, de, er, r$}
  • Jaccard(bord, border) = 4/8 = 1/2

bord与lord:

  • bord ∩ lord= {or, rd, d$}
  • bord ∪ lord= {$b, bo, or, rd, d$, $l, lo}
  • Jaccard(bord, lord) = 3/7

bord与morbid:

  • bord ∩ morbid= {or, d$}
  • bord ∪ morbid= {$b, bo, or, rd, d$, $m, mo, rb, bi, id}
  • Jaccard(bord, morbid) = 2/10 = 1/5

bord与sordid:

  • bord ∩ sordid= {or, rd, d$}
  • bord ∪ sordid= {$b, bo, or, rd, d$, $s, so, di, id}
  • Jaccard(bord, sordid) = 3/9 = 1/3

2、k>2时,如何添加首尾标志符?

类似的,在词项的前部的第 i 个位置,在词项开头加 k-i 个<BOS>符;在词项后部的第j个位置,在词项后头加 k-j 个<EOS>符。

比如bord计算3-gram集合:{$$b, $bo, bor, ord, rd$, d$$}

bord计算4-gram集合:{$$$b, $$bo, $bor, bord, ord$, rd$$, d$$$}

……

题目4:考虑表1中的3篇文档Doc1、Doc2、Doc3中几个词项的tf情况,表2为词项在所有文档中的idf值

表一:tf值Doc1Doc2Doc3
car27424
auto3330
insurance03329
best14017
表二:idf值 d f t {df}_t dft i d f t {idf}_t idft
car181651.65
auto67232.08
insurance192411.62
best252351.5

t f tf tf是指词项频率,一种替代原始tf的计算方式是对数词频:

w t , d = { 1 + log ⁡ 10 t f t , d if tf t , d > 0 0 otherwise \left.w_{t,d}=\left\{\begin{array}{ll}1+\log_{10}\mathrm{tf}_{t,d}&\text{if tf}_{t,d}>0\\0&\text{otherwise}\end{array}\right.\right. wt,d={1+log10tft,d0if tft,d>0otherwise

d f t {df}_t dft是指文档频率,出现词项 t t t 的文档数目。

i d f idf idf权重是指逆文档权重, N N N 是文档集中文档的数目。

i d f t = log ⁡ 10 N d f t \mathrm{idf}_t=\log_{10}\frac{N}{\mathrm{df}_t} idft=log10dftN

t f − i d f tf-idf tfidf权重是 t f tf tf 权重和 i d f idf idf 权重的乘积

w t , d = ( 1 + log ⁡ t f t , d ) ⋅ log ⁡ N d f t w_{t,d}=(1+\log\mathrm{tf}_{t,d})\cdot\log\frac N{\mathrm{df}_t} wt,d=(1+logtft,d)logdftN

1、计算所有词项car、auto、insurance、best的tf-idf值。

对于词项”car”,计算Doc1中的tf-idf值,如下所示:

w c a r , d o c 1 = ( 1 + log ⁡ 10 27 ) × 1.65 = 4.01 w_{car, doc1} = (1 + \log_{10}27) \times 1.65=4.01 wcar,doc1=(1+log1027)×1.65=4.01

tf-idf权重计算Doc1Doc2Doc3
car4.012.643.93
auto3.075.240
insurance04.083.99
best3.2203.35

参考答案:为了计算方便,采用原始的 tf 值,则 w c a r , d o c 1 = 27 × 1.65 = 44.55 w_{car, doc1} = 27 \times 1.65=44.55 wcar,doc1=27×1.65=44.55

tf-idf(原始tf值)Doc1Doc2Doc3
car44.556.639.6
auto6.2468.640
insurance053.4646.98
best21025.5

2、试计算采用欧氏归一化方式处理后的文档向量,其中每个向量有4维,每维对应一个词项。
∣ ∣ V ∣ ∣ = x 1 2 + x 2 2 + x 3 2 + x 4 2 ||V||=\sqrt{x_1^2+x_2^2+x_3^2+x_4^2} ∣∣V∣∣=x12+x22+x32+x42

对向量进行归一化:

normalized value = x i ∣ ∣ V ∣ ∣ \text{normalized value}=\frac{x_i}{||V||} normalized value=∣∣V∣∣xi

NormalizedDoc1Doc2Doc3
car0.670.370.60
auto0.510.730
insurance00.570.61
best0.5400.51

参考答案:
∥ V e c 1 ∥ = 44.55 2 + 6.24 2 + 0 2 + 21 2 ≈ 49.65 V e c N o r m 1 = [ 44.55 49.65 , 6.24 49.65 , 0 49.65 , 21 49.65 ] ≈ [ 0.879 , 0.125 , 0 , 0.423 ] \|{Vec}_1\|=\sqrt{{44.55}^2+{6.24}^2+{0}^2+{21}^2}\approx49.65 \\ {Vec}_{Norm_1}=[\frac{44.55}{49.65}, \frac{6.24}{49.65}, \frac{0}{49.65}, \frac{21}{49.65}]\approx[0.879,0.125,0,0.423] Vec1=44.552+6.242+02+212 49.65VecNorm1=[49.6544.55,49.656.24,49.650,49.6521][0.879,0.125,0,0.423]
在这里插入图片描述

3、对于查询car insurance计算3篇文档的得分并进行排序。查询词项的权重计算采用:查询
中出现的词项权重为1,否则为0。

查询词项的权重如下,

wordweightDoc1Doc2Doc3
car10.670.370.60
auto00.510.730
insurance100.570.61
best00.5400.51

s c o r e = q u e r y w e i g h t × D o c n o r m a l i z e d T \mathrm{score}=\mathrm{query~weight}\times\mathrm{Doc~normalized}^T score=query weight×Doc normalizedT

查询向量为: Query weight vector = ( 1 , 0 , 1 , 0 ) \text{Query weight vector}=(1,0,1,0) Query weight vector=(1,0,1,0)

计算文档1的得分:

Doc1 normalized vector = ( 0.67 , 0.51 , 0 , 0.54 ) \text{Doc1 normalized vector}=(0.67,0.51,0,0.54) Doc1 normalized vector=(0.67,0.51,0,0.54)

s c o r e D o c 1 = ( 1 × 0.67 ) + ( 0 × 0.51 ) + ( 1 × 0 ) + ( 0 × 0.54 ) = 0.67 \mathrm{score}_{{\mathrm{Doc}1}}=(1\times0.67)+(0\times0.51)+(1\times0)+(0\times0.54)=0.67 scoreDoc1=(1×0.67)+(0×0.51)+(1×0)+(0×0.54)=0.67

类似的,可以计算出:

s c o r e D o c 2 = 0.37 + 0 + 0.57 + 0 = 0.94 \mathrm{score}_{Doc2}=0.37+0+0.57+0=0.94 scoreDoc2=0.37+0+0.57+0=0.94

s c o r e D o c 3 = 0.60 + 0 + 0.61 + 0 = 1.21 \mathrm{score}_{Doc3}=0.60+0+0.61+0=1.21 scoreDoc3=0.60+0+0.61+0=1.21

根据得分计算结果,文档得分从高到低排序为:

  • 文档3:1.21
  • 文档2:0.94
  • 文档1:0.67

参考答案:

在这里插入图片描述

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

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

相关文章

计算机视觉实验四:特征检测与匹配

特征检测与匹配 1 角点检测算法实验 1.1 实验目的与要求 &#xff08;1&#xff09;了解及掌握角点检测算法原理。 &#xff08;2&#xff09;掌握在MATLAB中角点算法的编程。 &#xff08;3&#xff09;掌握Moravec&#xff0c;Harris与SUSAN算法的差异。 1.2 实验原理及…

十八:Spring Boot 依赖(3)-- spring-boot-starter-data-jpa 依赖详解

目录 1. 理解 JPA&#xff08;Java Persistence API&#xff09; 1.1 什么是 JPA&#xff1f; 1.2 JPA 与 Hibernate 的关系 1.3 JPA 的基本注解&#xff1a;Entity, Table, Id, GeneratedValue 1.4 JPA 与数据库表的映射 2. Spring Data JPA 概述 2.1 什么是 Spring Dat…

如何用C++代码实现一颗闪烁的爱心?

要用 C 实现爱心闪烁效果&#xff0c;我们可以使用控制台输出文本&#xff0c;并通过在控制台中刷新屏幕来模拟闪烁的效果。由于 C 本身没有类似 turtle 这样的图形库&#xff0c;操作控制台输出的方式比较简单&#xff0c;主要通过字符绘制和时间延迟来实现。 这里给出一个基…

基于美颜SDK的实时视频美颜平台开发:技术难点与解决方案

美颜SDK作为视频美颜平台的核心&#xff0c;提供了多种美颜功能。这些功能通过调整参数实现对人脸特征的优化。在架构设计上&#xff0c;美颜SDK主要包括以下几部分&#xff1a; 1.人脸检测与特征点识别&#xff1a;通过深度学习模型&#xff0c;识别人脸并标记出关键特征点&a…

web实操4——servlet体系结构

servlet体系结构 我们基本都只实现service方法&#xff0c;其余几个都不用&#xff0c; 之前我们直接实现servlet接口&#xff0c;所有的方法都必须实现&#xff0c;不用也得写&#xff0c;不然报错&#xff0c;写了又不用当摆设。 能不能只要定义一个service方法就可以&…

数据分析反馈:提升决策质量的关键指南

内容概要 在当今快节奏的商业环境中&#xff0c;数据分析与反馈已成为提升决策质量的重要工具。数据分析不仅能为企业提供全面的市场洞察&#xff0c;还能帮助管理层深入了解客户需求与行为模式。掌握数据收集的有效策略和工具&#xff0c;企业能够确保获得准确且相关的信息&a…

香港航空 m端 腾讯滑块分析

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 有相关问题请第一时间头像私信联系我删…

[2024最新] macOS 发起 Bilibili 直播(不使用 OBS)

文章目录 1、B站账号 主播认证2、开启直播3、直播设置添加素材、隐私设置指定窗口添加/删除 窗口 4、其它说明官方直播帮助中心直播工具教程 目前搜到的 macOS 直播教程都比较古早&#xff0c;大部分都使用 OBS&#xff0c;一番探索下来&#xff0c;发现目前已经不需要 OBS了&a…

大数据-210 数据挖掘 机器学习理论 - 逻辑回归 scikit-learn 实现 penalty solver

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

【Linux】【线程操作与同步】汇总整理

线程&#xff08;Threads&#xff09;是现代操作系统中用于并发执行的基本单元。一个进程可以包含一个或多个线程&#xff0c;每个线程都可以独立执行一段程序代码&#xff0c;共享进程的资源&#xff08;如内存&#xff09;&#xff0c;但拥有自己的栈空间和寄存器状态。下面是…

免费送源码:Java+springboott+MySQL+Tomcat 游戏攻略网站设计与实现 计算机毕业设计原创定制

摘 要 随着国民生活水平的逐渐提高&#xff0c;每逢假期或空闲时节走出家门游山玩水已渐渐成为人们生活的一部分。互联网的普及给人们带来的便利不需多说&#xff0c;因此如果把游戏产业与互联网结合起来&#xff0c;利用Java技术建设游戏攻略网站&#xff0c;实现游戏资讯管理…

从0开始的STM32之旅8 串口通信(II)

目录 在开始理解底层原理之前&#xff0c;我们先尝试一下 怎么做 进一步理解 HAL_UART_Transmit HAL_UART_Receive 在开始理解底层原理之前&#xff0c;我们先尝试一下 现在我们综合一下&#xff0c;要求完成如下的事情&#xff1a; 在主程序中存在一个flag变量描述当前有…

springboot的增删改查商城小实践(b to c)

首先准备一张表&#xff0c;根据业务去设计表 订单编号是参与业务的&#xff0c;他那订单编号里面是有特殊意义的&#xff0c;比如说像什么一些年月日什么的&#xff0c;一些用户的ID都在那编号里面呢&#xff1f;不能拿这种东西当主件啊 根据数据量去决定数据类型 价格需要注意…

AndroidStudio-视图基础

一、设置视图的宽高 1.在XML文件中设置视图宽高 视图宽度通过属性android:layout_width表达&#xff0c;视图高度通过属性android:layout_height表达&#xff0c;宽高的取值主要有下列三种: &#xff08;1&#xff09;wrap_content:表示与内容自适应。对于文本视图来说&…

电子科大、同济大学与新加坡国立大学联合发布Math-LLaVA:增强多模态大语言模型的数学推理能力

一、结论写在前面 下面介绍的论文来自&#xff1a;电子科技大学、新加坡科技设计大学、同济大学、新加坡国立大学。 论文标题&#xff1a;Math-LLaVA: Bootstrapping Mathematical Reasoning for Multimodal Large Language Models 论文链接&#xff1a;https://arxiv.org/p…

高校体育场管理系统+ssm

摘 要 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;高校体育场管理系统被用户普遍使用&#xff0c;为方便用户…

杂谈:业务说的场景金融是什么?

引言&#xff1a;市场格局的转变 在供应短缺的年代&#xff0c;是典型的卖方市场。为了保证稳定供货&#xff0c;买方会提前一段时间下单&#xff0c;也几乎没什么议价能力。卖方只需等着接单就行。 现在很多领域的供应商数量越来越多&#xff0c;而且随着互联网的普及&#…

知从科技受邀出席ARM日产技术日

10月29日&#xff0c;上海知从科技有限公司受 ARM 之邀&#xff0c;参与了由其主办的日产技术日活动。此次活动在日本神奈川县厚木市的日产技术中心盛大举行&#xff0c;这一活动汇聚了行业内的前沿技术与精英人才&#xff0c;成为科技创新技术交流的重要平台。 知从科技积极参…

驱动前的准备

驱动前的准备 目录 驱动前的准备 移植SDK 补充&#xff1a;怎么使用我的虚拟机/怎么把自己的虚拟机拷贝到其他磁盘 移植SDK -- 将压缩包复制到虚拟机里面 -- 删除备份文件 -- 解压这个压缩包(会占用大量的空间->有空间再去做&#xff01;) 补充&#xff1a;怎么使用我的…

【网页设计】CSS 定位

目标 能够说出为什么要用定位能够说出定位的4种分类能够说出4种定位各自的特点能够说出为什么常用子绝父相布局能够写出淘宝轮播图布局能够说出显示隐藏的2种方式以及区别 1. 定位 1.1 为什么需要定位 提问&#xff1a; 以下情况使用标准流或者浮动能实现吗&#xff1f;1. …