часто это бывает какие-то ФИО могут быть записаны криво. Не "Иванов Петр Иванович", а "Иванов п.и." или "Петр Иванов Иванович", ну и тп.
Что гуглить и в какую сторону смотреть? Как подступиться?
в первую очередь надо запастись полотенцем для утирания слез к сожалению, это не очень хорошо решаемая задача. можно пытаться искать пересечения строковые, например, выделять фамилию и по ней искать множество строк с такой фамилией. но это коллизия, все равно. притом, простыми средствами не разделить фамилию от имени, поэтому при перепутанном порядке фио вообще тоска получается. я бы, наверное, попробовал все привести к виду "иванов п и" - то есть, нижний регистр, по первой букве от имени и отчества, почистить пробелы и пунктуацию
😅 ахахах видимо остановлюсь на просто мэтчинге в тупую с очищенным от пробелов, пунктуации и капса написанием. Большая часть смэтчилась и видимо такие пляски с бубном не стоят дополнительных пары процентов данных.
а всякие text distances и fuzzy joins тоже не стоят свеч в этом случае? https://predictivehacks.com/how-to-apply-text-distances-and-fuzzy-joins/
Если у вас после обычного мэтчинга остаётся процент неопределённых данных, то проще руками, поверьте. Эти штуки ещё и затратные по вычислениям, можно долго просидеть в ожидании чуда на большом датасете, а чуда так и не случится)
если процент небольшой, то я не уверен, что оно стоит того. плюс расстояния и нечеткий матчинг, боюсь, плозхо будут работать с ситуации Иван Петрович и Иван П - расстояние/разница тут, например, в семь добавленных букв
В своё время решали подобную задачу ручками, применяя всякие эвристики, типа: — если оканчивается на «-вич»\«-вна» это скорее всего отчество, — то что стоит перед «оглы» это отчество, — перед отчеством как правило пишут имя и т.п.
присоединяюсь к вышесказанному, особенно про полотенце… если иванов п.и. - это печально если просто в разном порядке элементы фио, то можно сплитануть строку, отсортировать, соединить и по ней мерджить
Обсуждают сегодня