開始使用免費開始

預測下一個字元

在這個練習中,你將撰寫函式,利用已訓練的模型來預測下一個字元。你會使用前 20 個字元來預測下一個。如何訓練模型會在下一個課程中學到,因為這是模型訓練前不可或缺的步驟。

這是建立產生句子、段落、短文或其他文字區塊規則的第一步。

變數 n_vocabchars_window 與字典 index_to_char 已經在環境中載入。以下函式也已為你建立好:

  • initialize_X():將文字輸入轉換成正確形狀的索引數列。
  • predict_next_char():使用模型類別的 .predict() 方法與 index_to_char 字典來取得下一個字元。

本練習屬於課程

使用 Keras 建立語言模型的循環神經網路(RNN)

檢視課程

練習說明

  • 定義函式 get_next_char(),並加入參數 initial_textchars_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)))
編輯並執行程式碼