我正在遵循书中第 2 章中的示例:使用 Python 和 spaCy 进行的自然语言处理,作者:Yuli Vasiliev 2020
该示例假设产生词形还原输出:
[“我”、“是”、“飞行”、“前往”、“弗里斯科”]
['-PRON-', '是', '飞', '飞往', '旧金山']
我收到以下错误:
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.
Run Code Online (Sandbox Code Playgroud)
有人可以建议解决方法吗?我不确定 SpaCy 版本 3.0.3 是否已更改为不再允许 LEMMA 成为标记器异常的一部分?谢谢!
小智 2
请参阅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])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2196 次 |
| 最近记录: |