轮到你了
至此,你已知道如何从现有的HTML、XML、CSV或JSON文件中(甚至从纯文本中)提取有价值的数据,也了解了HTML和XML标签及其结构,能从数据中分离标签,并规范化字词(至少可以实现一定程度的规范化)。懂得这些后,你可以完成很多大项目了——当然你还需要一些耐心。现在让我们来做一些练习!
失效链接检测器*
编写一个程序,基于一个给定网页的URL,报出页面中失效链接的名称和地址。出于练习的目的,约定当使用urllib.request.urlopen()打开链接失败时,则认为链接失效。
维基百科矿工**
MediaWiki(一个维基百科项目8)提供了基于JSON的API,可以实现对维基百科数据和元数据的可编程访问。编写一个程序,报出标题为“Data science”的维基百科页面中使用频率最高的十个词干。
实现提示如下。
o 使用HTTP,而不是HTTPS。
o 阅读MediaWiki网站上的“simple example”,并将其作为程序的基础。
o 首先,按标题获取页面ID,然后按ID获取页面。
o 阅读JSON数据,留意不同层次的密钥:在写作本书时,答案具有六个层次的深度!
音乐流派分类器***
编写一个程序,使用维基百科计算不同的摇滚/流行音乐流派之间的语义相似性。从按类型9分类的主要音乐组的列表开始。(注意,列表是分层的,而且包含子类!)递归处理列表及其子列表,直到找出所有相关组(为了节省时间和流量,可以通过选取固定的子类别,例如英国摇滚类,实现对搜索的限制)。如果可能的话,对于每个发现的组,提取其类型。使用Jaccard相似性指数10作为语义相似性的度量:对于每一个类型组A和B,J(A,B)=|A∩B|/|A∪B|=|C|/(|A|+|B|-|C|),其中|A|、|B|分别是列出类型A、B的组的数量,|C|则是同时列出A和B的组的数量。将运行结果保存(pickle),以备将来使用。相信我,你不会愿意多次运行这个程序的!
顺便提一下,本程序计算出共有多少种类型以及最相关的类型是什么?
8www.mediawiki.org/wiki/API:Main_page
9en.wikipedia.org/wiki/Category:Rock_music_groups_by_genre
10en.wikipedia.org/wiki/Jaccard_index
哪些是女神?……第十个是Vor,她是如此聪明,没有什么可以瞒得了她。
——冰岛历史学家、诗人和政治家Snorri Sturluson
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论