1
resposta

Problemas com o código.

Tive bastante problemas com o código ao fazê-lo. No módulo 3, Desenvolvendo e testando o corretor, a cópia do código estava errada na aula, eu copiei o codigo e colei no colab e apresentava erros. Consegui rodar uma vez, seguindo a aula, mas ao trocar para testes com outras palavras, não realizava as alterações corretas. Não sei explicar, mas na minha concepção (leiga) tem algo a ver com uma linha de teste na qual ele utilizou o lista = ['lgica']

1 resposta

Oii Tulio! Tudo certinho?

Realmente em algumas transcrições desse curso é possível encontrar alguns erros nos códigos. Pedimos desculpas por isso, mas já estamos revisando essas transcrições e realizando as devidas correções.

De todo modo, a maioria dos erros estavam ocorrendo por conta dos seguintes pontos:

  • Ausência dos dois pontos ":" para indicar o início da função gerador_palavra;
  • No for da função gerador_palavra estar faltando o termo in para que o laço for funcione corretamente;
  • No print deve ser visualizada a variável palavras_geradas, pois a variável palavras existe apenas dentro do for;
  • Utilização da variável lista na função gerador_palavra. Mas o correto seria a variável palavra.

Vou deixar aqui para você os principais códigos desse módulo, corrigidos:

Funções insere_letras e gerador_palavras:

palavra_exemplo = "lgica"

def insere_letras(fatias):
    novas_palavras = []
    letras = 'abcdefghijklmnopqrstuvwxyzàáâãèéêìíîòóôõùúûç'
    for E, D in fatias:
        for letra in letras:
            novas_palavras.append(E + letra + D)
    return novas_palavras

def gerador_palavras(palavra):
    fatias = []
    for i in range(len(palavra)+1):
        fatias.append((palavra[:i],palavra[i:]))
    palavras_geradas = insere_letras(fatias)
    return palavras_geradas

palavras_geradas = gerador_palavras(palavra_exemplo)
print(palavras_geradas)

Funções probabilidade e corretor:

frequencia = nltk.FreqDist(lista_normalizada)
total_palavras = len(lista_normalizada)

def probabilidade(palavra_gerada):
  return frequencia[palavra_gerada] / total_palavras

def corretor(palavra):
  palavras_geradas = gerador_palavras(palavra)
  palavra_correta = max(palavras_geradas, key = probabilidade)
  return palavra_correta

Espero que isso ajude. Qualquer dúvida estou por aqui :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!