始める無料で始める

入力テキストの前処理

動画で、入力テキストと出力テキストの準備方法を確認しましたね。この演習では、一般的な実践として、全ての文を最大長に合わせてパディングし、情報を失わないようにする方法を扱います。

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(____)
コードを編集して実行