首页 > 解决方案 > 向 Spacy 词形还原添加规则

问题描述

我正在使用 Spacy lemmatization 来预处理文本。

doc = 'ups'
for i in nlp(doc):
print(i.lemma_)
>> up

我理解为什么 spacy 删除's',但对我来说很重要的是,在这种情况下,它不会这样做。有没有办法向 spacy 添加特定规则,或者我必须在进程之外使用 If 语句(这是我不想做的事情)

标签: nlpspacy

解决方案


在 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"]

希望这对某人有帮助!


推荐阅读