Aan de slagGa gratis aan de slag

Tekstgegevens voorbereiden voor modelinvoer

Eerder leerde je hoe je woordenboeken maakt van index-naar-woord en andersom. In deze oefening splits je de tekst in tekens en ga je verder met het voorbereiden van de data voor supervised learning.

Teksten in tekens opdelen lijkt misschien vreemd, maar het wordt vaak gedaan voor tekstgeneratie. Bovendien is het voorbereidingsproces hetzelfde; alleen de manier waarop je de tekst splitst verandert.

Je maakt de trainingsdata met een lijst van teksten van vaste lengte en hun labels, namelijk de bijbehorende volgende tekens.

Je blijft werken met de gegevensset met citaten van Sheldon (The Big Bang Theory), beschikbaar in de variabele sheldon_quotes.

De functie print_examples() print de paren, zodat je kunt zien hoe de data is getransformeerd. Gebruik help() voor meer details.

Deze oefening maakt deel uit van de cursus

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

Cursus bekijken

Oefeninstructies

  • Definieer step gelijk aan 2 en chars_window gelijk aan 10.
  • Voeg de volgende zin toe aan de variabele sentences.
  • Voeg de juiste positie van de tekst sheldon toe aan de variabele next_chars.
  • Gebruik de functie print_examples() om 10 zinnen en volgende tekens te printen.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Create lists to keep the sentences and the next character
sentences = []   # ~ Training data
next_chars = []  # ~ Training labels

# Define hyperparameters
step = ____          # ~ Step to take when reading the texts in characters
chars_window = ____ # ~ Number of characters to use to predict the next one  

# Loop over the text: length `chars_window` per time with step equal to `step`
for i in range(0, len(sheldon_quotes) - chars_window, step):
    sentences.____(sheldon_quotes[i:i + chars_window])
    next_chars.append(sheldon_quotes[____])

# Print 10 pairs
print_examples(____, ____, 10)
Code bewerken en uitvoeren