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

Dúvida na Função Corretor, que usa max()

Neste trecho da função corretor():

palavra_correta = max(palavras_geradas, key = probabilidade)

no parâmetro "Key" está sendo passada a função probabilidade()? Se sim, porque não foi passado parâmetro pra ela, se ela espera parâmetro "palavra_gerada"?:

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

Não ficou claro. Podem ajudar, por favor?

1 resposta
solução!

Oi, Marcelo! Tudo bem com você?

Para te ajudar vai ser preciso explicar melhor como funciona a função max() do python. Essa função pode receber três parâmetros: iterable, default e key.

  • iterable - recebe um valor iterável, ou seja, uma lista ou tupla. Os elementos nesse parâmetro vão ser comparados e verificado qual deles é o maior.
  • default - recebe um valor padrão a ser retornado caso o iterable esteja vazio.
  • key - recebe uma função de parâmetro único. Esse parâmetro faz com que os elementos de iterable sejam levados um a um para a função que foi definida como parâmetro dela.

Um exemplo é uma função que retorna o valor inverso da entrada e precisamos ver qual o maior valor entre 1 e 5 que sai dessa função. Para isso foi criada a função funcao e colocamos o valor de iterable uma lista de 1 a 5 e a key a função.

def funcao(entrada):
    return 1/entrada
print(max([1,2,3,4,5],key=funcao))

#Resultado:
1

A saída nesse print é o valor 1, afinal 1/1 resulta na maior saída da função dentre os elementos dados. Então, o que aconteceu na função max() do exemplo acima é o mesmo que aconteceu na função corretor, ou seja, todos os valores da lista palavras_geradas foram passados, calculados e comparados na função probabilidade.

Eu espero ter te ajudado! Se a dúvida persistir, estarei à disposição.

Bons estudos!

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