Для имен я придумал алгоритм, похожий на метафон .
Вам также нужна логика, чтобы разбить строку на фамилию, имена, заголовок и т. Д. Это может быть сложно.
Есть крайние случаи. Если у кого-то есть звание «Профессор», вы не хотите, чтобы это интерпретировалось как имя. И если у них есть «Господь» в начале, это может быть либо их имя (многие называют Господа), либо их титул. И так далее. Лучше, если у вас есть их имя уже в стандартной форме, где вы знаете, какова их фамилия, имена и название.
Я написал некоторый PHP-код для этого: см. имя (см. Функцию Similarityto ()), textfuzzy , вероятность .