LSTM进行情感分析python代码
时间: 2024-10-05 14:02:34 浏览: 39
LSTM(Long Short-Term Memory)是一种递归神经网络(RNN),常用于处理序列数据,如文本情感分析。在Python中,我们可以使用深度学习库Keras来构建一个基本的情感分析模型。以下是使用Keras构建简单LSTM情感分析模型的一个示例:
```python
# 导入所需的库
from keras.preprocessing.text import Tokenizer
from keras.preprocessing.sequence import pad_sequences
from keras.models import Sequential
from keras.layers import Dense, Embedding, LSTM
# 假设我们有一个包含正面和负面评论的数据集
data = ['正面评论1', '正面评论2', '负面评论1', '负面评论2', ...]
labels = [1, 1, 0, 0, ...] # 1代表正面,0代表负面
# 文本预处理
tokenizer = Tokenizer(num_words=10000) # 设置词汇表大小
tokenizer.fit_on_texts(data)
sequences = tokenizer.texts_to_sequences(data)
# 序列填充到相同的长度
max_length = max(len(seq) for seq in sequences)
padded_sequences = pad_sequences(sequences, maxlen=max_length)
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(padded_sequences, labels, test_size=0.2)
# 构建模型
model = Sequential()
model.add(Embedding(10000, 16, input_length=max_length)) # 嵌入层
model.add(LSTM(32, return_sequences=True)) # 长短期记忆层
model.add(LSTM(32)) # 再次使用LSTM,通常会去掉return_sequences
model.add(Dense(1, activation='sigmoid')) # 输出层,sigmoid适合二分类任务
# 编译模型
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# 训练模型
model.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=5)
# 测试模型
_, accuracy = model.evaluate(X_test, y_test)
print(f"模型准确率: {accuracy * 100:.2f}%")
阅读全文