如何在一个txt文件中下载wiki部分

时间:2016-05-30 15:27:59

标签: text machine-learning wikipedia dump

我需要一个巨大的自然文本文件用于机器学习,而维基百科转储非常适用于此目的。那么如何在没有xml标签(仅仅是内容)的情况下以某种语言(非英语)下载几个gb的文本?

3 个答案:

答案 0 :(得分:1)

您可以从dumps.wikimedia.org获取所选维基百科的所有内容的转储。您可能需要其中一个*wiki-20160501-pages-articles.xml个文件。然后,您可以使用xmlstarlet之类的工具从转储中删除所有XML标记:

xml sel -t -c "//text()" fywiki-20160501-pages-articles.xml > articles.txt

但是,Wikipedia转储中的文本将是wiki标记,而不是自然文本。您可以使用sed

之类的内容删除所有不是字母数字的内容
cat dump.txt | sed 's/\W/ /g'

这并没有给你一个干净的语料库(例如,wikimarkup关键字和html实体仍将在你的转储文件中),但它可能足够接近你的目的。

答案 1 :(得分:0)

阶段a:

转到dumps.wikimedia.org。找到适合您请求的转储。对于机器学习 - 最好的方法是下载您的语言的“所有页面,当前版本”转储。下载并解压缩。

阶段b:

由于转储是带有wiki-markup内容语法的xml文件,因此必须将其转换为纯文本。我发现的最佳解决方案是使用此工具包 - https://github.com/yohasebe/wp2txt。它不需要太多记忆,效果很好。

阶段c:

wp2txt产生了数百个10mb的txt文件,因此我们需要将它们连接起来。使用

cat * > all.txt

在nix系统或

cat dump.txt | sed 's/\W/ /g'

for windows one。

P.S。我也找到了更好的ML案例的半合法解决方案。解决方案是下载一些巨大的文本库。学习愉快!

答案 2 :(得分:0)

对于 Python,请在下载 .xml 转储后尝试此操作

pip install wiki-dump-reader

https://pypi.org/project/wiki-dump-reader/