【问题标题】:How do I use the wikipedia dump as a Gensim model?如何将维基百科转储用作 Gensim 模型?
【发布时间】:2019-06-24 11:50:04
【问题描述】:

我正在尝试使用英文维基百科转储 (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'

我需要重新下载吗?

【问题讨论】:

    标签: python gensim word2vec


    【解决方案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 或更多内存的机器。

    【讨论】:

    • 谢谢。你知道 doc2vec 与 word2vec 有何不同吗?我还能向量化一个单词吗?还是它接收整个文档作为输入?
    • Doc2Vec 扩展了Word2Vec,使用了一种学习更长文本向量的方法。 Doc2Vec 的某些模式也会创建词向量,但如果您只需要词向量,只需使用Word2Vec。如前所述,将笔记本示例更改为使用 Word2Vec 应该很容易。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-01
    • 2015-05-18
    • 2013-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多