将词向量(来自 fastText)转换为在 spaCy 中使用失败

bla*_*rry 1 python-3.x spacy

我使用 fastText 生成了词向量,并希望将它们转换为在 spaCy 模型(针对德语)中使用。在 spaCy 文档中,向量“应该是 Word2Vec 格式的制表符分隔文件,其中第一列包含单词,其余列包含值”。因此,我将词向量转换为 txt 文件,使其具有完全相同的格式。但是,当我尝试运行时 python -m spacy init-model de /Users/vectors --vectors-loc test_vectors.txt
出现以下 ValueError: invalidliteral for int() with base 10: 'ich'

我的文件格式不正确吗?我错过了什么吗?


操作系统:Windows 8.1 使用的Python版本:3.6.4 spaCy 使用的版本:2.0.11 环境信息:windows cmd

gda*_*ras 5

我从 fastText预训练向量下载了 fasttext 模型 (wiki.el.vec) ,然后使用以下 gensim 代码将它们转换为 txt 格式:

from gensim.models.keyedvectors import KeyedVectors
model = KeyedVectors.load_word2vec_format('wiki.el.vec', binary=False)
model.save_word2vec_format('wiki.el.txt', binary=False)
Run Code Online (Sandbox Code Playgroud)

然后我运行:

python3 -m spacy init-model el . --vectors-loc wiki.el.txt
Run Code Online (Sandbox Code Playgroud)

而且效果很好。

将 el 替换为 de,将初始 wiki.el.vec 文件替换为相应的 de.vec 文件,然后重现我遵循的步骤,我认为它会完成。

希望能帮助到你!