При инициализации языковой модели Spacy Engli sh словарь содержит 1139 строк.
При запуске nlp('faster')
в StringStore ['faster', 'ter']
добавляются 2 строки. 1007 *
При запуске nlp('fastest')
3 строки добавляются в StringStore ['fastest', 'est', 'fast']
.
У меня есть 2 вопроса:
- Почему Spacy добавляет 'ter' и 'est' в StringStore?
- Почему 'быстрый' добавляется при обработке 'самый быстрый', а не при 'быстрый' ?
Обработка «быстрее»
nlp = spacy.load('en')
original_strings = list(nlp.vocab.strings)
nlp('faster')
after_processing = list(nlp.vocab.strings)
# Compare Strings in StringStore
list(set(after_processing) - set(original_strings)) # -> ['faster', 'ter']
Обработка «быстрее»
nlp = spacy.load('en')
original_strings = list(nlp.vocab.strings)
nlp('fastest')
after_processing = list(nlp.vocab.strings)
# Compare Strings in StringStore
list(set(after_processing) - set(original_strings)) # -> ['est', 'fast', 'fastest']