ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:165.28KB ,
资源ID:1402636      下载积分:15 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1402636.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(中国科学院大学现代信息检索课后习题答案.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

中国科学院大学现代信息检索课后习题答案.docx

1、信息检索导论课后练习答案王斌最后更新日期 2013/9/28第一章 布尔检索习题1-1 *画出下列文档集所对应的倒排索引(参考图1-3中的例子)。文档 1 new home sales top forecasts文档 2 home sales rise in july文档 3 increase in home sales in july文档 4 july new home sales rise解答:forecasts-1home-1 2 3 4in-2 3increase-3july-2 3 4new-1 4rise-2 4sales-1 2 3 4top-1习题1-2 *考虑如下几篇文档:文

2、档1 breakthrough drug for schizophrenia文档2 new schizophrenia drug文档3 new approach for treatment of schizophrenia文档4 new hopes for schizophrenia patientsa. 画出文档集对应的词项文档矩阵;解答:文档1文档2文档3文档4approach0010breakthrough1000drug1100for1011hopes0001new0111of0010patients0001schizophrenia1111treatment0010b. 画出该文档集

3、的倒排索引(参考图 1-3中的例子)。解答:参考a。习题1-3 *对于习题1-2中的文档集,如果给定如下查询,那么返回的结果是什么?a. schizophrenia AND drug解答:文档1,文档2b. for AND NOT (drug OR approach)解答:文档4习题1-4 * 对于如下查询,能否仍然在O(x+y)次内完成?其中x和y分别是Brutus和Caesar所对应的倒排记录表长度。如果不能的话,那么我们能达到的时间复杂度是多少?a. Brutus AND NOT Caesarb. Brutus OR NOT Caesar解答:a. 可以在O(x+y)次内完成。通过集合的

4、减操作即可。具体做法参考习题1-11。b. 不能。不可以在O(x+y)次内完成。因为NOT Caesar的倒排记录表需要提取其他所有词项对应的倒排记录表。所以需要遍历几乎全体倒排记录表,于是时间复杂度即为所有倒排记录表的长度的和N,即O(N) 或者说O(x+N-y)。习题1-5 * 将倒排记录表合并算法推广到任意布尔查询表达式,其时间复杂度是多少?比如,对于查询c. (Brutus OR Caesar) AND NOT (Antony OR Cleopatra)我们能在线性时间内完成合并吗?这里的线性是针对什么来说的?我们还能对此加以改进吗?解答:时间复杂度为O(qN),其中q为表达式中词项的

5、个数,N为所有倒排记录表长度之和。也就是说可以在词项个数q及所有倒排记录表长度N的线性时间内完成合并。由于任意布尔表达式处理算法复杂度的上界为O(N),所以上述复杂度无法进一步改进。习题1-6 *假定我们使用分配律来改写有关AND和OR的查询表达式。12a. 通过分配律将习题1-5中的查询写成析取范式;b. 改写之后的查询的处理过程比原始查询处理过程的效率高还是低?c. 上述结果对任何查询通用还是依赖于文档集的内容和词本身?解答:a. 析取范式为:(Brutus And Not Anthony And Not Cleopatra) OR (Caesar AND NOT Anthony AND

6、NOT Cleopatra)b. 这里的析取范式处理比前面的合取范式更有效。这是因为这里先进行AND操作(括号内),得到的倒排记录表都不大,再进行OR操作效率就不会很低。而前面需要先进行OR操作,得到的中间倒排记录表会更大一些。c. 上述结果不一定对,比如两个罕见词A和B构成的查询 (A OR B) AND NOT(HONG OR KONG),假设HONG KONG一起出现很频繁。此时合取方式可能处理起来更高效。如果在析取范式中仅有词项的非操作时,b中结果不对。习题 1-7 *请推荐如下查询的处理次序。d. (tangerine OR trees) AND (marmalade OR skie

7、s) AND (kaleidoscope OR eyes)其中,每个词项对应的倒排记录表的长度分别如下:词项 倒排记录表长度eyes 213 312kaleidoscope 87 009marmalade 107 913skies 271 658tangerine 46 653trees 316 812解答:由于:(tangerine OR trees) 46653+316812 = 363465(marmalade OR skies) 107913+271658 = 379571(kaleidoscope OR eyes) 87009+213312 = 30321 所以推荐处理次序为:(ka

8、leidoscope OR eyes)AND (tangerine OR trees) AND (marmalade OR skies)习题1-8* 对于查询e. friends AND romans AND (NOT countrymen)如何利用countrymen的文档频率来估计最佳的查询处理次序?特别地,提出一种在确定查询顺序时对逻辑非进行处理的方法。解答:令friends、romans和countrymen的文档频率分别为x、y、z。如果z极高,则将N-z作为NOT countrymen的长度估计值,然后按照x、y、N-z从小到大合并。如果z极低,则按照x、y、z从小到大合并。习题

9、1-9 *对于逻辑与构成的查询,按照倒排记录表从小到大的处理次序是不是一定是最优的?如果是,请给出解释;如果不是,请给出反例。解答:不一定。比如三个长度分别为x,y,z的倒排记录表进行合并,其中xyz,如果x和y的交集为空集,那么有可能先合并x、y效率更高。习题 1-10 *对于查询x OR y,按照图1-6的方式,给出一个合并算法。解答:1 answer- ( )2 while p1!=NIL and p2!=NIL3 do if docID(p1)=docID(p2)4 then ADD(answer,docID(p1)5p1- next(p1)6 p2-next(p2)7 else if

10、 docID(p1)docID(p2)8 then ADD(answer,docID(p1)9 p1- next(p1)10 else ADD(answer,docID(p2)11p2-next(p2)12 if p1!=NIL / x还有剩余 13 then while p1!=NIL do ADD (answer, docID(p1)14 else while p2!=NIL do ADD(answer,docID(p2)15 return(answer) 习题 1-11 * 如何处理查询x AND NOT y?为什么原始的处理方法非常耗时?给出一个针对该查询的高效合并算法。解答:由于NOT y几乎要遍历所有倒排表,因此如果采用列举倒排表的方式非常耗时。可以采用两个有序集合求减的方式处理 x AND NOT y。算法如下:Meger(p1,p2)1answer ()2while p1!=NIL and p2!=NIL3do if docID(p1) =docID(p2)4thenp1next(p1)5p2next(p2)6else if docID(p1)75b. 当两个表进行合并时,倒排记录之间的比较次数是多少?【如下答案不一定正确,有人利用程序计算需要21次,

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

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