我正在为我的大学项目下载完整的维基百科文本。我是否必须编写自己的蜘蛛才能下载此内容,或者是否有在线的维基百科公共数据集?
只是给你一些我的项目的概述,我想找出我感兴趣的几篇文章中有趣的词。但是为了找到这些有趣的词,我打算应用 tf/idf 来计算每个词的词频并挑选那些频率高的。但是要计算 tf,我需要知道整个维基百科的总出现次数。
如何才能做到这一点?
我正在为我的大学项目下载完整的维基百科文本。我是否必须编写自己的蜘蛛才能下载此内容,或者是否有在线的维基百科公共数据集?
只是给你一些我的项目的概述,我想找出我感兴趣的几篇文章中有趣的词。但是为了找到这些有趣的词,我打算应用 tf/idf 来计算每个词的词频并挑选那些频率高的。但是要计算 tf,我需要知道整个维基百科的总出现次数。
如何才能做到这一点?
来自维基百科: http ://en.wikipedia.org/wiki/Wikipedia_database
维基百科向感兴趣的用户提供所有可用内容的免费副本。这些数据库可用于镜像、个人使用、非正式备份、离线使用或数据库查询(例如用于 Wikipedia:Maintenance)。所有文本内容均根据知识共享署名-相同方式共享 3.0 许可 (CC-BY-SA) 和 GNU 自由文档许可 (GFDL) 获得多重许可。图像和其他文件以不同的条款提供,详见其描述页面。有关遵守这些许可的建议,请参阅 Wikipedia:Copyrights。
看来你也很走运。从转储部分:
截至 2010 年 3 月 12 日,英语维基百科的最新完整转储可在http://download.wikimedia.org/enwiki/20100130/找到。 这是已创建的英语维基百科的第一个完整转储自 2008 年以来。请注意,最近的转储(例如 20100312 转储)不完整。
所以数据只有 9 天 :)
如果您需要纯文本版本,而不是 Mediawiki XML,那么您可以在这里下载:http: //kopiwiki.dsd.sztaki.hu/
考虑到转储的大小,使用英语中的词频可能会更好,或者使用MediaWiki API随机轮询页面(或咨询次数最多的页面)。有一些框架可以基于此 API(Ruby、C# 等)构建机器人,可以帮助您。
所有最新的维基百科数据集都可以从以下位置下载:维基媒体 只需确保单击最新的可用日期
使用这个脚本
#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/。