情感分析是自然语言处理(NLP)中的一个重要应用,它可以帮助我们理解文本数据中的情感倾向。在这个教程中,我们将使用 Keras 来构建一个简单的情感分析模型。
所需库
在开始之前,请确保你已经安装了以下库:
- TensorFlow
- Keras
- NLTK
- Pandas
数据集
我们将使用 IMDB 数据集,这是一个包含 50,000 条电影评论的数据集,其中每条评论都被标记为正面或负面。
构建模型
以下是构建情感分析模型的步骤:
- 数据预处理:将文本数据转换为数字表示。
- 构建模型:使用 Keras 构建一个简单的神经网络。
- 训练模型:使用训练数据训练模型。
- 评估模型:使用测试数据评估模型性能。
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Embedding, LSTM, Dense
# 数据预处理
tokenizer = Tokenizer(num_words=10000)
tokenizer.fit_on_texts(data['text'])
X = tokenizer.texts_to_sequences(data['text'])
X = pad_sequences(X, maxlen=100)
# 构建模型
model = Sequential()
model.add(Embedding(10000, 32, input_length=100))
model.add(LSTM(64, return_sequences=True))
model.add(LSTM(64))
model.add(Dense(1, activation='sigmoid'))
# 编译模型
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# 训练模型
model.fit(X, data['label'], epochs=10, batch_size=32, validation_split=0.2)
# 评估模型
loss, accuracy = model.evaluate(X_test, y_test)
print(f'Accuracy: {accuracy*100:.2f}%')
预测
使用训练好的模型进行预测:
import numpy as np
# 预测
text = "This movie is amazing!"
sequence = tokenizer.texts_to_sequences([text])
sequence = pad_sequences(sequence, maxlen=100)
prediction = model.predict(sequence)
print("Positive" if prediction > 0.5 else "Negative")
扩展阅读
想了解更多关于 Keras 和情感分析的知识?请阅读以下教程:
Sentiment Analysis