《信息检索导论》课后习题答案.docx

上传人:b****6 文档编号:8819830 上传时间:2023-02-01 格式:DOCX 页数:15 大小:46.23KB
下载 相关 举报
《信息检索导论》课后习题答案.docx_第1页
第1页 / 共15页
《信息检索导论》课后习题答案.docx_第2页
第2页 / 共15页
《信息检索导论》课后习题答案.docx_第3页
第3页 / 共15页
《信息检索导论》课后习题答案.docx_第4页
第4页 / 共15页
《信息检索导论》课后习题答案.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

《信息检索导论》课后习题答案.docx

《《信息检索导论》课后习题答案.docx》由会员分享,可在线阅读,更多相关《《信息检索导论》课后习题答案.docx(15页珍藏版)》请在冰豆网上搜索。

《信息检索导论》课后习题答案.docx

《信息检索导论》课后习题答案

 

《信息组织与检索》作业答案

第一章布尔检索

考堪如卜几篇文档:

文档1

文档2

文档3

文档4

breakthroughdrugforschizophrenia

newschizophreniadrug

newapproachfortreatmentofschizophrenia

newhopesforschizophreniapatients

a.画出文档集对应的词项一文档矩阵:

b.画出该文档集的倒排索引(参考图1・3中的例子)。

TernvDocumentmatrix:

InvertedIndex:

approach・>3breakthrough->1

drug->1->2

for->1->3->4

hopes->4

new->2->3->4

of->3

patients->4

schizophrenia->1->2->3->4treatment>3

注意:

倒排索引中的词表(dictionary)和每个词项的倒排列表(postinglist)需要排序,便于査找。

这里我们暂不考虑诃的止规化处理(如hopes->hope)。

补充习题1

写出AND査询的伪代码

•而向过程风格的伪代码:

给定两个指针pl和P2,分别指向两倒排列表listl和Iist2(链表实现)的首元素:

令docld(pl)表示pl所指向的元素的docld査询结果存放在answer列表里。

这里应用了"化归”思想(将新问题转化归为旧问题來解决)。

这里,比较两排序列表的首元素,排除较小的docld(不可能有匹配)后,我们构造出新的剩余列表,再次进行两列表的首元素的比较。

Whilepl!

=nullANDp2!

=null

Ifpl->docld==p2->docld//对两(剩余)列表的首元素进行比较

insert(answer;pl);

pl=pl->next:

〃构造新的剩余列表,迭代执行

p2=p2->next:

//

Elseifpl->doclddocld

pl=pl->next;//pl->docld不町能有卩L配;构造新的剩余列表

Else

p2=p2->next:

//p2->docld不可能冇匹配:

构造新的剩余列表

Cnd

•面向对象风格的伪代码:

注:

为一个数据结构(对象)定义方法,通过方法操作自己的内部数据(List对象里隐含包含了一个成员变量,它是真正的链表或变长数组)。

Whilelistl.currentltem()!

=nullANDIist2.currentltem()!

=null

Iflistl.currentltem().getDocld()==list2.currentltem().getDocld()

answer.insert(listl.currentltem());

listl.moveToNextf);

Hst2.moveToNext();

Else讦listl.currentltem().getDocld()

listl.moveToNextf);

Else

list2.moveToNext();

End

习题1-10

写出OR查询的伪代码

•而向过程风格的伪代码:

给定两个指针pl和p2,分别指向两倒排列表listl和Ilst2(链表实现)的首元素;令docld(pl)表示pl所指向的元素的docld:

查询结果存放在answer列表里。

Whilepl!

=nullANDp2!

=null

Ifpl->docld==p2->docld

insert(answer;pl):

pl=pl->next:

p2=p2->next;〃构造新的剩余列表,迭代执行

Elseifpl->doclddocld

insert(answecpl):

pl=pl->next:

〃构造新的剩余列表,迭代执行

Else

insert(answecp2):

p2=p2->next:

〃构造新的剩余列表,迭代执行

End

Whilepl!

=null//条件为真时,加入listl的剩余元素(此时Iist2已遍历到结尾)insert(answecpl):

pl=pl->next:

END

WhilepZ!

=null//条件为真时,加入Iist2的剩余元素〔此时listl已遍历到给庵)insert(answecp2):

p2=pl->next;

END

•面向对象风格的伪代码:

Whilelistl.currentltem()!

=nullANDIist2.currentltem()!

=null

Iflistl.currentltem().getDocld()==list2.currentltem().getDocld()answer.insert(listl.currentltem());

listl.moveToNext();

list2.moveToNext();

Elseiflistl.currentltem().getDocld()

answer.insert(listl.currentltem());

listl.moveToNext();

Else

answer.insert(list2.currentltem());list2.moveToNext();

End

Whilelistl.currentltem()!

