【现代信息检索】国科大何苯老师现代信息检索课程作业 —— 第一次作业

文章讨论了文档集的词项-文档矩阵构建,倒排索引的创建,以及使用TF-IDF和查询运算(如Jaccard系数和查询向量匹配)在信息检索中的应用,包括欧氏归一化和文档向量计算。
摘要由CSDN通过智能技术生成

1

考虑如下几篇文档:

文档1:new home sales top forecasts

文档2:home prices rise in june

文档3:increase in home sales in june

文档4:july new home sales rise

a. 画出文档集对应的词项-文档矩阵。

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

b. 画出该文档集的倒排索引。

在这里插入图片描述

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

rise AND new:rise 对应 0101,new 对应 1001,二者按位相与为 0001,因此查询返回文档4。

sales AND NOT (forecasts OR july):sales 对应 1011,forecasts 对应 1000,july 对应 0001,forecasts 与 july 按位相或取反为 0110,与 sales 按位相与为 0010,因此查询返回文档3。

2

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

文档 ID7771774329406831251336
间距1696627632530957268
VB 编码00000110 1000100100000001 00000100 1100011000010000 01101110 1110010100001110 01100001 00111101 11010100
γ 编码1111111110,100001001111111111111110,000010010001101111111111111111110,0000110111011001011111111111111111111111110,110110000101111011010100

3

给定以下词

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

Jaccard 系数定义为集合 A A A B B B 的交集大小与 A A A B B B 的并集大小的比值,形式化地:
J ( A , B ) = ∣ A ∩ B ∣ ∣ A ∪ B ∣ = ∣ A ∩ B ∣ ∣ A ∣ + ∣ B ∣ − ∣ A ∩ B ∣ J(A,B) = \frac{|A\cap B|}{|A\cup B|} = \frac{|A\cap B|}{|A| + |B| - |A\cap B|} J(A,B)=ABAB=A+BABAB
当集合 A A A B B B 都为空时, J ( A , B ) J(A,B) J(A,B) 定义为 1 1 1

“bord”、“border”、“lord”、“morbid”和“sordid”对应的 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$

由此,分别计算“bord”与“border”、“lord”、“morbid”、“sordid”对应 2-gram 集合的 Jaccard 系数:
J b o r d    &    b o r d e r = 4 5 + 7 − 4 = 1 2 J b o r d    &    l o r d = 3 5 + 5 − 3 = 3 7 J b o r d    &    m o r b i d = 2 5 + 7 − 2 = 1 5 J b o r d    &    s o r d i d = 3 5 + 7 − 3 = 1 3 \begin{align} J_{\rm bord\; \& \; border} &= \frac{4}{5+7-4}=\frac{1}{2} \notag\\ J_{\rm bord\; \& \; lord} &=\frac{3}{5+5-3}=\frac{3}{7} \notag\\ J_{\rm bord\; \& \; morbid} &=\frac{2}{5+7-2}=\frac{1}{5}\notag\\ J_{\rm bord\; \& \; sordid} &=\frac{3}{5+7-3}=\frac{1}{3}\notag\\ \end{align} Jbord&borderJbord&lordJbord&morbidJbord&sordid=5+744=21=5+533=73=5+722=51=5+733=31
标准答案:

b. 思考计算 k-gram(k>2)时,如何添加首尾标志符?(给出思路即可,不需要计算)

计算 k-gram 时会在序列前、后分别添加首、尾特殊标记,总共 k − 1 k-1 k1 对首尾标记。以 “bord” 的 3-gram 为例,添加特殊标记后变为“<S1><S2>bord</S2></S1>”,所以对应的 3-gram 集合为 {<S1><S2>b, <S2>bo, bor, ord, rd</S2>, d</S2></S1>},其中 <S1></S1> 和 <S2></S2> 为两对首尾特殊标记。

标准答案:

4

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

在这里插入图片描述

表 1    tf 值

表 2    idf 值

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

b. 试计算采用欧氏归一化方式处理后的文档向量,其中每个向量有 4 维,每维对应一个词项。

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

查询向量为

Query
car1
auto0
insurance1
best0

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不牌不改

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值