一种基于同步神经网络的意见二元组抽取方法转让专利

申请号 : CN201911124188.X

文献号 : CN110969014B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘杰陈少维王禹张文政

申请人 : 南开大学

摘要 :

一种基于同步神经网络的意见二元组抽取方法。在细粒度情感分析领域,意见二元组抽取是一个重要任务,该任务旨在挖掘意见句中包含的评价对象、评价词、以及两者间的修饰关系。给定意见句,本发明方法首先基于预训练语言模型BERT构建编码层,学习词的上下文语义。随后,交替构建多个识别层与同步层,以实现评价对象、评价词、以及两者间关系的同步抽取。具体地,识别层包含意见实体抽取与关系检测两个模块,同步层设计了两个同步矩阵(即,边界同步矩阵与关系同步矩阵)来记录识别层学习到的高层语义信息,并传递给下一个识别层,以实现意见实体抽取与关系检测的相互促进。最后,本方法利用一个推理层,基于识别层的结果获取最终的意见二元组。

权利要求 :

1.一种基于同步神经网络的意见二元组抽取方法,主要由编码层、多个交替的识别层与同步层、以及推理层组成;具体步骤如下:步骤1)编码层:基于预训练的语言模型构建词的上下文语义表示;

步骤2)识别层:基于步骤1)构建的词的上下文语义表示,同步抽取意见实体的边界、意见实体的类别与评价方面以及评价词之间的修饰关系;

识别层的具体操作方法如下:

步骤2.1)意见实体抽取;将意见实体抽取问题形式化为序列标注任务;综合考虑词的上下文语义和与其具有关联关系的词的语义,计算词与标签之间的匹配程度;

步骤2.2)关系检测;采用注意力机制对关系进行检测;具体地,在综合考虑词的上下文语义和其所属的意见实体的语义的基础上,计算词与词之间的关联关系,进而得到词之间的关联矩阵;

步骤3)同步层:基于步骤2)中意见实体抽取和关系检测的结果,设计边界同步矩阵与关系同步矩阵记录高层交互信息,为后续的识别层提供信息指导;两个矩阵均被初始化为全零矩阵,并且在每个同步层中不断进行更新;

同步层的具体操作方法如下:

步骤3.1)边界同步矩阵的构建;边界同步矩阵记录了任意两个词属于同一个意见实体的概率,该矩阵由步骤2.1)得到的词与标签之间的匹配程度转化得到;具体地,首先使用softmax和argmax变换计算词对应的预测标签;随后,基于预测的标签序列,计算实体的边界矩阵;最后,基于实体边界矩阵计算表示实体边界置信度的边界同步矩阵;

步骤3.2)关系同步矩阵的构建;过滤步骤2.2)中得到的关联矩阵中的噪音,得到关系同步矩阵;

步骤4)交替执行步骤2)与步骤3),以使得意见实体抽取与关系检测能够相互促进;

步骤5)推理层:将最后一个识别层的结果转化为最终的意见二元组;

推理层的具体操作方法如下:

步骤5.1)基于步骤2.1)得到的词与标签之间的匹配程度,利用条件随机场CRF计算词序列对应的标签序列;

步骤5.2)基于步骤5.1)得到的标签序列,抽取意见句中包含的意见实体;结合步骤

2.2)中得到的关联矩阵,判断评价对象和评价词之间是否存在修饰关系,进而得到最终预测的意见二元组。

2.根据权利要求1所述的基于同步神经网络的意见二元组抽取方法,其特征在于,步骤

1)编码层的具体操作方法如下:

步骤1.1)对评价文本进行分词处理,得到评价文本对应的词序列;

步骤1.2)对每个词,构建词向量、段落向量、以及位置向量,并将三种向量进行加和得到词的初始向量表示,并将此表示作为步骤1.3)中预训练语言模型的输入向量;

步骤1.3)使用BERT作为预训练语言模型,输入步骤1.2)得到的词的初始向量表示,将BERT最后一层的输出作为词的上下文语义表示。

说明书 :

一种基于同步神经网络的意见二元组抽取方法

技术领域

[0001] 本发明属于计算机应用技术,数据挖掘,细粒度情感分析技术领域。

背景技术

