Inizia subitoInizia gratis

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

Visualizza corso

Istruzioni dell'esercizio

  • Usa texts_to_sequences() per trasformare il parametro test_text in 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_word del 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.____[____]
Modifica ed esegui il codice