我已经审查了该特定主题的主题,但是没有一种解决方案适用于我的情况,请为此提供帮助。我正在尝试准备使用神经语言模型进行训练的数据。我的数据已经过预处理并存储在文本文件中。示例数据如下:[“ restaurant”,“ paris”,“ district”,“ gunman”,“ hold”,“人质” ...],并且根据数组shape属性,数组形状为(10848135,) 。但是,当我尝试使用语句X, y = sequences[:,:-1], sequences[:,-1]
代码如下:
def encode_words(self, dataset):
data = dataset.split('\n')
tokenizer = Tokenizer()
tokenizer.fit_on_texts(dataset)
sequences = tokenizer.texts_to_sequences(dataset)
vocab_size = len(tokenizer.word_index) + 1
sequences = array(sequences)
X, y = sequences[:,:-1], sequences[:,-1]
y = to_categorical(y, num_classes=vocab_size)
seq_length = X.shape[1]
return X, y, vocab_size, seq_length, tokenizer
我知道错误是什么,但不知道如何解决。请帮助我,以使代码正常工作。以下是完整的错误消息:
回溯(最近通话最近一次):
File "/home/asifa/anaconda3/deep_learning_project/processor.py", line 15, in <module>
X,y,vocab_size,seq_length,tokenizer = emb.encode_words(seq_data)
File "/home/asifa/anaconda3/deep_learning_project/WordEmbedding.py", line 67, in encode_words
X, y = sequences[:,:-1], sequences[:,-1]
IndexError: too many indices for array
答案 0 :(得分:0)
您具有一维数组,并尝试在二维中切片。这就是为什么您会收到此错误。
您的数组形状为(10848135,),这意味着您只有1个维度。如果期望从需要提取y
数组的地方获取第二维,则需要检查文件,因为它具有1d数组。因此,您不能像这样访问。
答案 1 :(得分:0)
您拥有的数组是1D,并且您正在尝试以2D形式访问它。 如果您期望2D,请检查为什么首先是1D。