具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非目标句子清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语 “如果”/“若” 可以被解释成为 “在……时” 或“当……时” 或 “响应于确定”。
实施例一:
请参阅图1,图1为本发明实施例提供的一种情感检测方法的流程图,可以应用在电子设备中,包括如下步骤:
S101:获取携带有属性词的目标语句。
本发明实施例中,首先要获取一个目标语句,比如“我非常享受这旅程”,其中,所述目标语句携带有属性词,所述属性词是指所述目标语句中评价的对象单词,比如“我非常享受这旅程”中的“旅程”一词就是属性词。
S102:使用句法分析工具获取所述目标语句对应的句法树。
如图2所示,图2是本发明实施例提供的句法树的示例图,其中,所述句法树可以用来表示语句的语法结构或语句中单词与单词之间的依存关系。
其中,所述句法树可以通过句法分析工具直接获取,所述句法分析工具可以是SuPar,SuPar 是一个以Biaffine Parser为基本的架构的Python句法分析工具,提供了一系列的state-of-the-art的神经句法分析解析器的实现,上述解析器对应的预训练模型,可以直接加载来解析依存句法树或者成分句法树。
S103:根据所述句法树,生成所述目标语句对应的句法距离矩阵,其中,所述句法距离矩阵表示所述目标语句的不同单词之间在所述句法树上的距离。
其中,所述句法距离矩阵可以用来表示所述目标语句中任意两个单词之间的句法距离,句法距离可以是两个单词在所述句法树上的距离。
如图3所示,图3是本发明实施例提供的句法距离矩阵的示例图,所述句法距离矩阵可以根据所述句法树上不同单词之间的句法距离来获得,比如语句“我非常享受这旅程,结合图2,“享受“和”非常“在句法树上直接相连,路径长度为1,因此,”享受“和”非常“之间的句法距离为1;”我“和”非常“在句法树不直接相连,而是通过”我-享受-非常“这个路径间接相连,路径长度为2,”我“和”非常“的句法距离为2;”我“和”这“通过”我-享受-旅程-这“这个路径间接相连,路径长度为3,”我“和”这“的句法距离为3。
S104:确定所述目标语句的语句编码向量。
可选的,所述确定所述目标语句的语句编码向量,包括如下步骤:
S1041:对所述目标语句进行分词处理,获得多个单词;
S1042:针对每个所述单词,根据预先训练好的词向量模型确定所述单词的词向量、词性向量以及位置向量;
S1043:对所述词向量、所述词性向量以及所述位置向量进行拼接,获得每个所述单词的完整嵌入向量;
S1044:使用双向长短期记忆网络对所述完整嵌入表示进行编码,获得所述目标语句的语句编码向量。
其中,可以使用分词词典对所述目标语句进行分词或使用分词工具等方式对所述目标语句进行分词,本发明对此不作限定。
其中,所述词向量模型可以开源的Glove词向量模型。
在该可选的实施方式中,可以令
为Glove词嵌入矩阵,其中,
表
示词嵌入向量的维度大小,
表示词汇表的单词数。将所述目标语句的每个单词
映射到其对应的词嵌入向量即所述词向量,所述词嵌入向量是Glove词嵌入矩
阵中的一列,通过Glove词嵌入矩阵可以确定每个单词在Glove词嵌入矩阵中的词向量
,词性向量
以及位置向量
,其中,
和表示词
性向量维度大小,
表示位置向量维度大小。对所述词向量、所述词性向量以及所述位置
向量进行拼接可以得到词的完整嵌入向量
,然后可以使用双向长
短期记忆网络(Bi-directional Long Short-term Memory Network, Bi-LSTM) 对词的完
整嵌入向量进行编码,得到所述目标语句的语句编码向量。
S105:将所述句法距离矩阵以及所述语句编码向量输入至预先训练好的多头注意力引导模型中,获得邻接矩阵,其中,所述邻接矩阵表示所述目标语句中的不同单词之间的关联性。
可选的,所述多头注意力引导模型包括多头注意力引导层以及句法距离调整层,所述将所述句法距离矩阵以及所述语句编码向量输入至预先训练好的多头注意力引导模型中,获得邻接矩阵,包括如下步骤:
S1051:通过所述多头注意力引导层获取所述语句编码向量对应的注意力引导矩阵,其中,所述注意力引导矩阵包括所述目标语句中不同单词之间的关联的权重值,其中,获取所述注意力引导矩阵的公式为:
其中,
和
是可学习的参数矩阵,
表示矩阵转置操作,
和
都等于所
述语句编码向量的输入,
是所述语句编码向量的尺寸,
是将输入映射为0-1
之间的实数的函数,
表示多头注意力中第
个头学习到的注意力引导矩阵;
S1052:根据所述句法距离矩阵对所述注意力引导矩阵进行调整,获得所述邻接矩
阵,其中,获取所述邻接矩阵
的公式为:
其中,所述
表示所述句法距离矩阵中的单词
和单词
之间的距离,
表
示所述注意力引导矩阵
上单词
和单词
之间的权重值,
是归一化因子,
,
是用于控制句法距离作用的超参数,
表示函数,函数
对所述注意
力引导矩阵
的函数公式为
,函数公式的运算结果是所述邻接矩阵
。
在该可选的实施方式中,所述多头注意力引导层能够通过多头注意力机制来学习不同单词之间的联系对识别当前属性词的情感的重要性权重,其中,多头注意力机制可以捕获语句中长距离的相互依赖的特征,可以将句子中任意两个单词的联系通过一个计算步骤直接联系起来,通过多头注意力机制学习一个注意力引导的邻接矩阵,这个矩阵刻画了不同单词之间的语义相关性。而人工定义的规则,比如设定句法树上距离大于一个阈值(2、3)的两个词直接认为无关系,语义相关性为0,虽然可以让神经网络关注语句中最相关的部分词,但是一旦句法解析的过程出错,则神经网络关注了错误的相关词,最后会很大概率得出错误的结论。利用多头注意力机制来学习并获取到所述目标语句中不同单词之间的语义关系,能够降低句法解析错误的影响,提高了最后得到的情感检测结果的准确性。同时,为了充分利用句法距离等细粒度信息,可以结合所述目标语句的句法距离矩阵来微调所述注意力引导矩阵,进一步确保神经网络关注相关的单词,从而进一步地提高了最后得到的情感检测结果的准确性。
S106:将所述邻接矩阵输入至预先训练好的稠密连接图卷积层,获得所述属性词的情感特征。
可选的,其中,所述稠密连接图卷积层有多个,每个所述稠密连接图卷积层有多个子层,所述将所述邻接矩阵输入至预先训练好的稠密连接图卷积层,获得所述属性词的情感特征,包括如下步骤:
S1061:使用所述稠密连接图卷积层对所述邻接矩阵进行计算,获得每个所述稠密连接图卷积层的隐藏表示,其中,每个所述稠密连接图卷积层的隐藏表示的计算公式为:
其中,
是sigmoid激活函数,
表示第
个稠密连接图卷积层的第
层中节点
的隐藏表示,
,
是所述稠密连接图卷积层的最大个数,
是邻接矩阵的
个数,
表示所述稠密连接图卷积层的初始节点表示与在
层的节点表示的拼接,
是训练获得的参数矩阵,
是训练获得的偏差项,其中,
表示实数,
表示维度为
的实数矩阵,
表示维度为
的实数矩阵,每个所述稠密连接图卷
积层的总层数为
,
表示所述稠密连接图卷积层的第
层,每层中节点表示的维度大小为
,
为所述稠密连接图卷积层的输入向量的尺寸,
,
表示所述邻接矩阵矩阵
上单词
和单词
之间的权
重值;
S1062:根据每个所述稠密连接图卷积层的隐藏表示,生成所述稠密连接图卷积层的整合特征表示,其中,所整合特征表示的计算公式为:
其中,
是参数矩阵,
是偏差项,
是
个
稠密连接图卷积层的隐藏表示;
S1063:根据所述整合特征表示以及最大池化函数,生成所述情感特征,其中,所述情感特征的获取公式为:
其中,每个稠密连接图卷积层包含
个子层。每个子层中节点表示的维度大小为
,其中
为输入向量的尺寸。例如,如果输入尺寸为256,并且每个紧密连
接的层都有4个子层,则
,则最后一层的输出尺寸为256(4*
64)。
其中,所述邻接矩阵有多个,所述邻接矩阵的个数与所述稠密连接图卷积层的个数一致。
在该可选的实施方式中,使用所述稠密连接图卷积层能够解决图卷积网络的过度平滑问题,从而可以拥有更好的性能,可以提取出更好的特征,从而提高最后得出的情感检测结果的准确性。
S107:根据所述情感特征,生成所述属性词的情感检测结果。
可选的,所述根据所述情感特征,生成所述属性词的情感检测结果,包括如下步骤:
S1071:将所述情感特征输入至预先训练好的全连接层,获得情感类别的输出概率分布,其中,获得所述情感类别的输出概率分布的公式如下:
其中,
为每个情感类别的输出概率分布,
和
是可学习的参数,
是所述
情感特征;
其中,所述多头注意力引导模型、所述稠密连接图卷积层以及所述全连接层构成情感检测模型,所述情感检测模型进行训练的损失函数为带有正则化项的交叉熵损失函数,其中,所述带有正则化项的交叉熵损失函数的公式为:
其中,
表示正确的情感标签,
是正则化项的超参数,
表示参数集合,包括所
述情感检测模型中所有的参数,
是所有的情感类别,符号
表示2范数,
表示
所有参数的2范数,
表示第
个训练样本的正确的情感标签的分布,
表示所述情感检
测模型对第
个训练样本的预测分布,
。
其中,所述正则化项可以是L2正则化项,正则化项是机器学习中对原始损失函数引入额外信息,以便防止过拟合和提高模型泛化性能,正则化项的目的是防止模型学习到过于复杂的参数,防止过拟合,每次计算所有参数的2范数,模型训练的目标是使损失函数越来越小,即使得交叉熵和正则化项越来越小。
其中,损失函数用于估量正确值与神经网络得到的预测值之间的差距,模型会根据这个差距的值进行训练,从而获得正确的参数。机器学习模型的训练都需要损失函数,目的是计算当前模型的误差,然后通过将这个误差来对每个参数求梯度(求导数),再用梯度下降法更新模型参数,使模型得到训练。
S1072:根据所述情感类别的输出概率分布,确定所述情感特征对应的情感类别;
在该可选的实施方式中,可以根据所述输出概率分布确定所述情感特征对应的情感类别,假设所述输出概率分布为情感类别A的输出概率为50%、情感类别B的输出概率为30%、情感类别C的输出概率为20%,可以通过生成一个随机数X,假设X的取值区间为(0,10],将取值区间分为(0,5]、(5,8]、(8,10]三个部分,则X的值落在区间(0,5]的概率为50%,X的值落在区间(5,8]的概率为30%,X的值落在区间(8,10]的概率为20%,若X的值落在区间(0,5]上,则确定情感类别A为所述情感特征对应的情感类别,若X的值落在区间(5,8]上,则确定情感类别B为所述情感特征对应的情感类别,若X的值落在区间(8,10]上,则确定情感类别C为所述情感特征对应的情感类别。
S1073:将所述属性词与所述情感特征对应的情感类别进行拼接,获得所述属性词的情感检测结果。
在该可选的实施方式中,若所述属性词为旅行,所述情感类别为积极,则可以将所述属性词与所述情感类别按照预设的句子模板进行拼接,比如“属性词旅行的情感类别为积极”,也可以将所述属性词以及所述情感类别直接作为情感检测结果进行输出等。
可见,本方法实施例中,可以将携带有属性词的目标语句的语句编码向量输入至多头注意力引导模型中,通过多头注意力机制来学***滑问题,提高了网络的性能,从而进一步提高了情感检测结果的准确性。
实施例二:
本实施例提供一种情感检测装置,可以用于执行本申请实施例一的情感检测方法。对于本实施例中未披露的细节,请参照本申请的实施例一。
请参阅图4,图4是本申请实施例公开的一种情感检测装置的结构示意图。所述的情感检测装置可以运行于电子设备中。如图4所示,该情感检测装置包括:
第一获取模块201,用于获取携带有属性词的目标语句。
第二获取模块202,还用于使用句法分析工具获取所述目标语句对应的句法树。
第一生成模块203,用于根据所述句法树,生成所述目标语句对应的句法距离矩阵,其中,所述句法距离矩阵表示所述目标语句的不同单词之间在所述句法树上的距离。
确定模块204,用于确定所述目标语句的语句编码向量。
第一输入模块205,用于将所述句法距离矩阵以及所述语句编码向量输入至预先训练好的多头注意力引导模型中,获得邻接矩阵,其中,所述邻接矩阵表示所述目标语句中的不同单词之间的关联性。
第二输入模块206,用于将所述邻接矩阵输入至预先训练好的稠密连接图卷积层,获得所述属性词的情感特征。
第二生成模块207,用于根据所述情感特征,生成所述属性词的情感检测结果。
在一个可选的实施例中,所述多头注意力引导模型包括多头注意力引导层以及句法距离调整层,所述第一输入模块205将所述句法距离矩阵以及所述语句编码向量输入至预先训练好的多头注意力引导模型中,获得邻接矩阵的方式具体为:
通过所述多头注意力引导层获取所述语句编码向量对应的注意力引导矩阵,其中,所述注意力引导矩阵包括所述目标语句中不同单词之间的关联的权重值,其中,获取所述注意力引导矩阵的公式为:
其中,
和
是可学习的参数矩阵,
表示矩阵转置操作,
和
都等于所
述语句编码向量的输入,
是所述语句编码向量的尺寸,
是将输入映射为0-1
之间的实数的函数,
表示多头注意力中第
个头学习到的注意力引导矩阵;
根据所述句法距离矩阵对所述注意力引导矩阵进行调整,获得所述邻接矩阵,其
中,获取所述邻接矩阵
的公式为:
其中,所述
表示所述句法距离矩阵中的单词
和单词
之间的距离,
表
示所述注意力引导矩阵
上单词
和单词
之间的权重值,
是归一化因子,
,
是用于控制句法距离作用的超参数,
表示函数,函数
对所述注意
力引导矩阵
的函数公式为
,函数公式的运算结果是所述邻接矩阵
。
在一个可选的实施例中,所述确定模块204确定所述目标语句的语句编码向量的方式具体为:
对所述目标语句进行分词处理,获得多个单词;
针对每个所述单词,根据预先训练好的词向量模型确定所述单词的词向量、词性向量以及位置向量;
对所述词向量、所述词性向量以及所述位置向量进行拼接,获得每个所述单词的完整嵌入向量;
使用双向长短期记忆网络对所述完整嵌入表示进行编码,获得所述目标语句的语句编码向量。
在一个可选的实施例中,所述稠密连接图卷积层有多个,每个所述稠密连接图卷积层有多个子层,所述第二输入模块206将所述邻接矩阵输入至预先训练好的稠密连接图卷积层,获得所述属性词的情感特征的方式具体为:
使用所述稠密连接图卷积层对所述邻接矩阵进行计算,获得每个所述稠密连接图卷积层的隐藏表示,其中,每个所述稠密连接图卷积层的隐藏表示的计算公式为:
其中,
是sigmoid激活函数,
表示第
个稠密连接图卷积层的第
层中节点
的隐藏表示,
,
是所述稠密连接图卷积层的最大个数,
是邻接矩阵的
个数,
表示所述稠密连接图卷积层的初始节点表示与在
层的节点表示的拼接,
是训练获得的参数矩阵,
是训练获得的偏差项,其中,
表示实数,
表示维度为
的实数矩阵,
表示维度为
的实数矩阵,每个所述稠密连接图卷
积层的总层数为
,
表示所述稠密连接图卷积层的第
层,每层中节点表示的维度大小为
,
为所述稠密连接图卷积层的输入向量的尺寸,
,
表示所述邻接矩阵矩阵
上单词
和单词
之间的权
重值;
根据每个所述稠密连接图卷积层的隐藏表示,生成所述稠密连接图卷积层的整合特征表示,其中,所整合特征表示的计算公式为:
其中,
是参数矩阵,
是偏差项,
是
个
稠密连接图卷积层的隐藏表示;
根据所述整合特征表示以及最大池化函数,生成所述情感特征,其中,所述情感特征的获取公式为:
作为一种可选的实施例,所述第二生成模块207根据所述情感特征,生成所述属性词的情感检测结果的方式具体为:
将所述情感特征输入至预先训练好的全连接层,获得情感类别的输出概率分布,其中,获得所述情感类别的输出概率分布的公式如下:
其中,
为每个情感类别的输出概率分布,
和
是可学习的参数,
是所述
情感特征;
根据所述情感类别的输出概率分布,确定所述情感特征对应的情感类别;
将所述属性词与所述情感特征对应的情感类别进行拼接,获得所述属性词的情感检测结果。
在本装置实施例中,可以将携带有属性词的目标语句的语句编码向量输入至多头注意力引导模型中,通过多头注意力机制来学***滑问题,提高了网络的性能,从而进一步提高了情感检测结果的准确性。
实施例三:
本实施例提供一种电子设备,可以用于执行本申请实施例一的情感检测方法的全部或部分步骤。对于本实施例中未披露的细节,请参照本申请的实施例一。
请参阅图5,图5为本申请实施例提供的电子设备的结构示意图。所述电子设备900可以但不限于是各种服务器、个人计算机、笔记本电脑、智能手机、平板电脑等设备的一个或多个的组合。
在本申请较佳实施例中,所述电子设备900包括存储器901、至少一个处理器902、至少一条通信总线903及收发器904。
本领域技术人员应该了解,图5示出的电子设备的结构并不构成本申请实施例的限定,既可以是总线型结构,也可以是星形结构,所述电子设备900还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置。
在一些实施例中,所述电子设备900是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路、可编程门阵列、数字处理器及嵌入式设备等。所述电子设备900还可包括客户设备,所述客户设备包括但不限于任何一种可与客户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、数码相机等。
需要说明的是,所述电子设备900仅为举例,其他现有的或今后可能出现的电子产品如可适应于本申请,也应包含在本申请的保护范围以内,并以引用方式包含于此。
在一些实施例中,所述存储器901中存储有计算机程序,所述计算机程序被所述至少一个处理器902执行时实现如所述实施例一的情感检测方法中的全部或者部分步骤。所述存储器901包括只读存储器(Read-Only Memory,ROM)、可编程只读存储器(ProgrammableRead-Only Memory,PROM)、可擦除可编程只读存储器(ErasableProgrammable Read-OnlyMemory,EPROM)、一次可编程只读存储器(One-timeProgrammable Read-Only Memory,OTPROM)、电子擦除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
在一些实施例中,所述至少一个处理器902是所述电子设备900的控制核心(Control Unit),利用各种接口和线路连接整个电子设备900的各个部件,通过运行或执行存储在所述存储器901内的程序或者模块,以及调用存储在所述存储器901内的数据,以执行电子设备900的各种功能和处理数据。例如,所述至少一个处理器902执行所述存储器中存储的计算机程序时实现本申请实施例中所述的情感检测方法的全部或者部分步骤;或者实现情感检测装置的全部或者部分功能。所述至少一个处理器902可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(CentralProcessing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。
在一些实施例中,所述至少一条通信总线903被设置为实现所述存储器901以及所述至少一个处理器902等之间的连接通信。
所述电子设备900还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
实施例四:
本实施例提供一种计算机可读存储介质,其上储存有计算机程序,所述指令适于由处理器加载并执行本申请实施例一的情感检测方法,具体执行过程可以参见实施例一的具体说明,在此不进行赘述。
对于设备实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的设备实施例仅仅是示意性的,其中所述作为分离部件说明的组件可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。