answer.insert(list1.currentItem());
list1.moveToNext();
Else
answer.insert(list2.currentItem());
list2.moveToNext();
End
Whilelist1.currentItem()!
=null
answer.insert(list1.currentItem());
list1.moveToNext();
END
Whilelist2.currentItem()!
=null
answer.insert(list2.currentItem());
list2.moveToNext();
END
补充习题2
若一个文集有1000篇文档,有40篇是关于信管专业建设的。
我的信息需求是了解信管专业的专业建设情况,用某搜索引擎在这个文集上搜索,查询词为“信管”,搜出100篇包含“信管”的文档,这其中有20篇是信管专业建设方面的,其它80篇是关于信管的其它情况。
请问该查询的正确率和召回率是多少
正确率=20/100=0.2
召回率=20/40=0.5
第二章词项词典及倒排记录表
习题2-1
a.在布尔检索系统中,进行词干还原从不降低正确率。
错;相当于扩充出同一个词干表示的多个词,会降低正确率。
b.在布尔检索系统中,进行词干还原从不降低召回率。
对。
c.词干还原会增加词项词典的大小。
错。
d.词干还原应该在构建索引时调用,而不应在查询处理时调用。
错;应同时做才能保证索引中和查询词的匹配。
习题2-2
请给出如下单词的归一化形式(归一化形式也可以是词本身)。
a.’Cos->cos
b.Shi’ite->shiite('是隔音号)
c.cont’d->contd(contd.可表示contained包括;continued继续)
d.Hawai’i->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)。
共比较11次。
b.使用倒排记录表+跳表的方式,跳表指针设在P1/2处(P是列表长度)。
P=16。
也就说第一个列表的跳表指针往后跳4个元素。
下图蓝色表示安装了跳表指针的元素,其中120跳到180上。
[4,6,10,12,14,16,18,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.“foolsrushin”;
文档2、4、7。
b.“foolsrushin”AND“angelsfeartotread”。
文档4。
补充习题1
k词邻近AND合并算法
前提:
考虑位置索引。
要求查找这样的文档,它同时包含词A和词B,且两词文中的距离在k个词以内。
给定两个指针p1和p2,分别指向两个词A和B的两倒排列表(链表实现)的首元素;令pi->doc表示pi所指向文档对象的结构体。
对于一个文档对象,该词出现的各个位置的列表为posList。
用q1(q2)表示词A(词B)当前指向文档对象指向的posList指向的位置。
用qi->pos表示该位置。
查询结果存放在answer列表里。
算法:
Whilep1!
=nullANDp2!
=null
Ifp1->docId==p2->docId//对两(剩余)列表的首元素进行比较
Whileq1!
=nullANDq2!
=null
Ifq1->pos–q2->pos<=kORq2->pos–q1->pos<=k
insert(answer,p1);
break;//跳出这个循环,找到一个k临近即可
ElseIfq1->pos–q2->pos>k//q2不可能被匹配上,忽略它
q2=q2->next;//生成新的剩余列表
ElseIfq2->pos–q1->pos>k//q1不可能被匹配上,忽略它
q1=q1->next;//生成新的剩余列表
EndIf
EndWhile
p1=p1->next;//构造新的剩余列表,迭代执行
p2=p2->next;
Elseifp1->docIddocId
p1=p1->next;//p1->docId不可能有匹配;构造新的剩余列表
Else
p2=p2->next;//p2->docId不可能有匹配;构造新的剩余列表
End
第六章文档评分、词项权重计算及向量空间模型
习题6-2
上面的例6-1中,如果g1=0.2,g2=0.31及g3=0.49,那么对于一个文档来说所有可能的
不同得分有多少?
得分1:
0
得分2:
g1=0.2
得分3:
g2=0.31
得分4:
g3=0.49
得分5:
g1+g2=0.51
得分6:
g1+g3=0.69
得分7:
g2+g3=0.8
得分8:
g1+g2+g3=1.0
习题6-10
考虑图6-9中的3篇文档Doc1、Doc2、Doc3中几个词项的tf情况,采用图6-8中的idf
值来计算所有词项car、auto、insurance及best的tf-idf值(这里改为df值的计算就假设用Doc1,Doc2Doc3的这个文集)。
解答:
wt,d=max(1+log10(1+tf),0)
Doc1
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-idft,d=wt,d*idft
Doc1
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=”bestcarinsurance”,问该文档-查询的相似度打分score(q,d)是?
解答:
dft
idft
auto
5000
2.3010
best
50000
1.3010
car
10000
2.0000
insurance
1000
3.0000
这里N=1000000。
文档d的tf-idf向量:
rawtft,d
wt,d=max(1+log10(1+tf),0)
tf-idft,d=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向量(wt,d=1)
图1-1大学生月生活费分布rawtft,q
wt,q=max(1+log10(1+tf),0)
tf-idft,q=wt,q*idft
(二)DIY手工艺品的“热卖化”v(q)=归一化tf-idft,d
auto
0
大学生的消费是多种多样,丰富多彩的。
除食品外,很大一部分开支都用于。
服饰,娱乐,小饰品等。
女生都比较偏爱小饰品之类的消费。
女生天性爱美,对小饰品爱不释手,因为饰品所展现的魅力,女人因饰品而妩媚动人,亮丽。
据美国商务部调查资料显示女人占据消费市场最大分额,随社会越发展,物质越丰富,女性的时尚美丽消费也越来越激烈。
因此也为饰品业创造了无限的商机。
据调查统计,有50%的同学曾经购买过DIY饰品,有90%的同学表示若在学校附近开设一家DIY手工艺制品,会去光顾。
我们认为:
我校区的女生就占了80%。
相信开饰品店也是个不错的创业方针。
0
0
0
best
1
§8-2购物环境与消费行为2004年3月20日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/7)=0.49
系统1的MAP值大。
b.相关的查询结果排名越靠前,则MAP越大。
c.按R-precision的定义,假设总共有|Rel|篇相关文档,在查询结果中取前|Rel|个文档,计算其precision。
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,7,8}。
docID判断1判断2
100
200
311
411
510
610
710
810
901
1001
1101
1201
a.计算两个判断之间的kappa统计量;
b.当两个判断均认为是相关文档时才认为该文档相关,此时计算上述系统的正确率、召回率及F1值;
c.只要有一个判断认为是相关文档则认为该文档相关,此时计算上述系统的正确率、召回率及F1值。
解答:
a.计算kappa统计量:
P(A)就是实际观察到的一致意见的概率,总共12篇文档,其中2篇两人一致选Yes,2篇两人一致选No。
因此,P(A)=(2+2)/12=1/3。
P(E)是随机情况下的一致意见的概率。
假设每个人对每个文档的Yes(或No)打分的概率py(或pn)是独立同分布的(i.i.d.),则P(E)=py*py+pn*pn。
其中,py是2*12次打分中为Yes的比例,py=12/24=1/2;pn是2*12次打分中为No的比例,pn=12/24=1/2。
代入P(E),得:
P(E)=(1/2)^2+(1/2)^2=1/2。
Kappa=(P(A)-P(E))/(1-P(E))=(1/3-1/2)/(1-1/2)=-1/3<0.67,这是一个负数,说明实际的一致性结果还不如随机产生的一致性结果,因此可以判定两人给出的相关性打分不一致。
b.文档集中共有12篇文档,其中2文档相关({3,4}),其它10篇都不相关。
查询结果为{4,5,6,7,8},其中只有1篇文档相关({4})。
该查询的
Precision,P=1/5;
Recall,R=1/2;
F1=2P*R/(P+R)=0.28。
c.文档集中共有12篇文档,其中10文档相关,其它2篇都不相关({1,2})。
查询结果为{4,5,6,7,8},全部都相关。
该查询的
Precision,P=1;
Recall,R=5/12;
F1=2P*R/(P+R)=0.67。
注:
因Kappa统计量认为两人打分不一致,所以修正方法b比较合理,而c非常不合理。
第十三章文本分类与朴素贝叶斯方法
习题13-3
位置独立性假设的基本原则是,词项在文档的位置k上出现这个事实并没有什么有用的信息。
请给出这个假设的反例。
提示:
可以考虑那些套用固定文档结构的文档。
解答:
如果一个词出现在不同域中,它的重要性不同。
比如出现在标题中的词一般很重要。
习题13-9
基于表13-10中的数据,进行如下计算:
(i)估计多项式NB分类器的参数;
(ii)将(i)中的分类器应用到