rnn情感分析代码
时间: 2023-06-21 22:22:02 浏览: 94
以下是一个使用Python和Keras实现RNN情感分析的示例代码:
```python
import numpy as np
from keras.models import Sequential
from keras.layers import Dense, LSTM, Embedding
from keras.preprocessing.text import Tokenizer
from keras.preprocessing.sequence import pad_sequences
# 加载数据集
data = open('data.txt').read()
labels, texts = [], []
for line in data.split("\n"):
parts = line.split("\t")
if len(parts) == 2:
labels.append(int(parts[0]))
texts.append(parts[1])
# 对文本进行预处理
tokenizer = Tokenizer(num_words=2000, lower=True)
tokenizer.fit_on_texts(texts)
sequences = tokenizer.texts_to_sequences(texts)
word_index = tokenizer.word_index
max_length = 100
data = pad_sequences(sequences, maxlen=max_length)
# 划分训练集和测试集
training_size = int(len(data) * 0.8)
x_train = np.array(data[:training_size])
x_test = np.array(data[training_size:])
y_train = np.array(labels[:training_size])
y_test = np.array(labels[training_size:])
# 构建模型
model = Sequential()
model.add(Embedding(2000, 128, input_length=max_length))
model.add(LSTM(128))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# 训练模型
model.fit(x_train, y_train, validation_data=(x_test, y_test), epochs=5, batch_size=64)
# 评估模型
scores = model.evaluate(x_test, y_test, verbose=0)
print("Accuracy: %.2f%%" % (scores[1]*100))
```
该代码首先加载数据集,然后使用Keras的Tokenizer类对文本进行预处理,将文本转换为数字序列。接下来,将数据集分为训练集和测试集,并构建一个包含嵌入层和LSTM层的RNN模型。最后,使用模型对训练集进行拟合,并评估模型在测试集上的准确性。
阅读全文