CommencerCommencer gratuitement

Inverser des phrases

Vous apprendrez ici comment inverser des phrases pour le modèle d'encodeur. Comme indiqué précédemment, l'inversion des phrases sources contribue à établir une connexion initiale solide entre l'encodeur et le décodeur, ce qui améliore les performances du modèle. Cependant, n'oubliez pas que l'avantage dépend des deux langues entre lesquelles vous traduisez. Tant que le sujet, le verbe et l'objet sont dans le même ordre, cela sera bénéfique pour le modèle.

Dans cet exercice, vous allez modifier la fonction « sents2seqs() » afin de pouvoir inverser des phrases si nécessaire. L'utilisateur peut spécifier un argument clé booléen reverse qui inverse le texte.

Cet exercice fait partie du cours

Traduction automatique avec Keras

Afficher le cours

Instructions

  • Écrivez la signature de la fonction d'sents2seqs() en ajoutant un nouvel argument clé reverse dont la valeur par défaut est False.
  • Inversez les identifiants de séquence renvoyés sur la dimension temporelle (en utilisant la syntaxe d'::-1 ), de sorte que le premier identifiant de mot devienne le dernier.
  • Veuillez contacter sents2seqs() pour annuler l'sentences et conserver tous les autres paramètres par défaut inchangés.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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))
Modifier et exécuter le code