¿Cuáles son algunos buenos algoritmos para agrupar palabras que suenan similares?

Hay muchas herramientas gratuitas para ayudar con esto. No estoy seguro de si hay una solución lista para usar; Puede tomar tiempo seleccionar algunas herramientas que le gusten y juntarlas.

Si las palabras son palabras inglesas estándar, puede buscar su pronunciación en el Diccionario de pronunciación de CMU (quizás después de aplicar la corrección ortográfica). Pero si necesita poder predecir la pronunciación de palabras desconocidas a partir de su ortografía, entonces debe usar un sistema G2P. G2P significa “grafema a fonema”. Algunos sistemas se mencionan aquí.

Una vez que tenga pronunciaciones, puede usar un algoritmo de edición de distancia para determinar la similitud fonética. Una medida popular es ALINE de Greg Kondrak, que incluye un método para evaluar la similitud de dos fonemas. El documento de Kondrak sobre ALINE, y varias implementaciones gratuitas en diferentes idiomas, se encuentran fácilmente con Google.

Este documento sobre la detección de nombres de medicamentos de sonido similar puede ser un buen punto de partida para usted: https://webdocs.cs.ualberta.ca/~…

Uno de los algoritmos que puede probar es el algoritmo Soundex [1].

La idea detrás de Soundex es considerar los fonemas y la pronunciación de la palabra. Entonces, la distancia de Soundex entre dos palabras representará cuán similar son las dos palabras.

Aquí [2], tiene un paquete de Python que admite Soundex

[1] – Soundex – Wikipedia

[2] – https://pypi.python.org/pypi/Fuzzy

Hay varios algoritmos y bibliotecas de coincidencia de palabras fonéticas.

Sin embargo, si tiene N bins y M palabras, tendrá que hacer operaciones MxN, por lo que no es tan fácil.