keras.preprocessing.sequence.pad_sequences(sequences, maxlen=None,dtype='int32',padding='pre',truncating='pre', value=0.)
maxlen设置最大的序列长度,长于该长度的序列将会截短,短于该长度的序列将会填充
RNN网络容易出现反向传播过程中的梯度问题。主要原因是我们通常给RNN的参数为有限的序列。
为了实现的简便,keras只能接受长度相同的序列输入。因此如果目前序列长度参差不齐,这时需要使用pad_sequences()。该函数是将序列转化为经过填充以后的一个新序列。
举一个例子,是否使用对齐函数取决于如何切割本文,对于一个文本而言,如果是选择根据‘。’来分割句子,因此需要使用该函数保证每个分割的句子能够得到同等长度,但是更加聪明的做法是考虑将文本按照每一个字来分隔,保证切割的句子都是等长的句子,不要再使用该函数。
最后,输入RNN网络之前将词汇转化为分布式表示。
Reference:
What keras pad_sequence do?