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