入力テキストの前処理
動画で、入力テキストと出力テキストの準備方法を確認しましたね。この演習では、一般的な実践として、全ての文を最大長に合わせてパディングし、情報を失わないようにする方法を扱います。
RNN モデルでは入力のサイズを揃える必要があるため、短い文には末尾にゼロを追加してパディングし、長い文は切り捨てずにそのままにする方法を用います。
また、トークンの表現には文字ではなく単語を使います。これは NMT モデルで一般的なアプローチです。
ポルトガル語のテキストは pt_sentences 変数に、学習済みの tokenizer は input_tokenizer 変数に読み込まれています。
この演習はコースの一部です
Kerasで学ぶ言語モデリングのためのRecurrent Neural Networks (RNNs)
演習の手順
- 各文に対して
.split()メソッドを使い、空白で分割して単語数を取得します。 .texts_to_sequences()メソッドを使って、テキストをインデックスの列に変換します。- 求めた文の最大長を用いてパディングします。
- 変換後の最初の文を出力してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Get maximum length of the sentences
pt_length = max([len(sentence.____) for sentence in pt_sentences])
# Transform text to sequence of numerical indexes
X = input_tokenizer.____(pt_sentences)
# Pad the sequences
X = pad_sequences(X, maxlen=____, padding='post')
# Print first sentence
print(pt_sentences[0])
# Print transformed sentence
print(____)