Maak vectoren van zinnen en volgende tekens
Deze oefening laat zien hoe belangrijk een goede datavoorbereiding is. Je gebruikt teksten met zinnen van het personage Sheldon uit de tv-serie The Big Bang Theory als input en maakt vectoren met zinsindexen en volgende tekens die nodig zijn voordat je een tekstgeneratiemodel bouwt.
De tekst staat in de variabele sheldon, het vocabulaire (tekens) in de variabele vocabulary, en de hyperparameters chars_window en step zijn ingesteld op respectievelijk 20 en 3. Dit betekent dat een reeks van 20 tekens wordt gebruikt om het volgende teken te voorspellen, en dat het venster bij elke iteratie 3 tekens opschuift.
Daarnaast is het pakket pandas als pd geladen in de omgeving.
Deze oefening maakt deel uit van de cursus
Recurrent Neural Networks (RNN's) voor taalmodellen met Keras
Oefeninstructies
- Split de tekst op regeleinden om over zinnen te kunnen loopen.
- Loop tot het einde van de zin min
chars_window. - Voeg het deel van de zin met
chars_windowtekens toe aan de variabelesentencesen voeg het daaropvolgende teken toe aan de variabelenext_chars. - Gebruik de verkregen vectoren om een
pd.DataFrame()te maken en print de eerste rijen.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Instantiate the vectors
sentences = []
next_chars = []
# Loop for every sentence
for sentence in sheldon.____:
# Get 20 previous chars and next char; then shift by step
for i in range(0, len(sentence) - ____, step):
sentences.append(sentence[i:i + ____])
next_chars.append(sentence[____ + chars_window])
# Define a Data Frame with the vectors
df = pd.DataFrame({'sentence': ____, 'next_char': ____})
# Print the initial rows
print(df.head())