Decodifică predicțiile
Modelul tău LSTM model a fost deja antrenat (detalii în mesajul de succes al exercițiului anterior), astfel încât să nu trebuiască să aștepți. Este momentul să definești o funcție care decodifică predicțiile sale. Modelul antrenat model va fi transmis ca parametru implicit acestei funcții.
Deoarece faci predicții pe un model care folosește funcția softmax, argmax() din numpy poate fi utilizat pentru a obține indexul/poziția care reprezintă cel mai probabil cuvânt următor din vectorul de probabilități de la ieșire.
tokenizer-ul pe care l-ai creat și antrenat anterior este deja încărcat pentru tine. Vei folosi dicționarul său intern index_word pentru a converti predicția modelului model pentru cuvântul următor (care este un număr întreg) în cuvântul scris efectiv pe care îl reprezintă.
Ești foarte aproape de a experimenta cu modelul tău!
Acest exercițiu face parte din cursul
Introducere în Deep Learning cu Keras
Instrucțiuni pentru exercițiu
- Folosește
texts_to_sequences()pentru a transforma parametrultest_textîntr-o secvență de numere. - Obține predicția modelului pentru cuvântul următor transmițând
test_seq. Indexul/poziția care reprezintă cuvântul cu cea mai mare probabilitate se obține apelând.argmax(axis=1)[0]pe array-ul numpy de predicții. - Returnează cuvântul care corespunde predicției folosind dicționarul
index_wordal tokenizer-ului.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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.____[____]