nlp - spaCy Tokenizer LEMMA 和 ORTH 异常不起作用

标签 nlp spacy

我正在遵循书中第 2 章中的一个示例:Yuli Vasiliev 2020 使用 Python 和 spaCy 进行自然语言处理
enter image description here
该示例假设生成词形还原输出:
['我','我','飞行','到','弗里斯科']
['-PRON-', 'be', 'fly', 'to', '旧金山']
我收到以下错误:

nlp.tokenizer.add_special_case(u'Frisco', sf_special_case)
  File "spacy\tokenizer.pyx", line 601, in spacy.tokenizer.Tokenizer.add_special_case
  File "spacy\tokenizer.pyx", line 589, in spacy.tokenizer.Tokenizer._validate_special_case
ValueError: [E1005] Unable to set attribute 'LEMMA' in tokenizer exception for 'Frisco'. Tokenizer exceptions are only allowed to specify ORTH and NORM.
有人可以建议解决方法吗?我不确定 SpaCy 3.0.3 版是否已更改为不再允许 LEMMA 成为标记器异常的一部分?谢谢!

最佳答案

https://github.com/explosion/spaCy/issues/7014

import spacy

nlp = spacy.load('en_core_web_sm')

nlp.get_pipe("attribute_ruler").add([[{"TEXT": "Frisco"}]], {"LEMMA": "San Francisco"})

doc = nlp(u'I am flying to Frisco and after to frisco')    
print(['token:%s lemma:%s' % (t.text, t.lemma_) for t in doc])

关于nlp - spaCy Tokenizer LEMMA 和 ORTH 异常不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66360602/

相关文章:

nlp - 在 SpaCy 中使用 Arabert 模型

python - 在 conda/MacOS 上使用 pip 安装 mmh3 包

python - 从 SPACY v2.0 中的标记化句子中查找命名实体

nltk - 在文本中添加标点符号

php - 产生真实单词的词干提取算法

nlp - 创建用于职称命名实体识别的训练数据集

python - 未实现错误: Cast string to float is not supported

python - 将文本分成句子 NLTK 与 spaCy

machine-learning - 是否应该从 Rasa NLU 训练数据中删除标点符号?

Javascript 动词检测