Мы стали более лучше одеваться^W^W^W правильнее склонять имена с фамилиями. Вчера вышла свежая версия предназначенного для этого перлового модуля
Lingua::RU::Inflect (он же есть и
на гитхабе - чуть свеже́е, чем на CPAN).
На днях по рабочей необходимости сгенерировал родительный падеж более, чем на четырёх тысячах реальных имён - почти один процент из них оказался с ошибками - пришлось исправить модуль, за который я четыре года не брался.
Итак, в новой версии:
- Закрыты все имевшиеся по состоянию на вчерашний день issues, в том числе
- Исправлена проблема с экспортом всего возможного оператором use Lingua::RU::Inflect ':all' - компилятор теперь не ругается на попытку экспортировать функции, убранные в другой модуль.
- Имена с беглыми гласными (Лев, Павел) и некоторые фамилии на -ец (Песец, Писец и Отец) стали склоняться правильно - беглая гласная убегает, как ей и положено. Там, где убегать не положено (Швец, Жнец, Надудеигрец и полный крах, крушение всех надежд - шесть букв, вторая И, но не фиаско) - не убегает.
- Женские фамилии, оканчивающиеся на -ов, -ёв, -ин, -ий, -ый - похожие на мужские, но всё-таки женские - перестали склоняться.
- Мужские фамилии, оканчивающиеся на -их и -ых, могут всё-таки склоняться: например, Бултых, Жмых, Отдых, Дитрих, Рерих, Ульрих, Фрейндлих и Эрлих склоняются, а Синих, Серых, Карих, Чёрных - нет.
- Точнее определяются имена, нехарактерные для русских и не подпадающие под обычное правило: женские оканчиваются на -а и -я, мужские - на согласную. В списки исключений добавлено несколько десятков имён. Определитель теперь знает тюркоязычные и исландские отчества.
В итоге количество ошибок на тестовом наборе данных сократилось в 2-3 раза, до одной ошибки на 200-300 человек - есть неочевидные случаи, потому и оценка приблизительна. Двойные имена и фамилии пока слоняются неправильно - исправлю как-нибудь потом.
http://shoorick.ru/2018/10/05/inflect-006/