user_input = input().split()
user_data = [[]]
# X_test_encoded = tokenizer.texts_to_sequences(X_test)
# X_test_padded = pad_sequences(X_test_encoded, maxlen = max_len)
if (model.predict(X_test_padded).all() > 0.5):
print(f"[{user_input}] is spam")
else:
print(f"[{user_input}] is non-spam")from tensorflow.keras.layers import SimpleRNN, Embedding, Dense
from tensorflow.keras.models import Sequential
embedding_dim = 32
hidden_units = 32
model = Sequential()
model.add(Embedding(vocab_size, embedding_dim))
model.add(SimpleRNN(hidden_units))
model.add(Dense(1, activation='sigmoid'))
model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['acc'])
history = model.fit(X_train_padded, y_train, epochs=4, batch_size=64, validation_split=0.2)
X_test_encoded = tokenizer.texts_to_sequences(X_test)
X_test_padded = pad_sequences(X_test_encoded, maxlen = max_len)
print("\n 테스트 정확도: %.4f" % (model.evaluate(X_test_padded, y_test)[1]))
epochs = range(1, len(history.history['acc']) + 1)
plt.plot(epochs, history.history['loss'])
plt.plot(epochs, history.history['val_loss'])
plt.title('model loss')
plt.ylabel('loss')
plt.xlabel('epoch')
plt.legend(['train', 'val'], loc='upper left')
plt.show()这是确定输入的电子邮件是垃圾邮件还是普通电子邮件的测试代码。但是无论我在这里保留了多少文本,都被认为是垃圾邮件,有什么解决办法吗?
发布于 2022-11-29 04:15:23
我根据电影评论数据集(正或负)训练了一个类似的模型。
model.predict(X_test_padded).all() > 0.5上述输出将始终为True,因此if循环将一直执行。
相反,使用
model.predict(X_test_padded) > 0.5有关更多细节,请参阅此要旨。谢谢。
https://stackoverflow.com/questions/74350119
复制相似问题