CommencezCommencez gratuitement

Partie 2 : Chasse au trésor

Voici maintenant un petit rebondissement dans la chasse au trésor. Vous avez oublié votre portable et vous n'avez qu'un appareil avec une mémoire limitée. Le code que vous écrivez doit faire moins de 4 lignes (sans compter les commentaires). Comme vous devez rendre le code le plus compact possible, vous utiliserez une compréhension de liste.

La compréhension de liste est une excellente façon d'itérer sur des données en une seule ligne de code. Par exemple, si vous voulez obtenir tous les nombres pairs d'une liste de nombres, vous pouvez faire [n for n in range(100) if n%2==0]. Comme vous le voyez, la compréhension de liste vous permet de combiner des boucles for et des instructions if sur une seule ligne de code.

Cette activité fait partie du cours

Traduction automatique avec Keras

Voir le cours

Instructions de l’exercice

  • Obtenez les ID de mots pour les vecteurs codés en onehot dans treasure_map.
  • Obtenez la taille du lot (la toute première dimension) de la carte au trésor et servez-vous-en pour créer une boucle for.
  • Récupérez les mots de la iᵉ phrase en parcourant la iᵉ rangée de word_ids tout en ignorant les ID de mots égaux à zéro.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Get the word IDs from the treasure map
word_ids = np.argmax(____, axis=-1)
# Get the batch size from the treasure map
for i in range(treasure_map.shape[____]):
  	# Get all the words of the i-th sentence using list comprehension
	words = [index2word[____] for wid in word_ids[____] if wid != ____]
	print("Instruction ", i+1, ": ", ' '.join(words))
Modifier et exécuter le code