始める無料で始める

文と次の文字のベクトルを作成する

この演習では、データ前処理の重要性をより強調します。『The Big Bang Theory』のキャラクター、Sheldon のセリフからなるテキストを入力として使い、テキスト生成モデルを作成する前に必要となる、文(シーケンス)のインデックスと次の文字のベクトルを作成します。

テキストは sheldon 変数に、語彙(文字の集合)は vocabulary 変数に用意されています。ハイパーパラメータ chars_windowstep はそれぞれ 203 に設定済みです。これは、20 文字のシーケンスから次の 1 文字を予測し、ウィンドウは各イテレーションで 3 文字ずつシフトすることを意味します。

また、pandaspd として環境に読み込まれています。

この演習はコースの一部です

Kerasで学ぶ言語モデリングのためのRecurrent Neural Networks (RNNs)

コースを見る

演習の手順

  • テキストを改行で分割して、各文をループ処理できるようにします。
  • 各文の末尾から chars_window を引いた位置までループします。
  • 連続する chars_window 文字の部分文字列を sentences 変数に追加し、その直後の 1 文字を next_chars 変数に追加します。
  • 得られたベクトルを使って pd.DataFrame() を作成し、先頭の行を表示します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Instantiate the vectors
sentences = []
next_chars = []
# Loop for every sentence
for sentence in sheldon.____:
    # Get 20 previous chars and next char; then shift by step
    for i in range(0, len(sentence) - ____, step):
        sentences.append(sentence[i:i + ____])
        next_chars.append(sentence[____ + chars_window])

# Define a Data Frame with the vectors
df = pd.DataFrame({'sentence': ____, 'next_char': ____})

# Print the initial rows
print(df.head())
コードを編集して実行