始める無料で始める

Part 1: 宝探し

あなたは最近、南国の楽園へのオールインクルーシブ旅行に当選しました。島を散策していると、偉大な財宝の場所を示す古い宝の地図を見つけました。地図には 1 と 0 で書かれた秘密のメッセージがいくつかあります。ちょうどこのコースを受講したばかりのあなたは、それが onehot エンコードされたベクトルの列だとすぐに見抜きます。どの単語がどの ID に対応するかが分かる単語からインデックスへの対応表も、運良く見つけました。

次は、この秘密のメッセージを復号して地図が何を伝えているのかを突き止めます。treasure_map が与えられており、これは「文の数」×「単語数」×「onehot ベクトル長」の行列です。さらに、ID を単語に対応付ける index2word という Python のディクショナリも用意されています。

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

Kerasで学ぶMachine Translation

コースを見る

演習の手順

  • treasure_map 内の onehot エンコードされたベクトルから単語 ID を取得します(onehot ベクトルの次元は最後の次元です)。
  • treasure_map から系列長(タイムステップ数)を取得し、seq_len に代入します。
  • i 番目の文の t 番目の位置にある単語 ID を取得します。
  • wid に対応する文字列の単語(ID ではなく)をリスト words に追加します。

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

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

# Get the word IDs from the treasure map
word_ids = ____.____(____, axis=____)
# Get the sequence length from the treasure map
seq_len = treasure_map.shape[____]

for i in range(treasure_map.shape[0]):
	words = []
	for t in range(seq_len):
      	# Get the word ID for the i-th sentence and t-th position
	    wid = word_ids[i, ____]
	    if wid != 0:
          	# Append the word corresponding to wid
	        words.append(____[____])
	print("Instruction ", i+1, ": ", ' '.join(words))
コードを編集して実行