Gensim:如何从文本文件中加载预先计算的词向量

ilo*_*als 9 python nlp python-3.x gensim

我有一个文本文件,其中包含以下格式的预计算词向量(示例):

word -0.0762464299711 0.0128308048976 ... 0.0712385589283\n’

在每个单词的每一行上(用 297 个额外的浮点数代替...)。我试图用 Gensim 作为 KeyedVectors 加载这些,因为我最终想计算余弦相似度,找到最相似的词等。不幸的是,我之前没有使用过 Gensim,从文档中我不太清楚该怎么做这个。我已经尝试了我在这里找到的以下内容:

word_vectors = KeyedVectors.load_word2vec_format('/embeddings/word.vectors', binary=False)

但是,这会导致以下错误:

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

'the' 是文本文件中的第一个单词,所以我怀疑加载函数期望存在一些不存在的东西。但我找不到任何关于那里应该有什么的信息。我非常感谢指向此类信息或我的问题的任何其他解决方案的指针。谢谢!

Eti*_*neG 7

您可以在此处看到Word2Vec 格式的示例。第一行应该包含文件中的单词数,然后是向量的维度。这可能就是您的脚本向您返回错误的原因。

在你的例子中:

1 300
word -0.0762464299711 0.0128308048976 ... 0.0712385589283
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!这正是我需要的信息!我还发现我的文本文件实际上是 GloVe 格式,所以我最终使用了这些行:```from gensim.scripts.glove2word2vec import glove2word2vec glove2word2vec(glove_file, tmp_file)``` 之后,我可以导入我的带有 ```KeyedVectors.load_word2vec_format(tmp_file)``` 的向量。 (6认同)