nlp - 向 Spacy 词形还原添加规则
问题描述
我正在使用 Spacy lemmatization 来预处理文本。
doc = 'ups'
for i in nlp(doc):
print(i.lemma_)
>> up
我理解为什么 spacy 删除's',但对我来说很重要的是,在这种情况下,它不会这样做。有没有办法向 spacy 添加特定规则,或者我必须在进程之外使用 If 语句(这是我不想做的事情)
解决方案
在 Spacy 3 中,接受的解决方案会引发错误:
KeyError: "[E159] Can't find table 'lemma_exc' in lookups. Available tables: ['lexeme_norm']"
由于lemmatizer
现在是专用的 Spacy 组件,因此必须直接在组件上修改查找(这至少对我有用):
nlp.get_pipe('lemmatizer').lookups.get_table("lemma_exc")["noun"]["data"] = ["data"]
希望这对某人有帮助!