pad_sequences

keras.preprocessing.sequence.pad_sequences(sequences, maxlen=None, dtype='int32',
                                           padding='pre', truncating='pre', value=0.)

num_samples シーケンスから構成されるリスト(スカラのリスト)をshapeが(num_samples, num_timesteps)の2次元のNumpy 配列に変換します.num_timestepsmaxlen引数が与えられれば,maxlenか最大のシーケンス長になります. num_timestepsより短いシーケンスは,valueでパディングされます. num_timestepsより長いシーケンスは,指定された長さで切り捨てられます. パディングと切り捨ての位置はそれぞれpaddingtruncatingによって決められます.

  • 戻り値: shapeがnumb_samples, num_timesteps)の2次元のNumpy 配列.

  • 引数:

    • sequences: 整数または浮動小数点数を含むリストのリスト.
    • maxlen: Noneまたは整数.シーケンスの最大長.この値より長いシーケンスは切り捨てられ,短いシーケンスは0でパディングされます.
    • dtype: 戻り値のNumpyのdatatype.
    • padding: 'pre'まはた'post'.各シーケンスの前後どちらを埋めるか.
    • truncating: 'pre'まはた'post'.maxlenより長いシーケンスの前後どちらを切り捨てるか.
    • value: 浮動小数点数.パディングする値.

skipgrams

keras.preprocessing.sequence.skipgrams(sequence, vocabulary_size,
                                       window_size=4, negative_samples=1., shuffle=True,
                                       categorical=False, sampling_table=None)

単語インデックスのシーケンス(整数のリスト)を以下の2つの形式に変換します:

  • (単語, 同じ文脈で出現する単語), 1のラベル (正例).
  • (単語, 語彙中のランダムな単語), 0のラベル (負例).

詳細はMikolovらの論文を参照してください: Efficient Estimation of Word Representations in Vector Space

  • 戻り値: (couples, labels)のタプル.

    • couplesは2つの整数リスト [word_index, other_word_index] から構成されるリストです.
    • labelsは0と1からなるリストです.1はother_word_indexword_indexと同じ文脈で存在すること意味し,0はother_word_indexがランダムであることを意味します.
    • categoricalがTrueの場合,ラベルはカテゴリカルになります.つまり,1は[0, 1]になり,0は[1, 0]になります.
  • 引数:

    • sequence: インデックスのリスト.sampling_tableを使う場合,単語インデックスはデータセット中のそのランク(1始まり)になります.
    • vocabulary_size: 整数.
    • window_size: 整数.positive couple中の2つの単語間の窓幅.
    • negative_samples: 0以上の浮動小数点数.0はネガティブサンプル数が0になります.1はネガティブサンプル数がポジティブサンプルと同じ数になります.
    • shuffle: 真理値.サンプルをシャッフルするかどうか.
    • categorical: 真理値.戻り値のラベルをカテゴリカルにするかどうか.
    • sampling_table: shapeが(vocabulary_size,)のNumpy 配列.sampling_table[i]はインデックスiを持つ単語(データセット中でi番目に頻出する単語を想定します)のサンプリング確率です.

make_sampling_table

keras.preprocessing.sequence.make_sampling_table(size, sampling_factor=1e-5)

skipgramssampling_table引数を生成するために利用します.sampling_table[i]はデータセット中でi番目に頻出する単語をサンプリングする確率です(バランスを保つために,頻出語はこれより低い頻度でサンプリングされます).

  • 戻り値: shapeが(size,)のNumpy 配列.

  • 引数:

    • size: 語彙数.
    • sampling_factor: この値が小さければ小さいほど,頻出語のサンプリング頻度が低くなります.1が与えられたとき,サブサンプリングは行われません(全てのサンプリング確率が1になります).