转换单词向量(从fastText)以在spaCy中使用失败

时间:2018-08-07 22:06:15

标签: python-3.x spacy

我用fastText生成了单词向量,并想将它们转换为用于spaCy模型(德语)。在spaCy文档中,它说向量“应该是Word2Vec格式的制表符分隔的文件,其中第一列包含单词,其余列包含值”。因此,我将字向量转换为txt文件,以使它们具有正确的格式。但是,当我尝试运行 python -m spacy init-model de /Users/vectors --vectors-loc test_vectors.txt
我收到以下ValueError:int()以10为底的无效文字:“ ich”

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


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

1 个答案:

答案 0 :(得分:1)

我从fastText pretrained vectors下载了一个快速文本模型(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)

然后我跑:

python3 -m spacy init-model el . --vectors-loc wiki.el.txt

效果很好。

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

希望有帮助!