0

我正在尝试访问 spaCy BERT 字典,但我收到了来自模型的奇怪输出。例如对于en_core_web_lg模型,我可以像这样提取约 130 万个令牌

nlp = spacy.load("en_core_web_lg") 
tokens = [t for t in nlp.vocab]

当我对en_trf_bertbaseuncased_lg模型做同样的事情时,我只得到 478 个令牌,

nlp = spacy.load("en_trf_bertbaseuncased_lg") 
tokens = [t for t in nlp.vocab]

而根据BERT 论文应该有大约 30k 个令牌。有没有办法我可以通过nlp.vocab或通过自定义组件属性访问它们?

4

1 回答 1

0

我对像“en”这样的标准模型也有类似的问题。有趣的是,长度完全相同。

import spacy
nlp = spacy.load("en")
len([t for t in nlp.vocab])
478

原来像“en”这样的模型不包含真正的向量(参见https://github.com/explosion/spaCy/issues/1520)。所以我想这也是伯特的情况。

于 2020-03-12T16:58:21.333 回答