文本情感分类方法、装置、电子设备及可读存储介质与流程

文档序号:18642693发布日期:2019-09-11 23:43阅读:130来源:国知局
文本情感分类方法、装置、电子设备及可读存储介质与流程

本申请涉及语言理解技术领域,具体而言,涉及一种文本情感分类方法、装置、电子设备及可读存储介质。



背景技术:

随着互联网技术的快速发展,越来越多的用户喜欢在社交平台发布自己的观点、态度和看法,从而网络上产生大量用户针对热点事件、产品等有价值的文本信息。这些文本信息包含用户丰富的情感色彩和情感倾向,情感分析的目的就是自动从文本中提取和分类用户的主观情感信息,以了解大众对某一事件或产品的看法。

目前一般采用机器学习方法对文本进行情感类别识别,其通常是将提取的文本的相关特征之间输入至分类器中,通过分类器基于这些特征来对文本进行情感类别分类,但是其通常提取的特征中可能包含的信息并不全面,从而使得分类结果准确性较低。



技术实现要素:

有鉴于此,本申请实施例的目的在于提供一种文本情感分类方法、装置、电子设备及可读存储介质,以改善现有技术中对文本进行情感类别分类准确性低的问题。

第一方面,本申请实施例提供了一种文本情感分类方法,用于通过双向循环神经网络bi-lstm模型对文本进行情感分类,所述bi-lstm模型包括:第一bi-lstm层、第二bi-lstm层以及分类层,所述方法包括:获取待分类的目标文本中的目标关键词对应的目标词向量;将所述目标词向量输入到所述第一bi-lstm层,通过所述第一bi-lstm层对所述目标词向量的句法特征进行提取,输出表征所述句法特征的目标句法特征向量,其中,所述句法特征用于表征所述目标关键词在所述目标文本中的上下文信息;通过所述第二bi-lstm层对所述目标句法特征向量的语义特征进行提取,输出表征所述语义特征的目标语义特征向量,其中,所述语义特征用于表征所述目标关键词在所述目标文本中的语义信息;通过所述分类层基于所述目标词向量、所述目标句法特征向量以及所述目标语义特征向量确定所述目标文本对应的情感类别。

在上述实现过程中,通过bi-lstm模型中的第一bi-lstm层来提取句法特征,通过第二bi-lstm层来提取语义特征,然后将两层的输出以及输入的词向量均输入分类层,再通过分类层基于句法特征向量、语义特征向量以及输入的词向量来确定目标文本的情感类别,由于本申请中可以提取目标关键词的句法特征以及语义特征,所以使得获取的信息可以更加全面,从而可以更加深入理解目标文本的内在含义,进而有效提高分类结果的准确性。

可选地,所述通过所述分类层基于所述目标词向量、所述目标句法特征向量以及所述目标语义特征向量确定所述目标文本对应的情感类别,包括:通过所述分类层将所述目标词向量、所述目标句法特征向量以及所述目标语义特征向量进行加权,获得加权向量;通过所述分类层基于所述加权向量预测所述目标文本对应的各个情感类别的概率值;通过所述分类层根据所述目标文本对应的各个情感类别的概率值确定所述目标文本对应的情感类别。

在上述实现过程中,将获得的目标句法特征向量、目标语义特征向量以及目标词向量进行加权后获得加权向量,在进行加权时,可将各个向量乘以不同的权重,以区分不同向量对情感类别预测的影响大小,从而使得在基于加权向量确定目标文本对应的情感类别时,可以更为准确的预测目标文本对应的各个情感类别的概率值。

可选地,所述通过所述分类层根据所述目标文本对应的各个情感类别的概率值确定所述目标文本对应的情感类别,包括:通过所述分类层将所述目标文本对应的各个情感类别的概率值中概率值最大的情感类别确定为所述目标文本对应的情感类别。

可选地,所述将所述目标词向量输入到所述第一bi-lstm层,通过所述第一bi-lstm层对所述目标词向量的句法特征进行提取,输出表征所述句法特征的目标句法特征向量,包括:

基于当前时刻输入的所述目标词向量与上一时刻所述第一bi-lstm层的bi-lstm单元的隐含层输出的目标句法特征向量通过sigmoid函数计算获得遗忘门的输出值;

基于当前时刻输入的所述目标词向量与上一时刻所述第一bi-lstm层的bi-lstm单元的隐含层输出的目标句法特征向量通过sigmoid函数计算获得输入门的输出值;

基于当前时刻输入的所述目标词向量与上一时刻所述第一bi-lstm层的bi-lstm单元的隐含层输出的目标句法特征向量通过tanh函数计算获得临时bi-lstm单元细胞状态的值;

基于所述遗忘门的输出值、所述输入门的输出值、所述临时bi-lstm单元细胞状态的值以及上一时刻bi-lstm单元细胞状态的值计算获得当前时刻bi-lstm单元细胞状态的值;

根据上一时刻隐含状态值,当前时刻输入的所述目标词向量以及所述当前时刻bi-lstm单元细胞状态的值获得当前时刻隐含状态的输出向量;

根据各个时刻隐含状态的输出向量获得所述第一bi-lstm层中的前向lstm网络的输出向量;

