Проще говоря - это невозможно сделать. Даже нормализация адресов является сложной, и там вы следуете только определенным правилам (например, Str. Для Street). Я был в проекте, который делал это в Германии 15 лет назад, и ад, так сказать, развалился - потому что в некоторых местах были особые правила (m 4 = действительный адрес в одном городе, например, потому что внутренний город - это квандранты, или «Штрассе» des 14. Июль Appartement 3 "нарушил наши" первый номер в конце названия улицы "правила).
Все это становится странным - в вашем примере "J.R." и «Джим Райан» может или не может быть одинаковым. Есть некоторые правила, которые вы можете установить, и с адресами это становится намного проще (тот же адрес означает, что в конце сопоставление имен может стать более свободным), но в целом это нереализуемый подход. Даже исправление орфографии не поймает этого. Там просто нет способа нормализовать это без искусственного интеллекта, имеющего доступ в Интернет, чтобы использовать Google, чтобы выяснить, соответствует ли он. Да, вы можете рассчитывать на 20% или 30% вероятности попадания, но это оставляет ТОНА ошибок влево и вправо и, скорее всего, бесполезна с деловой точки зрения.
Вам нужен как минимум один стандартизированный идентификатор, который вы можете использовать, чтобы закрепить выбор. Номера домов, номера телефонов, все, что можно стандартизировать проще, а затем обеспечивает ахор для имени, соответствующего алгоритму.