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!