根据各个时刻隐含状态的输出向量获得所述第一bi-lstm层中的后向lstm网络的输出向量;

将所述第一bi-lstm层中的前向lstm网络的输出向量与所述后向lstm网络的输出向量进行拼接,获得所述第一bi-lstm层输出的目标句法特征向量。

在上述实现过程中,通过上述算法可以通过第一bi-lstm层有效提取目标关键词的句法特征,从而获得目标句法特征向量。

可选地,所述获取待分类的目标文本中的目标关键词对应的词向量之前,所述方法还包括:获取多个训练文本,每个训练文本包括训练关键词,每个训练文本标注有对应的情感类别;将所述训练关键词对应的词向量作为所述bi-lstm模型的输入,将所述每个训练文本标注的情感类别作为所述bi-lstm模型的输出,对所述bi-lstm模型进行训练,获得训练好的所述bi-lstm模型。

在上述实现过程中,预先通过大量的训练文本对bi-lstm模型进行训练,从而使得训练后的bi-lstm模型可以对文本的情感类别准确的分类。

可选地,获取多个训练文本之前,所述方法还包括:获取多个原始文本;对所述多个原始文本进行数据清洗,以清除所述多个原始文本中无用的文本,获得多个训练文本;对每个训练文本进行分词处理,获得每个训练文本对应的训练关键词;基于情感词典对每个训练文本对应的训练关键词进行情感类别标注,获得每个训练文本对应的情感类别。

在上述实现过程中,通过对原始文本进行数据清洗可以清除掉原始文本中无用的文本,以免在训练时对分类结果造成干扰,然后对训练文本进行分词处理,然后基于情感词典对训练关键词进行情感类别标注,由此可获得训练文本对应的情感类别,进而可以提高对模型的训练效果。

可选地,所述对所述bi-lstm模型进行训练,包括:基于交叉损失函数对所述bi-lstm模型进行训练,当所述交叉损失函数的值小于预设值时,完成所述bi-lstm模型的训练。

在上述实现过程中,通过交叉损失函数来训练bi-lstm模型,从而可以不断优化bi-lstm模型内的网络参数,进而通过训练来提高bi-lstm模型的分类效果。

第二方面,本申请实施例提供了一种文本情感分类装置,用于通过双向循环神经网络bi-lstm模型对文本进行情感分类,所述bi-lstm模型包括:第一bi-lstm层、第二bi-lstm层以及分类层,所述装置包括:

词向量获取模块,用于获取待分类的目标文本中的目标关键词对应的目标词向量;

句法特征提取模块,用于将所述目标词向量输入到所述第一bi-lstm层,通过所述第一bi-lstm层对目标词向量的句法特征进行提取,输出表征所述句法特征的目标句法特征向量,其中,所述句法特征用于表征所述目标关键词在所述目标文本中的上下文信息;

语义特征提取模块,用于通过所述第二bi-lstm层对所述目标句法特征向量的语义特征进行提取,输出表征所述语义特征的目标语义特征向量,其中,所述语义特征用于表征所述目标关键词在所述目标文本中的语义信息;

情感类别确定模块,用于通过所述分类层基于所述目标词向量、所述目标句法特征向量以及所述目标语义特征向量确定所述目标文本对应的情感类别。

可选地,所述情感类别确定模块,具体用于:

通过所述分类层将所述目标词向量、所述目标句法特征向量以及所述目标语义特征向量进行加权,获得加权向量;

通过所述分类层基于所述加权向量预测所述目标文本对应的各个情感类别的概率值;

通过所述分类层根据所述目标文本对应的各个情感类别的概率值确定所述目标文本对应的情感类别。

可选地,所述情感类别确定模块,还具体用于通过所述分类层将所述目标文本对应的各个情感类别的概率值中概率值最大的情感类别确定为所述目标文本对应的情感类别。

可选地,所述句法特征提取模块,具体用于:

基于当前时刻输入的所述目标词向量与上一时刻所述第一bi-lstm层的bi-lstm单元的隐含层输出的目标句法特征向量通过sigmoid函数计算获得遗忘门的输出值;

基于当前时刻输入的所述目标词向量与上一时刻所述第一bi-lstm层的bi-lstm单元的隐含层输出的目标句法特征向量通过sigmoid函数计算获得输入门的输出值;

基于当前时刻输入的所述目标词向量与上一时刻所述第一bi-lstm层的bi-lstm单元的隐含层输出的目标句法特征向量通过tanh函数计算获得临时bi-lstm单元细胞状态的值;

基于所述遗忘门的输出值、所述输入门的输出值、所述临时bi-lstm单元细胞状态的值以及上一时刻bi-lstm单元细胞状态的值计算获得当前时刻bi-lstm单元细胞状态的值;

根据上一时刻隐含状态值,当前时刻输入的所述目标词向量以及所述当前时刻bi-lstm单元细胞状态的值获得当前时刻隐含状态的输出向量;

根据各个时刻隐含状态的输出向量获得所述第一bi-lstm层中的前向lstm网络的输出向量;

根据各个时刻隐含状态的输出向量获得所述第一bi-lstm层中的后向lstm网络的输出向量;

