ComenzarEmpieza gratis

Rellenar frases

Ahora implementarás una función llamada « sents2seqs() » que más adelante utilizarás para transformar los datos de forma conveniente al formato aceptado por el modelo de traducción automática neuronal (NMT). « sents2seqs() » acepta una lista de cadenas de frases y,

  • Convierte las oraciones en una lista de secuencias de ID.
  • Rellena las frases para que tengan la misma longitud y,
  • Opcionalmente, convierte los ID en vectores onehot.

Se te ha proporcionado en_tok, un modelo de red neuronal ( Tokenizer ) ya entrenado con datos. Otra cosa a tener en cuenta es que, al implementar la función « sents2seqs() », verás un argumento sin usar llamado « input_type ». Más adelante, este input_type se utilizará para cambiar parámetros dependientes del idioma, como la longitud de la secuencia y el tamaño del vocabulario.

Este ejercicio forma parte del curso

Traducción automática con Keras

Ver curso

Instrucciones del ejercicio

  • Convierte el « sentences » en secuencias utilizando el tokenizador « en_tok ».
  • Secuencias de relleno a una longitud fija de en_len con un tipo de relleno especificado de pad_type y utiliza post-truncating.
  • Convierte los ID de palabras « preproc_text » en vectores onehot de longitud « en_vocab » utilizando la función « to_categorical() ».
  • Convierte sentence en una secuencia rellenada utilizando el método sents2seqs() con pre-padding.

Ejercicio interactivo práctico

Prueba este ejercicio completando el código de muestra.

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 y ejecutar código