如何将Wikipedia转储用作Gensim模型?

时间:2019-06-22 12:17:33

标签: python gensim word2vec

我正在尝试使用Gensim将英语维基百科转储(https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-pages-articles.xml.bz2)用作我的预训练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'

我是否需要重新下载或其他内容?

1 个答案:

答案 0 :(得分:1)

该转储文件包含XML格式的实际Wikipedia文章-没有矢量。 load_word2vec_format()方法仅加载先前训练的向量集。

您的gensim安装目录docs/notebooks中包含许多可以运行的演示Jupyter笔记本。其中的doc2vec-wikipedia.ipynb其中之一显示了基于Wikipedia文章转储的训练文档向量。 (可以很容易地将其修改为只训练单词向量。)

您也可以在以下位置在线查看此笔记本:

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

请注意,如果您在本地运行它们,并在INFO级别启用日志记录,您将学到更多信息。另外,这种特殊的培训可能需要一整天或更长的时间才能运行,并且需要一台具有16GB或以上或RAM的计算机。