Partie 1 : modèle d'inversion de texte – Encodeur
Créer un simple modèle d'inversion de texte est une excellente façon de comprendre la mécanique des modèles encodeur-décodeur et leurs liens. Vous allez maintenant implanter la partie encodeur d'un modèle d'inversion de texte.
L'implantation de l'encodeur est répartie sur deux exercices. Dans celui-ci, vous devez définir la fonction utilitaire words2onehot(). La fonction words2onehot() doit recevoir une liste de mots et un dictionnaire word2index, puis convertir la liste de mots en un tableau de vecteurs one-hot. Le dictionnaire word2index est disponible dans l'espace de travail.
Cette activité fait partie du cours
Traduction automatique avec Keras
Instructions de l’exercice
- Convertissez les mots en identifiants à l'aide du dictionnaire
word2indexdans la fonctionwords2onehot(). - Convertissez les identifiants en vecteurs one-hot de longueur
3(en utilisant le paramètrenum_classes) et retournez le tableau obtenu. - Appelez la fonction
words2onehot()avec les motsI,likeetcats, puis assignez le résultat àonehot. - Affichez les mots et leurs vecteurs one-hot correspondants à l'aide des fonctions
print()etzip(). La fonctionzip()vous permet d'itérer plusieurs listes en même temps.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
import numpy as np
def words2onehot(word_list, word2index):
# Convert words to word IDs
word_ids = [____[w] for w in ____]
# Convert word IDs to onehot vectors and return the onehot array
onehot = ____(____, num_classes=3)
return ____
words = ["I", "like", "cats"]
# Convert words to onehot vectors using words2onehot
onehot = ____(____, ____)
# Print the result as (, ) tuples
print([(w,ohe.tolist()) for ____,____ in zip(words, ____)])