尝试对数组进行切片会导致“数组索引过多”。我可以填充阵列来解决此问题吗?

我已经看到许多有关此特定错误的问题。我相信我的问题与众不同,足以保证自己的职位。

我的目标:我正在构建一个生成新闻头条的RNN。它将根据前面的单词来预测下一个单词。这段代码来自example,我正在尝试对其进行调整以适合我的情况。我正在尝试将数组切成Xy

问题: 我知道出现此错误是因为该数组好像是一个2d数组一样被索引了,但实际上是一个1d数组。在将sequences转换为数组之前,它是一个列表列表,但并非所有嵌套列表的长度都相同,因此numPy会将其转换为1d数组。

我的问题:是否有简单或简洁的方式填充sequences,以便所有列表的长度都相同?我可以使用空格在较短的标题中保持相同的含义吗?为什么我需要将列表列表全部更改为数组?如我之前所说,这是一个示例,我试图了解他们的工作及其原因。

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Pretreat Data Section
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
# integer encode sequences of words
# create the tokenizer 
t = Tokenizer() 
# fit the tokenizer on the headlines 
t.fit_on_texts(headlines)
sequences = t.texts_to_sequences(headlines)

# vocabulary size
vocab_size = len(t.word_index) + 1

#separate into input and output
sequences = np.array(sequences)
X,y = sequences[:,:-1],sequences[:,-1]     # fix this
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-87-eb7aab0c3a22> in <module>
     18 #separate into input and output
     19 sequences = np.array(sequences)
---> 20 X,-1]     # fix this
     21 y = to_categorical(y,num_classes=vocab_size)
     22 seq_length = X.shape[1]

IndexError: too many indices for array
wq1234019 回答:尝试对数组进行切片会导致“数组索引过多”。我可以填充阵列来解决此问题吗?

问题在于,本教程在一页上没有几个部分,每个部分都有自己的"Complete Example"

第一个"Complete Example"republic_clean.txt中读取文本,清除文本并将其保存在republic_sequences.txt中-它创建的单词数相同。

第二"Complete Example"republic_sequences.txt中读取文本并将其与

一起使用
sequences = np.array(sequences)
X,y = sequences[:,:-1],sequences[:,-1]

因为第一部分用相同数量的单词创建了序列,所以此代码正常工作。

您似乎跳过了第一部分。您必须回到第一部分,以学习如何清除文本以及如何创建可以在第二部分中使用的正确文件。


编辑:如果您无法使用相同数量的单词来制作序列,则可以在较短的序列中添加空格。代码可以工作,但是我不知道它是否可以创建更好的模型。

sequences = [['a'],['b','c'],['d','e','f']]

max_len = max(map(len,sequences))

sequences = [x + [""]*(max_len-len(x)) for x in sequences]

print(sequences)

结果

[['a','',''],'c','f']]
本文链接:https://www.f2er.com/2997044.html

大家都在问