LSTM を使ったテキスト予測
この演習では、小さなテキストデータセットを使って、次の単語を予測できるお試し用の LSTM モデルを作成します。
このデータセットは、映画 The Lord of the Ring から抽出して前処理した引用文で構成されています。text 変数に入っています。
この text を 長さ 4 の sequences に変換し、Keras の Tokenizer を使ってモデル用の特徴量とラベルを用意します!
Keras の Tokenizer はすでにインポート済みです。これは各単語に固有の番号を割り当て、その対応関係をディクショナリに保持します。モデルは数値を扱うため重要であり、後で出力された数値を単語にデコードしたくなる場面でも役立ちます。
この演習はコースの一部です
Kerasで学ぶIntroduction to Deep Learning
演習の手順
.split()を使ってテキストを単語の配列に分割します。- 1 語ずつずらしながら、4 語からなる文を作成します。
Tokenizer()を生成し、.fit_on_texts()でその文に適合させます。.texts_to_sequences()を呼び出して、sentencesを数値のシーケンスに変換します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Split text into an array of words
words = ____.____
# Make sentences of 4 words each, moving one word at a time
sentences = []
for i in range(4, len(words)):
sentences.append(' '.join(words[i-____:i]))
# Instantiate a Tokenizer, then fit it on the sentences
tokenizer = ____
tokenizer.____(____)
# Turn sentences into a sequence of numbers
sequences = tokenizer.____(____)
print("Sentences: \n {} \n Sequences: \n {}".format(sentences[:5],sequences[:5]))