LSTM Recurrent Neural Networks for Short Text and Sentiment Classication文章阅读笔记

本文介绍了文本预处理步骤,包括删除符号、统一数字表示及创建词汇表,并使用one-hot编码进行词向量化。文中还对比了LSTM、BLSTM与GRU三种序列模型,在不同场景下的适用性和优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、文本预处理

1、删除所有符号,例如:%

2、所有数字用例如'SPEC——NUM'来代替

3、为数据集创建词典


二、词向量化

采用one-hot来表示单词


三、词典大小

不需太大,原文中的词典大小是9000


四、数据集样本数不平衡

原文中Bad和Neutal类的样本数远远少于Good分类,因此将Bad和Neutral的样本数扩大了一倍

四、LSTM、BLSTM、GRU对比

 it has been shown in the experiments that GRU is well suited in simple cases where

we want to obtain fast results. Advantages of GRU are faster training as they

require less number of epochs to obtain the nal result. Results achived by LSTM

and BLSTM networks are more precise, but it is necessary to spend more time

for the training process. GRU does not work with very short phrases such as in

the case of third dataset. 

即GRU训练时间更短,但是只适合简单情况下的,不适合非常短的文本

LSTM、BLSTM更精确,但是训练时间更长。





Deep Recurrent Neural Networks(深度循环神经网络)是一种适用于序列数据处理的深度神经网络模型,常用于语音识别、自然语言处理等任务。如果你想使用Deep Recurrent Neural Networks模型,可以使用深度学习框架来实现,比如TensorFlow、PyTorch等。 以下是使用TensorFlow实现Deep Recurrent Neural Networks模型的示例代码,供你参考: ```python import tensorflow as tf # 定义模型参数 input_dim = 10 # 输入维度 hidden_dim = 64 # 隐层维度 output_dim = 2 # 输出维度 num_layers = 3 # RNN层数 # 定义输入张量 inputs = tf.placeholder(tf.float32, shape=[None, None, input_dim]) # 定义RNN单元 cell = tf.nn.rnn_cell.BasicLSTMCell(hidden_dim) # 堆叠多层RNN stacked_rnn = tf.nn.rnn_cell.MultiRNNCell([cell] * num_layers) # 初始化RNN状态 initial_state = stacked_rnn.zero_state(tf.shape(inputs)[0], tf.float32) # 计算RNN输出 output, state = tf.nn.dynamic_rnn(stacked_rnn, inputs, initial_state=initial_state) # 定义输出层 weights = tf.Variable(tf.random_normal([hidden_dim, output_dim])) bias = tf.Variable(tf.random_normal([output_dim])) logits = tf.matmul(output[:, -1, :], weights) + bias # 定义损失函数和优化器 labels = tf.placeholder(tf.int32, shape=[None]) loss = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(labels=labels, logits=logits)) optimizer = tf.train.AdamOptimizer().minimize(loss) # 训练模型 with tf.Session() as sess: sess.run(tf.global_variables_initializer()) for i in range(num_epochs): # 获取批次数据 batch_inputs, batch_labels = get_batch_data(batch_size) # 训练模型 _, loss_val = sess.run([optimizer, loss], feed_dict={inputs: batch_inputs, labels: batch_labels}) print('Epoch %d, loss: %f' % (i, loss_val)) ``` 在这个示例代码中,我们使用了TensorFlow来实现一个三层的LSTM模型用于序列分类任务。具体来说,我们定义了模型的输入张量、RNN单元、RNN层数、输出层、损失函数和优化器,并在训练过程中动态输入数据进行模型的训练。 注意,这只是一个示例代码,实际的Deep Recurrent Neural Networks模型实现可能会更加复杂和庞大,需要根据具体的任务和数据进行调整和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值