Decodifica le tue previsioni
Il tuo LSTM model è già stato addestrato (trovi i dettagli nel messaggio di successo dell'esercizio precedente), così non devi aspettare. È il momento di definire una funzione che decodifichi le sue previsioni. Il model addestrato verrà passato come parametro predefinito a questa funzione.
Poiché stai prevedendo con un modello che usa la funzione softmax, argmax() di numpy può essere usato per ottenere l'indice/posizione che rappresenta la parola successiva più probabile a partire dal vettore di probabilità in output.
Il tokenizer che hai creato e fittato in precedenza è già caricato per te. Userai il suo dizionario interno index_word per trasformare la previsione della parola successiva del model (che è un intero) nella parola effettiva che rappresenta.
Sei a un passo dal poter sperimentare con il tuo modello!
Questo esercizio fa parte del corso
Introduzione al Deep Learning con Keras
Istruzioni dell'esercizio
- Usa
texts_to_sequences()per trasformare il parametrotest_textin una sequenza di numeri. - Ottieni la previsione della parola successiva del modello passando
test_seq. L'indice/posizione della parola con probabilità più alta si ottiene chiamando.argmax(axis=1)[0]sull'array numpy di previsioni. - Restituisci la parola che corrisponde alla previsione usando il dizionario
index_worddel tokenizer.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
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.____[____]