スポンサーリンク
kerasのTokenizerでリストをndarrayで表現(ベクトル化)
参考:kerasのTokenizerでテキスト(文字列)リストをベクトル化
下記のようにリストを定義します。
listNum = [[1, 2, 3], [2, 3, 4, 5], [3, 4, 7]]
Tokenizerをimportして、
from keras.preprocessing.text import Tokenizer
sequences_to_matrix()で、リストをndarrayで表現します。
tokenizer = Tokenizer(num_words=10) tokenNum = tokenizer.sequences_to_matrix(listNum, mode='binary')
tokenNumは下記のようなndarrayになります。
[[0. 1. 1. 1. 0. 0. 0. 0. 0. 0.] [0. 0. 1. 1. 1. 1. 0. 0. 0. 0.] [0. 0. 0. 1. 1. 0. 0. 1. 0. 0.]]
例えば、1行目の[[0. 1. 1. 1. 0. 0. 0. 0. 0. 0.]を見てみると、
[1, 2, 3]は、1と2と3が使われているので、1列目と2列目と3列目が、1となっています。
mode='binary'を指定しているので0 or 1 で表現されますね。
スポンサーリンク
サンプルコード
下記がサンプルコードになります。
$ cat sample2.py #!/usr/bin/env python3 # coding: UTF-8 from keras.preprocessing.text import Tokenizer listNum = [[1, 2, 3], [2, 3, 4, 5], [3, 4, 7]] tokenizer = Tokenizer(num_words=10) tokenNum = tokenizer.sequences_to_matrix(listNum, mode='binary') print(tokenNum) print(type(tokenNum))
下記が実行結果になります。
$ ./sample2.py Using TensorFlow backend. [[0. 1. 1. 1. 0. 0. 0. 0. 0. 0.] [0. 0. 1. 1. 1. 1. 0. 0. 0. 0.] [0. 0. 0. 1. 1. 0. 0. 1. 0. 0.]] <class 'numpy.ndarray'>
スポンサーリンク