Aan de slagGa gratis aan de slag

De data voorbereiden voor training

In deze oefening ga je verder met het voorbereiden van de data om het model te trainen. Nadat je de arrays met zinnen en volgende tekens hebt gemaakt, moet je ze omzetten naar numerieke waarden die het model kan gebruiken.

Deze stap is nodig omdat RNN-modellen alleen met getallen werken en niet met strings. Je maakt numerieke arrays met nullen of enen op de posities die de tekens voorstellen die in de zinnen voorkomen. Enen (of True) geven aan dat het betreffende teken aanwezig is, terwijl nullen (of False) de afwezigheid van het teken op die positie in de zin aangeven.

De variabelen sentences, next_char, n_vocab, chars_window, num_seqs (aantal zinnen in de trainingsdata) zijn al in de omgeving geladen, evenals numpy als np.

Deze oefening maakt deel uit van de cursus

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

Cursus bekijken

Oefeninstructies

  • Instantieer een np.array() met nullen en shape (aantal zinnen, tekenvenster, omvang woordenschat).
  • Gebruik de dictionary char_to_index om de positie van het huidige teken op 1 te zetten.
  • Zet het huidige volgende teken op 1.
  • Print de eerste positie van elke array.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Instantiate the variables with zeros
numerical_sentences = np.zeros((____, ____, ____), dtype=np.bool)
numerical_next_chars = np.zeros((num_seqs, n_vocab), dtype=np.bool)

# Loop for every sentence
for i, sentence in enumerate(sentences):
  # Loop for every character in sentence
  for t, char in enumerate(sentence):
    # Set position of the character to 1
    numerical_sentences[i, t, ____] = ____
    # Set next character to 1
    ____[i, char_to_index[next_chars[i]]] = 1

# Print the first position of each
print(____, ____, sep="\n")
Code bewerken en uitvoeren