Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Ustaw step równe 2, a chars_window równe 10.
  • Dołącz następne zdanie do zmiennej sentences.
  • Dołącz odpowiednią pozycję tekstu sheldon do zmiennej next_chars.
  • Użyj funkcji print_examples(), aby wyświetlić 10 zdań 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)
Edytuj i uruchom kod