如何解决如何准备使用整个Wikipedia进行自然语言处理?
我在这里有点新。我有一个项目,必须下载和使用Wikipedia for NLP。我面临的问题如下: 我的RAM只有12 GB,但是英语Wiki转储的压缩量超过15 GB。这会限制我对Wiki的处理吗?我不需要维基百科的任何图片。处理之前是否需要解压缩转储?有人可以告诉我所需的步骤,还是可以指向我相关的内容? 预先感谢。
解决方法
最容易处理的Wikipedia转储是依靠kiwix.org转储,您可以在以下网址找到https://wiki.kiwix.org/wiki/Content_in_all_languages
然后使用python您可以执行以下操作
% wget http://download.kiwix.org/zim/wiktionary_eo_all_nopic.zim
...
% pip install --user libzim
% ipython
In [2]: from libzim.reader import File
In [3]: total = 0
...:
...: with File("wiktionary_eo_all_nopic.zim") as reader:
...: for uid in range(0,reader.article_count):
...: page = reader.get_article_by_id(uid)
...: total += len(page.content)
...: print(total)
这是一个简单的处理,您应该立即开始。特别是从2020年开始,使用Wikimarkup的原始Wikipedia转储非常难以处理,因为在没有完整的Wikimedia设置的情况下,您无法将Wikimarkup转换为包括信息框的html。还有REST API,但为什么要在工作完成后挣扎:)
关于处理后将数据存储在何处,我认为行业标准是PostgreSQL或ElasticSearch(这也需要大量内存),但我真的很喜欢hoply,并且更喜欢OKVS。
,如果要直接处理XML转储,则可以下载多流版本。
multistream允许根据需要使用索引来解压缩节,而不必解压缩整个事物。
这使您可以从压缩转储中提取文章。
有关文档,请参见https://meta.wikimedia.org/wiki/Data_dumps/Dump_format#Multistream_dumps。使用此信息,您可以从转储中获取任何给定的文章,而无需将其加载到内存中。
如果要解析所有Wikipedia,则可以一次解析一个多流文件(约100篇文章),这应该适合您的资源。有关如何执行此操作的示例,请参见https://jamesthorne.co.uk/blog/processing-wikipedia-in-a-couple-of-hours/。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。