gensim.corpora wikiCorpus 是不是仅适用于 bz2 文件?

Posted

技术标签:

【中文标题】gensim.corpora wikiCorpus 是不是仅适用于 bz2 文件?【英文标题】:does gensim.corpora wikiCorpus work only with bz2 file?gensim.corpora wikiCorpus 是否仅适用于 bz2 文件? 【发布时间】:2021-12-12 07:18:58 【问题描述】:

我正在尝试加载 wiki 转储 (.gz) 并在 gensim word2vec 中使用它。我在终端中使用 bzip2 将其转换为 bz2 但 Wikicorpus 类似乎拒绝该文件。有人可以解释一下如何以简单的方式从 wiki 转储中获取文本吗? 谢谢

【问题讨论】:

“似乎拒绝文件”是什么意思? (是否有错误消息?您可以将其添加到您的问题中吗?)您想从哪里阅读哪个 wiki 转储?是什么让您认为您需要将文件从其原始格式转换,以及您使用“终端”中的什么命令来执行此操作? 我将一个 .gz wiki 抽象转储传递给 wikiCorpus 类,而不是来自 link 的 pages-articles bz2。在文档link 中,支持的转储格式为 wiki--pages-articles.xml.bz2 和 wiki-latest-pages-articles.xml.bz2。因此,Gensim 出现命名空间错误。我想使用一个抽象转储 .gz 来创建一个带有抽象文本的 gensim word2vec 模型。我是解析 xml 的新手。还有其他方法吗? 【参考方案1】:

Gensim 中的 WikiCorpus 实用程序类需要 pages-articles 转储,而不是仅包含摘要的不同转储。

要读取另一种格式,您需要编写自己的代码。

你可以尝试一些事情:

研究 source for the WikiCorpus class 并将其用作您自己代码的模型,并对其进行调整以从其他转储中读取不同的元素。 使用其他一些实用程序,例如command-line tool jq 或类似工具,将感兴趣的 XML 元素中的相关文本转储到纯文本文件中,然后您可以逐行读取该文件在 Python 中(进一步预处理/标记,甚至直接提供给 Gensim 的 LineSentence 助手类)。

【讨论】:

以上是关于gensim.corpora wikiCorpus 是不是仅适用于 bz2 文件?的主要内容,如果未能解决你的问题,请参考以下文章

当达到 2000000 个令牌时,有没有办法停止在 gensim.WikiCorpus 中创建词汇?