In de blogpost "The Unreasonable Effectiveness of Recurrent Neural Networks" (2015) van Andrej Karpathy wordt getoond hoe een RNN getraind kan worden om het volgende karakter in een zin te voorspellen.
Voorbeeld van gegenereerde tekst na training op Shakespeares werken:
PANDARUS:
Alas, I think he shall be come approached and the day
When little srain would be attain'd into being never fed,
And who is but a chain and subjects of his death,
I should not sleep.
Onze taak: Train een character-level language model op Shakespeares werken.
Het model leert (meestal) woorden correct spellen en correcte interpunctie gebruiken, hoewel de tekst zelf weinig zin heeft.
Downloaden van de data: Gebruik keras.utils.get_file() om de data te downloaden.
import tensorflow as tf
shakespeare_url = "<https://homl.info/shakespeare>" # shortcut URL
filepath = keras.utils.get_file("shakespeare.txt", shakespeare_url)
with open(filepath) as f:
shakespeare_text = f.read() # shakespeare_text is now a string
Bekijken van de data: Altijd goed om de data te inspecteren.
print(shakespeare_text[:80])
Geeft:
First Citizen:
Before we proceed any further, hear me speak.
All:
Speak, speak.
Coderen van de data: Gebruik TextVectorization laag (uit hoofdstuk 13) om de tekst te coderen.
text_vec_layer = keras.layers.TextVectorization(
split="character", standardize="lower")
# shakespeare_text is a string and adapt expects a dataset or list
text_vec_layer.adapt([shakespeare_text])
encoded = text_vec_layer([shakespeare_text])[0]
encoded een 1D tensor van integers.