将所述第一bi-lstm层中的前向lstm网络的输出向量与所述后向lstm网络的输出向量进行拼接,获得所述第一bi-lstm层输出的目标句法特征向量。

可选地,所述装置还包括:

训练模块,用于获取多个训练文本,每个训练文本包括训练关键词,每个训练文本标注有对应的情感类别;将所述训练关键词对应的词向量作为所述bi-lstm模型的输入,将所述每个训练文本标注的情感类别作为所述bi-lstm模型的输出,对所述bi-lstm模型进行训练,获得训练好的所述bi-lstm模型。

可选地,所述训练模块,还用于:

获取多个原始文本;

对所述多个原始文本进行数据清洗,以清除所述多个原始文本中无用的文本,获得多个训练文本;

对每个训练文本进行分词处理,获得每个训练文本对应的训练关键词;

基于情感词典对每个训练文本对应的训练关键词进行情感类别标注,获得每个训练文本对应的情感类别。

可选地,所述训练模块,还用于基于交叉损失函数对所述bi-lstm模型进行训练,当所述交叉损失函数的值小于预设值时,完成所述bi-lstm模型的训练。

第三方面,本申请实施例提供一种电子设备,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如上述第一方面提供的所述方法中的步骤。

第四方面,本申请实施例提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时运行如上述第一方面提供的所述方法中的步骤。

本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的一种常规的bi-lstm模型的结构示意图;

图2为本申请实施例提供的一种改进的bi-lstm模型的结构示意图;

图3为本申请实施例提供的一种文本情感分类方法的流程图;

图4为本申请实施例提供的一种基于情感词典的方法对训练关键词进行情感标注的流程示意图;

图5为本申请实施例提供的一种文本情感分类装置的结构框图;

图6为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

在介绍本申请的具体实施例之前,先对本申请的应用场景进行简单介绍。

对比实施例中,在一些文本情感分析方法中,通常是利用深度学习或深度学习相关算法对文本进行情感倾向分析,如正面情感、负面情感等。其中采用的深度学习相关算法如长短期记忆网络(longshort-termmemory,lstm)、双向循环神经网络(bidirectionallongshort-termmemor,bi-lstm)等,而采用这些算法进行文本情感分析时,通过是基于模型中的最后一层神经单元输出的特征向量来进行预测,虽然最后一层神经单元输出的特征向量也包含有文本的上下文信息,但是其没有包含文本更多的语义信息,例如,有些词语非常复杂,不同领域下褒贬不一,如“这车悬挂太硬了”是贬义,而“这颗钻石很硬”就是褒义的,因此在分析的时候需要深入理解整个句子的内在含义来进行情感分类,而对比实施例中采用常规的bi-lstm模型并不能很好地深入理解整个句子的内在含义,所以导致其情感类别预测的准确性不高。

常规的bi-lstm模型相比与lstm模型来说,区别在于不同于lstm模型隐藏层的单向传播,如图1所示,图1为对比实施例的bi-lstm模型的结构示意图。bi-lstm模型包含两个相互独立的隐藏层,即前向lstm网络和后向lstm网络,其传播方向相反,由此针对同一输入数据,最终可以得到两个隐藏层输出,即两个关于输入数据的特征向量,之后bi-lstm模型通过将两个特征向量进行拼接(concat)或取平均值的方法得到一个向量,再将其进行输出至全连接层,由全连接层基于该向量对文本进行情感类别预测,所以,由于只采用单一的bi-lstm模型立提取文本的相关特征,可能导致全连接层获得的向量中包含文本的语义信息并不全面,进而使得对文本的情感类别的预测可能并不准确。

对比实施例中存在的上述缺陷,均是申请人在经过实践并仔细研究后得出的结构,因此,上述问题的发现过程以及下文中本申请实施例针对上述问题所提出的解决方案,都应该是申请人在本申请过程中对本申请做出的贡献。

为了改善上述问题,本申请实施例提供了一种文本情感分类方法,该方法用于通过改进的bi-lstm模型对文本进行情感分类,可以获得有效提高文本情感类别预测的准确性。

而本申请中,为了对输入文本提取更多的特征,使得最后对其进行情感分类时可以获得更加准确的分类结果,所以,本申请中采用的bi-lstm模型是对上述常规的bi-lstm模型进行改进后获得的。

请参照图2,图2为本申请实施例提供的改进的bi-lstm模型的结构示意图,该bi-lstm模型包括:第一bi-lstm层10、第二bi-lstm层20以及分类层30,其第一bi-lstm层10用于获取输入的数据向量,然后第一bi-lstm层10对输入的数据向量进行句法特征提取,然后输出第一向量至第二bi-lstm层20,第二bi-lstm层20继续对第一向量进行语义特征提取获得第二向量,然后将输入的数据向量、第一向量以及第二向量均输入至分类层30,通过分类层30基于数据向量、第一向量以及第二向量对文本进行情感类别分类。

可以理解地,本申请实施例提供的bi-lstm模型实际上可以看成是两个常规的bi-lstm模型的拼接,即第一bi-lstm层10为单独的一个常规的bi-lstm模型,第二bi-lstm层20也为单独的一个常规的bi-lstm模型,由此可通过两个bi-lstm模型对输入的文本进行特征提取,可以更全面的提取到文本中包含的语义信息,从而可以有效提高对文本进行情感分类的准确性。

