始める無料で始める

次の文字を予測する

この演習では、学習済みモデルを使って次の文字を予測する関数を実装します。直前の20文字を用いて次の1文字を予測します。モデルの学習方法は次のレッスンで扱います。これはモデル学習の前段として重要なステップです。

これは、必要に応じて文、段落、短いテキスト、その他のテキストブロックを生成するためのルールを作る最初の一歩です。

変数 n_vocabchars_window、および辞書 index_to_char はすでに環境に読み込まれています。さらに、以下の関数はあらかじめ用意されています。

  • initialize_X(): テキスト入力を、形状が適切なインデックス番号のシーケンスに変換します。
  • predict_next_char(): モデルクラスの .predict() メソッドと index_to_char 辞書を使って次の文字を取得します。

この演習はコースの一部です

Kerasで学ぶ言語モデリングのためのRecurrent Neural Networks (RNNs)

コースを見る

演習の手順

  • 関数 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)))
コードを編集して実行