2 usuarios conectados

Sugerir corrección. Ejercicio en Python

Comparte esto

 
Escribe una función en Python llamada sugerir_correccion que tome una palabra como entrada y una lista de palabras válidas en español. Si la palabra de entrada no está en la lista de palabras válidas, la función debe devolver una sugerencia (en este caso, la primera palabra de la lista de palabras válidas). Si la palabra es válida, debe devolver la palabra original.


Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  Solución al Ejercicio: Sugerir corrección

📋 Copiar código


def sugerir_correccion(palabra, palabras_validas):
  """
  Sugiere una corrección ortográfica básica para una palabra.

  Args:
    palabra: La palabra a verificar.
    palabras_validas: Una lista de palabras válidas en español.

  Returns:
    La palabra original si es válida, o la primera palabra válida como sugerencia.
  """
  palabra_lower = palabra.lower()
  palabras_validas_lower = [p.lower() for p in palabras_validas]
  if palabra_lower in palabras_validas_lower:
    return palabra
  elif palabras_validas_lower:
    return palabras_validas[0]
  else:
    return palabra  # Si no hay palabras válidas, devuelve la original

# Ejemplos de uso
diccionario = ["hola", "mundo", "cruel", "ejemplo", "python"]

palabra1 = "hola"
sugerencia1 = sugerir_correccion(palabra1, diccionario)
print(f"'{palabra1}' -> sugerencia: '{sugerencia1}'")

palabra2 = "holla"
sugerencia2 = sugerir_correccion(palabra2, diccionario)
print(f"'{palabra2}' -> sugerencia: '{sugerencia2}'")

palabra3 = "Mundo"
sugerencia3 = sugerir_correccion(palabra3, diccionario)
print(f"'{palabra3}' -> sugerencia: '{sugerencia3}'")

palabra4 = "inexistente"
sugerencia4 = sugerir_correccion(palabra4, diccionario)
print(f"'{palabra4}' -> sugerencia: '{sugerencia4}'")

palabra5 = ""
sugerencia5 = sugerir_correccion(palabra5, diccionario)
print(f"'{palabra5}' -> sugerencia: '{sugerencia5}'")

diccionario_vacio = []
palabra6 = "prueba"
sugerencia6 = sugerir_correccion(palabra6, diccionario_vacio)
print(f"'{palabra6}' -> sugerencia (diccionario vacío): '{sugerencia6}'")


 

Explicación del Código:

  1. def sugerir_correccion(palabra, palabras_validas)::

    • Define una función llamada sugerir_correccion que toma una palabra a verificar y una lista de palabras_validas como entrada.
  2. palabra_lower = palabra.lower():

    • Convierte la palabra de entrada a minúsculas para realizar una comparación sin distinción de mayúsculas y minúsculas.
  3. palabras_validas_lower = [p.lower() for p in palabras_validas]:

    • Crea una nueva lista palabras_validas_lower que contiene todas las palabras de la lista palabras_validas convertidas a minúsculas. Esto permite la comparación sin importar la capitalización.
  4. if palabra_lower in palabras_validas_lower::

    • Verifica si la versión en minúsculas de la palabra de entrada se encuentra en la lista de palabras válidas en minúsculas.
  5. return palabra:

    • Si la palabra es válida (se encuentra en la lista), la función devuelve la palabra original (manteniendo su capitalización original).
  6. elif palabras_validas_lower::

    • Si la palabra no es válida, este elif verifica si la lista palabras_validas_lower no está vacía (es decir, si hay al menos una palabra válida en el diccionario).
  7. return palabras_validas[0]:

    • Si la palabra no es válida y hay palabras válidas en el diccionario, la función devuelve la primera palabra de la lista original palabras_validas como una sugerencia de corrección.
  8. else::

    • Si la palabra no es válida y la lista de palabras_validas_lower está vacía.
  9. return palabra:

    • Devuelve la palabra original, ya que no hay palabras válidas para sugerir.

Ejemplos de Uso:

Los ejemplos muestran cómo la función verifica si una palabra está en el diccionario y, si no lo está, sugiere la primera palabra del diccionario como corrección. Si la palabra es válida, se devuelve la palabra original. También se incluye un caso con un diccionario vacío.