=null

answer.insert(listl.currentltem());listl.moveToNext();

END

WhileIist2.currentltem()!

=nullanswer.insert(list2.currentltem());list2.moveToNext();

END

补充习题2

若个文集有1OOO篇文档,有40篇是关于信管专业建设的。

我的ft息需求是了解信管专业的专业建设情况,用某搜索引擎在这个文集上搜索,査询词为“信管”,搜出100篇包含“信管”的文档,这其中有20篇是信管专业建设方面的,其它80篇是关于信管的其它情况。

请问该查询的正确率和召回率是多少正确率=20/100=0.2

仆回率=20/40=0.5

第二章词项词典及倒排记录表

习题2J

a.在布尔检索系统中,进行词干还原从不降低正确率。

错:

相当于扩充出同一个词干表示的多个词,会降低正确率。

b.在布尔检索系统中,进行词干还原从不降低召回率。

对。

c.词干还原会增加词项词典的人小。

错。

d.词干还原应该在构建索引时调用,而不应在査询处理时调用。

错;应同时做才能保证索引中和査询词的匹配。

习题2・2

诸给出如卜•单词的归一化形式(归一化形式也町以是词本身)。

a."Cos・>cos

b.Shi'ite->shiite('是隔音号)

c.cont"d・>contd(contd.nf表示contained包括:

continued继续)

d.Hawaii・>hawaii

e.O'Rourke->orourke

习题2・3

如下词经过Porter词干还原工具处理后会输出同样的结來,你认为哪对(几对)词不应该输出同样的结果?

为什么?

a.abandon/abandonment

b.absorbency/absorbent

c.marketing/markets

d・university/universe

e.volume/volumes

按Porter词干还原算法,这几组词都可以被还原为相应的词干。

但是这里问的是哪些组做词干还原不合适,原因是某组的两个词虽然来源于同一个词干,但是它们的意思不同,如果做词干还原处理会降低正确率。

c组不做词干还原。

marketing农示营销,market表示市场。

d组不做词干还原。

university表示人学,universe表示宇宙。

习题2・6

对于两个词组成的査询,其中一个词(项)的倒排记录表包含下面16个文档ID:

[4,6,10,12,14,16,18,20,22,32,47,81,120,122,157,180]

而另一个词(项)对应的倒排记录表仅仅包含一个文档ID:

[47]

请分别采用如卜两种策略进行倒排记录表合并并计算所需要的比较次数,同时简要地说明计算的正确性。

a.使用标准的倒排记录表。

比较:

(4,47),(6,47),(10,47),(12,47),(14,47),(16,47),(18,47),(20,47),(22,47),(32,47),(47,47)。

共比较次。

b.使用倒排记录表+跳表的方式,跳表指针设在P"处(P是列表长度)。

P=169也就说第一个列表的跳表指针往后跳4个元素。

F图蓝色表示安装了跳表指针的元素,其中120跳到180上。

[4,6,10,12,14,16,1&20,22,32,47,81,120,122,157,180]

比较:

(4,47),(14,47),(22,47),(120,47),(32,47),(47,47)共比较6次。

习题2・9

下面给出的是一个位置索引的一部分,格式为:

词项:

文档1:

(位置1,位置2,…);文档2:

(位置1,位置2,…);

angels:

2:

(36.174,252.651);4:

(12,22,102,432);7:

(17):

fools:

2:

(1.17.74.222);4:

(8,78,108.458);7:

(3,13,23,193);

fear:

2:

(87.704,722.901);4:

(13,43,113,433);7:

(18,328.528);

in:

2:

(3,37.76.444.851);4:

(10.20.110,470,500);7:

(5.15,25,195):

rush:

2:

(2,66,194.321,702);4:

(9,69.149.429,569);7:

(4,14.404);

to:

2:

(47,86,234,999);4:

(14.24,774,944);7:

(199,319,599,709);

tread:

2:

(57,94,333):

4:

(15,35.155);7:

(20,320);

where:

2:

(67.124,393.1001);4:

(11,41.101,421.431);7:

(16.36,736);

那么哪些文档和以下的査询匹配?

其中引号内的每个表达式都是一个短语査询。

a.44foolsrushin";

文档2、4、7。

b.“foolsrushin”AND“angelsfeartotread

文档4。

补充习题1

k词邻近AND合并算法

前提:

考虑位置索引。

要求查找这样的文档,它同时包含词A和词B,且两词文中的距离在k个词以内。

给定两个指针pl和P2,分别指向两个词A和B的两倒排列表(链表实现)的首元素:

令pi->doc表示pi所指向文档对象的结构体。

对于一个文档对象,该词出现的各个位置的列表为posListo用ql(q2)表示词A(词B)当前指向文档对彖指向的posList指向的位員。

