当spacy的词汇中添加一个单词时, 为了使用语言功能,还需要添加一些信息,例如引理和标签。
如何将此功能添加到词汇中?这些更改是临时进行的还是每次我调用 spacy 时进行?
我找不到有关词汇源的任何信息来告诉我如何设置单词(而不是它们的向量)。
到目前为止,我正在通过调用来检查词汇中是否有某个单词
word = "apple"
word in list(nlp.vocab.strings)
因为
word in nlp.vocab, nlp.vocab.has_vector(word), nlp.vocab.get_vector(word)
总是给我False
作为答案。
标签和引理不是词汇表的一部分,因为
Vocab
条目(Lexeme
)仅包含上下文无关的特征。请参阅:https://spacy.io/api/lexeme
您可以在
Token
中的 Doc
上设置标签和引理,而不是在 Lexeme
上。
另请注意,
nlp.vocab.strings
不是词汇中的单词,而是单词/标签等。在StringStore
。 nlp.vocab
是带有 Vocab
条目的 Lexeme
。
nlp.vocab
和nlp.vocab.strings
都应该被认为是根据需要添加词素和字符串的缓存,因此一个项目当前是否在nlp.vocab
或nlp.vocab.strings
中主要指示它是否以前见过,没有太多其他信息。每次加载 nlp.vocab
时,nlp
几乎都是空的,并随着文本处理而扩展。