如何使用维基百科转储作为 Gensim 模型?

How do I use the wikipedia dump as a Gensim model?

我正在尝试使用英语维基百科转储 (https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-pages-articles.xml.bz2) 作为我使用 Gensim.

预训练的 word2vec 模型
from gensim.models.keyedvectors import KeyedVectors

model_path = 'enwiki-latest-pages-articles.xml.bz2'
w2v_model = KeyedVectors.load_word2vec_format(model_path, binary=True)

当我这样做时,我得到

   342     with utils.smart_open(fname) as fin:
    343         header = utils.to_unicode(fin.readline(), encoding=encoding)
--> 344         vocab_size, vector_size = (int(x) for x in header.split())  # throws for invalid file format
    345         if limit:
    346             vocab_size = min(vocab_size, limit)

ValueError: invalid literal for int() with base 10: '<mediawiki'

我需要重新下载什么的吗?

该转储文件包含 XML 格式的实际维基百科文章——没有向量。 load_word2vec_format() 方法仅加载之前训练过的 sets-of-vectors。

您的 gensim 安装的 docs/notebooks 目录包含许多您可以 运行 的演示 Jupyter 笔记本。其中之一 doc2vec-wikipedia.ipynb 显示了基于维基百科文章转储的训练 document-vectors。 (它可以很容易地适应只训练 word-vectors。)

您还可以在线查看此笔记本:

https://github.com/RaRe-Technologies/gensim/blob/develop/docs/notebooks/doc2vec-wikipedia.ipynb

请注意,如果您在本地 运行 它们并在 INFO 级别启用日志记录,您将从中学到更多。此外,此特定培训可能需要一整天或更长时间 运行,并且需要一台具有 16GB 或更多内存或 RAM 的机器。