Предложения сегментов с исключениями токенизатора 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' в качестве обходного пути.

Другие вопросы по тегам