[0002] 随着信息技术的发展,互联网中积累了大量的用户评论数据。对这些评论数据进行语义分析和意见挖掘对各行业的发展具有重要意义,由此细粒度情感分析的相关研究逐渐受到广泛关注。其中,意见二元组抽取(即评价对象‑评价词二元组抽取)是一个重要的任务。
[0003] 为解决该任务,早期的方法主要采用流水线的方式。例如,Hu等人[1]首先识别意见句中包含的评价对象,再基于关联关系抽取评价对象相邻的形容词作为对应的评价词。Zhuang等人[2]首先抽取意见句中包含的评价对象与评价词,再使用依赖关系模板挖掘其关系。基于流水线的方法虽然可以较为简单的进行二元组的抽取,但是这类方法通常会忽略意见实体抽取与关系检测之间的依赖关系,并且会面临错误传导的问题。
[0004] 为了进一步考虑意见实体抽取和关系检测之间的依赖关系,一些研究工作提出了联合学习的方法。例如,Klinger等人[3,4]分析了评价对象和评价词之间的相互依赖关系,提出了一种基于因子图的联合推理模型来抽取评价对象、评价词和它们之间的关系。Yang等人[5]利用了整数线性规划的方式同时识别评价对象、评价词、意见持有人以及他们之间的关系。但是这些方法通常是基于浅层的机器学习模型,而且需要依赖于手工设计的特征或模板,这在一定程度上限制了二元组抽取的性能。
[0005] 近年来,深度学习的方法被广泛用于意见实体抽取任务,并且取得了很好的研究成果。Liu等人[6]设计了一种结合多种预训练词向量的循环神经网络方法来抽取评价对象。Xu等人[7]设计了一种卷积神经网络,并考虑领域性词向量来抽取评价对象。Wang等人[8,9]和Li等人[10]关注于评价对象和评价词的联合抽取,并使用深度学习方法取得了很好的性能。具体地,Wang等人[9]和Li等人[10]均采用了注意力机制来捕捉评价对象和评价词之间的潜在关系。Hu等人[11]将预训练的语言模型BERT[12]作为主干结构来抽取评价对象和其对应的情感极性。虽然深度学习技术在意见实体抽取任务中取得了很好的研究成果,但是意见二元组抽取任务依旧是一个未得到充分研究的问题,仍需要进行更多探索性的研究。
[0006] 综上,现有的意见二元组抽取技术主要可以分为两类:基于流水线的方式和基于联合学习的方式。这两类方法虽然在意见二元组任务上取得了一定的研究成果,但是仍存在问题。其中,由于分步学习的影响,基于流水线的方法通常存在错误传导的问题。而现有的基于联合学习的技术虽然可以避免错误传导,并进一步考虑意见实体抽取和关系检测之间的依赖关系,但是相关工作通常是基于因子图、整数线性规划等浅层的机器学习模型,而且需要依赖于手工设计的特征或模板,这在一定程度上限制了二元组抽取的性能。
[0007] 参考文献:
[0008] [1]Hu,M.,and Liu,B.2004.Mining and summarizing customer reviews.In SIGKDD2004,168–177.
[0009] [2]Zhuang,L.;Jing,F.;and Zhu,X.2006.Movie review mining and summarization.In CIKM 2006,43–50.
[0010] [3]Klinger,R.,and Cimiano,P.2013a.Bi‑directional interdependencies of subjective expressions and targets and their value for ajoint model.InACL 2013,848–854.
[0011] [4]Klinger,R.,and Cimiano,P.2013b.Joint and pipeline probabilistic models for fine‑grained sentiment analysis:Extracting aspects,subjective phrases and their relations.In ICDM 2013,937–944.
[0012] [5]Yang,B.,and Cardie,C.2013.Joint inference for finegrained opinion extraction.In ACL 2013,1640–1649.
[0013] [6]Liu,P.;Joty,S.R.;and Meng,H.M.2015.Fine‑grained opinion mining with recurrent neural networks and word embeddings.In EMNLP 2015,1433–1443.[0014] [7]Xu,H.;Liu,B.;Shu,L.;and Yu,P.S.2018.Double embeddings and cnn‑based sequence labeling for aspect extraction.InACL 2018,592–598.[0015] [8]Wang,W.;Pan,S.J.;Dahlmeier,D.;and Xiao,X.2016.Recursive neural conditional random fields for aspect‑based sentiment analysis.In EMNLP 2016,616–626.
[0016] [9]Wang,W.;Pan,S.J.;Dahlmeier,D.;and Xiao,X.2017.Coupled multi‑layer attentions for co‑extraction ofaspect and opinion terms.In AAAI 2017,3316–3322.
[0017] [10]Li,X.;Bing,L.;Li,P.;Lam,W.;and Yang,Z.2018.Aspect term extraction with history attention and selective transformation.In IJCAI 2018,4194–4200.[0018] [11]Hu,M.;Peng,Y.;Huang,Z.;Li,D.;and Lv,Y.2019.Opendomain targeted sentiment analysis via span‑based extraction and classification.In ACL 2019,537–546.
[0019] [12]Devlin,J.;Chang,M.;Lee,K.;and Toutanova,K.2019.BERT:pre‑training of deep bidirectional transformers for language understanding.In NAACL 2019,4171–4186.

