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
Instructions
- Écrivez la signature de la fonction d'
sents2seqs()
en ajoutant un nouvel argument cléreverse
dont la valeur par défaut estFalse
. - 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))