以下是一个使用卷积神经网络(CNN)进行情感分析的 Python 示例代码,使用 TensorFlow 和 Keras 库:
import tensorflow as tf
from tensorflow.keras.datasets import imdb
from tensorflow.keras.preprocessing import sequence
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Embedding, Conv1D, GlobalMaxPooling1D, Dense
# 加载 IMDB 情感分析数据集
max_features = 5000
maxlen = 500
(x_train, y_train), (x_test, y_test) = imdb.load_data(num_words=max_features)
# 填充序列,使其具有相同的长度
x_train = sequence.pad_sequences(x_train, maxlen=maxlen)
x_test = sequence.pad_sequences(x_test, maxlen=maxlen)
# 构建 CNN 模型
model = Sequential()
model.add(Embedding(max_features, 128, input_length=maxlen))
model.add(Conv1D(128, 5, activation='relu'))
model.add(GlobalMaxPooling1D())
model.add(Dense(1, activation='sigmoid'))
# 编译模型
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
# 训练模型
history = model.fit(x_train, y_train, epochs=10, batch_size=128, validation_split=0.2)
# 在测试集上评估模型
loss, accuracy = model.evaluate(x_test, y_test)
print('Test Loss:', loss)
print('Test Accuracy:', accuracy)
我们首先加载和预处理数据,然后构建一个包含嵌入层、卷积层、全局最大池化层和输出层的卷积神经网络模型。模型使用 adam
优化器和二元交叉熵损失函数进行编译,并进行训练和评估。