始める無料で始める

パート1: テキスト反転モデル - エンコーダ

シンプルなテキスト反転モデルを作ることは、エンコーダ・デコーダモデルの仕組みとそれらのつながりを理解するのに最適な方法です。ここでは、テキスト反転モデルのエンコーダ部分を実装します。

エンコーダの実装は2つの演習に分かれています。この演習では、補助関数 words2onehot() を定義します。words2onehot() は、単語のリストと辞書 word2index を受け取り、単語のリストをone-hotベクトルの配列に変換する必要があります。word2index 辞書はワークスペースに用意されています。

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

Kerasで学ぶMachine Translation

コースを見る

演習の手順

  • words2onehot() 関数内で、word2index 辞書を使って単語をIDに変換します。
  • 単語IDを長さ 3 のone-hotベクトルに変換し(num_classes 引数を使用)、その配列を返します。
  • 単語 Ilikecats を引数に words2onehot() 関数を呼び出し、結果を onehot に代入します。
  • print()zip() 関数を使って、単語と対応するone-hotベクトルを表示します。zip() を使うと、複数のリストを同時に反復処理できます。

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

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

import numpy as np

def words2onehot(word_list, word2index):
  # Convert words to word IDs
  word_ids = [____[w] for w in ____]
  # Convert word IDs to onehot vectors and return the onehot array
  onehot = ____(____, num_classes=3)
  return ____

words = ["I", "like", "cats"]
# Convert words to onehot vectors using words2onehot
onehot = ____(____, ____)
# Print the result as (, ) tuples
print([(w,ohe.tolist()) for ____,____ in zip(words, ____)])
コードを編集して実行