Dekodowanie predykcji
Twój model LSTM (model) został już wytrenowany (szczegóły znajdziesz w komunikacie sukcesu poprzedniego ćwiczenia), więc nie musisz czekać. Czas zdefiniować funkcję, która będzie dekodować jego predykcje. Wytrenowany model zostanie przekazany do tej funkcji jako domyślny parametr.
Ponieważ model korzysta z funkcji softmax, możesz użyć argmax() z biblioteki NumPy, aby uzyskać indeks/pozycję reprezentującą najbardziej prawdopodobne następne słowo spośród wektora prawdopodobieństw na wyjściu.
tokenizer, który wcześniej utworzyłeś i dopasowałeś, jest już załadowany. Skorzystasz z jego wewnętrznego słownika index_word, aby zamienić predykcję modelu dotyczącą następnego słowa (wyrażoną jako liczba całkowita) na rzeczywiste słowo, które reprezentuje.
Jesteś już bardzo blisko eksperymentowania z modelem!
To ćwiczenie jest częścią kursu
Wprowadzenie do uczenia głębokiego z Keras
Instrukcje do ćwiczenia
- Użyj
texts_to_sequences(), aby zamienić parametrtest_textna sekwencję liczb. - Uzyskaj predykcję modelu dotyczącą następnego słowa, przekazując
test_seq. Indeks/pozycja reprezentująca słowo o najwyższym prawdopodobieństwie jest zwracana przez wywołanie.argmax(axis=1)[0]na tablicy NumPy z predykcjami. - Zwróć słowo odpowiadające predykcji, korzystając ze słownika
index_wordtokenizera.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
def predict_text(test_text, model = model):
if len(test_text.split()) != 3:
print('Text input should be 3 words!')
return False
# Turn the test_text into a sequence of numbers
test_seq = tokenizer.texts_to_sequences([____])
test_seq = np.array(test_seq)
# Use the model passed as a parameter to predict the next word
pred = ____.predict(____).argmax(axis = 1)[0]
# Return the word that maps to the prediction
return tokenizer.____[____]