[Pikapika]科技文献的脉络梳理-构建查询Wiki的数据结构

首先我们需要实现的是一个能够查询Wiki的数据结构,而有如下几种处理方式

  1. 直接的爬虫抓取及其优化
  2. 调用现成python库(基于wiki的api)
  3. 下载离线版wikipedia

直接使用爬虫抓取wikipedia

如果直接使用python的urllib库调用的话,由于网络延迟等问题,效率大概是3sec/search

这里粘贴一个爬取百度百科的代码,wiki可以肯定比百度百科慢,毕竟在墙外面……

 

接着考虑使用更加高效的爬取框架scrapy

代码架构比较复杂,但是搜索的速度可以提升至1sec/search,其原理大概是通过异步的方式解决网络延迟的问题,但是基础的长达3sec的网络延迟还是必定会存在的,不过对于我们的分析还是过于慢了

Python库实现wiki查询

python有一个叫做wikipedia的库,其核心是通过wikipedia的公开api实现查询。还是很慢……

离线Wiki数据查询

离线数据下载主页:https://en.wikipedia.org/wiki/Wikipedia:Database_download

具体来说我下载的离线数据在这里:https://dumps.wikimedia.org/other/static_html_dumps/current/zh/

其中html.lst文件列举了所有文件名,wikipedia-zh-html.tar.7z文件就是实际的数据集,解压后11G,最棒的是解压后发现居然已经帮我把trie树建出来了!

但是,问题来了,虽然在个人的mac上面文件名非常正常,但是把它弄到ubuntu下面就完全不可看,大概就是一堆问号的情况。事实上这只是ssh上去的显示问题,还是可以用程序访问的。

不过速度嘛……

原创文章地址:【[Pikapika]科技文献的脉络梳理-构建查询Wiki的数据结构】,转载时请注明出处mhy12345.xyz

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.