如何解决“ ValueError:设置具有序列的数组元素”?

时间:2019-07-18 20:38:06

标签: tensorflow machine-learning keras sentiment-analysis

我正在尝试从Twitter数据集中进行情感分析分类。首先,我已经打印了数据集中的所有推文,然后通过删除所有不必要的词对其进行了预处理。 然后,我像这样标记每条推文-

[[38, 4, 86, 10, 14869, 6, 10, 22, 4161, 71, 9356, 97, 332, 245, 97, 14870, 1301], [170, 8, 11409, 2355, 3, 33, 18, 424, 625, 59, 70, 18, 1651, 14871, 14872, 7, 14873, 22887, 14874], [76, 25, 4162]]

reviews_int的长度与combi ['tidy_tweet'](在csv文件中的整齐推文列表)相同。 接下来,我将reviews_int的数据分为训练和测试集

split_frac = 0.65018

split_num = int(len(combi['tidy_tweet']) * split_frac)

train_bow1 = reviews_int[:split_num] 
test_bow1 = reviews_int[split_num:] 
print(train_bow1.shape)
print(test_bow1.shape)
Output: (31962,)
(17197,)
X_train, X_test, y_train, y_test = train_test_split(train_bow1, train['label'], test_size=0.3, random_state=42)

我使用Tesorflow并制作了单词嵌入层和LSTM层。

classifier= Sequential()
classifier.add(Embedding(max_features, 100, mask_zero=True))
classifier.add(LSTM(200, dropout=0.3, recurrent_dropout=0.3, return_sequences=False))
classifier.add(Dense(1, activation='softmax'))
classifier.compile(loss = 'sparse_categorical_crossentropy', optimizer='adam',metrics = ['accuracy'])
classifier.summary()

但是当我尝试在数据集中实现这一点时,就会出现问题-

callback = [EarlyStopping(monitor='val_loss', patience=2),ModelCheckpoint(filepath='best_model.h5', monitor='val_loss', save_best_only=True)]
classifier.fit(X_train, y_train,batch_size=100,epochs=5,callbacks=callback ,validation_data=(X_test, y_test))
----> 2 classifier.fit(X_train, y_train,batch_size=100,epochs=5,callbacks=callback ,validation_data=(X_test, y_test))

 536 
    537     """
--> 538     return array(a, dtype, copy=False, order=order)
    539 
    540 

ValueError: setting an array element with a sequence.

你们可以帮助我解决这个问题吗?

0 个答案:

没有答案