Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Użyj texts_to_sequences(), aby zamienić parametr test_text na 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_word tokenizera.

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.____[____]
Edytuj i uruchom kod