Dekode prediksi Anda
LSTM model Anda sudah dilatih (detailnya ada di pesan sukses latihan sebelumnya) sehingga Anda tidak perlu menunggu. Sekarang saatnya mendefinisikan sebuah fungsi yang mendekode prediksinya. model terlatih akan diteruskan sebagai parameter default ke fungsi ini.
Karena Anda melakukan prediksi pada model yang menggunakan fungsi softmax, argmax() dari numpy dapat digunakan untuk memperoleh indeks/posisi yang merepresentasikan kata berikutnya yang paling mungkin dari vektor keluaran probabilitas.
tokenizer yang sebelumnya Anda buat dan latih sudah dimuat untuk Anda. Anda akan menggunakan kamus internalnya, index_word, untuk mengubah prediksi kata berikutnya dari model (yang berupa bilangan bulat) menjadi kata tertulis yang diwakilinya.
Anda sudah sangat dekat untuk bereksperimen dengan model Anda!
Latihan ini merupakan bagian dari kursus
Pengantar Deep Learning dengan Keras
Instruksi latihan
- Gunakan
texts_to_sequences()untuk mengubah parametertest_textmenjadi urutan angka. - Dapatkan prediksi kata berikutnya dari model dengan memasukkan
test_seq. Indeks/posisi yang merepresentasikan kata dengan probabilitas tertinggi diperoleh dengan memanggil.argmax(axis=1)[0]pada array prediksi numpy. - Kembalikan kata yang dipetakan ke prediksi tersebut menggunakan kamus
index_worddari tokenizer.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
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.____[____]