Estoy aprendiendo a desarrollar una aplicación que toma una entrada de palabras de un archivo .txt y comprueba si las palabras existen en el archivo del diccionario.

Cuando ejecuto el código, recibo un error de tipo. Por favor, ayúdame con lo que estoy haciendo mal aquí.

El archivo input.txt tiene oraciones de párrafos. El archivo dictionary.txt tiene una lista de palabras línea por línea.

def word_check(check_file, input_file):
    try:
        open_file = open(check_file, "r")
        read_file = open_file.readlines()

        open_file_2 = open(input_file, "r")
        read_file_2 = open_file_2.readlines()

        for input_word in read_file_2:
            input_word = input_word.strip("!@#$%^&*()_+{}:?><'-=,./;][")
            each_input_word = input_word.lower().split()
            list_each_word = each_input_word
            count = 0

            for item in read_file:
                line = item
                for word in line:
                    check_word = word.lower()
                    if list_each_word in check_word:
                        count += 1
                print(count)

    except FileExistsError:
        print("File not exist")


word_check("list.txt", "input.txt")

Me gustaría tener un recuento de palabras si las palabras existen en el archivo dictionary.txt.

-2
Tenesh Vignesan 3 oct. 2019 a las 15:00

3 respuestas

La mejor respuesta

Me había dado cuenta.

    def spell_check(dictionary, document):
    try:
    open_document = open(document, "r")
    input_sentence = open_document.readline()
    input_words = input_sentence.lower().split()
    print(input_words)

    open_dictionary = open(dictionary, "r")
    check_sentence = open_dictionary.read()
    check_word = check_sentence.lower()

    for word in input_words:
        word = word.strip("!@#$%^&*()_+{}:?><,./;[]=-")
        if word not in check_word:
            print(f"Mispelled words are: {word}")

    except FileExistsError:
    print("File does not exist")


    spell_check("dictionary.txt", "document.txt")
0
Tenesh Vignesan 3 oct. 2019 a las 15:27

Generas list_each_word haciendo input_word.lower().split().

Esto genera una lista de palabras.

Luego, recorre una lista de palabras y realiza if list_each_word in check_word:.

Aquí, check_word es una cadena y list_each_word es una lista. Debe cambiar esto, porque desea verificar si la cadena está en en la lista.

Así que debe ser:

if check_word in list_each_word :

1
Nico Griffioen 3 oct. 2019 a las 12:04

Si está intentando contar las ocurrencias de check_word en list_each_word, puede reemplazar estas dos líneas:

if list_each_word in check_word:
    count += 1

Con esto:

count += list_each_word.count(check_word)

Que encontrará cuántas veces check_word ocurre en list_each_word.


0
Ahndwoo 3 oct. 2019 a las 13:14
58218664