ComeçarComece de graça

Encher frases

Agora você vai implementar uma função chamada “ sents2seqs() ”, que você vai usar mais tarde para transformar dados de um jeito prático para o formato aceito pelo modelo de tradução automática neural (NMT). “ sents2seqs() ” aceita uma lista de strings de frases e,

  • Converte as frases em uma lista de sequências de IDs,
  • Preencha as frases para que elas tenham o mesmo tamanho e,
  • Se quiser, dá pra converter os IDs em vetores onehot.

Você recebeu um modelo pré-treinado chamado en_tok, um modelo de rede neural convolucional ( Tokenizer ) que já foi treinado com dados. Outra coisa a se notar é que, ao implementar uma funçã sents2seqs(), você verá um argumento não utilizado chamado input_type. Depois, esse input_type vai ser usado pra mudar os parâmetros que dependem do idioma, tipo o tamanho da sequência e do vocabulário.

Este exercício faz parte do curso

Tradução automática com Keras

Ver curso

Instruções do exercício

  • Converta o sentences em sequências usando o tokenizador en_tok.
  • Pad as sequências para um comprimento fixo de en_len com um tipo de preenchimento especificado de pad_type e usa post-truncating.
  • Converta os IDs de palavras “ preproc_text ” em vetores onehot de comprimento en_vocab usando a função “ to_categorical() ”.
  • Converte um objeto de lista ( sentence ) em uma sequência preenchida usando o método " sents2seqs() " com o parâmetro " pre-padding".

Exercício interativo prático

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

from tensorflow.keras.preprocessing.sequence import pad_sequences
from tensorflow.keras.utils import to_categorical

def sents2seqs(input_type, sentences, onehot=False, pad_type='post'):
	# Convert sentences to sequences      
    encoded_text = ____.____(sentences)
    # Pad sentences to en_len
    preproc_text = ____(____, padding=____, truncating=____, maxlen=____)
    if onehot:
		# Convert the word IDs to onehot vectors
        preproc_text = ____(____, num_classes=____)
    return preproc_text
sentence = 'she likes grapefruit , peaches , and lemons .'  
# Convert a sentence to sequence by pre-padding the sentence
pad_seq = sents2seqs('source', [____], pad_type=____)
Editar e executar o código