Это намного проще в следующей версии, которая должна выйти на этой неделе --- я как раз заканчиваю ее тестировать. Теперь:
По умолчанию spaCy загружает файл data/vocab/vec.bin, где каталог «data» находится в каталоге модуля spacy.en Создайте файл vec.bin из файла bz2, используя spacy.vocab.write_binary_vectors Либо замените vec.bin spaCy или вызовите nlp.vocab.load_rep_vectors во время выполнения, указав путь к двоичному файлу. Вышеупомянутое поначалу немного неудобно, но формат двоичного файла намного меньше и быстрее загружается, а файлы векторов довольно большие. Обратите внимание, что GloVe распространяется в формате gzip, а не bzip.
Из интереса: вы используете векторы GloVe или что-то, что вы тренировали на своих собственных данных? Если ваши собственные данные, вы использовали Gensim? Я хотел бы сделать это намного проще, поэтому я был бы признателен за предложения о том, какой рабочий процесс вы хотели бы видеть.
Загружать новые векторы во время выполнения, при необходимости преобразовывая их
import spacy.vocab
def set_spacy_vectors(nlp, binary_loc, bz2_loc=None):
if bz2_loc is not None:
spacy.vocab.write_binary_vectors(bz2_loc, binary_loc)
write_binary_vectors(bz2_input_loc, binary_loc)
nlp.vocab.load_rep_vectors(binary_loc)
Замените vec.bin, чтобы ваши векторы загружались по умолчанию
from spacy.vocab import write_binary_vectors
import spacy.en
from os import path
def main(bz2_loc):
bin_loc = path.join(path.dirname(spacy.en.__file__), 'data', 'vocab', 'vec.bin')
write_binary_vectors(bz2_loc, bin_loc)
if __name__ == '__main__':
plac.call(main)
person
Nishank Mahore
schedule
08.05.2017