给我一个用lstm实现文本分类的案例的代码
时间: 2023-04-04 15:04:41 浏览: 78
以下是一个使用 LSTM 实现文本分类的 Python 代码示例:
```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
# 定义文本数据和标签
texts = ['这是一篇正面的文章', '这是一篇负面的文章', '这是一篇中性的文章']
labels = [1, 0, 2]
# 将文本转换为序列
tokenizer = Tokenizer(num_words=1000)
tokenizer.fit_on_texts(texts)
sequences = tokenizer.texts_to_sequences(texts)
# 对序列进行填充
max_len = max([len(x) for x in sequences])
data = pad_sequences(sequences, maxlen=max_len)
# 将标签转换为 one-hot 编码
labels = np.asarray(labels)
one_hot_labels = np.zeros((len(labels), 3))
for i, label in enumerate(labels):
one_hot_labels[i, label] = 1
# 定义 LSTM 模型
model = Sequential()
model.add(Embedding(1000, 32))
model.add(LSTM(32))
model.add(Dense(3, activation='softmax'))
model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['acc'])
# 训练模型
model.fit(data, one_hot_labels, epochs=10, batch_size=32)
# 使用模型进行预测
test_text = ['这是一篇中性的文章']
test_sequence = tokenizer.texts_to_sequences(test_text)
test_data = pad_sequences(test_sequence, maxlen=max_len)
predictions = model.predict(test_data)
print(predictions)
```
这个代码示例使用 LSTM 模型对文本进行分类,其中包括文本预处理、模型定义、模型训练和预测等步骤。