Проблема в том, что понятие «одно и то же имя с другим правописанием» зависит от фонетики.Люди определяют это, слушая произношение обоих имен и говоря: «Эй, они звучат одинаково».Единственный способ, которым компьютер мог бы знать, что «Мэтью» и «Матье» - это «одно и то же имя», - это использовать некоторый тип преобразования текста в речь в некоторый анализ звука.
Поскольку это наиболее вероятноне то, что вы хотите сделать, единственное, на что вы действительно можете смотреть, это расстояние Хэмминга и определение некоторого порога (возможно, 1 символ), который вы принимаете как «то же имя».Это наиболее вероятно, что делает get_close_matches (), но оценивает это как отношение к длине слова.Но даже у этого будут ложные срабатывания (наверняка есть разные имена с расстоянием Хэмминга, равным 1, даже если я не могу думать о них сейчас), и вы не будете правильно группировать имена, такие как «Хейли» и «Хейли», пока неподнимите этот порог до 4, и тогда у вас будет много ложных срабатываний.
Не говоря уже о том, что имена не обязательно должны произноситься фонетически.Я могу назвать своего сына "а" и назвать его "Джаред".Как вы могли обнаружить, что это альтернативное написание слова "Джеррод"?Вы не можете, и, следовательно, вы не можете программно определить, являются ли два имени «одинаковыми».Проблема в том, что сама проблема не очень хорошо определена.Вы могли бы лучше определить это, сказав, что вы хотите сгруппировать имена, которые «фонетически одинаковы».Это позволяет вам пропустить надуманные примеры, такие как «а», но вы просто обменяли эту проблему на потребность в каком-то фонетическом движке, который далек от тривиального.
tl; dr невозможен