发明内容

[0020] 本发明的目的是解决现有意见二元组抽取技术中面临的错误传导、需要设计手工特征等问题,并提供一种基于同步神经网络的意见二元组抽取方法。
[0021] 本发明提出的基于同步神经网络的意见二元组抽取方法基于深度学习技术实现意见二元组的抽取,利用神经网络技术自动学习词的语义特征,进而无需构建手工设计的特征。此外,本发明构建了多个交替的识别层与同步层,联合抽取意见句中的评价对象、评价词、以及它们之间的关联关系,在避免错误传导的同时,进一步实现了意见要素抽取模块与关系检测模块之间的信息交互,使得两个模块相互促进。
[0022] 本发明的技术方案
[0023] 一种基于同步神经网络的意见二元组抽取方法,主要由编码层、多个交替的识别层与同步层、以及推理层组成。具体地,编码层接收原始意见句为输入,使用预训练的语言模型BERT学习意见句中每个词的上下文语义表示。随后,识别层接收词的上下文语义表示作为输入,并进行意见实体的抽取与关系检测。为实现评价词、评价对象、以及其关系的同步抽取,识别层主要由一个基于全连接层的意见实体抽取模块和一个基于注意力机制的关系检测模块组成。进一步地,本方法在识别层之上构建一个同步层,并将识别层与同步层交替执行多次,以实现意见实体抽取和关系检测相互促进。在同步层中,本方法设计了两个同步矩阵(即,边界同步矩阵和关系同步矩阵)来记录高层识别信息并将信息传递至后续的识别层中。最后,本方法使用一个推理层来获取最终识别的意见二元组。
[0024] 本发明方法的具体步骤如下:
[0025] 步骤1)编码层:基于预训练的语言模型构建词的上下文语义表示。
[0026] 步骤1.1)对评价文本进行分词处理,得到评价文本对应的词序列。
[0027] 步骤1.2)对每个词,构建词向量、段落向量、以及位置向量,并将三种向量进行加和得到词的初始向量表示,并将此表示作为步骤1.3)中预训练语言模型的输入向量。
[0028] 步骤1.3)使用BERT作为预训练语言模型,输入步骤1.2)得到的词的初始向量表示,将BERT最后一层的输出作为词的上下文语义表示。
[0029] 步骤2)识别层:基于步骤1)构建的词的上下文语义表示,同步抽取意见实体的边界、意见实体的类别与评价方面以及评价词之间的修饰关系。
[0030] 步骤2.1)意见实体抽取。将意见实体抽取问题形式化为序列标注任务。综合考虑词的上下文语义和与其具有关联关系的词的语义,计算词与标签之间的匹配程度。
[0031] 步骤2.2)关系检测。考虑到意见句中评价对象与评价词之间的关系可能存在一对多、多对一、嵌套、交叠等复杂的情况,采用注意力机制对关系进行检测。在综合考虑词的上下文语义和其所属的意见实体的语义的基础上,计算词与词之间的关联关系,进而得到词之间的关联矩阵。
[0032] 步骤3)同步层:基于步骤2)中意见实体抽取和关系检测的结果,设计边界同步矩阵与关系同步矩阵记录高层交互信息,为后续的识别层提供信息指导。两个矩阵均被初始化为全零矩阵,并且在每个同步层中通过以下方法进行更新。
[0033] 步骤3.1)边界同步矩阵的构建。边界同步矩阵记录了任意两个词属于同一个意见实体的概率,该矩阵由步骤2.1)得到的词与标签之间的匹配程度转化得到。具体地,首先使用softmax和argmax变换计算词对应的预测标签。随后,基于预测的标签序列,可以计算实体的边界矩阵。最后,基于实体边界矩阵计算表示实体边界置信度的边界同步矩阵。
[0034] 步骤3.2)关系同步矩阵的构建。由于步骤2.2)中得到的关联矩阵中可能存在一定的噪音,因此过滤其中的噪音,进而得到关系同步矩阵。
[0035] 步骤4)交替执行步骤2)与步骤3),以使得意见实体抽取与关系检测可以相互促进。
[0036] 步骤5)推理层:将最后一个识别层的结果转化为最终的意见二元组。
[0037] 步骤5.1)基于步骤2.1)得到的词与标签之间的匹配程度,利用条件随机场(CRF)计算词序列对应的标签序列。
[0038] 步骤5.2)基于步骤5.1)得到的标签序列,抽取意见句中包含的意见实体。结合步骤2.2)中得到的关联矩阵,判断评价对象和评价词之间是否存在修饰关系,进而得到最终预测的意见二元组。
[0039] 本发明的优点和有益效果:
[0040] 本发明基于在线的评论数据实现意见二元组抽取,综合挖掘意见句中词的语义关系与关联关系,提出的方法既同步抽取了评价对象、评价词、以及两者间的修饰关系,又进一步实现了意见实体抽取和关系检测之间的相互促进。由此,本发明不仅提升了二元组抽取的性能,而且为更高效地实现后续情感分类、意见总结等任务打下坚实的基础。