本实施例中的bi-lstm模型的具体原理可以参照下述本申请方法实施例中的相关描述,在此先不做过多介绍。

请参照图3,图3为本申请实施例提供的一种文本情感分类方法的流程图,该方法可应用于下述的电子设备,该方法包括如下步骤:

步骤s110:获取待分类的目标文本中的目标关键词对应的目标词向量。

其中,待分类的目标文本为需要进行情感类别分类的文本,其可以是由一个句子组成的文本,也可以是包含多个句子的文本,当然,其也可以是单独的一个词或者多个词,或者是句子与词的组合的文本。

为了便于bi-lstm模型对数据的处理,目标文本是原始文本进行预处理后获得的,然后再将目标文本输入至bi-lstm模型中的。预处理包括对原始文本进行分词、数据清洗等处理,如可以先采用jieba分词工具或其他分词方法对原始文本进行分词处理,如原始文本为“我爱中国的大好河山”,对其进行分词处理后获得的多个词包括“我/爱/中国/的/大好河山”,数据清洗可理解为对获得的多个词进行去停留词处理,即可根据停留词表自动过滤掉没有实际意义的词汇,如介词、冠词、语气助词、副词、连接词以及标点等,如此上述的多个词经过数据清洗后可为“我/爱/中国/大好河山”,这些词“我/爱/中国/大好河山”即可作为目标文本的目标关键词。

在将这些目标关键词输入bi-lstm模型之前,还需将目标关键词转换为目标词向量,其可以根据词向量词典将目标关键词进行词向量转换,例如,对于“我”这个词,可以将其转换为300维的向量,即“我(-0.0637040.403445-0.454980-0.1444730.0675890.125771-0.0322710.0924800.106311-0.084045-0.2085990.2328190.020058-0.194340-0.3234680.0177240.314494-0.006405-0.0396910.055776-0.2017580.002135……)”,如此,可将每个目标关键词根据词向量词典进行词向量转换。

按照此方式,可以将目标关键词均转换为对应的词向量,然后在对目标文本进行情感分类时,可直接基于上述的方式获得目标文本对应的目标词向量。

步骤s120:将所述目标词向量输入到所述第一bi-lstm层,通过所述第一bi-lstm层对所述目标词向量的句法特征进行提取,输出表征所述句法特征的目标句法特征向量。

第一bi-lstm层用于对输入的目标词向量进行句法特征提取,该句法特征用于表征目标关键词在目标文本中的上下文信息,即目标关键词在目标文本中的词义,例如,对于某些词可能是一词多义,在不同的语境下具有不同的含义,所以通过第一bi-lstm层进行句法特征提取,从而可以结合上下文信息,获得目标关键词在目标文本中的词义,即通过第一bi-lstm层获得表征句法特征的目标句法特征向量,该目标句法特征向量中包含有该目标关键词的词义,然后再将目标句法特征向量输出至第二bi-lstm层。

步骤s130:通过所述第二bi-lstm层对所述目标句法特征向量的语义特征进行提取,输出表征所述语义特征的目标语义特征向量。

第二bi-lstm层用于对目标句法特征向量进行语义特征提取,语义特征用于表征目标关键词在目标文本中的语义信息,如目标关键词在目标文本中的主谓宾等词性信息,所以,可通过第二bi-lstm层获得目标语义特征向量,该目标语义特征向量包含有目标关键词在目标文本中的语义信息。

步骤s140:通过所述分类层基于所述目标词向量、所述目标句法特征向量以及所述目标语义特征向量确定所述目标文本对应的情感类别。

在上述通过bi-lstm模型的第一bi-lstm层获得目标句法特征向量,以及通过第二bi-lstm层获得目标语义特征向量后,可通过bi-lstm模型的分类层基于目标词向量、目标句法特征向量以及目标语义特征向量确定目标文本的情感类别。

其中,情感类别可以预先定义为多种,如正面、负面和中间情感,或者高兴、悲伤或中间情感等更具体的情感类别,可以理解的是,具体的情感类别的分类可以根据实际情感进行预先设置,本申请实施例对此不进行限制。

可以理解地,分类层可以为一个分类器,其可以根据目标词向量、目标句法特征向量以及目标语义特征向量来预测目标文本的情感类别,所以分类层可基于获得的三个向量来对目标文本的情感类别进行预测,然后输出对应的预测结果。

在上述实现过程中,通过bi-lstm模型中的第一bi-lstm层来提取句法特征,通过第二bi-lstm层来提取语义特征,然后将两层的输出以及输入的词向量均输入分类层,再通过分类层基于句法特征向量、语义特征向量以及输入的词向量来确定目标文本的情感类别,由于本申请中可以提取目标关键词的句法特征以及语义特征,所以使得获取的信息可以更加全面,从而可以更加深入理解目标文本的内在含义,进而有效提高分类结果的准确性。

