Aan de slagGa gratis aan de slag

Decodeer je voorspellingen

Je LSTM-model is al getraind (details staan in het succesbericht van de vorige oefening), zodat je niet hoeft te wachten. Tijd om een functie te definiëren die de voorspellingen decodeert. Het getrainde model wordt als standaardparameter aan deze functie meegegeven.

Omdat je voorspelt met een model dat de softmax-functie gebruikt, kun je numpy's argmax() gebruiken om de index/positie te krijgen van het meest waarschijnlijke volgende woord uit de uitvoervector met waarschijnlijkheden.

De tokenizer die je eerder hebt gemaakt en gefit, is voor je geladen. Je gaat de interne index_word-dictionary gebruiken om de voorspelling van het model voor het volgende woord (een geheel getal) om te zetten naar het daadwerkelijke geschreven woord dat het representeert.

Je bent heel dichtbij het experimenteren met je model!

Deze oefening maakt deel uit van de cursus

Introductie tot Deep Learning met Keras

Cursus bekijken

Oefeninstructies

  • Gebruik texts_to_sequences() om de parameter test_text om te zetten in een reeks getallen.
  • Verkrijg de voorspelling voor het volgende woord van het model door test_seq door te geven. De index/positie van het woord met de hoogste waarschijnlijkheid krijg je door .argmax(axis=1)[0] aan te roepen op de numpy-array met voorspellingen.
  • Retourneer het woord dat aan de voorspelling is gekoppeld via de index_word-dictionary van de tokenizer.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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.____[____]
Code bewerken en uitvoeren