Я пытаюсь загрузить перчатку 100d emebddings в пространственный конвейер nlp.
Я создаю словарь в просторном формате следующим образом:
python -m spacy init-model en spacy.glove.model --vectors-loc glove.6B.100d.txt
glove.6B.100d.txt конвертируется в формат word2ve c путем добавления «400000 100» в первую строку .
Теперь
spacy.glove.model/vocab has following files:
5468549 key2row
38430528 lexemes.bin
5485216 strings.json
160000128 vectors
В коде:
import spacy
nlp = spacy.load("en_core_web_md")
from spacy.vocab import Vocab
vocab = Vocab().from_disk('./spacy.glove.model/vocab')
nlp.vocab = vocab
print(len(nlp.vocab.strings))
print(nlp.vocab.vectors.shape) gives
дает 407174 (400000, 100)
Однако проблема в том, что:
V=nlp.vocab
max_rank = max(lex.rank for lex in V if lex.has_vector)
print(max_rank)
дает 0
Я просто хочу использовать вложения перчаток 100d в spacy в сочетании с моделями tagger, parser, ner из en_core_web_md.
Кто-нибудь знает, как go сделать это правильно (возможно ли это)?