次の文字を予測する
この演習では、学習済みモデルを使って次の文字を予測する関数を実装します。直前の20文字を用いて次の1文字を予測します。モデルの学習方法は次のレッスンで扱います。これはモデル学習の前段として重要なステップです。
これは、必要に応じて文、段落、短いテキスト、その他のテキストブロックを生成するためのルールを作る最初の一歩です。
変数 n_vocab、chars_window、および辞書 index_to_char はすでに環境に読み込まれています。さらに、以下の関数はあらかじめ用意されています。
initialize_X(): テキスト入力を、形状が適切なインデックス番号のシーケンスに変換します。predict_next_char(): モデルクラスの.predict()メソッドとindex_to_char辞書を使って次の文字を取得します。
この演習はコースの一部です
Kerasで学ぶ言語モデリングのためのRecurrent Neural Networks (RNNs)
演習の手順
- 関数
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)))