公众号:数据挖掘与机器学习笔记
使用CNN-LSTM进行情感分类,这里是一个二分类模型。整体上分为以下几个步骤:
- 环境及参数设置
- 数据预处理
- 模型网络结构搭建及训练
- 模型使用
1. 环境及参数设置
环境主要指需要哪些包,参数设置包括Embedding、CNN、LSTM网络层的参数和一些基本参数设置。
from tensorflow.keras.preprocessing import sequence
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense,Dropout,Activation,Embedding,LSTM,Conv1D,MaxPooling1D
from tensorflow.keras.datasets import imdb
import re
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
#embedding 参数
maxlen=100 #最大样本长度,不足进行Padding,超过进行截取
embedding_size=200 #词向量维度
#卷积参数
kernel_size=5
filters=128
pool_size=4
#LSTM参数
lstm_output_size=100 #LSTM层的输出维度
#训练参数
batch_size=128
epochs=20
2. 数据预处理及训练数据准备
2.1 数据概览
这里使用的情感分类数据主要是一些购物、酒店住宿等评论。使用Excel的格式提供,每一行表示一个样本。具体形式、内容如下图:


2.2 数据预处理
这里仅做了比较简单的文本处理:只保留中文字符,去掉所有非中文字符。另外,没有进行分词,使用字符级的模型进行训练。
def textToChars(filePath):
"""
读取文本文件并进行处理
:param filePath:文件路径
:return:
"""
lines = []
df=pd.read_excel(filePath,header=None)
df.columns=['content']
for index, row in df.iterrows():
row=row['content']
row = re.sub(&#

最低0.47元/天 解锁文章
2293

被折叠的 条评论
为什么被折叠?