附图说明

[0041] 图1是本发明的整体系统结构示意图。
[0042] 图2是本发明同步神经网络的示意图。

具体实施方式

[0043] 实施例1:
[0044] 下面结合附图对本发明提供的基于同步神经网络的意见二元组抽取方法进行详细说明。
[0045] 本发明主要采用深度学习技术以及自然语言处理相关的理论方法对在线评价文本进行细粒度的意见二元组抽取,为了保证系统的正常运行,在具体实施中,要求所使用的计算机平台配备不低于8G的内存,CPU核心数不低于4个且主频不低2.6GHz、GPU环境、Linux操作系统,并安装Python 3.6及以上版本、pytorch0.4及以上版本等必备软件环境。
[0046] 如图1所示,本发明提供的基于同步神经网络的意见二元组抽取方法,包括按顺序执行的下列步骤:
[0047] 步骤1)编码层:基于预训练的语言模型构建词的上下文语义表示。
[0048] 步骤1.1)如图2所示,给定意见句S,本步骤对评价文本进行分词处理,得到评价文本对应的词序列X={x1,x2,...,xn}。
[0049] 例如,给定评价文本“这里的食物十分美味。”,经过分词,可以得到词序列X={″这里″,″的″,″食物″,″十分″,″美味″,″。″}。
[0050] 步骤1.2)对每个词xt,构建词向量 段落向量 以及位置向量 并将三种向量进行加和得到预训练语言模型的输入向量et。
[0051] 例如,对于评价文本中的第三个词“食物”,其预训练语言模型的输入向量可表示为e3=[0.33.‑0.18,...,0.42,0.21]。
[0052] 步骤1.3)如图2所示,使用BERT作为预训练语言模型,输入步骤1.2)得到的输入向量E={e1,e2,...,en},将BERT最后一层的输出作为词的上下文语义表示[0053] H={h1,h2,...,hn}。
[0054] 例如,对于评价文本中的第三个词“食物”,其上下文语义表示为h3=[0.06,0.31,...,0.00,‑0.12]。
[0055] 步骤2)识别层:基于步骤1)构建的词的上下文语义表示,同步抽取意见实体的边界、意见实体的类别和评价方面以及评价词之间的修饰关系。如图2所示,本步骤将得到词i i的标签分布矩阵C,以及词之间的关系矩阵G,其中i表示第i个识别层。
[0056] 步骤2.1)意见实体抽取。将意见实体抽取问题形式化为序列标注任务。具体地,对于意见句中的第t个词,可以通过下述公式计算其与标签之间的匹配程度
[0057] 其中 表示第t个词在第i个识别层的隐藏表示, 和 为模型参数,dt为隐藏表示 的维度,k为标签空间的维度。具体地,本任务的标签空间为v={O,BA,IA,BP,IP},由此本任务中k=5。
[0058] 例如,对于评价文本中的第三个词“食物”,在第一个识别层中,其与标签之间的匹配程度可表示为
[0059] 在计算隐藏表示 的过程中,需要考虑评价对象和评价词之间的修饰关系。例如,若两个短语间存在修饰关系,则其中一个为评价对象,另一个为评价词。为了利用这种修饰关系,在同步层设计了关系同步矩阵R,具体的构建方式参见以下步骤3.2)。基于关系同步矩阵与步骤1.3)得到的词的上下文语义表示,可以通过下述公式计算隐藏表示[0060]
[0061]
[0062]
[0063] 其中, 表示第t个词与第j个词之间的关联程度, 和
[0064] 为模型参数,dh为步骤1.3)中词上下文表示的维度。
[0065] 步骤2.2)关系检测。考虑到意见句中评价对象与评价词之间的关系可能存在一对多、多对一、嵌套、交叠等复杂的情况,采用注意力机制对关系进行检测。具体地,在第i个识别层中,可以通过下述公式计算第t个词与第j个词之间的关联程度
[0066]
[0067] 其中 为第t个词的隐藏表示,W*和br为模型参数,γ为分值函数,关联程度 可以组成关联矩阵 例如,对于给定的评价文本,在第一个识别层中,其关联矩阵可表示为
[0068]
[0069] 在检测词与词之间的关联关系的过程中,仅考虑词本身的含义是不够的,还需考虑其所属意见实体的语义。由此,设计了边界同步矩阵B,具体的构建方式参见步骤3.1)。基于边界同步矩阵与步骤1.3)得到的词的上下文语义表示,可以通过下述公式计算隐藏表示[0070]
[0071]
[0072] 其中 表示第t个词与第j个词属于同一个意见实体的概率,W*为模型参数。
[0073] 步骤3)同步层:基于步骤2)中意见实体抽取和关系检测的结果,设计边界同步矩阵与关系同步矩阵记录高层交互信息,为后续的识别层提供信息指导。两个矩阵在本方法中均被初始化为全零矩阵,并且在每个同步层中通过以下方法进行更新。如图2所示,本步i i骤将得到边界同步矩阵T以及关系同步矩阵R,其中其中i表示第i个同步层。
[0074] 步骤3.1)边界同步矩阵的构建。边界同步矩阵记录了任意两个词属于同一个意见实体的概率,该矩阵由步骤2.1)得到的词与标签之间的匹配程度 转化得到。具体地,首先使用softmax变换计算词对应的标签分布 随后使用如下公式得到词对应的预测标签
[0075]
[0076] 其中,v为标签空间。
[0077] 例如,评价文本中的第三个词“食物”,在第一个同步层中,其对应的预测标签可表示为
[0078] 基于预测的标签序列,可以计算实体的边界矩阵 具体地,当第t个词与第j个词属于同一个意见实体时, 反之 由于得到的边界矩阵
[0079] Ti并非标准结果,因此需要计算表示实体边界置信度的边界同步矩阵B,具体的计算方式如下:
[0080]
[0081] 例如,对于给定的评价文本,在第一个同步层中,其对应的实体的边界矩阵可表示为
[0082]
[0083] 通过计算,其对应的边界同步矩阵可表示为
[0084]
[0085] 步骤3.2)关系同步矩阵的构建。由于步骤2.2)中得到的关联矩阵 中可能存在一定的噪音,因此通过下式过滤其中的噪音,进而得到关系同步矩阵
[0086]
[0087] 其中β为关联度阈值。具体地,β设置为0.25。
[0088] 例如,对于给定的评价文本,在第一个同步层中,其对应的关系同步矩阵可表示为[0089]
[0090] 步骤4)交替执行步骤2)与步骤3),以使得意见实体抽取与关系检测可以相互促进。
[0091] 步骤5)推理层:将最后一个识别层的结果转化为最终的意见二元组。
[0092] 步骤5.1)基于步骤2.1)得到的词与标签之间的匹配程度 利用条件随机场(CRF)计算词序列对应的标签序列:
[0093]
[0094]
[0095] 其中 表示标签间的转移概率, 表示词到标签的状态概率,
[0096] YC表示所有可能的标签序列。
[0097] 例如,对于给定的评价文本,其对应的标签序列可表示为Y=[O,O,BA,BP,IP,O]。
[0098] 步骤5.2)基于步骤5.1)得到的标签序列,抽取意见句中包含的意见实体。结合步骤2.2)中得到的关联矩阵 通过下式判断评价对象和评价词之间是否存在修饰关系:
[0099]
[0100] 当δ高于给定的阈值时,评价对象与评价词之间存在修饰关系。具体地,本发明将阈值设为0.5,并由此得到如图2所示的最终预测的意见二元组P。
[0101] 例如,对于给定的评价文本,其对应的意见二元组为“{食物,十分美味}”。