Aan de slagGa gratis aan de slag

De uitvoertekst voorbereiden

In deze oefening bereid je de uitvoerteksten voor die in het vertaalmodel worden gebruikt. Naast het omzetten van tekst naar reeksen indexen, moet je ook elke index one-hot encoden.

De Engelse teksten zijn geladen in de variabele en_sentences, de getrainde tokenizer in de variabele output_tokenizer en de grootte van de Engelse woordenschat in en_vocab_size.

Er is ook al een functie gemaakt om de eerste stappen van de transformatie van de doeltaal uit te voeren (het omzetten van teksten naar reeksen indexen). De functie is in de omgeving geladen als transform_text_to_sequences() en heeft twee parameters: sentences, waarin een lijst met Engelse zinnen wordt verwacht, en tokenizer, waarin een getraind Tokenizer-object uit de module keras.preprocessing.text wordt verwacht.

numpy is geladen als np.

Deze oefening maakt deel uit van de cursus

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

Cursus bekijken

Oefeninstructies

  • Geef de variabelen en_sentences en output_tokenizer door aan de functie transform_text_to_sequences() om de variabele Y te initialiseren.
  • Gebruik de functie to_categorical() om de zinnen one-hot te encoden. Gebruik de variabele en_vocab_size als aantal klassen.
  • Zet de tijdelijke lijst om naar een numpy-array en reshape deze naar de vorm (num_sentences, sentences_len, en_vocab_size).
  • Print de ruwe tekst en de getransformeerde versie.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Initialize the variable
Y = transform_text_to_sequences(____, ____)

# Temporary list
ylist = list()
for sequence in Y:
  	# One-hot encode sentence and append to list
    ylist.append(____(sequence, num_classes=____))

# Update the variable
Y = np.array(ylist).reshape(____, Y.shape[1], en_vocab_size)

# Print the raw sentence and its transformed version
print("Raw sentence: {0}\nTransformed: {1}".format(____, Y[0]))
Code bewerken en uitvoeren