相关疑难解决方法(0)

我们应该如何使用pad_sequences填充keras中的文本序列?

我使用从网络教程中获得的知识和我自己的直觉,编写了一个序列来编码keras中的学习LSTM.我将示例文本转换为序列,然后使用pad_sequencekeras中的函数进行填充.

from keras.preprocessing.text import Tokenizer,base_filter
from keras.preprocessing.sequence import pad_sequences

def shift(seq, n):
    n = n % len(seq)
    return seq[n:] + seq[:n]

txt="abcdefghijklmn"*100

tk = Tokenizer(nb_words=2000, filters=base_filter(), lower=True, split=" ")
tk.fit_on_texts(txt)
x = tk.texts_to_sequences(txt)
#shifing to left
y = shift(x,1)

#padding sequence
max_len = 100
max_features=len(tk.word_counts)
X = pad_sequences(x, maxlen=max_len)
Y = pad_sequences(y, maxlen=max_len)
Run Code Online (Sandbox Code Playgroud)

仔细检查后,我发现我的填充序列看起来像这样

>>> X[0:6]
array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
Run Code Online (Sandbox Code Playgroud)

python neural-network lstm keras sequence-to-sequence

8
推荐指数
2
解决办法
8247
查看次数