作为一种示例,通过分类层确定目标文本对应的情感类别的方式可以为:通过分类层将目标词向量、目标句法特征向量以及目标与语义特征向量进行加权,获得加权向量,然后再通过分类层基于该加权向量预测目标文本对应的各个情感类别的概率值,再根据目标文本对应的各个情感类别的概率值确定目标文本对应的情感类别。

其中,分类层可以包括加权层以及全连接层,加权层用于将目标词向量、目标句法特征向量以及目标语义特征向量进行加权后获得加权向量,全连接层用于根据加权向量确定目标文本对应的情感类别。

例如,目标词向量包括:我(x1,x2,x3),爱(y1,y2,y3),中国(z1,z2,z3);目标句法特征向量包括:我(x11,x21,x31),爱(y11,y21,y31),中国(z11,z21,z31);目标语义特征向量包括:我(x12,x22,x32),爱(y12,y22,y32),中国(z12,z22,z32);通过加权层将这些向量进行加权是指先对每个目标关键词对应的向量进行加权,然后再将所有的向量进行加权,如先对“我”这个词对应的各个向量进行加权,加权公式为:x=a*(x1,x2,x3)+b*(x11,x21,x31)+c*(x12,x22,x32),即可获取“我”这个目标关键词对应的加权向量,同理可获得“爱”对应的加权向量:y=a*(y1,y2,y3)+b*(y11,y21,y31)+c*(y12,y22,y32),以及“中国”对应的加权向量:z=a*(z1,z2,z3)+b*(z11,z21,z31)+c*(z12,z22,z32),最后再将各个目标关键词对应的加权向量再进行加权,获得最后的加权向量:w=w1*x+w2*y+w3*z,其中,a,b,c,w1,w2,w3可以是bi-lstm模型中自定义的加权系数。

然后可以将获得的加权向量w输入至全连接层,通过全连接层输出目标文本的情感类别,其中,全连接层的每一个输出都可以看出前一层的每一个结点乘以一个权重系数,最后加上一个偏置得到,其具体的原理可在下文中进行详细介绍。

在上述实现过程中,将获得的目标句法特征向量、目标语义特征向量以及目标词向量进行加权后获得加权向量,在进行加权时,可将各个向量乘以不同的权重,以区分不同向量对情感类别预测的影响大小,从而使得在基于加权向量确定目标文本对应的情感类别时,可以更为准确的预测目标文本对应的各个情感类别的概率值。

在通过分类层获得目标文本对应的各个情感类别的概率值后,可将概率值最大的情感类别确定为目标文本对应的情感类别。例如,若通过上述的全连接层输出的目标文本为正面情感的概率值为0.7,负面情感的概率值为0.2,中间情感的概率值为0.1,则可确定目标文本的情感类别为正面情感。

作为另一种示例,通过分类层确定目标文本的情感类别的方式还可以为:直接将目标词向量、目标句法特征向量以及目标语义特征向量进行相加,获得相加向量,然后再通过全连接层基于相加向量确定目标文本的情感类别。例如,相加向量的计算公式为:w=x+y+z,全连接层的数据处理过程也与上述的相同,在此不过多赘述。

下面对bi-lstm模型中各个层的数据处理过程进行详细描述,由上述描述的bi-lstm模型的原理可知,bi-lstm模型实际上是lstm模型的一种变形,所以其内部数据处理过程跟lstm模型的数据处理过程类似。

其中,在通过第一bi-lstm层对目标词向量的句法特征进行提取,输出表征句法特征的目标句法特征向量的过程如下:

基于当前时刻输入的所述目标词向量与上一时刻所述第一bi-lstm层的bi-lstm单元的隐含层输出的目标句法特征向量通过sigmoid函数计算获得遗忘门的输出值。

其中,该步骤可以采用公式ft=σ(wf·[ht-1,xt]+bf)表示,ft即为遗忘门的输出值,xt为当前时刻的bi-lstm单元的输入的目标词向量,ht-1为前一时刻的bi-lstm单元隐藏层的输出向量,wf为遗忘门单元状态的权值矩阵,bf为遗忘门单元状态的偏置向量。

基于当前时刻输入的所述目标词向量与上一时刻所述第一bi-lstm层的bi-lstm单元的隐含层输出的目标句法特征向量通过sigmoid函数计算获得输入门的输出值。

其中,该步骤可以采用公式it=σ(wi·[ht-1,xt]+bi)表示,it即为输入门的输出值,σ为sigmoid激活函数,wi为输入门单元状态的权值矩阵,bi为输入门单元状态的偏置向量。

基于当前时刻输入的所述目标词向量与上一时刻所述第一bi-lstm层的bi-lstm单元的隐含层输出的目标句法特征向量通过tanh函数计算获得临时bi-lstm单元细胞状态的值。

其中,该步骤可以采用公式表示,即为临时bi-lstm单元细胞状态的值,tanh为双曲正切函数,wc为bi-lstm单元状态的权值矩阵,bc为bi-lstm单元状态的偏置向量。

基于所述遗忘门的输出值、所述输入门的输出值、所述临时bi-lstm单元细胞状态的值以及上一时刻bi-lstm单元细胞状态的值计算获得当前时刻bi-lstm单元细胞状态的值。

其中,该步骤可以采用公式表示,ct即为当前时刻bi-lstm单元细胞状态的值,ct-1为上一时刻bi-lstm单元细胞状态的值。

