Можно ли как то определить фамилию или имя определенными правилами?

Всем привет, у клиента есть база с ФИО, но вот беда, некоторые ФИО не совпадают с полями таблицы, то-есть где указано firstname, записана фамилия, а где lastname, может быть записано как и имя, так и имя и отчество одновременно, и я все думаю, есть ли в русском языке правила, которые можно было бы перенести в код, что бы определять что это слово является именем, или фамилией?

Еще сложность добавляет то, что ФИО могут быть не только русские, но и ФИО людей из других стран...
  • Вопрос задан
  • 531 просмотр
Решения вопроса 1
New_Horizons
@New_Horizons
Бред:
Посмотри сервис dadata, у них вроде есть нормализация какая-то
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Adamos
@Adamos
https://github.com/seagullua/NameCaseLib - умеет в том числе и определять предполагаемые части ФИО
Ответ написан
Комментировать
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
берете список русских имен, добавляете нужные национальные.
Тоже самое с фамилиями.

По именам получается 300-400
По фамилиям я думаю 10 000 - 20 000

Делаете сугрессор на вводе, плюс то что будут отсекаться опечатки сразу.
Если форма не прошла хоть одно поле выводите сообщение мол точно уверены?

Дальше по существующим контактам.

У меня было такое код разбивал строчку по пробелам, и выводил первое и последнее значение.
В некоторых случаях получалось неправильно.
Пример John Deere MD.
Я просто из базы в 2 миллиона выдернул приставки, отбросив нормальные имена.
Получилось порядка 200 записей, все эти 200 записей были описаны 12 правилами реплайса.
Ответ написан
Комментировать
@d-sem
Еще сложность добавляет то, что ФИО могут быть не только русские, но и ФИО людей из других стран...


Даже в рамках имен типичных для РФ могут возникать пограничные кейсы которые усложняют распознавание имен.

Любой результат в итоге придется сверять руками. Что настоятельно советую.

Из того что видел за пару лет работы с ФИО:
1) Только имя у человека;
2) 4ре имени у человека (учитывая что они еще и длинные то вообще ужас для любых документов, обрусевшиеся лютеране);
3) Совпадении имени и фамилии (балканские народы);
4) Использование сокращенных имен в паспорте (Сережа, Дима);
5) Дилемма между тем что есть отчество а что есть имя у тюркских народов;
6) Цифры в имени;
7) Ошибки в именах (Владимер).

А вообще хорошая заметка по проблемам имени https://habr.com/en/post/146901/
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы