Closed strawberrypie closed 4 years ago
Попробуйте использовать согласование, в документации есть пример с ФИО https://yargy.readthedocs.io/ru/latest/#id9
Согласование с "актриса" перед именем? Это я для примера привел, хотелось бы чтобы распознавалось корректно при произвольном контексте.
Да, с "актриса". Решения для произвольного варианта в Yargy не предполагается, в любом случаи должен быть словарь и набор правил.
Также имеет смысл делать нормализацию не средствами yargy, запускать отдельно морфологический тегер, приводить словарь к нормальной форме перед запуском yargy, см. https://nbviewer.jupyter.org/github/natasha/natasha/blob/master/docs.ipynb#Phrase-normalization
При нормализации токена она происходит крайне просто — выбирается самый первый вариант из предложенных. Такое поведение иногда ошибочно распознает имена, например:
"Актриса Ярослава Новожилова"
— извлекается{'first': 'ярослав', 'last': 'новожилов'}
.Нужно как-то иначе проводить нормализацию, так чтобы был учет контекста. Скорее всего это потребует более серьезных методов обработки предложения, например составления дерева зависимостей между словами в нем. Либо же это проблема встроенного в PyMorphy CRF-теггера.