Przygotowanie danych tekstowych jako wejścia do modelu
Wcześniej nauczyłeś się tworzyć słowniki mapujące indeksy na słowa i odwrotnie. W tym ćwiczeniu podzielisz tekst na znaki i będziesz kontynuować przygotowywanie danych do uczenia nadzorowanego.
Podział tekstu na znaki może wydawać się dziwny, ale jest powszechnie stosowany w generowaniu tekstu. Proces przygotowania danych pozostaje taki sam – jedyna różnica polega na sposobie podziału tekstu.
Stworzysz dane treningowe zawierające listę tekstów o stałej długości oraz ich etykiety, czyli odpowiadające im następne znaki.
Będziesz nadal korzystać ze zbioru danych zawierającego cytaty Sheldona (z serialu The Big Bang Theory), dostępnego w zmiennej sheldon_quotes.
Funkcja print_examples() wyświetla pary, dzięki czemu możesz zobaczyć, jak dane zostały przekształcone. Użyj help(), aby poznać szczegóły.
To ćwiczenie jest częścią kursu
Rekurencyjne sieci neuronowe (RNN) do modelowania języka w Keras
Instrukcje do ćwiczenia
- Ustaw
steprówne2, achars_windowrówne10. - Dołącz następne zdanie do zmiennej
sentences. - Dołącz odpowiednią pozycję tekstu
sheldondo zmiennejnext_chars. - Użyj funkcji
print_examples(), aby wyświetlić10zdań wraz z następnymi znakami.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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)