Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Tempo de execução muito elevado

Não tive nenhum problema de execução do código em si, mas percebi que o tempo de execução está extremamente elevado para executar a função do corretor. Segue abaixo todas as minhas funções construídas a partir do curso e o tempo obtido com a execução do corretor:

total_palavras = len(lista_normalizada)
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

def probabilidade(palavra_gerada):
    frequencia = nltk.FreqDist(lista_normalizada)
    return frequencia[palavra_gerada] / total_palavras

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

%time corretor(palavra_exemplo)

Wall time: 2min 39s
'lógica'

Vi que na execução do vídeo o retorno foi rápido. Poderiam me ajudar?

1 resposta
solução!

Fala pessoal, encontrei o problema. Eu estava calculando a frequência no método probabilidade ao invés de antes da execução. Agora o tempo de resposta foi de 1ms aproximadamente.

Wall time: 998 µs