用qi->pos表示该位宣。

査询结果存放在answer列表里。

算法:

Whilepl!

=nullANDp2!

=null

Ifpl->docld==p2->docld//对两(剩余)列表的苗元素进行比较

Whileql!

=nullANDq2!

=null

Ifql->pos-q2->pos<=kORq2->pos-ql->pos<=k

insert(answer;pl);

break;//跳出这个循环,找到一个k临近即可

Elselfql->pos-q2->pos>k〃q2不可能被匹配上,忽略它q2=q2->next;//生成新的剩余列表

ElseIfq2->pos-ql->pos>k〃ql不可能被匹配上,忽略它ql=ql->next;//生成新的剩余列表

EndIf

EndWhile

pl=pl->next;〃构造新的剩余列表,迭代执行p2=p2->next;

Elseifpl->doclddocldpl=pl->next:

//pl->docld不可能右匹配:

构造新的剩余列表

Else

p2=p2->next:

//p2->docld不可能冇匹配:

构造新的剩余列表

End

第六章文档评分、词项权重计算及向量空间模型

习题6・2

上面的例6-1中,如果gl=0.2zg2=0.31及g3=0.49,那么对于一个文档来说所有可能的不同得分有多少?

得分1:

0

得分2:

gl=0.2

得分3:

g2=0.31

得分4:

g3=0.49

得分5:

gl+g2=0.51

得分6:

gl+g3=0.69

得分7:

g2+g3=0.8

得分8:

gl+g2+g3=1.0

习题6-10

考虑图6・9中的3篇文档Docl、Doc2.Doc3中几个词项的tf情况,采用图6・8中的idf值来计算所有词项car、auto、insurance及best的tfidf值(df值的计算就假设用

Docl,Doc2Doc3的这个文集)。

Doc1

Doc2

Doc3

car

27

4

24

auro

3

33

0

insurance

0

33

29

best

14

0

17

图6・9习题6・10中所使用的If唱

解答:

w^d=max(l+logio(1+tf),0)

Docl

Doc2

Doc3

Car

2.4314

1.6021

2.3802

Auto

1.4771

2.5185

0

insurance

0

2.5185

2.4624

Best

2.1461

0

2.2304

 

dft

idft

car

3

0

auto

2

0.1761

insurance

2

0.1761

best

2

0.1761

这里N=3°

tf・idfg=wt>d*idft

Docl

Doc2

Doc3

car

0

0

0

auto

0.2601

0.4435

0

insurance

0

0.4435

0.4336

best

0.3779

0

0.3928

例6-4

假设文档集中的文档数目N=1000000,词表为{auto,best,car,insurance},这四个词的df值分别为5000,50000,10000,1000。

设某文档d的rawtf向量为[1,0,1,2],对査询q=wbestcarinsurance",问该文档■查询的相似度打分score(q,d)是?

解答:

dft

idft

auto

5000

2.3010

best

50000

13010

car

10000

2.0000

insurance

1000

3.0000

这里N=1000000。

 

文档d的tf・idf向M:

rawtf©d

