学習用データの準備
この演習では、モデルを学習させるためのデータ準備を続けます。文と次の文字の配列を作成したら、それらをモデルで使用できる数値に変換する必要があります。
この手順は、RNN モデルが文字列ではなく数値のみを入力として想定しているため必要です。文章中に存在する文字を表す位置に 0 または 1 を持つ数値配列を作成します。1(または True)は該当する文字が存在することを、0(または False)はその文のその位置に文字が存在しないことを表します。
変数 sentences, next_char, n_vocab, chars_window, num_seqs(学習データ内の文数)は、numpy を np として読み込んだ状態で、すでに環境に用意されています。
この演習はコースの一部です
Kerasで学ぶ言語モデリングのためのRecurrent Neural Networks (RNNs)
演習の手順
- すべてが 0 の
np.array()を作成し、shape を(number of sentences, characters window, vocabulary size)に設定します。 - 辞書
char_to_indexを使って、現在の文字に対応する位置を1に設定します。 - 現在の次の文字を
1に設定します。 - 各配列の先頭要素を出力してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Instantiate the variables with zeros
numerical_sentences = np.zeros((____, ____, ____), dtype=np.bool)
numerical_next_chars = np.zeros((num_seqs, n_vocab), dtype=np.bool)
# Loop for every sentence
for i, sentence in enumerate(sentences):
# Loop for every character in sentence
for t, char in enumerate(sentence):
# Set position of the character to 1
numerical_sentences[i, t, ____] = ____
# Set next character to 1
____[i, char_to_index[next_chars[i]]] = 1
# Print the first position of each
print(____, ____, sep="\n")