今回はkerasが提供しているロイターのニュースワイヤーデータセットに
ついて調べた内容をお話します。
データセットの概要
ロイターのニュースワイヤーデータセットとは、
ロイター通信社のニュースに感情のラベル付けをしたデータセットです。
各ニュースに肯定/否定の情報が付与されています。
kerasでは、各レビューは頻出単語のベクトルで変換してあるので、
モデルの学習をしやすくなってます。
データの内容
まず、以下のコードでデータを読み込みます。
今回は頻出頻度上位1000個の単語(num_words)を対象とし、
各文章の出現頻度上位20単語(maxlen)のベクトルをレビュー(文章)を表現します。
対象外(頻出頻度上位100個に入らない単語)の場合は2(oov_char)で表現します。
import keras from keras.datasets import reuters (x_train, y_train), (x_test, y_test) = reuters.load_data(path="reuters.npz", num_words=1000, skip_top=0, maxlen=20, test_split=0.2, seed=113, start_char=1, oov_char=2, index_from=3)
説明変数(X)
説明変数は、各レビューに含まれる頻出単語ベクトルになります。
x_trainの最初の要素を見てみます。
print(x_train[0]) # => [1, 2, 2, 8, 43, 10, 447, 5, 25, 207, 270, 5, 2, 111, 16, 369, 186, 90, 67, 7, 89, 5, 19, 102, 6, 19, 124, 15, 90, 67, 84, 22, 482, 26, 7, 48, 4, 49, 8, 864, 39, 209, 154, 6, 151, 6, 83, 11, 15, 22, 155, 11, 15, 7, 48, 9, 2, 2, 504, 6, 258, 6, 272, 11, 15, 22, 134, 44, 11, 15, 16, 8, 197, 2, 90, 67, 52, 29, 209, 30, 32, 132, 6, 109, 15, 17, 12]
各自然数は単語(単語インデックス)を表しています。
もし、全体頻出頻度100単語に含まれない単語の場合2という値を割り当てています。
これが、文章の特徴となっています。
単語インデックスに割り振られてる単語の調べ方
imdbのデータセットとは異なり、
各単語に割り振られているインデックス(単語インデックス)を確認できます。
以下のコードで単語インデックスの辞書を取得できます。
word_index = reuters.get_word_index(path="reuters_word_index.npz")
「station」に割り振られてるインデックスを確認してみます。
print(word_index["station"]) # => 2898
つまり、2898という数字は「station」を表しています。
目的変数(Y)
次に目的変数を見てみます。
目的変数は感情(肯定/否定)の2値をとります。
つまり、0か1となります。
先程の文章(x_train[0])の目的変数(y_train[0])は
print(y_train[0]) # => 0
コメント