Noticias:

Siguenos en nuestra redes sociales: Facebook, Twitter e Instagram

Menú principal

(Python) Bloc de notas con corrector ortográfico propio.

Publicado por Daniel1952, 30 Agosto de 2022, 15:04

Tema anterior - Siguiente tema

0 Usuarios y 2 Visitantes están viendo este tema.

Daniel1952

Bloc de notas con corrector ortográfico propio.

Estoy consiente que esto no tiene mucho que ver con la esencia del foro,
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.-

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 ☕☕☕
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-

Rock Lee

Creo tiene que ver mucho mas de lo que piensas... sin dudas es algo interesante para no ir por lo convencional y probar algo distinto, un pequeño reto para uno y eso ayuda mucho a entender mejor la lógica de atrás. Me gusto mucho tu aporte :D!


Saludos Familia!

Temas Similares (5)