一个原本的序列化数据为:
1 | I want to learning NLP |
Tokenize化
首先将原本我们可以认识的句子,进行向量化。由于这里只有一句话,所以向量化起来非常的简单,即:
1 | [1, 2, 3, 4, 5] |
1代表当前单词的位置。
具体使用模板:
1 | tokenizer = Tokenizer() |
- 这里
fit_on_texts
会按照词频来对字典进行排序 texts_to_sequences
是在构建好词典后,将输入进行向量化
一个实例:
1 | x = ['I want to learning NLP to go to the BAT', 'I must be a good boy'] |
结果x输出为:
1 | [[2, 3, 1, 4, 5, 1, 6, 1, 7, 8], [2, 9, 10, 11, 12, 13]] |
pad_sequences
在将句子转化成向量以后,我们还需要将所有的数据长度处理一致,这里用的就是pad_sequences
。
具体使用的模板是:
1 | text = pad_sequences(text, maxlen) |
接上面的一个实例是:
1 | x = pad_sequences(x, maxlen=7) |
此时x输出是:
1 | array([[ 4, 5, 1, 6, 1, 7, 8], |
和上面例子进行对比,我们发现,它是进行了补齐和删减前面位置的元素。
处理成one-hot
使用tokenizer
的方法texts_to_matrix
可以直接将一个原生的句子处理成一个one-hot。
一个例子:
1 | x = ['I want to learning NLP to go to the BAT', 'I must be a good boy'] |
得到的结果是:
1 | array([[0., 1., 1., 1., 1., 1., 1., 1., 1., 0., 0., 0., 0., 0.], |
每个1代表的是在词表中的位置