根据上一时刻隐含状态值,当前时刻输入的所述目标词向量以及所述当前时刻bi-lstm单元细胞状态的值获得当前时刻隐含状态的输出向量。

其中,该步骤可以采用如下公式表示:

ot=σ(wo·[ht-1,xt]+bo);

ht=ot*tanh(ct);

wo为输出门单元状态的权值矩阵,bo为输出门单元状态的偏置向量,ot为输出门单元的输出,ht为当前时刻隐含状态的输出向量。

根据各个时刻隐含状态的输出向量获得所述第一bi-lstm层中的前向lstm网络的输出向量。

针对第一bi-lstm层中的前向lstm网络,可以按照上述过程获得各个时刻隐含状态的输出向量,由此可获得隐含状态序列作为前向lstm网络的输出向量

根据各个时刻隐含状态的输出向量获得所述第一bi-lstm层中的后向lstm网络的输出向量。

针对第一bi-lstm层中的后向lstm网络,可以按照上述过程获得各个时刻隐含状态的输出向量,由此可获得隐含状态序列作为后向lstm网络的输出向量

将所述第一bi-lstm层中的前向lstm网络的输出向量与所述后向lstm网络的输出向量进行拼接,获得所述第一bi-lstm层输出的目标句法特征向量。

其中,目标句法特征向量可以表示为

由此,按照上述方式可获得目标句法特征向量,获得的目标句法特征向量中包含了各个关键词的句法特征。例如,输入的目标词向量记为x=(x1,x2,x3,x4,x5),每个目标词向量的维度为300维,每个目标词向量输入第一bi-lstm层中的前向lstm网络后分别得到五个向量每个向量150维,每个目标词向量输出第一bi-lstm层中的后向lstm网络后分别得到五个向量每个向量150维,然后将前向、后向lstm网络的输出进行拼接得到第一bi-lstm层的输出,即目标句法特征向量记为每个目标句法特征向量300维,由此,可基于上述算法获得第一bi-lstm层输出的目标句法特征向量。

同理,对于第二bi-lstm层提取目标句法特征向量的语义特征,输出目标语义特征向量的过程也跟上述第一bi-lstm层的处理过程类似。例如,第二bi-lstm层的输入为第一bi-lstm层的输出该目标句法特征向量经过第二bi-lstm层的前向lstm网络后得到向量(h2l1,h2l2,h2l3,h2l4,h2l5),经过第二bi-lstm层的后向lstm网络后得到向量(h2r1,h2r2,h2r3,h2r4,h2r5),然后再将前向、后向lstm网络的输出向量进行拼接得到第二bi-lstm层的输出,即目标语义特征向量记为每个目标语义特征向量300维,由此,可获得第二bi-lstm层输出的目标语义特征向量。

另外,为了加快bi-lstm模型的收敛速度,可以添加输出的目标词向量到第二bi-lstm层的残差网络,所以,第二bi-lstm层的输出可以为(h21+x1,h22+x2,h23+x3,h24+x4,h25+x5),记为

所以,通过分类层对目标词向量、目标句法特征向量以及目标语义特征向量进行加权获得的加权向量可表示为其中,w1,w2,w3为自定义的加权系数。

在上述实现过程中,通过上述算法可以通过第一bi-lstm层有效提取目标关键词的句法特征,从而获得句法特征向量,以及通过第二bi-lstm层有效提取目标关键词的语义特征,从而获得语义特征向量。

作为一种示例,在获得上述目标词向量x、目标句法特征向量以及目标语义特征向量后,通过分类层对这些向量基于如下公式进行加权:

其中,k为加权向量,a,b,c为预设系数,即自定义的加权系数;

然后经过以下公式确定所述目标文本对应的情感类别:

y1=relu(k*wn1+b);

y2=relu(k*wn2+b);

其中,relu为激活函数,relu=max(0,j),j为一预设常数,wn1,wn2均为所述bi-lstm模型的权重,b为偏置,为预测所述目标文本为第一情感类别的概率值,为预测所述目标文本为第二情感类别的概率值。

若加权向量为上述的则可通过下述公式确定所述目标文本对应的情感类别:

y1=relu(w*wn1+b);

y2=relu(w*wn2+b);

在上述实现过程中,可通过上述算法可以使得分类层快速准确地输出目标文本对应的各个情感类别的概率值。

作为一种示例,在实际通过bi-lstm模型对文本进行情感分类之前,还可以先对bi-lstm模型进行训练,其训练的过程如下:

获取多个训练文本,每个训练文本包括训练关键词,每个训练文本标注有对应的情感类别;将所述训练关键词作为bi-lstm模型的输入,将所述每个训练文本标注的情感类别作为所述bi-lstm模型的输出,对所述bi-lstm模型进行训练,获得训练好的所述bi-lstm模型。

上述中的训练文本是经过预处理后的文本,其预处理过程如下:

获取多个原始文本,对该多个原始文本进行数据清洗,以清除多个袁术文本中无用的文本,获得多个训练文本,然后对每个训练文本进行分词处理,获得每个训练文本对应的训练关键词,基于情感词典对每个训练文本对应的训练关键词进行情感类别标准,获得每个训练文本对应的情感类别。

