Soundex en Phyton
-
Introducción a
soundex
en Python -
Usar
soundex
en Python -
Cosas que la función
soundex
ignora -
Reglas de
soundex
en Python - Conclusión
La función soundex
para Python es una función que convierte una cadena de texto en un código Soundex. Es útil para indexar nombres en bases de datos o encontrar nombres similares.
El código Soundex para un nombre se basa en cómo suena, no en cómo se escribe. Es una herramienta útil para comparar palabras pronunciadas de manera diferente pero con la ortografía exacta.
Es beneficioso cuando se buscan nombres en bases de datos.
Introducción a soundex
en Python
La función soundex
es un algoritmo fonético simple que se utiliza para codificar cadenas. El algoritmo está diseñado para producir códigos similares a los producidos por el sistema Soundex.
La función está escrita en Python y se puede implementar fácilmente en cualquier proyecto de Python. La función soundex
toma una cadena como entrada y devuelve un código basado en el sonido de la cadena.
Asigna un código a cada palabra en función de cómo se pronuncia, por lo que las palabras pronunciadas de forma diferente pero con el mismo código se consideran equivalentes. Puede ser de gran ayuda al buscar nombres que pueden escribirse de manera diferente pero que se pronuncian igual.
Puede ser útil cuando compara palabras que se pronuncian de manera diferente pero tienen la ortografía exacta. Por ejemplo, gato
y murciélago
tienen el mismo código soundex
.
Usar soundex
en Python
La función soundex
en Python toma una cadena como entrada y genera un código que representa el sonido de la cadena. El código se basa en cómo suena la cadena, no en la ortografía.
Lo hace útil para hacer coincidir nombres pronunciados de manera diferente pero con el mismo sonido.
El proceso soundex
es un medio para indexar nombres por sonido. Es un algoritmo fonético simple para indexar palabras por sonido, tal como se pronuncia en inglés.
El objetivo es producir un código Soundex que capture el sonido esencial del nombre sin tener en cuenta las diferencias ortográficas.
Para utilizar la función soundex
, primero debe importar el módulo que la contiene; luego, puede llamar a la función con una cadena como argumento. La función devolverá el código Soundex para la cadena.
El código Soundex es un código de cuatro dígitos que se utiliza para representar la pronunciación de un nombre. El código se deriva de la primera letra del nombre, seguida de tres números que representan las tres consonantes del nombre.
El código está diseñado para que se pueda pronunciar, de modo que las palabras con pronunciaciones similares tengan el mismo código.
Código de ejemplo:
# First, we will create a Soundex generator function
def soundex_generator(token):
# Now Convert the word to upper
token = token.upper()
soundex = ""
# Will Retain the First Letter
soundex += token[0]
# Now, will Create a dictionary that maps
# letters to respective Soundex
# codes. Vowels and 'H', 'W' and
# 'Y' will be represented by '.'
dictionary = {
"BFPV": "1",
"CGJKQSXZ": "2",
"DT": "3",
"L": "4",
"MN": "5",
"R": "6",
"AEIOUHWY": ".",
}
# Now encode as per the dictionary
for char in token[1:]:
for key in dictionary.keys():
if char in key:
code = dictionary[key]
if code != ".":
if code != soundex[-1]:
soundex += code
# Trim or Pad to make Soundex a
# 7-character code
soundex = soundex[:7].ljust(7, "0")
return soundex
# driver code
print(soundex_generator("Thecodeishere"))
Producción :
T232600
Cosas que la función soundex
ignora
El proceso soundex
ignora los caracteres no alfabéticos en un nombre, por lo que no se tienen en cuenta la puntuación ni los espacios.
Además, soundex
solo codifica la primera letra de un apellido si es consonante, por lo que no se codifican los apellidos que empiezan por vocal.
Por último, soundex
codifica los nombres según su pronunciación, por lo que las variantes de un mismo nombre que se pronuncian diferente (como Smith y Smyth) tendrán códigos diferentes.
Reglas de soundex
en Python
Sin embargo, el proceso de Soundex tiene varias reglas.
- En primer lugar, no es adecuado para indexar nombres de idiomas distintos del inglés, ya que el código
soundex
se basa en la fonética inglesa. - En segundo lugar, el código
soundex
para un nombre de pila puede variar según el dialecto inglés utilizado. Por ejemplo, el nombreSmith
se codificaría comoS530
en inglés americano general pero comoS520
en inglés sureño. - Tercero, el proceso Soundex a veces puede producir resultados ambiguos, especialmente cuando dos o más nombres tienen el mismo código
soundex
. Por ejemplo, los nombresSmith
ySmythe
tienen el códigosoundex
S530
, lo que dificulta encontrar un nombre específico cuando se utiliza un índice basado en Soundex. - En cuarto lugar, el proceso de Soundex no es muy eficaz para indexar nombres que se pronuncian de forma diferente a como se escriben. Por ejemplo, el nombre
Stevenson
se pronunciaSTEH-ven-son
, pero se codificaría comoS315
según su ortografía, lo que dificulta encontrar un nombre cuando se utiliza un índice basado en Soundex.
En general, el proceso de Soundex es un medio simple y efectivo de indexar nombres por sonido. Sin embargo, tiene varias limitaciones que deben tenerse en cuenta al utilizarlo.
Conclusión
Para concluir el artículo sobre soundex
en Python, hemos discutido el funcionamiento y las reglas de soundex
. Además, hemos discutido un ejemplo práctico que demuestra el funcionamiento de soundex
en Python.
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn