Aan de slagGa gratis aan de slag

De invoertekst voorbereiden

In de video heb je gezien hoe je de input- en outputteksten voorbereidt. Deze oefening laat een veelgebruikte aanpak zien: alle zinnen opvullen met de maximale zinslengte, zodat er geen informatie verloren gaat.

Omdat RNN-modellen invoer van dezelfde lengte nodig hebben, kun je zo alle zinnen opvullen en nullen toevoegen aan kortere zinnen, zonder de langere af te kappen.

Ook gebruik je woorden in plaats van tekens als tokens; dit is een gangbare aanpak voor NMT-modellen.

De Portugese teksten zijn geladen in de variabele pt_sentences en een getrainde tokenizer in de variabele input_tokenizer.

Deze oefening maakt deel uit van de cursus

Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

Cursus bekijken

Oefeninstructies

  • Gebruik op elke zin de methode .split() om op spaties te splitsen en het aantal woorden in de zin te bepalen.
  • Gebruik de methode .texts_to_sequences() om tekst om te zetten naar een reeks indexen.
  • Gebruik de verkregen maximale zinslengte om de zinnen op te vullen (pad).
  • Print de eerste getransformeerde zin.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Get maximum length of the sentences
pt_length = max([len(sentence.____) for sentence in pt_sentences])

# Transform text to sequence of numerical indexes
X = input_tokenizer.____(pt_sentences)

# Pad the sequences
X = pad_sequences(X, maxlen=____, padding='post')

# Print first sentence
print(pt_sentences[0])

# Print transformed sentence
print(____)
Code bewerken en uitvoeren