Remplir des phrases
sents2seqs()
Vous allez maintenant implémenter une fonction appelée « sents2seqs()
» que vous utiliserez plus tard pour transformer facilement les données au format accepté par le modèle de traduction automatique neuronale (NMT). « » accepte une liste de chaînes de phrases et,
- Convertit les phrases en une liste de séquences d'identifiants.
- Remplissez les phrases afin qu'elles aient toutes la même longueur et,
- Vous pouvez également convertir les identifiants en vecteurs onehot.
Vous avez reçu en_tok
, un modèle d'Tokenizer
déjà formé sur des données. Il est également important de noter que lors de l'implémentation de la fonction « sents2seqs()
», vous verrez un argument inutilisé appelé « input_type
». input_type
Par la suite, ces informations seront utilisées pour modifier les paramètres dépendants de la langue, tels que la longueur de la séquence et la taille du vocabulaire.
Cet exercice fait partie du cours
Traduction automatique avec Keras
Instructions
- Convertissez l'
sentences
en séquences à l'aide du tokenizeren_tok
. - Pad séquences à une longueur d'
en_len
e fixe avec un type de remplissage spécifié depad_type
et utilisezpost
-truncating. - Convertissez les identifiants de mots de l'
preproc_text
en vecteurs onehot de longueuren_vocab
à l'aide de la fonctionto_categorical()
. - Convertissez l'
sentence
en une séquence rembourrée à l'aide de la méthodesents2seqs()
en utilisantpre
-padding.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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=____)