Inizia subitoInizia gratis

Invertire le frasi

Qui imparerai a invertire le frasi per il modello di encoder. Come discusso, invertire le frasi di origine aiuta a creare un forte collegamento iniziale tra encoder e decoder, migliorando le prestazioni del modello. Tuttavia, ricorda sempre che il beneficio dipende dalle due lingue tra cui stai traducendo. Finché hanno lo stesso ordine di soggetto, verbo e oggetto, questo accorgimento favorirà il modello.

In questo esercizio modificherai la funzione sents2seqs() per poter invertire le frasi quando serve. L’utente può specificare un argomento keyword booleano reverse che esegue l’inversione del testo.

Questo esercizio fa parte del corso

Traduzione automatica con Keras

Visualizza corso

Istruzioni dell'esercizio

  • Scrivi la firma della funzione sents2seqs() aggiungendo un nuovo argomento keyword reverse impostato di default a False.
  • Inverti gli ID della sequenza restituita sulla dimensione temporale (usando la sintassi ::-1), in modo che l’ID della prima parola diventi l’ultimo.
  • Chiama sents2seqs() per invertire le sentences fornite e lascia invariati tutti gli altri valori predefiniti dei parametri.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

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))
Modifica ed esegui il codice