Aan de slagGa gratis aan de slag

Deel 1: Schatzoektocht

Je hebt onlangs een volledig betaalde reis gewonnen naar een weelderig tropisch eiland. Terwijl je rondliep, vond je een oud schatkaart die naar een grote schat wijst, met een paar geheime boodschappen geschreven met 1’en en 0’en. Omdat je net deze cursus hebt gevolgd, herken je meteen dat het om een reeks onehot-gecodeerde vectoren gaat. Je had ook het geluk een mapping van woord naar index te vinden, zodat je weet welk woord bij welke ID hoort.

Nu moet je de geheime boodschap ontcijferen en ontdekken wat deze kaart zegt. Je hebt een treasure_map gekregen, een matrix van aantal zinnen bij aantal woorden bij lengte onehot-vector. Je hebt ook de index2word Python-dictionary gekregen die een ID aan een woord koppelt.

Deze oefening maakt deel uit van de cursus

Machine Translation met Keras

Cursus bekijken

Oefeninstructies

  • Haal de woord-ID’s op voor de onehot-gecodeerde vectoren in de treasure_map (de onehot-vectordimensie is de laatste dimensie).
  • Haal de sequentielengte op (dus het aantal timestep s) uit treasure_map en wijs toe aan seq_len.
  • Haal de woord-ID op in de i-de zin op de t-de positie.
  • Voeg het String-woord (dus niet de woord-ID) dat hoort bij wid toe aan de lijst words.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Get the word IDs from the treasure map
word_ids = ____.____(____, axis=____)
# Get the sequence length from the treasure map
seq_len = treasure_map.shape[____]

for i in range(treasure_map.shape[0]):
	words = []
	for t in range(seq_len):
      	# Get the word ID for the i-th sentence and t-th position
	    wid = word_ids[i, ____]
	    if wid != 0:
          	# Append the word corresponding to wid
	        words.append(____[____])
	print("Instruction ", i+1, ": ", ' '.join(words))
Code bewerken en uitvoeren