出力テキストの準備
この演習では、翻訳モデルで使用する出力テキストを準備します。テキストをインデックス列に変換するだけでなく、各インデックスをワンホットエンコードする必要があります。
英語のテキストは変数 en_sentences に、学習済みのトークナイザーは output_tokenizer に、英語の語彙サイズは en_vocab_size に読み込まれています。
また、出力言語の最初の変換処理(テキストをインデックス列に変換)を行う関数も用意済みです。関数は transform_text_to_sequences() として環境に読み込まれており、2つの引数を取ります。sentences は英語の文のリストを、tokenizer は keras.preprocessing.text モジュールの学習済み Tokenizer オブジェクトを想定しています。
numpy は np として読み込まれています。
この演習はコースの一部です
Kerasで学ぶ言語モデリングのためのRecurrent Neural Networks (RNNs)
演習の手順
en_sentencesとoutput_tokenizerをtransform_text_to_sequences()に渡して、変数Yを初期化してください。to_categorical()関数を使って文をワンホットエンコードします。クラス数にはen_vocab_sizeを使用してください。- 一時リストを numpy 配列に変換し、形状が
(num_sentences, sentences_len, en_vocab_size)になるようにリシェイプしてください。 - 元のテキストと変換後のテキストを出力してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Initialize the variable
Y = transform_text_to_sequences(____, ____)
# Temporary list
ylist = list()
for sequence in Y:
# One-hot encode sentence and append to list
ylist.append(____(sequence, num_classes=____))
# Update the variable
Y = np.array(ylist).reshape(____, Y.shape[1], en_vocab_size)
# Print the raw sentence and its transformed version
print("Raw sentence: {0}\nTransformed: {1}".format(____, Y[0]))