ComeçarComece de graça

Pré-processamento de dados

Agora você precisa processar os dados para o nosso novo modelo, que tem duas entradas e uma única saída. As duas entradas são as palavras em inglês codificadas em one-hot e as palavras em francês codificadas em one-hot, sem a última palavra.

O resultado seria as palavras em francês codificadas em one-hot, sem a primeira palavra. Em outras palavras, no decodificador, cada palavra francesa que entra tem uma saída, que é a próxima palavra. Aqui você vai aprender como fazer isso.

Você tem acesso à função “ sents2seqs() ”, en_text e fr_text.

Este exercício faz parte do curso

Tradução automática com Keras

Ver curso

Instruções do exercício

  • Pega um monte de entradas do codificador (de i para i+bsize) usando a função sents2seqs() (codificadas como onehot e invertidas).
  • Pega um monte de entradas e saídas do decodificador (de i para i+bsize) usando a função “ sents2seqs() ” (codificação onehot).
  • Separe as entradas do decodificador (todas as palavras em francês, exceto a última) de “ de_xy ” cortando na dimensão do tempo.
  • Separe as saídas do decodificador (todas as palavras em francês, exceto a primeira) de de_xy.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

bsize = 250
for i in range(0, len(en_text), bsize):
  # Get the encoder inputs using the sents2seqs() function
  en_x = ____('source', ____[____:____], onehot=True, reverse=____)
  # Get the decoder inputs/outputs using the sents2seqs() function
  de_xy = sents2seqs('target', ____[____:____], onehot=True)
  # Separate the decoder inputs from de_xy
  de_x = de_xy[:,____,:]
  # Separate the decoder outputs from de_xy
  de_y = de_xy[:,____,:]
  
  print("Data from ", i, " to ", i+bsize)
  print("\tnp.argmax() => en_x[0]: ", np.argmax(en_x[0], axis=-1))
  print("\tnp.argmax() => de_x[0]: ", np.argmax(de_x[0], axis=-1))
  print("\tnp.argmax() => de_y[0]: ", np.argmax(de_y[0], axis=-1))
Editar e executar o código