阅读适用于Python 3.5的this,spaCy版本1.1.2。我试过这个
from spacy.lang.en import English
nlp = spacy.load('en')
text2 = u'he has a ph.D. in tacology'
nlp.Defaults.tokenizer_exceptions['Ph.D.'] = [{'F':'Ph.D.'}]
tokens = parser(text2)
tokens = [token.orth_ for token in tokens if not token.orth_.isspace()]
这给出了:
[你'他'你有',你',你' ph',你'。',你',你'在',你' tacology']
我期待的时候:
[你'他'你'你' a',你' ph.D。',你'在&# 39 ;, u' tacology']
为什么tokenizer_exceptions不起作用?是因为我使用的是版本2而且实现方式不同吗?
我如何在v2中执行等效操作?
注意,我确实在v2 spacy docs here中查看了Tokenizer.add_special-case,但我无法找到解决方案
答案 0 :(得分:0)
不确定您的核心spaCy问题,但您可以检查“Ph”,“。”和'D.',然后检查它们是否按顺序排列并用'Ph.D'代替它们作为解决方法。