パート1: テキスト反転モデル - エンコーダ
シンプルなテキスト反転モデルを作ることは、エンコーダ・デコーダモデルの仕組みとそれらのつながりを理解するのに最適な方法です。ここでは、テキスト反転モデルのエンコーダ部分を実装します。
エンコーダの実装は2つの演習に分かれています。この演習では、補助関数 words2onehot() を定義します。words2onehot() は、単語のリストと辞書 word2index を受け取り、単語のリストをone-hotベクトルの配列に変換する必要があります。word2index 辞書はワークスペースに用意されています。
この演習はコースの一部です
Kerasで学ぶMachine Translation
演習の手順
words2onehot()関数内で、word2index辞書を使って単語をIDに変換します。- 単語IDを長さ
3のone-hotベクトルに変換し(num_classes引数を使用)、その配列を返します。 - 単語
I、like、catsを引数に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, ____)])