一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种细粒度情感分析方法与流程

2021-11-24 18:50:00 来源:中国专利 TAG:
1.本发明涉及自然语言处理领域,具体涉及一种细粒度情感分析方法,用于抽取评论文本中的评价对象并判断其情感极性的方法。
背景技术
::2.细粒度情感分析,是目前自然语言处理领域中最热门的一项语义分析任务,其目的在于抽取非结构化的评论文本中的评价对象(关键词),并根据上下文得到其对应情感极性。细粒度情感分析任务的提出是因为过去粗粒度情感分析任务无法满足当下人们的需求。粗粒度情感分析任务的对象是一个文档(句子),它只能得到文档(句子)整体的情感极性倾向。但是现实世界中的事物都是多方面的,一个评论文本往往会对同一个事物的不同方面做出评价。如“这家餐厅食物很好吃,但是服务态度很差,交通也不方便。”这句评论涉及了三个评价对象且评价的极性也不同。粗粒度情感分析来分析该评论文本的时候就无法做出多方面、客观的评价,相比之下,细粒度情感分析则可以识别出“食物、”“服务态度”“交通”三个评价对象及对应情感极性。细粒度情感分析可以提取出更具体、更多元、更客观的信息,这一点具有十分广阔的应用前景和潜在价值。对于用户而言,用户可以更方便的了解自己想了解的部分,用更少的精力更高效地完成自己对商品的筛选;对于商家而言,商家可以迅速察觉自己商品不受欢迎的具体原因或是用户最喜爱的方面,这些信息有助于商家调整自己的销售策略和进行产品优化,创造更高的收益。3.细粒度情感分析任务的主流方法是将任务拆解为评价对象抽取和情感极性分析两个子任务。评价对象抽取任务的常见解决方法是将抽取任务转化为序列标注任务。如wang等人【recursiveneuralconditionalrandomfieldsforaspect‑basedsentimentanalysis】就利用深度学习的特征提取能力,采取循环神经网络(recurrentneuralnetwork)与条件随机场(crf)相结合的方式抽取评论文本中的评价对象和评价词。yan等人【graphconvolutionalnetworksfortarget‑orientedopinionwordsextractionwithadversarialtraining】也使用了深度学习的方法,他们使用图卷积神经网络来提取深层特征,同时用对抗训练的方法提升模型的鲁棒性,并取得了不错的效果。但是上述两个模型仍然存在缺陷,wang采用的循环神经网络提取特征的能力较弱,比如会遗忘距离过远的信息,而且其使用word2vec的词向量表达方式效果也不如现在流行的bert方法;yan使用自定的output层为序列标注问题添加约束,从数学角度来讲效果不如条件随机场。对于情感极性分析任务而言,其核心问题在于如何使模型识别上下文和评价对象的关系。ma【interactiveattentionnetworksforaspect‑levelsentimentclassification】提出了ian(interactiveattentionnetworks)用于分别提取上下文和评价对象的隐藏态,并将该隐藏态分别添加到对方的序列上,再利用注意力机制分别提取上下文和评价对象的最终表示,用它来做最后的极性分类。ma在论文中展现了注意力层的权重,说明了注意力机制在该任务中的可行性。技术实现要素:4.鉴于上文所描述的问题,本发明提出了一种新方法用来解决评价对象抽取任务和评价对象情感极性分析任务,并将两者连接起来完成细粒度情感分析总任务。5.根据本发明的第一方面,提供一种用于细粒度情感分析的方法,其特征在于,所述方法包括以下步骤:6.步骤1:为数据集中每条样本生成序列标签和位置嵌入向量、标识样本的首尾并补齐样本长度,之后将样本转化为整数编码序列,输入bert模型生成样本的嵌入向量;7.步骤2:搭建实体数量预测模型、实体起始位置标注模型和实体长度预测模型,并将步骤1中的样本的嵌入向量分别输入三个模型进行训练,完成评价对象提取任务;8.步骤3:搭建情感预测模型,并将步骤1中的样本的嵌入向量输入情感预测模型进行训练,完成情感极性分析任务;9.步骤4:顺次连接训练后的实体数量预测模型、标注模型、实体长度预测模型以及情感预测模型,输入待预测文本,抽取评价对象并分析评价对象的情感极性。10.进一步地,步骤2中,实体数量预测模型的搭建步骤具体包括:11.搭建输入层,输入向量化的文本序列;12.搭建可训练的位置嵌入(positionembedding)模型,与向量输入连接相加;13.搭建批量归一化(batchnormalization)模型,使得加上positionembedding模型的样本近似服从n(0,1)分布;14.搭建双向门控循环单元(bi‑gru)网络提取样本特征,增强词语间的前后联系;15.搭建注意力池化(attentionpooling)模型,对样本特征进行降维压缩;16.使用focalloss作为损失函数、nadam作为优化器,将步骤1中的样本的嵌入向量输入实体数量预测模型进行训练。17.进一步地,步骤2中,标注模型的搭建步骤具体包括:18.搭建输入层,输入向量化的文本序列;19.搭建可训练的positionembedding模型,与向量输入连接相加;20.搭建batchnormalization,使得加上positionembedding的样本近似服从n(0,1)分布;21.搭建集成学习层,将bi‑gru网络、动态图卷积神经网络(dgcnn)、有序长短时记忆模型(on‑lstm)和多头注意力机制(multi‑headattention)模型融合;22.将步骤1中的样本的嵌入向量输入标注模型进行训练。23.进一步地,集成学习层的搭建步骤具体包括:24.搭建bi‑gru网络,增强样本词语间的前后联系,通过奇异值矩阵分解(svd)算法将其输出分解,仅取其奇异值矩阵v;25.搭建dgcnn网络,将序列中的前后语句构建联系;26.搭建on‑lstm模型,提取语句的层次结构;27.搭建multi‑headattention模型,提取词语间的相互影响关系;28.将未经过任何处理的bi‑gru网络的输出直接输入进dgcnn网络、on‑lstm模型以及multi‑headattention模型,得到以上各个模型的输出,再将所得输出与经过dense处理的奇异值矩阵v进行点积,处理得到经过dgcnn网络,on‑lstm模型以及multi‑headattention模型的中间输出;29.将处理后的中间输出相加得到最终输出。30.进一步地,搭建dgcnn网络时,膨胀系数取句长除以8。31.进一步地,搭建on‑lstm模型时,层次数量取4。32.进一步地,步骤2中,实体长度预测模型的搭建步骤具体包括:33.搭建输入层,输入向量化的文本序列;34.搭建可训练的positionembedding模型,与向量输入连接相加;35.搭建batchnormalization使得加上positionembedding的样本近似服从n(0,1)分布;36.搭建bi‑gru网络提取样本特征,增强词语间的前后联系;37.搭建crf算法通过实体的起始位置作为约束,预测实体的长度。38.进一步地,步骤3中,情感极性分析模型的搭建步骤具体包括:39.搭建输入层,输入向量化的文本序列和向量化的实体序列;40.搭建attentionpooling层与dense层处理实体序列,统一其长度;41.搭建条件层归一化(conditionlayernormalization),将文本序列作为输入,处理后的实体序列作为约束,得到情感倾向隐藏态;42.搭建两层bi‑gru网络,输入情感倾向隐藏态进一步提取隐藏特征;43.搭建胶囊网络(capsule),分析bi‑gru传递的隐藏特征得到不同情感分类的概率。44.根据本发明的第二方面,提供一种用于细粒度情感分析的系统,所述系统包括:处理器和用于存储可执行指令的存储器;其中,所述处理器被配置为执行所述可执行指令,以执行如以上任一方面所述的细粒度情感分析的方法。45.根据本发明的第三方面,提供一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行时实现如以上任一方面所述的用于细粒度情感分析的方法。46.本发明的有益效果:47.1.本发明采用三个模型配合完成评论对象抽取的任务,相对于其他单模型的方法,本发明的方案有更好可解释性;同时本发明实体数量预测模型和实体词起始位置标注模型结合可以解决null实体的问题,实体null在本任务中表示语句在形容某个实体但是语句中并未提及该实,而传统的标注模型则无法识别实体null。48.2.本发明实体数量预测模型采用gru为主体,输入时引入positionembedding与batchnormalization,降维处理时采用attentionpooling,提出了新的模型来解决新的子任务。训练时损失函数采用改良的focalloss和nadam优化器帮助收敛,训练图的结果显示出模型一直在稳定收敛,同时训练完成后的模型在评价指标上的表现均有提升。49.3.本发明的实体词起始位置标注模型将bi‑gru、dgcnn、on‑lstm和multi‑headattention算法组合在一起,与传统模型只选用一种特征提取方式的做法相比,提高了准确性。50.4.本发明的长度预测模型使用b、e、o三标签进行标注,可以有效解决传统模型无法区分多个实体相连的样本。传统模型预测时仅使用0和1对实体与分实体标注,故对相邻连续实体标注时只能识别为一个实体;本发明则能够通过b标签截断相邻实体,达到区分效果。51.5.本发明的情感预测模型采用胶囊(capsule)网络,可以完成多标签分类任务,而传统模型都仅能完成单标签分类任务。此外,本发明采用conditionlayernormaliztion算法,可以解决同一条语句输入不同的实体时其中间结果趋同的问题,而传统算法无法处理同输入语句结果趋同的情况。同时,该模型较传统模型而言,有更高的准确率,表现更好。附图说明52.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。53.图1示出根据本发明实施例的细粒度情感分析方法流程图;54.图2示出根据本发明实施例的中间打标签结果示意图;55.图3示出根据本发明实施例的实体数量预测模型示意图;56.图4示出根据本发明实施例的标注模型示意图;57.图5示出根据本发明实施例的中间输出结果示意图;58.图6示出根据本发明实施例的实体长度预测模型示意图;59.图7示出根据本发明实施例的中间标签结果示意图;60.图8示出根据本发明实施例的情感预测模型示意图;61.图9示出根据本发明实施例的打标签中间结果示意图;62.图10示出根据本发明实施例的标注结果示意图;63.图11示出根据本发明实施例的实体长度预测模型输出结果示意图。64.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式65.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。66.本公开的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。67.此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。68.多个,包括两个或者两个以上。69.和/或,应当理解,对于本公开中使用的术语“和/或”,其仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。70.本发明技术方案提供一种细粒度情感分析方法,如图1所示,该方法包括以下步骤:71.s1:为数据集中每条样本生成序列标签和位置嵌入向量、添加“<start>”和“<end>”标志以标识样本的首尾、添加标签“<pad>”以补齐样本长度,之后将样本通过词典转化为整数编码序列,输入bert模型生成样本的嵌入向量;72.s2:搭建实体数量预测模型、实体起始位置标注模型和实体长度预测模型完成第一阶段opiniontargetextraction(ote)任务;73.s3:搭建情感预测模型完成第二阶段opinionsentimentclassification(osc)任务;74.s4:连接四个模型,对待预测文本进行分析最终得到情感极性分析结果。75.步骤2的实体数量预测模型利用输入语句预测出该输入语句中实体的数量,之后与标注模型结合,可判断出句子中包含的null实体,其由positionembedding、batchnormalization、bi‑gru和attentionpooling构成,同时使用focalloss作为损失函数、nadam作为优化器进行训练提升模型的训练精度;76.所述positionembedding通过输入语句对应位置序列,即0,1,2,3……len_v‑1,len_v为输入语句的长度,输入至embedding层中,即可得出完全可训练的positionembedding,同时其使用了随机正交矩阵初始化参数这保证了位置向量的正交性,其与输入的词向量相加后可以使语句每个词间的关系可通过位置向量约束得到;77.所述batchnormalization指μ和方差σ2,之后通过中心极限定理,将样本近似转化为服从n(0,1)分布,最后学习两个参数以修正误差,一个参数通过乘以样本,使得样本缩放,另一个参数加上样本,使得样本平移,这样通过中心极限定理和缩放平移样本两种手段,最终使得样本近似服从n(0,1)分布;78.所述bi‑gru指双向的、由门限单元组成的循环神经网络,其门限单元包括更新门和重置门结构,该网络的双向结构和门限单元可以获取各个单词的前后联系;79.所述attentionpooling中,pooling是对数据进行降维压缩,但不同于往常方法通过丢弃大量数据以压缩样本维度,attentionpooling将输入语句送入softmax激活的dense网络中,从而计算出池化区域内每个数值的权重,再将数值根据此权重加权求和以得到输出;80.所述focalloss损失函数通过降低大量简单负样本在训练中所占的权重以提高少量正样本的分类精度,同时该损失函数还考虑样本分类的难度,共使用类别样本数量的倒数和分类难度两个参数调节不同类别样本梯度的权重,此处将focalloss扩展到多分类任务中;81.所述nadam是采用nesterov动量项的adam,adam指当前梯度的计算不会受前一时刻动量的影响,仅在计算最终反向传播的梯度时,会将前一时刻的动量作为约束项的优化方式。而nesterov动量项在更新当前动量时,以前一时刻动量作为约束项,从而使得整个训练过程的动量相互之间存在影响,进而影响到每次反向传播的梯度中,这使得梯度更新被放缓,但灵敏度被大大提高。82.positionembedding通过将输入语句对应的位置序列,即0,1,2,3……len_v‑1,len_v为输入语句的长度,输入至embedding层中,即可得出完全可训练的positionembedding。embedding层使用了随机正交矩阵初始化参数这保证了位置向量的正交性。但随着模型的训练,embedding层参数会跟随loss而修正,从而破坏参数的正交性,因此得到的位置向量是近似正交的。83.batchnormalization解决偏移,本模型在positionembedding和语句向量相加后,很容易产生内部协变量偏移,即数据的分布产生较大偏移。空间上表现为,数据从一个均值点,偏移到另外一个均值点,并且数据更分散或者更聚集,即方差的改变。这使得后面的模型在训练时,若使用了具有饱和区或者死区的激活函数,则可能使得模型更新时产生较大震荡,或者使得模型无法正常更新。比如对使用了elu激活函数的神经网络,当数据均值偏移到负值时,那么大部分数据均落在了elu的死区中,会造成使用该函数激活的层无法正常更新,这使得模型仅可在较低学习率和更严格且细致的参数初始化时,才可正常工作。但较低的学习率降低了模型的速度,更严格且细致的参数初始化增加了模型的设计难度。故模型采用batchnormalization防止此缺陷。84.attentionpooling继承与pooling方法,而往常用到pooling方法均通过丢弃大量数据以压缩样本维度。比如maxpooling,该pooling方法通过选取预先给定的区域大小,将该区域内最大值选出,其他值丢掉,这样极大的损失了向量的信息,破坏了相关性等语义信息。attentionpooling将输入语句送入softmax激活的dense网络中,比如输入数据shape为(16,8,32),dense网络的unite为1,softmax的axis参数也为1,这样dense网络的输出数据shape就变为了(16,8),在将dense网络的输出乘以输入数据,然后沿着1轴相加,最终得到数据的shape为(16,32)。上面所示的运算中,dense网络计算得出的数据为该句中每个单词的权重,将该单词的权重乘以对应的单词,然后一个句子中的单词相加。85.focalloss即是在损失函数的角度以解决类别不均衡的问题,该损失函数通过降低大量简单负样本在训练中所占的权重,以提高小量正样本的分类精度。在类别不均衡问题中,传统的解决办法是通过引入参数,该参数取各个类别样本数量的倒数之比,将该参数乘以损失函数,以均衡正负样本数量不均衡对梯度大小的影响,但是该方法仅仅均衡了梯度,并未考虑样本分类的难以程度。focal_loss将样本分类的难易程度也考虑进去了,增加了一个参数,通过两个参数调节不同类别样本梯度的权重。本任务样本分布较为不均衡,一条样本中存在2个实体的居多,也有极少量样本存在8个实体,因此采用focal_loss缓解样本不均衡的问题。86.nadam特征采用nesterov动量项的adam。而在adam中,当前梯度的计算不会受前一时刻动量的影响,仅在计算最终反向传播的梯度时,会将前一时刻的动量作为约束项。而nesterov动量项在更新当前动量时,以前一时刻动量作为约束项,从而使得整个训练过程的动量相互之间存在影响,进而影响到每次反向传播的梯度中,这使得梯度更新被放缓,但灵敏度被大大提高。87.步骤2的实体起始位置标注模型利用输入语句,标注出语句所含实体的起始位置,再结合实体长度预测模型,即可抽取出完整的实体,其主体部分为集成学习方法,将bi‑gru、dgcnn、on‑lstm和multi‑headattention算法组合在一起,以得到更高的准确率,本模型采用可学习参数和svd算法组合集成学习的多路结果。88.集成学习将bi‑gru、dgcnn、on‑lstm和multi‑headattention组合在一起,集成方式选择可学习参数进行结果集成,通过svd算法分解编码层输出结果得到奇异值矩阵,在将该矩阵输入至tanh激活的dense层中,将其结果作为集成参数,用于组合各个模型的输出;89.集成学习指在同一个数据集中,不同的模型会存在不同的分类效果。集成学习就是将多个模型的结果以某种方式进行组合,使得模型间产生互补。模型结果组合的方式可以分为两类,一类是固定参数组合,即通过一个固定的参数利用加和乘等运算将结果组合在一起,由于参数是固定的,因此效果非常依赖经验和实验,并不实用且效果有限。第二类是可学习参数组合,即通过某种方式得到一组与模型结果相关的参数,以此参数对结果组合,通常使用softmax激活的dense层对模型结果进行运算,将输出作为组合参数;90.svd广泛应用于降维算法和推荐系统中,是一种矩阵分解算法,类似于线性代数中的特征分解。特征分解是将一个矩阵分解为特性向量乘特征值在乘以特征向量的逆的形式,该算法具有较强的约束条件,并不适用于全部矩阵,仅适用于部分方阵。svd同样将矩阵分解为一个矩阵乘以对角阵在乘以矩阵的转置的形式,其中对角阵仅主对角线有值,对角线元素被称为奇异值,也被称为奇异值矩阵;91.在集成学习中,通常使用一个可训练参数去乘以模型的输出并将结果相加,这种方法自适应的给予不同模型不同的权重,而每个模型的输出中每个维度的向量包含了丰富的信息,一个数据的具体表达由组成该数据的各个向量决定。当使用一个参数去直接乘以结果后,会将整个向量缩放相同的倍数,而一个数据中不同的向量对分类影响是不同的,若整体缩放会忽略数据中某些向量对分类器的积极影响。而奇异值矩阵中奇异值与特征分解中的特征值类似,均起到拉伸矩阵某一方向的向量的作用,若将一个矩阵的奇异值矩阵提取出来,即可实现自适应的对单个数据中单个向量进行缩放,之后在将结果相加,即可在更细粒度的组合多个模型。92.bi‑gru用于增强样本中词语的前后联系,使得每个单词的编码受句中其他单词的影响,使得句中各个单词在向量空间中产生联系,在本模型中,通过使用svd算法将bi‑gru的输出分解,仅取其奇异值矩阵,记做v。将bi‑gru的输出通过不同算法后与v点积,即可得到各个模型的最终输出。其中,点积的两个输入分别为v,其shape为(bench_szie,句长),和经过各种算法的bi‑gru输出,其shape=(bench_size,句长,单词维度)。点积后的输出shape为(bench_size,单词维度),可见,该方法也承担了pooling的角色。93.dgcnn用于增强样本中跨度较大的词语间的联系,bi‑gru由于存在遗忘门,单词向后作用的步长有限,很难使较长步长的单词间产生联系,而dgcnn依靠其膨胀卷积,只要将膨胀系数设置的足够大,即可使得各个相较很远的单词产生相应的联系,而门控机制可以控制联系的大小,使得膨胀卷积不仅可联系相距较远的单词还可以赋予其相关性的含义。dgcnn较普通cnn增加了两个功能。第一个增加的功能是膨胀卷积,在普通cnn中,相邻两次卷积操作的卷积核卷积的位置是相邻的,但是膨胀卷积相邻两次卷积操作的卷积的位置是跳跃的,其间隔由膨胀系数决定。当相邻两次卷积操作所卷积的位置存在间隔时,相当于将不相邻的多个单词联系了起来,增加了语句的前后联系。该操作与循环卷积网络达到的效果相似,循环卷积网络通过传递状态,将序列中的前后语句联系起来。本模型中dgcnn的膨胀系数为句长除以8。第二个增加的功能是门控卷积。由于一个句子中不同位置对分类器的贡献是不同的,因此可以使用一个在0和1之间的小数来衡量一句话中某一单词的贡献,当该单词的贡献小时可以乘以一个很小的系数,以减小其对分类器的影响。门控卷积就是为每个位置生成一个系数,用该系数乘以膨胀卷积的输出以获得近似剔除无用信息的数据。门控卷积通过将膨胀卷积的输出使用sigmoid激活,在乘以膨胀卷积的输出以达到门控的效果。94.on‑lstm用于为样本增加语句层级信息。lstm算法可对语句在时间顺序上建模,将语言视为顺序模型,没有考虑到语句的层次结构。分析lstm的算法可知,在lstm的运算过程中,存在状态的转递,即前一计算单元可将计算后的数据通过遗忘门传递给后一次计算,由于存在遗忘门,某一数据的传递总是有限次数的。若将第n次计算称之为一个神经元,将其输出的数据称之为状态,当该状态在之后的计算中通过神经元的个数记为num。若以num值进行排序,将具有相同num值的神经元代表的位置的数据提取出来,以具有相同num值的词作为该句的同一句法层次,即可近似描绘出语句的层次结构。on‑lstm即通过上述方法,将语句的层次结构提取出来,on‑lstm存在一个主要参数,即层次数量,表示应将语句划分出几个层次,本模型选择4层。95.标注模型输出的实体个数可能与实体数量预测模型给出的数量不符,共有一下三种情况:一是标注模型的结果与实体数量相符,则直接保留结果;二是标注模型的结果多于实体数量,则按标注模型输出的概率大小进行排序,删除概率最小的超出数量的实体;三是标注模型的结果少于实体数量,则输出时添加null补到实体数量。96.步骤2的实体长度预测模型采用bi‑gru作为模型主体,以crf算法作为模型损失函数。97.crf算法以实体的起始位置作为约束,预测实体的长度。单独使用crf算法也可以抽取出实体,但crf算法查全率较标注模型低,因此采用标注模型先提取出实体起始位置的方法,作为crf算法的约束输入至实体长度预测模型中,提高crf的查全率。crf算法在训练中,相当于一个特殊的损失函数,将学习词语前后关系的任务转移到损失函数处实现。crf是以路径为单位,考虑某条路径的概率,即将每个位置可能的情况均计算出来,以样本中最大概率的组合路径作为最终结果。例如,存在一个样本长度为8,样本中每个单词可能属于3个类别,分别为名词n,形容词a和动词v,crf会将每个单词的位置分布假定为n、a和v,然后将全部位置的概率相加,作为该种情况的概率,最后在所有情况中选出概率最高的一种,该计算方式就类似于选择路径,每个位置均有三个方向可以选择。98.crf存在一个问题,就是当选择路径中的某一步选错了方向,那么后面很容易全部选错。并且,crf在考虑全部情况时,需要的计算量非常大,上例就需要计算3的8次方。因此,本模型使用另一个单独的模型来提取实体的开头,以实体的开头作为crf计算空间的约束,使得crf的计算量大大减少。99.步骤3的情感预测模型利用实体作为conditionlayernormalization算法的条件,使得同一条语句可在实体不同的情况下,归一化至不同的分布,以解决同一条样本中,多个实体情感极性不同的情况下模型会将同一样本的所有实体归为同一情感极性的问题。再使用attention‑pooling先将实体降维,之后输入至正交初始化参数的dense中。最终,本模型以capsule算法作为模型输出,以解决一个实体对应多个情感极性的问题。100.conditionlayernormalization算法是将数据进行归一化操作,可达到与batchnormalization同样的效果,不同的是,batchnormalization是将整体数据进行归一化操作,而layernormalization是将单个样本进行归一化操作。batchnormalization更专注于解决算法输入数据,每批次间分布偏移较大,导致训练震荡严重的问题,而layernormalization在更细粒度的层面解决了这个问题。而本模型使用了layernormalization中的condition方式,即使用一个条件控制单个样本归一化中的缩放和平移参数。在归一化时,会计算出样本的期望和方差,并利用大数定律,近似归一化样本,之后在使用缩放和平移参数近似补偿误差。conditionlayernormaliztion即通过控制缩放和平移误差,控制样本的空间分布。本模型使用实体作为条件,控制输入样本的空间分布,使得样本可在样本中不同实体的控制下有不同的空间分布,以判断不同实体在同一样本中的情感倾向。101.attention‑pooling与dense结合目的是使得实体的向量维度统一,由于实体长度不等,简单的对实体进行加或乘以统一实体的空间维度,会使得实体向量的表示能力严重下降。若将全部实体的向量维度补齐至最长的实体时,长实体是少数,大多数实体长度为1,太多的padding会使得实体向量中无用信息过多,导致后续模型对实体的编码能力下降。102.胶囊网络(capsule)不仅仅可以得出输入样本是否属于某一类,还可以得出输入样本是否属于多个类别。本任务中,对于某个实体可能存在多种情感倾向,而传统的分类方式仅可得出样本是否属于某一类,在样本属于多个类别的情况下传统的分类方式将失效。capsule算法类似可训练的聚类算法,通过样本的迭代使得capsule算法可学习到每个类别的类别向量,对应至距离算法中就是每个类别的中心向量。在输出时,只要将类别向量点乘输入样本,即可得到该样本在该类别中的概率,且类别间相互独立,一个样本可以属于多个类别,因此胶囊网络算法可以进行多标签分类。103.实施例104.本实例提供了一种细粒度情感分析方法,该方法包括以下步骤:105.获取数据集,将数据集中每条数据打上序列标签。106.如给定文本“theprixfixemenuiswortheverypennyandyougetmorethanenough.”,实体为prixfixemenu,极性为positive。107.先对给定文本分词,添加首位标记,并填充空位符得到序列(<start>,the,prix,fixe,menu,is,worth,every,penny,and,you,get,more,than,enough,.,<pad>,<end>),随后对其打标签得到如图2所示结果。108.下面给出实体经过模型每层处理的结果,具体数值为训练完成后的数值。109.搭建实体数量预测模型,如图3所示,包括positionembedding、batchnormalization、bi‑gru和attentionpooling,该步骤具体包括:110.将分词后的文本序列向量化得到(w1,w2,…,wn)。111.注:(<start>,the,prix,fixe,menu,is,worth,every,penny,and,you,get,more,than,enough,.,<pad>,<end>)的向量化结果为:112.一个86×词向量维度的张量,具体数值需通过模型得到113.将向量化的评论文本序列(w1,w2,…,wn)通过positionembedding计算出位置向量(pe1,pe2,…,pen)并相加得到序列(wpe1,wpe2,…,wpen)。114.注:实例的位置向量(pe1,pe2,…,pen)训练后的结果为:115.一个86×词向量维度的张量,具体数值需通过模型得到116.相加得到的序列(wpe1,wpe2,…,wpen)结果为:117.一个86×词向量维度的张量,具体数值需通过位置向量和词向量相加得到118.将相加得到的(wpe1,wpe2,…,wpen)通过batchnormalization得到归一化后的文本序列(wp1,wp2,…,wpn)。119.注:实例的batchnormalization后(wp1,wp2,…,wpn)的结果为:120.一个86×词向量维度的张量,具体数值需通过将相加后的向量输入模型后得到121.将文本序列(wp1,wp2,…,wpn)输入两层bi‑gru,经特征映射后得到隐藏特征(h1,h2,…,hn)。122.注:实例的隐藏特征(h1,h2,…,hn)结果为:123.一个86×gru神经元个数的张量,具体数值需通过将(wp1,wp2,…,wpn)输入模型后得到124.将隐藏特征(h1,h2,…,hn)通过attentionpooling进一步压缩降维得到隐藏特征(a1,a2,…,a3)。125.注:实例的隐藏特征(a1,a2,…,a3)结果为:126.一个86×压缩后维数的张量,具体数值需通过将(h1,h2,…,hn)输入模型后得到127.将隐藏特征(a1,a2,…,a3)通过两层dense层得到整数n,即为预测的实体个数。128.注:实例的输出结果为1,代表该实例有且仅有一个实体。129.使用处理好的数据集训练该实体数量预测模型,训练时使用多分类版本的facolloss作为损失函数,nadam作为优化器。130.搭建标注模型,如图4所示,包括positionembedding、batchnormalization、bi‑gru、dgcnn、on‑lstm和multiheadattention,该步骤具体包括:131.将向量化的评论文本序列(w1,w2,…,wn)通过positionembedding计算出位置向量(pe1,pe2,…,pen)并相加得到序列(wpe1,wpe2,…,wpen)。132.注:该步骤与实体数量预测模型对应步骤相同。133.将相加得到的(wpe1,wpe2,…,wpen)通过batchnormalization得到正则化后的文本序列(wp1,wp2,…,wpn)。134.注:该步骤与实体数量预测模型对应步骤相同。135.将文本序列(wp1,wp2,…,wpn)输入三层bi‑gru,经特征映射后得到隐藏特征(h1,h2,…,hn)。136.注:实例的隐藏特征(h1,h2,…,hn)结果为:137.一个86×gru神经元个数的张量,具体数值需通过将(wp1,wp2,…,wpn)输入模型后得到138.将隐藏特征(h1,h2,…,hn)分别通过dgcnn得到(hc1,hc2,…,hcn)、on‑lstm得到(ho1,h02,…,hon)、通过multiheadattention得到(ha1,ha2,…,han)。139.注:实例的(hc1,hc2,…,hcn)为:140.一个86×dgcnn设定的维数的张量,具体数值需通过将(h1,h2,…,hn)输入dgcnn模型后得到141.实例的(ho1,h02,…,hon)为:142.一个86×lstm神经元个数的张量,具体数值需通过将(h1,h2,…,hn)输入on‑lstm模型后得到143.实例的(ha1,ha2,…,han)为:144.一个86×gru神经元个数的张量,具体数值需通过将(h1,h2,…,hn)输入multiheadattention模型后得到145.将上述四个隐藏特征(h1,h2,…,hn)、(hc1,hc2,…,hcn)、(ho1,h02,…,hon)和(ha1,ha2,…,han)分别进行svd分解,将分解后的奇异值矩阵通过以tanh作为激活函数的dense层得到其对应权重系数k1、k2、k3、k4并相乘得到(h`1,h`2,…,h`n)、(hc`1,hc`2,…,hc`n)、(ho`1,ho`2,…,ho`n)和(ha`1,ha`2,…,ha`n)。146.注:实例的权重系数k1、k2、k3、k4为:0.7486,0.1354,0.5237,‑0.2113,其中k1的值最大,说明对于该实例文本,dgcnn模型的特征提取能力最强。147.将(h`1,h`2,…,h`n)、(hc`1,hc`2,…,hc`n)、(ho`1,ho`2,…,ho`n)和(ha`1,ha`2,…,ha`n)相加得到集成后的隐藏态(hr1,hr2,…,hrn)。148.注:实例的隐藏态(hr1,hr2,…,hrn)为:149.一个86×768的张量,具体数值需通过模型对应操作得到150.将(hr1,hr2,…,hrn)输入dense层,并使用实体数量预测模型得到n作为约束,得到一串长度为n的01序列,其中1即代表实体首单词位置。151.注:实例的输出结果如图5所示。152.prix的标签为1代表其为实体首单词。153.使用处理好的数据集训练该标注模型。154.搭建实体长度预测模型,如图6所示,包括positionembedding、batchnormalization、bi‑gru和crf,该步骤具体包括:155.将向量化的评论文本序列(w1,w2,…,wn)通过positionembedding计算出位置向量(pe1,pe2,…,pen)并相加得到序列(wpe1,wpe2,…,wpen)。156.注:该步骤与实体数量预测模型对应步骤相同。157.将相加得到的(wpe1,wpe2,…,wpen)通过batchnormalization得到正则化后的文本序列(wp1,wp2,…,wpn)。158.注:该步骤与实体数量预测模型对应步骤相同。159.将文本序列(wp1,wp2,…,wpn)输入三层bi‑gru,经特征映射后得到隐藏特征(h1,h2,…,hn)。160.注:实例的隐藏特征(h1,h2,…,hn)结果为:161.一个86×gru神经元个数的张量,具体数值需通过将(wp1,wp2,…,wpn)输入模型后得到162.将隐藏特征(h1,h2,…,hn)通过一层dense降维后输入crf,通过标注模型输出的首单词位置对viterbi算法进行约束,最终输出b、e、o标签。163.使用处理好的数据集训练该实体长度模型。164.将实体长度预测模型输出的b、e、o标签处理为对应实体,具体的,b代表实体首单词,e代表实体其余单词,o代表无关词,提取b、e对应位置的单词即为实体。165.注:实例输出的标签结果如图7所示。166.通过提取以b为首e为结尾的实体可以得到实体prixfixemenu。167.搭建情感预测模型,如图8所示,包括attentionpooling、conditionlayernormalization、bi‑gru和capsule,该步骤具体包括:168.将向量化的实体序列(e1,e2,…,em)输入attentionpooling进行降维处理,并使用dense对其编码保证实体向量维度统一,得到实体信息(he)。169.注:实例prixfixemenu的实体信息(he)结果为:170.一个8×768的张量,具体数值需通过将词向量输入模型后得到171.将向量化的评论文本序列(w1,w2,…,wn)通过dense降维后,与实体信息(he)共同输入conditionlayernormaliztion,得到情感倾向分布(hs1,hs2,…hsn)。172.注:实例的情感分布为:173.一个86×768的张量,具体数值需通过将词向量输入模型后得到174.将情感倾向分布(hs1,hs2,…hsn)输入两层bi‑gru,经特征映射后得到隐藏特征(h1,h2,…,hn)。175.注:实例的隐藏特征(h1,h2,…,hn)结果为:176.一个16×gru神经元个数的张量,具体数值需通过将(hs1,hs2,…hsn)输入模型后得到177.将隐藏特征(h1,h2,…,hn)输入capluse得到各个情感类别的概率。178.注:实体输入胶囊网络的输出为3个向量,其长度分别对应positive、negative和neutral的概率,3个向量的长度分别为64,64,64,其中positive对应的值最大,则将该实体的情感判定为positive。179.使用处理好的数据集训练该情感预测模型。180.对于实例文本“itisfarmorepopularasabarthanasarestaurant,withonlyafewtablesandthewaiterbeingthebartender,butwegreatlyenjoyedtheunobtrusiveatmosphere.”181.其实体与对应情感极性如下:[0182][0183]先对给定文本去标点分词得到序列(<start>,it,is,far,more,popular,as,a,bar,than,as,a,restaurant,,,with,only,a,few,tables,and,the,waiter,being,the,bartender,,,but,we,greatly,enjoyed,the,unobtrusive,atmosphere,.,<pad>,<end>),随后对其打标签得到如图9所示结果。[0184]将该文本序列输入实体数量预测模型得到整数5,即代表该文本有5个实体。[0185]将该文本序列输入标注模型,得到标注结果如图10所示。[0186]其中标签为1的单词记为实体首单词。[0187]若标注模型识别的实体数量少于5个,则实体添加null表示语句在形容某个实体但是语句中并未提及该实体。[0188]将该文本序列输入实体长度预测模型,得到结果如图11所示。[0189]其中没有e标签,代表所有实体长度都为1。[0190]通过图11提取对应实体得到bar,tables,waiter,bartender,atmosphere这5个实体。[0191]将实体与对应文本输入情感预测模型,得到5个实体在3中情感分类上的概率为:[0192][0193]分别取最大值,最终得到对应分类结果为:[0194][0195]具体实验过程与分析[0196]评价指标:由于本文所选的数据集样本比例不太均衡,所以实验结果中没有选用分类正确率(accuracy)来衡量,而是使用少数类的准确率(precision)、召回率(recall)和二者的综合(f1‑measure)指标衡量。准确率是检索出相关文档数与检索出的文档总数的比率,衡量的是检索系统的查准率;召回率是检索出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的查全率。f值是召回率和准确率的加权调和平均,最常用的是f1测量指标。这些评测指标的相关关系见表1,计算分别如下。[0197]表1评测指标相关关系[0198][0199][0200][0201][0202]数据集介绍:本系统在semeval2014数据集上进行了实验。semeval是国际语义评测大会,是全球范围内影响力最强、规模最大、参赛人数最多的语义评测竞赛。而semeval2014数据集由两部分组成,分别包含两个领域laptop(笔记本电脑)和restaurant(餐馆)的twitter评价文本。其中两者总文本数超过6000条,并且每个文本中包含评价对象、评价对象的类别及对于评价对象的情感极性。每个领域的文本都涵盖到多分类的句子,例如,同一评价对象会有不同的情感评价(positive/negative/neural)。数据集的详细描述见下表2:[0203]表2数据集描述[0204][0205]为了进行合适的对比,同时实现了将问题转化为带极性的序列标注的混合模型方法【aunifiedmodelforopiniontargetextractionandtargetsentimentprediction】,记为um。um是基于联合方案的情感分析模型;以及实现了以gru‑crf为一阶段、ian为第二阶段的两步模型,记为gcian,并以两种方法作为基准进行实验对比,对比结果如表3所示。[0206]表3实验对比结果[0207][0208]具体分析模型性能:由以上表3可知,本文选择与um模型对比,是因为um基于联合的方案提取评价词和预测情感极性。整个模型用到了两层循环神经网络(rnn),上层的rnn用来预测联合的标签,下层的rnn来同时解决辅助任务‑意见目标实体的边界检测。这种整体学习的方法,如果在评价对象抽取任务中对实体检测出错的话,会直接传递到第二阶段,也就是放大误差。除此以外,本文实验的两个数据集中,一句话(文本)中同一个评价对象存在多种情感极性的情况,因此很难基于联合的方法去预测。[0209]对比gcian方法,gcian也是分两个阶段,第一个阶段是提取评价对象,第二阶段是情感分析。但是本文模型在第一阶段融入了位置嵌入向量,搭建批量归一化模型,把数据处理为接近n(0,1)分布,便于后续特征提取。第一阶段中基于实体数量预测模型,便于解决句子或样本中实体为“null”的这种情况,提高实体词提取的正确率;其次,数据经过bi‑gru网络提取样本特征,增强了词语间的前后联系,用集成方法集成了dgcnn、on‑lstm和multiheadattention模型,通过对训练集学习与模型结果相关的参数,对参数组合,通过softmax激活的dense层输出实体首字母,更清晰的标注出实体的位置;最后,基于crf模型标注实体词长度,解决了实体词是非单个单词的问题。第二阶段基于胶囊网络,利用实体作为conditionlayernormalization算法的条件,解决了同一条样本中,多个实体情感极性不同的情况下模型会将同一样本的所有实体归为同一情感极性的问题。大大提高了同一个实体对应同一种情感词的问题。[0210]需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。[0211]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。[0212]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。[0213]上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献