pero necesito de esas mentes brillantes y criteriosas de este para darle
forma a mi proyecto de "bloc de notas" con corrector ortográfico.-
Lo que llevo hecho:
1): Si la palabra está bien escrita(está en el diccionario, todo ok)
2): De no ser así busco una a una las letras(con igual longitud) y si hay 1 o 2
diferencias las incluyo para mostrar posibles palabras correctas.-
Hasta hay está casi correcto, casi porque por momentos aparecen
20 o más coincidencia y no se pueden ni mostrar.-
Pero las dudas me las da las hache al comienzo y en el interior de las palabras.-
¿alguna idea?.-
Mi idea con las haches:
Al inicio: "hirvieron", si la palabra a corregir es "irvieron" fácil, busco palabras en el
diccionario que tengan una letra más y comparo "irvieron" con "irvieron"
y la agrego con un error, pero que pasa si la palabra a corregir es "irbieron"
(lo mando a la primaria, jajajajaj).-
Con una hache intermedia "albahaca" comparo "alba" y "aca" y si coinciden la agrego.-
Les dejo lo que llevo hecho, si alguien desea ayudarme muchas gracias...
Aclaro que tengo conocimiento de la existencia de las bibliotecas "autocorrect"
"pyspellchecker" "textblob" es para practicar e ir aprendiendo el lenguaje más
en profundidad.-
Código
import codecs def main(): lemario = leer_lemario() palabra = True while palabra: palabra = input("Ingrese la palabra a corregir...: ") if buscar_palabra(palabra, lemario) == True: print(f'\nLa palabra "{palabra}" existe en el diccionario y es correcta.\n') else: parecidos = buscar_parecidos(palabra, lemario) if len(parecidos) >= 1 and len(parecidos) <= 10: print(f'Palabras parecidas:\n{parecidos}\n') else: print("Posible faltante de hache...") def leer_lemario(): lemario = [] with codecs.open('Ortografia.txt', 'r', encoding='utf-8') as archivo: for linea in archivo: linea = linea.strip() if len(linea) > 0: lemario.append(linea) return lemario def buscar_palabra(palabra, lemario): for lema in lemario: if palabra == lema: return True return False def buscar_parecidos(palabra, lemario): parecidos = [] for lema in lemario: if len(lema) == len(palabra) and letras_distintas(lema, palabra) <= 2: parecidos.append(lema) return parecidos def letras_distintas(palabra, lema): errores = 0 for i in range(len(palabra)): if palabra[i] != lema[i]: errores = errores + 1 return errores main()
Slds. Daniel ☕☕☕