la coincidencia de cadenas es muy específica problema, porque la mayoría de las veces se tienen las mismas características de ruido en sus cadenas, que se ajustará, ya sea puntuacion adicional, errores tipográficos o errores de ortografía.Tendrá que encontrar un algoritmo que sea apropiado para los problemas en sus datos de entrada si lo está haciendo a gran escala.
Soundex le dará un grado de confianza de que dos cuerdas suenan igual, pero es posible que tenga que hacer una limpieza inicial primero (como eliminar la puntuación y convertir la cadena en palabras separadas).
Lo mejor que puedes hacer es hacer una prueba, hay una enorme cantidad de algoritmos diferentes que puedes usar, levenshtein siendo genial, como es soundex (aunque tu kilometraje variará con tu área problemática). También hay variaciones en esos dos algoritmos, por cierto.
Sugiero echar un vistazo a las bibliotecas simmetrics y second string que tienen un montón de implementaciones de coincidencia de cadenas (de las dos prefiero la segunda biblioteca de cadenas).
Parece que tiene un problema interesante que resolver, ¡buena suerte!
¡Debe tener en cuenta que Soundex y Levenshtein son dos cosas muy diferentes! Levenshtein te ayuda a detectar errores tipográficos. P.ej. un usuario que escribe "Wrich" en lugar de "Erich", aunque esas palabras no suenan de manera similar cuando se pronuncia en voz alta. Soundex te permite encontrar palabras que suenan similares, sin importar cuántas letras tengan realmente en común, p. Ej. podría permitirle encontrar "Erich" cuando busque "Eryk". –