Przewidywanie następnego znaku
W tym ćwiczeniu napiszesz funkcję przewidującą następny znak na podstawie wytrenowanego modelu. Do predykcji kolejnego znaku wykorzystasz 20 poprzednich znaków. Trenowania modelu nauczysz się w następnej lekcji – ten krok jest jednak niezbędny przed przystąpieniem do trenowania.
To pierwszy etap tworzenia reguł generowania zdań, akapitów, krótkich tekstów lub innych bloków treści.
Zmienne n_vocab, chars_window oraz słownik index_to_char są już załadowane w środowisku. Poniższe funkcje zostały już dla ciebie przygotowane:
initialize_X(): Przekształca tekst wejściowy w sekwencję numerów indeksów o odpowiednim kształcie.predict_next_char(): Pobiera następny znak, korzystając z metody.predict()klasy modelu oraz słownikaindex_to_char.
To ćwiczenie jest częścią kursu
Rekurencyjne sieci neuronowe (RNN) do modelowania języka w Keras
Instrukcje do ćwiczenia
- Zdefiniuj funkcję
get_next_char()i dodaj parametryinitial_textorazchars_windowbez wartości domyślnych. - Użyj funkcji
initialize_X()i przekaż zmiennąchar_to_index, aby uzyskać wektor zer potrzebny do predykcji. - Użyj funkcji
predict_next_char(), aby uzyskać predykcję, i zapisz wynik w zmiennejnext_char. - Wyświetl przewidywany znak, wywołując zdefiniowaną funkcję na podanym
initial_text.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
def ____(model, ____, ____, char_to_index, index_to_char):
# Initialize the X vector with zeros
X = ____(initial_text, chars_window, ____)
# Get next character using the model
____ = predict_next_char(model, X, ____)
return next_char
# Define context sentence and print the generated text
initial_text = "I am not insane, "
print("Next character: {0}".format(____(model, ____, 20, char_to_index, index_to_char)))