Предложения сегментов с исключениями токенизатора spaCy изменились в v2?
После прочтения этого, который работает с Python 3.5, 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()]
Это дает:
[u'he ', u'has', u'a ', u'ph', u '.', u'D. ', u'in', u'tacology ']
когда я ожидал:
[u'he ', u'has', u'a ', u'ph.D.', u'in ', u'tacology']
Почему tokenizer_exceptions не работает? Это потому, что я использую версию 2, и она реализована по-другому?
Как бы я сделал эквивалент в v2?
NB. Я посмотрел Tokenizer.add_special-case в простейших документах v2, но не смог найти решение
1 ответ
Не уверен, что касается вашего основного вопроса spaCy, но вы можете проверить "Ph", "." и 'D.', затем проверьте, есть ли они в последовательности, и замените их на 'Ph.D' в качестве обходного пути.