维基百科文本下载

27

我想要下载完整的维基百科文本用于我的大学项目。我需要编写自己的爬虫程序来进行下载还是有公共数据集可以在线获取维基百科?

为了简单介绍我的项目,我想查找几个我感兴趣的文章中的有趣单词。但是为了找这些有趣的单词,我计划应用tf/idf来计算每个单词的词频并选取高频单词。但是为了计算tf,我需要知道整个维基百科中该单词的总出现次数。

如何实现这一点?


虽然我已经回答了你的问题,并且简单地指出谷歌有你需要的答案是不被赞同的,但如果你搜索“下载完整的维基百科文本”,链接就是第一个结果。我这么说是希望能帮助提高你的谷歌功夫。 - Sam Holder
1
@Sam Holder,只是想确认一下。这个链接是否正确,可以下载所有页面-http://dumps.wikimedia.org/enwiki/latest/enwiki-latest-pages-articles.xml.bz2 - Boolean
是的,那似乎是所有当前页面了,也可能是你想要的,但不知道确切情况很难确定。 - Sam Holder
非常感谢 @Boolean。这就像点击您的链接一样简单 <3 - Trect
8个回答

28
从维基百科:http://en.wikipedia.org/wiki/Wikipedia_database 维基百科向有兴趣的用户提供所有可用内容的免费副本。这些数据库可用于镜像、个人使用、非正式备份、离线使用或数据库查询(例如用于Wikipedia:Maintenance)。所有文本内容均在创作共用许可协议(CC-BY-SA)和GNU自由文档许可证(GFDL)下获得多重许可。图像和其他文件的使用条款有所不同,详细信息请参阅其描述页面。关于如何遵守这些许可证的建议,请参阅Wikipedia:Copyrights。
看来你也很幸运。从转储部分来看:
截至2010年3月12日,英语维基百科的最新完整转储可在http://download.wikimedia.org/enwiki/20100130/找到。这是自2008年以来第一个完整的英语维基百科转储。
请注意,更近期的转储(例如20100312转储)是不完整的。
所以数据只有9天的历史啦 :)
编辑:旧链接已失效,请使用新链接:https://dumps.wikimedia.org/enwiki/

4
我选择点赞你的回答而不是其他人,仅仅因为你不仅仅只是发布了一个链接。 - UnkwnTech
2
只是想确认一下。这个链接是否正确,可以下载所有页面-http://dumps.wikimedia.org/enwiki/latest/enwiki-latest-pages-articles.xml.bz2 - Boolean
是的,那似乎是所有当前页面了,也许这就是你想要的,但不确定确切情况下很难说。 - Sam Holder
1
链接已经损坏。 - Filippo Costa
@FilippoCosta https://dumps.wikimedia.org/enwiki/ 仍然很有用。 - Wolf

11

3
目前似乎没有任何人进行了种子投放。 - yegeniy

4

考虑到转储文件的大小,您最好使用英语单词频率,或者使用MediaWiki API随机轮询页面(或者最常访问的页面)。有一些基于此API构建机器人的框架(如Ruby、C#等),可以帮助您。




0

我在https://www.kaggle.com/datasets/ltcmdrdata/plain-text-wikipedia-202011上找到了一个相关的Kaggle数据集。

从数据集描述中可以看出:

内容

该数据集包括约40MB的JSON文件,每个文件都包含一组维基百科文章。 JSON中的每个文章元素仅包含3个键:ID编号、文章标题和文章正文。每篇文章都被“展开”为占用单个纯文本字符串。这使得人类更容易阅读,而不是标记版本。它也使得NLP任务更容易。您将需要做的清理工作要少得多。

每个文件的格式如下:

[
 {
  "id": "17279752",
  "text": "Hawthorne Road was a cricket and football ground in Bootle in England...",
  "title": "Hawthorne Road"
 }
]

从这里,使用 JSON 阅读器提取文本非常简单。

0
请使用这个脚本。
#https://en.wikipedia.org/w/api.php?action=query&prop=extracts&pageids=18630637&inprop=url&format=json
import sys, requests
for i in range(int(sys.argv[1]),int(sys.argv[2])):
  print("[wikipedia] getting source - id "+str(i))
  Text=requests.get("https://en.wikipedia.org/w/api.php?action=query&prop=extracts&pageids="+str(i)+"&inprop=url&format=json").text
  print("[wikipedia] putting into file - id "+str(i))
  with open("wikipedia/"+str(i)+"--id.json","w+") as File:
    File.writelines(Text)
  print("[wikipedia] archived - id "+str(i))

1到1062在https://costlyyawningassembly.mkcodes.repl.co/


0

所有最新的维基百科数据集都可以从Wikimedia下载。

只需确保点击最新可用的日期即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接