具体地,多个原始文本可以从各个网站上通过爬虫方法获得,下面为以“海南大学”为搜索关键词获得的原始文本:

在对原始文本分析的过程中,发现原始文本中存在对情感分类无用甚至影响分类结果的元素,比如:“请问现在海南大学医院开门了吗?http://t.cn/rgoecb1”中的“http://t.cn/rgoecb1”这类链接对情感分类没有作用,但是会影响分类的准确性,所以可以对这些数据进行清除。

“@今天不开心你跑不掉啦~!这辈子和我栓在一起。[嘻嘻]”中的@用户名字中可能会影响分类结果,因此也需要清除。

所以,数据预处理首先要清除对情感分类作用不大的信息如:数字、http链接、@用户、【回复】等等这些文本,清除后的原始文本可作为训练文本输入bi-lstm模型进行训练。

为了便于模型的数据处理,在训练之前,还需对每个训练文本进行分词处理,分词方法可以采用jieba等分词工具,下述为对每个训练文本进行分词后获得的训练关键词的示例:

然后基于情感词典对每个训练关键词进行情感类别标注,如情感类别为正面和负面,若为正面则标注为1,若为负面则标注为0,情感词典中预先包括有多个词以及每个词对应的情感类别的权重,所以可将训练关键词与情感词典中的各个词进行匹配,从而可获得每个训练关键词对应的情感类别的权重,而若有的词前面有否定词或者程度词时,则会对文本的情感有增强作为,程度词如“极其”、“特别”等,所以,在将每个训练关键词与情感词典中的词进行匹配时,还可以查找该词前是否有程度词或者否定词,若有则乘以相应的权重,最后把每个训练文本中的所有训练关键词的权重相加,获得训练文本的权重,若训练文本的权重大于或等于0,则标注为正面情感,若小于0则标注为负面情感。

如图4所示,图4为本申请实施例提供的一种基于情感词典的方法对训练关键词进行情感标注的流程示意图,例如对于训练关键词为“怀念、我、海大、悲伤、悲伤”,按照图4所示的标注方法,“怀念”对应的权重为1,“我”对应的权重为1,“海大”对应的权重为1,第一个“悲伤”对应的权重为-1,第二个“悲伤”对应的权重为-1,则将这些训练关键词对应的权重相加获得的权重为1,则表示该训练文本的情感类别为正面,所以按照此方式,可获得每个训练文本对应的情感类别,在对bi-lstm模型进行训练时,可将训练文本对应的情感类别作为bi-lstm模型的输出,以使得bi-lstm模型在实际预测中可以准确的对文本进行情感类别预测。

训练过程的bi-lstm模型的结构与上述图2的一致,在训练过程中可通过分类层中的drourout层随机舍弃分类层中的一些神经元节点,由此,可避免模型过拟合,影响预测结果的准确性。而分类层中预测文本对应的情感类别主要由softmax层来完成,其用于输出文本对应的情感类别的概率值,然后选择概率值最大的情感类别作为文本对应的最终的情感类别输出。

在上述实现过程中,预先通过大量的训练文本对bi-lstm模型进行训练,从而使得训练后的bi-lstm模型可以对文本的情感类别准确的分类。

另外,在训练bi-lstm模型的过程中,还可采用基于交叉损失函数对所述bi-lstm模型进行训练,当所述交叉损失函数的值小于预设值时,完成所述bi-lstm模型的训练。

其中,交叉损失函数为:

其中,n为情感类别的个数,yi为期望输出,为训练过程中所述bi-lstm模型的输出,loss为交叉损失函数。

根据训练过程中获得的loss,使用梯度下降算法来训练处各个lstm单元以及分类层的参数,如上述的权重、偏置等参数。

其中,预设值可根据实际需求设置,如预设值为0.001时,则当loss值小于0.001或者bi-lstm模型迭代次数达到预设的最大值时停止训练,表示bi-lstm模型训练完成。

另外,由于基于情感词典方法标注数据会有一些标注错误的数据,为了减少这种数据对情感分类的影响,进一步提高bi-lstm模型对情感分类的准确性,在基于上述方式训练好bi-lstm模型后,可采用人工标注的样本对bi-lstm模型进行微调,微调时可只训练模型的分类层中的网络参数,如上述全连接层中的权重、偏置等网络参数,然后微调后的网络参数作为最终bi-lstm模型的网络参数。

在上述实现过程中,预先通过大量的训练文本对bi-lstm模型进行训练,从而使得训练后的bi-lstm模型可以对文本的情感类别准确的分类。

请参照图5,图5为本申请实施例提供的一种文本情感分类装置200的结构框图,该装置可以是电子设备上的模块、程序段或代码。应理解,该文本情感分类装置200与上述图3方法实施例对应,能够执行图3方法实施例涉及的各个步骤,该文本情感分类装置200具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。

可选地,该装置用于通过双向循环神经网络bi-lstm模型对文本进行情感分类,所述bi-lstm模型包括:第一bi-lstm层、第二bi-lstm层以及分类层,所述装置包括:

词向量获取模块210,用于获取待分类的目标文本中的目标关键词对应的目标词向量;

