預測下一個字元
在這個練習中,你將撰寫函式,利用已訓練的模型來預測下一個字元。你會使用前 20 個字元來預測下一個。如何訓練模型會在下一個課程中學到,因為這是模型訓練前不可或缺的步驟。
這是建立產生句子、段落、短文或其他文字區塊規則的第一步。
變數 n_vocab、chars_window 與字典 index_to_char 已經在環境中載入。以下函式也已為你建立好:
initialize_X():將文字輸入轉換成正確形狀的索引數列。predict_next_char():使用模型類別的.predict()方法與index_to_char字典來取得下一個字元。
本練習屬於課程
使用 Keras 建立語言模型的循環神經網路(RNN)
練習說明
- 定義函式
get_next_char(),並加入參數initial_text與chars_window,不要設定預設值。 - 使用
initialize_X()函式並傳入變數char_to_index,以取得用於預測的零向量。 - 使用
predict_next_char()函式取得預測結果,並將其儲存在變數next_char。 - 對給定的
initial_text套用你定義的函式,列印預測的字元。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
def ____(model, ____, ____, char_to_index, index_to_char):
# Initialize the X vector with zeros
X = ____(initial_text, chars_window, ____)
# Get next character using the model
____ = predict_next_char(model, X, ____)
return next_char
# Define context sentence and print the generated text
initial_text = "I am not insane, "
print("Next character: {0}".format(____(model, ____, 20, char_to_index, index_to_char)))