将向量从 fastText 导出到 spaCy

Export vectors from fastText to spaCy

我下载了fasttext.cc vectors of 1.5gb, I used example code spaCy examples vectors_fast_text。我在终端中执行了以下命令:

python config/vectors_fast_text.py vectors_loc data/vectors/wiki.pt.vec

在处理器处于 100% 状态几分钟后,我收到了以下文本:

class colspan 0.32231358

从这里会发生什么?我如何将这些向量导出到其他地方,例如使用我的 AWS S3 培训模板?

我修改了示例脚本,以加载我的语言的现有数据,读取文件 word2vec,最后将所有内容写入一个文件夹(此文件夹需要存在)。

关注vectors_fast_text.py:

[LANGUAGE] = example: "pt"

[FILE_WORD2VEC] = "./data/word2vec.txt"

from __future__ import unicode_literals
import plac
import numpy

import spacy
from spacy.language import Language


@plac.annotations()
def main():
    nlp = spacy.load('[LANGUAGE]')
    with open("[FILE_WORD2VEC]", 'rb') as file_:
        header = file_.readline()
        nr_row, nr_dim = header.split()
        nlp.vocab.reset_vectors(width=int(nr_dim))
        count = 0
        for line in file_:
            count += 1
            line = line.rstrip().decode('utf8')
            pieces = line.rsplit(' ', int(nr_dim))
            word = pieces[0]
            print("{} - {}".format(count, word))
            vector = numpy.asarray([float(v) for v in pieces[1:]], dtype='f')
            nlp.vocab.set_vector(word, vector)  # add the vectors to the vocab
    nlp.to_disk("./models/new_nlp/")


if __name__ == '__main__':
    plac.call(main)

在终端中输入:

python vectors_fast_text.py

大约需要 10 分钟才能完成,具体取决于 word2vec 文件的大小。剧本里我把字印出来了,大家可以照着看。

之后,您必须在终端中输入:

python -m spacy package ./models/new_nlp/ ./my_models/
python setup.py sdist

然后你会得到一个“zip”文件。

pip install /path/to/pt_example_model-1.0.0.tar.gz

详细教程可以在spaCy官网上找到: https://spacy.io/usage/training