Decodifique suas previsões
Seu LSTM model
já foi treinado (detalhes na mensagem de sucesso do exercício anterior) para que você não precise esperar. É hora de definir uma função que decodifique suas previsões. O model
treinado será passado como um parâmetro padrão para essa função.
Como você está fazendo previsões em um modelo que usa a função softmax, o argmax()
do numpy pode ser usado para obter o índice/posição que representa a próxima palavra mais provável do vetor de probabilidades de saída.
O tokenizer
que você criou e ajustou anteriormente é carregado para você. Você usará o dicionário interno do index_word
para transformar a previsão da próxima palavra do model
(que é um número inteiro) na palavra escrita real que ela representa.
Você está muito perto de experimentar o seu modelo!
Este exercício faz parte do curso
Introdução à aprendizagem profunda com o Keras
Instruções de exercício
- Use
texts_to_sequences()
para transformar o parâmetrotest_text
em uma sequência de números. - Obtenha a previsão da próxima palavra do modelo passando em
test_seq
. O índice/posição que representa a palavra com a maior probabilidade é obtido chamando.argmax(axis=1)[0]
na matriz numpy de previsões. - Retorna a palavra que mapeia a previsão usando o dicionário
index_word
do tokenizador.
Exercício interativo prático
Experimente este exercício preenchendo este código de exemplo.
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.____[____]