版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
情感分析引言/基于注意力机制/基于图神经网络/预训练情感分析模型2026/6/11第五章情感分析引言常见子任务(情感分类、方面抽取、观点摘要)基于注意力机制的情绪分析通用注意力机制框架、注意力机制分类基于图神经网络的情绪分析图神经网络概念、图神经网络分类预训练情绪分析模型SentiWSP模型、SpanASTE模型、DualGCN模型案例:基于MindSpore实现的情绪分析2026/6/125.1引言情感分析:也称观点挖掘(opinionmining),旨在分析文本中表达的观点、情感等文档级别情感分析句子级别情感分析方面级别情感分析:捕获文本中对于某个确切的观点评价对象的情感“这家餐馆的服务很好,但环境有些差”餐馆的服务:正向情感餐馆的环境:负向情感2026/6/135.1引言方面级别情感分析:目标实体:如商品、服务、主题、人、事件等方面(aspect):目标实体的一个具体属性,如商品的质量、人的人品情绪:目标实体当前方面所包含的情感——如正向、中立、负向2026/6/145.1引言情感分析常见子任务:情感分类方面抽取观点摘要2026/6/155.1引言
2026/6/165.1引言
2026/6/175.1引言
2026/6/185.1引言情感分类:任务方法基于情感词典的无监督学习:情感词典包含情感词和情感短语的情感倾向性和情感强度。此外,还可结合情感加强词(“非常”,“很”等)、情感反转词(如,“但是”,“非”等)等。基本方式:将文本中的正面情感文本表述赋予正值,负面情感文本表述赋予负值,并考虑情感加强/反转词对于情感的影响,对文档中所有的情感表达的值进行求和。2026/6/195.1引言情感分类:任务方法基于监督学习的分类方法:传统机器学习:朴素贝叶斯、支持向量机等深度学习2026/6/1105.1引言方面抽取情感文本中通常存在一个或多个评价的对象或目标,方面抽取就是对给定的情感文本进行分析,抽取出其中涉及的情感对象“这家餐馆的服务很好,但环境有些差”
→餐馆的服务、环境2026/6/1115.1引言方面抽取传统机器学习方法:基于出现频率及词语属性的方法该类方法通常假设语料库中谈及某一对象时用的词语相同或类似,难以识别低频的方面词2026/6/1125.1引言方面抽取传统机器学习方法:基于句法关系的方法情感词和观点对象之间存在句法关系,表征两者之间的评价或修饰关系例如:“这家餐厅有着优越的地理位置”,情感词是“优越”,用于修饰方面词“地理位置”较依赖于句法解析结果的准确性,容易产生级联误差;且现在社交媒体等文本中,存在大量非正式文本,使得句法解析的正确性大大降低2026/6/1135.1引言方面抽取传统机器学习方法基于传统监督学习的方法:隐马尔可夫模型2026/6/1145.1引言
2026/6/1155.1引言观点摘要:情感信息挖掘结构化的关键任务,旨在对多个观点的结构化表示,以短文本形式输出2026/6/1165.1引言观点摘要子任务属性(方面)抽取:定位所有观点中的方面词,以及具有这些方面的句子情绪分类:对属性(方面)抽取中抽取的方面词进行情感极性预测观点生成:提取或生成非结构化文本中的重要观点摘要可视化:将提取到的结构化信息进行可视化2026/6/1175.1引言观点摘要有监督方法两阶段的方法:先抽取突出的观点子集,再基于抽取的观点子集进行摘要生成总结模型:抽取步骤容易导致信息损失,且不利于用户的定制化观点摘要生成。总结模型首先将所有输入评论压缩为稠密向量,直接用于摘要生成2026/6/1185.1引言观点摘要无监督方法知识驱动的弱监督框架:结合两个弱监督组件识别突出的观点,并从多评论中生成抽取式摘要,其中一个组件为在多任务目标下训练的方面提取器,另一个基于多实例学习进行情感预测个性化的观点摘要方案:使用户可以定制摘要的属性,如摘要长度,感兴趣的具体方面等2026/6/1195.2基于注意力机制的情绪分析注意力机制(Attentionmechanism)由于信息处理的能力限制,人类会有选择地关注一部分信息,而忽略其他信息。这种机制通常称为注意力机制注意力机制主要涉及两个方面:决定需要关注的信息的哪些部分,以及将有限的资源分配给重要的信息2026/6/1205.2基于注意力机制的情绪分析通用注意力机制框架2026/6/1215.2基于注意力机制的情绪分析
2026/6/1225.2基于注意力机制的情绪分析
2026/6/1235.2基于注意力机制的情绪分析注意力机制分类强注意力机制经典的注意力机制通常采用了软注意力的实现方式(通过注意力分布给不同的输入向量加权求和,从而将这些向量融合)相比之下,强注意力(HardAttention)则根据注意力分布从输入向量中选择一个作为输出2026/6/1245.2基于注意力机制的情绪分析注意力机制分类强注意力机制:两种输出选择方式选择分数最大的那一项对应的输入向量作为Attention机制的输出根据注意力分布进行随机采样,采样结果作为Attention机制的输出2026/6/1255.2基于注意力机制的情绪分析注意力机制分类强注意力机制:选择方式根据注意力分布从输入向量中选择一个作为输出会导致损失函数与注意力分布之间的函数关系不可导,从而无法使用反向传播算法来优化模型因此,通常需要使用强化学习算法进行训练,这种方法更加复杂且不稳定2026/6/1265.2基于注意力机制的情绪分析
2026/6/1275.2基于注意力机制的情绪分析
2026/6/1285.3基于图神经网络的情绪分析简介图:表示实体(顶点)的信息以及它们之间的连接关系(边)的数据结构。图的节点所包含的信息、边表达的信息、以及整个图表达的信息都可以用向量来表示2026/6/1295.3基于图神经网络的情绪分析图片:将每个像素点看成一个顶点,邻接的关系看成图中的边的,就可以用邻接矩阵来表示这个图片2026/6/1305.3基于图神经网络的情绪分析文本:将每个单词看成一个顶点,相邻的单词可以看成存在有向边连接2026/6/1315.3基于图神经网络的情绪分析其它:分子结构2026/6/1325.3基于图神经网络的情绪分析其它:人物关系2026/6/1335.3基于图神经网络的情绪分析简介图神经网络:在一个图结构中,每个节点都由自身的特征以及与其相连的节点特征来定义。图神经网络(GraphNeuralNetwork,GNN)是用于处理图结构数据的方法2026/6/1345.3基于图神经网络的情绪分析
2026/6/1355.3基于图神经网络的情绪分析
2026/6/1365.3基于图神经网络的情绪分析
2026/6/1375.3基于图神经网络的情绪分析
2026/6/1385.3基于图神经网络的情绪分析
2026/6/1395.4预训练情绪分析模型SentiWSP模型(Sentiment-AwareWordandSentenceLevelPre-training)从词级别学习更加丰富的情感信息在句子级别构造更加有效的预训练任务,提升模型对文本整体情感信息的学习2026/6/1405.4预训练情绪分析模型SentiWSP模型2026/6/1415.4预训练情绪分析模型SentiWSP模型词级别预训练随机掩盖15%的单词,基于SentiWordNet对句子中出现的情感词进行标记,再继续对这些情感词经行掩盖生成器会对遮盖的词生成概率分布,模型将在这些概率分布中做采样进行替换,然后将替换之后的句子再输入到判别器,判断每一个词是否被替换了2026/6/1425.4预训练情绪分析模型SentiWSP模型句子级别预训练目的:学习更加高效的表征正例构造:对原始序列的情感词进行遮掩后形成query,而原始的序列即作为其正例负例构造:同一个batch内的非正例作为负例、基于近似最近邻居检索的困难负例挖掘2026/6/1435.4预训练情绪分析模型SpanASTE模型该模型面向情感三元组抽取(AspectSentimentTripletExtraction,ASTE)任务,希望输出方面项(目标项)、情感极性和意见项提出一种基于跨度的方法,从而更好地学习目标项和观点项之间的关系,同时,基于跨度的方法可以确保抽取出的结果有更好的情感一致性,且这种端到端的方法可以避免现有的Pipeline方法中的误差传播问。2026/6/1445.4预训练情绪分析模型SpanASTE模型该模型面向情感三元组抽取(AspectSentimentTripletExtraction,ASTE)任务,希望输出方面项(目标项)、情感极性和意见项2026/6/1455.4预训练情绪分析模型SpanASTE模型2026/6/1465.4预训练情绪分析模型SpanASTE模型模型主要由三个模块构成——句子编码模块(SentenceEncoding)、提及模块(MentionModule)和三元组模块(TripletModule)句子首先输入到句子编码模块,获得token级别的表示后,再从中得到每个枚举跨度的跨度级别表示,然后用方面项抽取和观点项抽取任务来监督双通道跨度修剪策略,得到修剪后的候选目标和候选观点,再对它们进行耦合,作为特征进行分类2026/6/1475.4预训练情绪分析模型DualGCN模型利用依赖树的图神经网络已被用于显式地建模方面和观点词之间的联系,但由于依赖解析结果具有不确定性,且一些数据集收集的在线评论的非正式表达和复杂性,都会影响这种方法的性能该模型利用双重图卷积网络(DualGCN),同时考虑句法知识和语义相关性,并设计了两个正则化器来增强性能2026/6/1485.4预训练情绪分析模型DualGCN模型这个例子展示了一个句子中包含两个方面项,且对应的情感极性时不同的2026/6/1495.4预训练情绪分析模型DualGCN模型2026/6/1505.4预训练情绪分析模型DualGCN模型模型主要分为四个部分——基于句法的GCN(SynGCN)、基于语义的GCN(SemGCN),双仿射模块和正则化器首先利用BiLSTM或BERT作为句子编码器获得隐藏的上下文表示,然后将句子的隐藏表示分别输入SynGCN和SemGCN模块,接着用双仿射模块进行有效的信息交流,最后通过池化和连接聚合得到最终的方面表示2026/6/1515.5案例:基于MindSpore实现的情绪分析本小节以IMDB影评情感分类为例来体验MindSpore在自然语言处理中情感分类任务上的应用参数配置模型搭建模型训练模型评估2026/6/1525.5案例:基于MindSpore实现的情绪分析2026/6/153#加载库、mindspore框架importargparsefrommindsporeimportcontextfromeasydictimportEasyDictasedict
#LSTM网络设置lstm_cfg=edict({
'num_classes':2,'learning_rate':0.1,'momentum':0.9,'num_epochs':10,
'batch_size':64,'embed_size':300,'num_hiddens':100,'num_layers':2,
'bidirectional':True,'save_checkpoint_steps':390,'keep_checkpoint_max':10})
cfg=lstm_cfg5.5案例:基于MindSpore实现的情绪分析2026/6/154#参数设置parser=argparse.ArgumentParser(description='MindSporeLSTMExample')parser.add_argument('--preprocess',type=str,default='false',choices=['true','false'])parser.add_argument('--aclimdb_path',type=str,default="./datasets/aclImdb")parser.add_argument('--glove_path',type=str,default="./datasets/glove")parser.add_argument('--preprocess_path',type=str,default="./preprocess")parser.add_argument('--ckpt_path',type=str,default="./models/ckpt/nlp_application")parser.add_argument('--pre_trained',type=str,default=None)parser.add_argument('--device_target',type=str,default="GPU",choices=['GPU','CPU'])args=parser.parse_args(['--device_target','GPU','--preprocess','true'])
#配置训练所需相关参数context.set_context(mode=context.GRAPH_MODE,save_graphs=False,device_target=args.device_target)5.5案例:基于MindSpore实现的情绪分析2026/6/155参数含义:preprocess:是否预处理数据集,默认为否aclimdb_path:数据集存放路径glove_path:GloVe文件存放路径preprocess_path:预处理数据集的结果文件夹ckpt_path:CheckPoint文件路径pre_trained:预加载CheckPoint文件device_target:指定GPU或CPU环境以下以LSTM网络为例,搭建模型5.5案例:基于MindSpore实现的情绪分析2026/6/156以下以LSTM网络为例,搭建模型#导入初始化网络所需模块frommindsporeimportnnimportmindspore.opsasopsimportnumpyasnpfrommindsporeimportTensor5.5案例:基于MindSpore实现的情绪分析2026/6/157classSentimentNet(nn.Cell):
def__init__(self,vocab_size,embed_size,num_hiddens,num_layers,bidirectional,num_classes,weight,batch_size):
super(SentimentNet,self).__init__()
#词嵌入
self.embedding=nn.Embedding(vocab_size,embed_size,embedding_table=weight)
self.embedding.embedding_table.requires_grad=False
self.trans=ops.Transpose()
self.perm=(1,0,2)
self.encoder=nn.LSTM(input_size=embed_size,hidden_size=num_hiddens,num_layers=num_layers,
has_bias=True,bidirectional=bidirectional,dropout=0.0)
self.concat=ops.Concat(1)
self.squeeze=ops.Squeeze(axis=0)
ifbidirectional:
self.decoder=nn.Dense(num_hiddens*4,num_classes)
else:
self.decoder=nn.Dense(num_hiddens*2,num_classes)5.5案例:基于MindSpore实现的情绪分析2026/6/158classSentimentNet(nn.Cell):
def__init__(self,vocab_size,embed_size,num_hiddens,num_layers,bidirectional,num_classes,weight,batch_size):
#(参考上页)
defconstruct(self,inputs):
#input:(64,500,300)
embeddings=self.embedding(inputs)
embeddings=self.trans(embeddings,self.perm)
output,_=self.encoder(embeddings)
#states[i]size(64,200)
->encoding.size(64,400)
encoding=self.concat((self.squeeze(output[0:1:1]),self.squeeze(output[499:500:1])))
outputs=self.decoder(encoding)
returnoutputs5.5案例:基于MindSpore实现的情绪分析2026/6/159embedding_table=np.loadtxt(os.path.join(args.preprocess_path,"weight.txt")).astype(np.float32)network=SentimentNet(vocab_size=embedding_table.shape[0],embed_size=cfg.embed_size,
num_hiddens=cfg.num_hiddens,num_layers=cfg.num_layers,
bidirectional=cfg.bidirectional,num_classes=cfg.num_classes,
weight=Tensor(embedding_table),batch_size=cfg.batch_size)
print(network.parameters_dict(recurse=True))在上面这段代码中,lstm_default_state函数用来初始化网络参数及网络状态;stack_lstm_default_state函数用来初始化小算子堆叠需要的初始化网络参数及网络状态;针对CPU场景,自定义单层LSTM小算子堆叠,实现了多层LSTM大算子功能;Cell方法,定义网络结构后,通过实例化SentimentNet,成功创建网络,最后输出了网络中加载的参数5.5案例:基于MindSpore实现的情绪分析2026/6/160以下代码在创建优化器和损失函数模型,并加载训练数据集(ds_train)并配置好CheckPoint生成信息后,使用model.train接口进行模型训练frommindsporeimportModelfrommindspore.train.callbackimportCheckpointConfig,ModelCheckpoint,TimeMonitor,LossMonitorfrommindspore.nnimportAccuracyfrommindsporeimportnn5.5案例:基于MindSpore实现的情绪分析2026/6/161os.system("rm-f{0}/*.ckpt{0}/*.meta".format(args.ckpt_path))loss=nn.SoftmaxCrossEntropyWithLogits(sparse=True,reduction='mean')opt=nn.Momentum(network.trainable_params(),cfg.learning_rate,cfg.momentum)model=Model(network,loss,opt,{'acc':Accuracy()})loss_cb=LossMonitor(per_print_times=78)print("==============StartingTraining==============")config_ck=CheckpointConfig(save_checkpoint_steps=cfg.save_checkpoint_steps,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中世纪大学自治权历史渊源-基于2023年博洛尼亚大学特许状文本分析
- 音乐可视化互动网页前端课程设计
- 项目四 任务3 传动轴和中间支承
- 高三“反思复盘力”赋能备考备课参考-2026届高三一轮复习冲刺阶段主题班会设计
- 2026年体育知识类活动策划方案
- 2026年幼儿园保护牙齿保健知识
- 初中七年级道德与法治“诚信为本 做正直少年”主题班会教案
- 高中一年级心理健康教学设计
- 靶向素养·智胜中考:2026年浙江省九年级科学备考参考与心育融合方略
- 师者·国运·新程-高中二年级德育“尊师·明道·共进”主题班会教学设计
- 2026年中国邮政集团面试与笔试全攻略
- 第10课 学会表达 课件(内嵌视频)2025-2026学年道德与法治三年级下册统编版
- 内蒙古自治区包头市2025-2026学年中考二模物理试题(含答案解析)
- 2026浙江广播电视集团社会招聘3人笔试模拟试题及答案解析
- 瑞幸咖啡入职在线测评题库
- 档案保密制度六防
- 企业近三年安全生产(施工)记录
- 假发行业营销方案
- 地源热泵打井协议书
- 口腔器械清洗消毒培训
- 2025年全国社区工作者招聘考试公共基础知识真题及答案
评论
0/150
提交评论