3.3 学習データの準備

「ゼロから作るDeep Learning ❷」で用意されている関数をそのまま使います。

3.3.1 コンテキストとターゲット

from ivory.common.util import create_contexts_target, preprocess

text = "You say goodbye and I say hello."
corpus, word_to_id, id_to_word = preprocess(text)
contexts, target = create_contexts_target(corpus, window_size=1)
print(contexts)
print(target)

[1] 2019-06-12 17:46:16 (203ms) python3 (203ms)

[[0 2]
 [1 3]
 [2 4]
 [3 1]
 [4 5]
 [1 6]]
[1 2 3 4 1 5]

3.3.2 one-hot表現への変換

IvoryライブラリではSoftmaxCrossEntropyレイヤはラベル表現を入力にとるので、コンテキストのみone-hot表現へ変換します。

from ivory.common.util import convert_one_hot

vocab_size = len(word_to_id)
contexts = convert_one_hot(contexts, vocab_size)
print(contexts.shape)
print(target.shape)

[2] 2019-06-12 17:46:16 (6.00ms) python3 (209ms)

(6, 2, 7)
(6,)