【发布时间】:2020-06-17 17:34:30
【问题描述】:
我正在尝试在 spacy nlp 管道中加载 glove 100d embddings。
我以 spacy 格式创建词汇表,如下所示:
python -m spacy init-model en spacy.glove.model --vectors-loc glove.6B.100d.txt
glove.6B.100d.txt 通过在第一行添加“400000 100”转换为 word2vec 格式。
现在
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
我只想将 spacy 中的 100d 手套嵌入与 en_core_web_md 中的“tagger”、“parser”、“ner”模型结合使用。
有谁知道如何正确执行此操作(这可能吗)?
【问题讨论】: