



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验 10: Compound Dictionaries混合式汇表 快速参考 D = 创建一个空的词汇表 D = key1:value1, 创建一个非空的词汇表 Dkey 返回主键所映射的键值。(如果没有主键返回的是什么?) Dkey = newvalue 给主键映射新的键值。覆写任何先前的值。 del Dkey 从D中删除主键的映射。 len(D) 返回D中条目(映射)数。 x in D, x not in D 检查主键 x 是否在词汇表D 这种 D.items() 以带数组(key, value) 的列表的形式返回条目。 for k in D 遍历 D 中的所有主键。 问题 1 清单查找 下载 inventory.py 文件。 这个文件展示了8个不同的项, 每一项都有一个名字,一个价格和一个账目, 比如: HAMMER = “hammer” HAMMER_PRICE = 10 HAMMER_COUNT = 100 我们打算考虑一种情况,即客户一般开始会有一个关于他们想要花多少钱的想法。因此我们打算 考虑几个选项,即要么便宜(低于$20)中等( $20到 $100),要么昂贵(高于 $100)。 首先,填写变量清单,保证所有8个项的数据在清单内。务必坚持关于便宜,中等和昂贵的概念 。然后,实现get_info函数,其用于接受一个便宜的概念,然后返回清单里每一个在此范围内的 项的信息的列表,就如同函数本身的信息说明的那样。 重要的是:此函数内不应该有loop 循环。我们的清单很小,但是对一个巨型商店来说,清单会 非常巨大。对每个用户的每一次查询请求,商店是不能负担对所有清单进行遍历的时间的。 当你完成后,运行程序。所有测试行应该输出True。 6.189 - 循序渐进使用Python 编程 (短期独立活动计划) 2008 - 第八课 主讲: Aseem Kishore 问题 2 对网络索引化,第二部分 我们的搜索引擎正常工作。很好!但是我们如何知道哪一个站点比其他的更好?现在,它们只是 以随机顺序返回站点(记住,词汇表是无序的)。在这个问题中,我们将实现一个评级系统。 我们基于什么评级呢?Google用一个创新的评级系统对页面评级,如果有更多其他的页面连接 它的话评级就越高。不幸的是我们做不到那点,因为那需要对图论有相当深的理解,那我们能做 什么呢?嗯,在Google之前,大多数搜索引擎要么通过其页面中查询词的出现频率来评级, 要么通过该页面中文本占被查询词的百分比来评级。我们将通过频率来评级 - 我们发现在 Google之后,这两种方法都不是特别好,两者之间没有明显的优劣。 一开始,下载下面的文件: webindexer2.py 这是包含所有你的代码的文件。 websearch2.py 这个完整的程序是一个更新后的搜索引擎,它有一个评级系统,将用于你的新索引。 再次看看主体程序文件, websearch2.py. 它几乎同前面的版本是一样的。 但是你可以看到它现在它希望的是(site, frequency) 的数组而不是站点自身。通过这种方法, 可以显示每个站点的点击次数。它也希望站点已经 按从高到底的频率 存储/评级了。 同样让我们看一看webindexer2.py 文件,它也几乎同前面的版本是一样的,但是其对搜索函数 的描述表明其返回的是每个站点的频率,并且站点是以评级来排序的。 为了对每个站点按所查询词出现的频率来评级,我们将不得不在我们的索引中存储该信息。 一开始,你可以从webindexer1.py 拷贝你的函数的代码到webindexer2.py, 但你其实大可不必。 任务 1 实现index_site 函数。 每个站点在索引中需要存储的是什么信息?存储信息的最好方法是 什么?如果我们有不止一个的选择,哪一个是不稳定的,哪一个是稳定的呢?当我 们建立索引时,将可能频繁改动,那么哪种选择好些呢? 提示: 如果感到困难, 可以按逻辑来思考。当我搜索是,我有一个词。我想要能查 找这个词并得到什么信息呢?这个信息既要充分也要能够存储。 既然我们关注索引化,我们将再次关注查询。同样的,我们也将在处理多个词之前 处理单个词。这将同你前面的函数很类似,但是我们不得不多一个额外的事:按出现 频率对其排序。 任务 2 实现search_single_word函数。我们不得不返回一个具有 (site, frequency) 数组的列表。如果我 们有一个包含这些数组的列表,对它们排序,像这样做: L.sort(key = lambda pair: pair1, reverse = True) 现在不用担心这是什么意思,但如果你感兴趣,我们会解释。 另一方面,既然我们能处理一个词的情况,我们将能处理多个词的情况。就像前面 的道理一样,但是我们不得不在返回这些结果前对其排序。 任务 3 实现 search_multiple_words 函数。 参数words 是一个列表, 而不是一个字符串。 确保在你返回的列表中没有重复的站点!在此之前,记得排序列表!(用同上面一 样的语句)。 你现在应当有一个带评级系统的索引器了,那么运行 websearch2.py 文件试验一下!为了开心一 点,别用那个包含站点最少的文件。用包含20个或者50个的看看评级是怎样的。 像前面一样,在下一页,我会贴出我从mitsites20.txt 文件得到的搜索结果。如果你的输出太离 谱,你可能什么地方做错了。如果只是轻微的不同,则可能是你索引站点时,网站 的页面(例如 )同我索引时相比有了一些变化。 这是我的输出结果: 6.189 Web Search! (version 2) Building the index. (this may take a while) Done! At any time, you may search for “QUIT“ to quit. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - What would you like to search for? hockfield 1 site(s) found with the terms “hockfield“: (1 hits) / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - What would you like to search for? susan hockfield 2 site(s) found with the terms “susan hockfield“: (2 hits) / (1 hits) / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - What would you like to search for? computer science 11 site(s) found with the terms “computer science“: (102 hits) /OcwWeb/web/courses/courses/index.htm (12 hits) / (7 hits) / (6 hits) / (4 hits) / (4 hits) / (4 hits) / (3 hits) / (1 hits) / (1 hits) / (1 hits) / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - What would you like to search for? python No sites fo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论