随着互联网的快速发展,影评成为用户表达对电影观点的重要渠道。准确预测影评的情感极性(正面、负面或中立)对于电影推荐系统、舆情分析等应用具有重要意义。本文聚焦于一种结合深度学习模型——双向门控循环单元(Bi-GRU)与传统情感词典技术的联合优化策略,旨在提升影评情感极性预测的准确性。
Bi-GRU,即双向门控循环单元,是一种改进的循环神经网络(RNN)结构,通过引入门控机制解决了传统RNN的长期依赖问题。Bi-GRU同时处理正向和反向序列信息,增强了模型对上下文信息的捕捉能力。
# 示例Bi-GRU模型代码(简化版)
import torch
import torch.nn as nn
class BiGRU(nn.Module):
def __init__(self, input_dim, hidden_dim, num_layers, output_dim):
super(BiGRU, self).__init__()
self.gru = nn.GRU(input_dim, hidden_dim, num_layers, batch_first=True, bidirectional=True)
self.fc = nn.Linear(hidden_dim * 2, output_dim)
def forward(self, x):
out, _ = self.gru(x)
out = out[:, -1, :] # 取最后一个时间步的输出
out = self.fc(out)
return out
情感词典是包含大量情感词汇及其对应情感倾向(正面、负面)的词典。通过匹配影评中的词汇与情感词典,可以快速获取影评的初步情感倾向。
将Bi-GRU模型输出的隐状态向量与情感词典得分进行拼接,作为最终分类器的输入特征。这种方式结合了深度学习的自动特征提取能力和情感词典的先验知识。
在训练过程中,引入情感词典得分的加权损失项,使模型在优化传统交叉熵损失的同时,也尽可能符合情感词典给出的初步情感倾向。
# 示例损失函数调整代码(简化版)
def custom_loss(output, target, sentiment_score, alpha=0.5):
ce_loss = nn.CrossEntropyLoss()(output, target)
score_loss = nn.MSELoss()(output[:, 1] - output[:, 0], sentiment_score) # 假设二分类,1为正类得分
return alpha * ce_loss + (1 - alpha) * score_loss
通过网格搜索或随机搜索等方法,调整Bi-GRU模型的超参数(如隐藏层维度、层数)以及损失函数中情感词典得分的权重,以达到最佳性能。
在公开的影评数据集上进行实验,结果表明,基于Bi-GRU与情感词典联合优化策略的模型相较于单独的Bi-GRU模型,在情感极性预测准确率上有了显著提升。
本文提出的基于Bi-GRU与情感词典联合优化策略的影评情感极性预测方法,通过有效结合深度学习与情感词典技术,提升了预测精度。该方法不仅丰富了影评情感分析的手段,也为其他文本情感分析任务提供了新的思路。