句法特征提取模块220,用于将所述目标词向量输入到所述第一bi-lstm层,通过所述第一bi-lstm层对目标词向量的句法特征进行提取,输出表征所述句法特征的目标句法特征向量,其中,所述句法特征用于表征所述目标关键词在所述目标文本中的上下文信息;

语义特征提取模块230,用于通过所述第二bi-lstm层对所述目标句法特征向量的语义特征进行提取,输出表征所述语义特征的目标语义特征向量,其中,所述语义特征用于表征所述目标关键词在所述目标文本中的语义信息;

情感类别确定模块240,用于通过所述分类层基于所述目标词向量、所述目标句法特征向量以及所述目标语义特征向量确定所述目标文本对应的情感类别。

可选地,所述情感类别确定模块240,具体用于:

通过所述分类层将所述目标词向量、所述目标句法特征向量以及所述目标语义特征向量进行加权,获得加权向量;

通过所述分类层基于所述加权向量预测所述目标文本对应的各个情感类别的概率值;

通过所述分类层根据所述目标文本对应的各个情感类别的概率值确定所述目标文本对应的情感类别。

可选地,所述情感类别确定模块240,还具体用于通过所述分类层将所述目标文本对应的各个情感类别的概率值中概率值最大的情感类别确定为所述目标文本对应的情感类别。

可选地,所述句法特征提取模块220,具体用于:

基于当前时刻输入的所述目标词向量与上一时刻所述第一bi-lstm层的bi-lstm单元的隐含层输出的目标句法特征向量通过sigmoid函数计算获得遗忘门的输出值;

基于当前时刻输入的所述目标词向量与上一时刻所述第一bi-lstm层的bi-lstm单元的隐含层输出的目标句法特征向量通过sigmoid函数计算获得输入门的输出值;

基于当前时刻输入的所述目标词向量与上一时刻所述第一bi-lstm层的bi-lstm单元的隐含层输出的目标句法特征向量通过tanh函数计算获得临时bi-lstm单元细胞状态的值;

基于所述遗忘门的输出值、所述输入门的输出值、所述临时bi-lstm单元细胞状态的值以及上一时刻bi-lstm单元细胞状态的值计算获得当前时刻bi-lstm单元细胞状态的值;

根据上一时刻隐含状态值,当前时刻输入的所述目标词向量以及所述当前时刻bi-lstm单元细胞状态的值获得当前时刻隐含状态的输出向量;

根据各个时刻隐含状态的输出向量获得所述第一bi-lstm层中的前向lstm网络的输出向量;

根据各个时刻隐含状态的输出向量获得所述第一bi-lstm层中的后向lstm网络的输出向量;

将所述第一bi-lstm层中的前向lstm网络的输出向量与所述后向lstm网络的输出向量进行拼接,获得所述第一bi-lstm层输出的目标句法特征向量。

可选地,所述装置还包括:

训练模块,用于获取多个训练文本,每个训练文本包括训练关键词,每个训练文本标注有对应的情感类别;将所述训练关键词对应的词向量作为所述bi-lstm模型的输入,将所述每个训练文本标注的情感类别作为所述bi-lstm模型的输出,对所述bi-lstm模型进行训练,获得训练好的所述bi-lstm模型。

可选地,所述训练模块,还用于:

获取多个原始文本;

对所述多个原始文本进行数据清洗,以清除所述多个原始文本中无用的文本,获得多个训练文本;

对每个训练文本进行分词处理,获得每个训练文本对应的训练关键词;

基于情感词典对每个训练文本对应的训练关键词进行情感类别标注,获得每个训练文本对应的情感类别。

可选地,所述训练模块,还用于基于交叉损失函数对所述bi-lstm模型进行训练,当所述交叉损失函数的值小于预设值时,完成所述bi-lstm模型的训练。

请参照图6,图6为本申请实施例提供的一种电子设备的结构示意图,所述电子设备可以包括:至少一个处理器310,例如cpu,至少一个通信接口320,至少一个存储器330和至少一个通信总线340。其中,通信总线340用于实现这些组件直接的连接通信。其中,本申请实施例中设备的通信接口320用于与其他节点设备进行信令或数据的通信。存储器330可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器330可选的还可以是至少一个位于远离前述处理器的存储装置。存储器330中存储有计算机可读取指令,当所述计算机可读取指令由所述处理器310执行时,电子设备执行上述图3所示方法过程。

本申请实施例提供一种可读存储介质,所述计算机程序被处理器执行时,执行如图3所示方法实施例中电子设备所执行的方法过程。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。

综上所述,本申请实施例提供一种文本情感分类方法、装置、电子设备及可读存储介质,该方法中,通过bi-lstm模型中的第一bi-lstm层来提取句法特征,通过第二bi-lstm层来提取语义特征,然后将两层的输出以及输入的词向量均输入分类层,再通过分类层基于句法特征向量、语义特征向量以及输入的词向量来确定目标文本的情感类别,由于本申请中可以提取目标关键词的句法特征以及语义特征,所以使得获取的信息可以更加全面,从而可以更加深入理解目标文本的内在含义,进而有效提高分类结果的准确性。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1