给出Python代码搭建LSTM网络处理本地已保存的新闻文本数据,并且给出相应的注释,代码完整,要求有常见的评价指标
时间: 2024-02-28 08:53:54 浏览: 119
以下是搭建LSTM网络处理本地已保存的新闻文本数据的Python代码,并附有注释:
```python
# 导入需要的库
import numpy as np
import pandas as pd
import tensorflow as tf
from keras.preprocessing.text import Tokenizer
from keras.preprocessing.sequence import pad_sequences
from keras.models import Sequential
from keras.layers import Embedding, LSTM, Dense, Dropout
from sklearn.metrics import classification_report, confusion_matrix
# 读取本地已保存的新闻数据
news_df = pd.read_csv('news.csv')
# 对新闻文本进行分词处理
tokenizer = Tokenizer(num_words=5000, split=' ')
tokenizer.fit_on_texts(news_df['text'].values)
X = tokenizer.texts_to_sequences(news_df['text'].values)
X = pad_sequences(X)
# 构建LSTM模型
model = Sequential()
model.add(Embedding(5000, 128, input_length=X.shape[1]))
model.add(LSTM(128, dropout=0.2, recurrent_dropout=0.2))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# 训练模型
model.fit(X, news_df['label'].values, batch_size=32, epochs=10, validation_split=0.2)
# 对模型进行评估
y_pred = model.predict_classes(X)
print('Confusion Matrix:')
print(confusion_matrix(news_df['label'].values, y_pred))
print('Classification Report:')
print(classification_report(news_df['label'].values, y_pred))
```
在代码中,我们采用了sklearn库中的classification_report和confusion_matrix函数来进行模型评估。其中,confusion_matrix函数可以计算混淆矩阵,classification_report函数可以得到模型的精确率、召回率、F1-score等评价指标。这样做可以更全面地评估模型的表现。
需要注意的是,这里的评估结果是在训练集上计算得到的,如果想要更准确的评估结果,可以在训练集和测试集上分别进行评估。
阅读全文