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
Oefeninstructies
- Definieer
stepgelijk aan2enchars_windowgelijk aan10. - Voeg de volgende zin toe aan de variabele
sentences. - Voeg de juiste positie van de tekst
sheldontoe aan de variabelenext_chars. - Gebruik de functie
print_examples()om10zinnen 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)