ComenzarEmpieza gratis

Invertir frases

Aquí aprenderás a invertir oraciones para el modelo codificador. Como se ha comentado, invertir las frases originales ayuda a establecer una conexión inicial sólida entre el codificador y el decodificador, lo que mejora el rendimiento del modelo. Sin embargo, recuerda siempre que la ventaja depende de los dos idiomas entre los que se traduce. Siempre que tengan el mismo orden de sujeto, verbo y objeto, será beneficioso para el modelo.

En este ejercicio modificarás la función sents2seqs() para poder invertir frases si es necesario. El usuario puede especificar un argumento clave booleano reverse que invierte el texto.

Este ejercicio forma parte del curso

Traducción automática con Keras

Ver curso

Instrucciones del ejercicio

  • Escribe la firma de la función « sents2seqs() » añadiendo un nuevo argumento clave « reverse », cuyo valor predeterminado es « False ».
  • Invertir los ID de secuencia devueltos en la dimensión temporal (utilizando la sintaxis ::-1 ), de modo que el primer ID de palabra se convierta en el último.
  • Llama a sents2seqs() e invierte el sentences dado y mantén todos los demás valores de los parámetros predeterminados sin cambios.

Ejercicio interactivo práctico

Prueba este ejercicio completando el código de muestra.

sentences = ["california is never rainy during july ."]
# Add new keyword parameter reverse which defaults to False
def ____(input_type, sentences, onehot=False, pad_type='post', ____=____):     
    encoded_text = en_tok.texts_to_sequences(sentences)
    preproc_text = pad_sequences(encoded_text, padding=pad_type, truncating='post', maxlen=en_len)
    if reverse:
      # Reverse the text using numpy axis reversing
      preproc_text = preproc_text[:, ____]
    if onehot:
        preproc_text = to_categorical(preproc_text, num_classes=en_vocab)
    return preproc_text
# Call sents2seqs to get the padded and reversed sequence of IDs
pad_seq = ____('source', ____, ____=____)
rev_sent = [en_tok.index_word[wid] for wid in pad_seq[0][-6:]] 
print('\tReversed: ',' '.join(rev_sent))
Editar y ejecutar código