wtrd=max(l+logio(l+tfJ.O)

tf-idft,尸wt,d*idft

v(d)=归一化tf-idft,d

auto

1

1.0000

2.3010

0.4646

best

0

0

0

0

car

1

1.0000

2.0000

0.4038

insurance

2

1.3010

3.9031

0.7881

查询q的tf-idf向量(wtd=1)

rawtfg

wt/q=max(l+logio(l+tf)/0)

tf-idft,q=wt,q*idft

v(q)=归一化tf-idf^

auto

0

0

0

0

best

1

1

1.3010

0.3394

car

1

1

2.0000

0.5218

insurance

1

1

3.0000

0.7827

score(q,d)=v(q),*v(d)=0.8275

第八章信息检索的评价

习题8-8

考堪一个有4篇相关文档的信息需求,考察两个系纟充的前10个检索结果(左边的结果排名靠前),相关性判定的情况如下所示:

系统1RNRNNNNNRR

系统2NRNNRRRNNN

a.计算两个系统的MAP值并比较大小。

b.上述结果直观上看有总义吗?

能否从中得出启发如何才能获得高的MAP得分?

c.计算两个系统的R-precision值,并与a中按照MAP进行排序的结果进行对比。

解答:

a.按MAP的定义,这里|Q|=1,m=4.在查询结果中遇到每个相关文档对前面的所有文档计算一个Precision*MAP将这些Precision值求平均。

MAP(系统1)=(1/4)*(1+2/3+3/9+4/10)=0.6

MAP(系统2)=(1/4)*(1/2+2/5+3/6+4/刀=0.49

系统1的MAP值人。

b.相关的査询结果排名越靠前,则MAP越大。

c.按R-precision的定义,假设总共有|Rel|篇相关文档,在查询结果中取前|Rel|个文档,计算其precision9

R-precision(系统1)=2/4=1/2

R-precision(系统1)=1/4

系统1的R-precision值人。

与MAP给出系统打分排序的结果一致。

习题8-10

下表中是两个判定人员基于某个信息需求对12个文档进行相关性判定的结果(0=不

相关,

1二相关)。

假定我们开发了一个IR系统,针对该信息需求返回了文档{4,5,6"8}。

docID

判断1

判断2

1

0

0

2

0

0

311

411

510

610

710

810

901

1001

1101

1201

a.计算两个判断之间的kappa统计量:

b.肖两个判断均认为是相关文档时才认为该文档相关,此时计算上述系统的正确率、召回率及F]值;

c.只要右一个判断认为是相关文档则认为该文档相关,此时计算上述系统的正确率、召回率及行值。

解答:

a.计算kappa统计量:

P(A)就是实际观察到的一致意见的概率,总共12篇文档,其中2篇两人一致选Yes,2篇两人一致选N。

因此,P(A)=(2+2)/12=l/3«

P(E)是随机情况卜的一致意见的概率。

假设每个人对每个文档的Yes(或No)打分的概率Py(或pn)是独立同分布的(i.i.d.),则P(E)=p/py+pn*pno其中,Py是2U2次打分中为Yes的比例,p产12/24=1/2;p“是2T2次打分中为No的比例,pn=12/24=l/2.代入P(E),得:

P(E)=(l/2)A2+(l/2)A2=l/2o

Kappa=(P(A)-P(E))/(l-P(E))=(l/3-l/2)/(1-1/2)=-1/3<0.67,这是一个负数,说明实际的一致性结果还不如随机产生的一致性结果,因此町以判定两人给出的相关性打分不一致。

b.文档集中共有12篇文档,其中2文档相关({3,4}),其它10篇都不相关。

査询结果为

{4,5,6,7,8},其中只有1篇文档相关({4})o

该查询的

Precision,P=l/5;

Recall,R=l/2;

F1=2P*R/(P+R)=0.28o

c.文档集中共有12篇文档,其中10文档相关,其它2篇都不相关({1,2})。

査询结果为{4,5,6,7,8},全部都相关。

该查询的

Precision,P=l:

Recall,R=5/12;

Fi=2P*R/(P+R)=0.67o

注:

因Kappa统计量认为两人打分不一致,所以修正方法b比较介理,而c非常不介理。

第十三章文本分类与朴素贝叶斯方法

习题13-3

位豐独立性假设的基本原则是,词项在文档的位置k上出现这个事实并没右什么有用的信息。

请给岀这个假设的反例。

提示:

可以考虑那些套用固定文档结构的文档。

解答:

如果一个词出现在不同域中,它的重要性不同。

比如出现在标题中的词一般很重要。

习题13-9

基于表13-10中的数据,进行如卜计算:

(i)估计多项式NB分类器的参数;

(ii)将(i)中的分类器应用到测试集:

^13-10用于参数估计的数延

文档ID

文档中的词

属干c^China^?

1

TaipciTaiwan

yes

2

MacaoTaiwanShanghai

ves

3

JapanSapporo

no

4

SapporoOsakaTaiuan

no

5

TaiwanTaiwanSapporo

P(China)=2/4=l/2;P(非China)=2/4=l/2.

词典中有7个词Japan,Macao,Osaka,Sapporo,Shanghai,Taipei,Taiwan.

测试集中,China类共有5个词:

非China类共有5个词。

P(Taiwan|China类)=(2+1)/(5+7)=1/4(加一平滑,下同)

P(Taiwan|非China类)=(1+1)/(5+7)=1/6

P(Sapporo|China类)=(0+1)/(5+7)=1/12

P(Sapporo|非China类)=(2+1)/(5+7)=1/4

按单字词语言模型,

PfChina类|d5)«PfChina类)*P(Taiwan|China类)八2*P(Sapporo|China

类)=1/2*(1/4)A2♦1/12=1/384.

P(非China类|d5)«P(非China类广P(Taiwan|非China类)八2“P(Sapporo|非China类)=l/2*(l/6)A2*l/4=l/288.

由于P(非China类皿)〉P(China类|如,d5属于非China类。

第十六章扁平聚类

习題16-3对于图16-4,同一类中的每个点d都用两个同样的d的副本来替换。

(i)那么,对于新的包含34个点的集合进行聚类,会比图16-4中17个点的聚类更容易、一样难还是更难?

(ii)计篦対34个点聚类的纯度、RL在点数増加一倍之后,哪些指标增人?

哪些指标保持不变?

(iii)在得到(i)中的判断和(ii)中的指标之后,哪些指标更适合于

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1