我正在尝试从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.
你们可以帮助我解决这个问题吗?