CommencerCommencer gratuitement

Deuxième partie : Chasse au trésor

Il y a maintenant une petite variante à la chasse au trésor. Vous avez oublié d'emporter votre ordinateur portable et vous ne disposez que d'un appareil avec une mémoire limitée. Le code que vous écrivez doit comporter moins de 4 lignes (hors commentaires). Étant donné que vous devez rendre le code aussi compact que possible, vous utiliserez la compréhension de liste.

La compréhension de liste est un excellent moyen de parcourir des données à l'aide d'une seule ligne de code. Par exemple, si vous souhaitez obtenir tous les nombres pairs d'une liste de nombres, vous pouvez utiliser l'[n for n in range(100) if n%2==0]. Comme vous pouvez le constater, la compréhension de liste vous permet de combiner des boucles d'for et des instructions d'if dans une seule ligne de code.

Cet exercice fait partie du cours

Traduction automatique avec Keras

Afficher le cours

Instructions

  • Obtenez les identifiants des mots pour les vecteurs codés onehot dans l'treasure_map.
  • Obtenez la taille du lot (la toute première dimension) de la carte au trésor et utilisez-la pour créer une boucle « for ».
  • Obtenez les mots de la i-ème phrase en parcourant la i-ème ligne de l'word_ids, tout en ignorant les identifiants de mots égaux à zéro.

Exercice interactif pratique

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

# 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