基于深度学习的文本实体匹配方法、系统、装置与流程

文档序号:19310543发布日期:2019-12-03 23:28阅读:182来源:国知局
基于深度学习的文本实体匹配方法、系统、装置与流程

本发明属于数据库检索领域,具体涉及一种基于深度学习的文本实体匹配方法、系统、装置。



背景技术:

实体匹配是数据管理中的一个长期难题。实体匹配即从同一数据源或者从不同数据源中找出所有代表同一实体的记录或者标识的过程,其目的是识别出数据集中描述同一真实世界实体的元组。传统地方法就是基于字符串匹配,即基于两个记录之间的字符串相似度来判断他们俩是否属于同一个实体。这种方法的缺点是需要两个单词写得完全一样,才能被当做两个记录共同的字符串。但是在实体匹配数据集中,有很多单词拼写都可能有问题,比如单词“microsoft”,在一个记录中写成了“microsof”,另一个记录中写成了“micro-soft”,都不能被匹配上,匹配准确率较低。随着技术的不断进步,出现了基于机器学习的匹配方式,例如magellan:towardbuildingentitymatchingmanagemengtsystems,主要通过先提取特征,根据判别器,判断两个记录是否匹配。相比于传统的匹配方法,准确度有了很大的提高,但是很大程度上依赖于人工给出的特征。后来深度学习的出现,使得自然语言处理领域有了长足的发展动力,深度学习可以自动地找出这个分类问题所需要的重要特征。但现有基于深度学习的方法只是利用了循环神经网络与注意力机制得到局部的语境信息,没有利用实体匹配任务所特有的多语境信息,所以应用到一些领域的时候,准确度还有很大的提升空间。因此,本发明提出了一种基于深度学习的文本实体匹配方法。



技术实现要素:

为了解决现有技术中的上述问题,即为了解决现有文本实体匹配方法匹配准确率低的问题,本发明第一方面,提出了一种基于深度学习的文本实体匹配方法,该方法包括:

步骤s10,获取待实体匹配的第一文本、第二文本,并对所述第一文本、所述第二文本进行词嵌入生成第一词向量序列ea、第二词向量序列eb

步骤s20,采用基于自注意力机制的双向门控循环单元bi-gru分别提取ea、eb中每个词向量的上下文语义向量,构建第一语义向量序列第二语义向量序列

步骤s30,将ea作为输入序列,将eb作为背景序列,将作为输入融合序列,将作为背景关联序列,通过基于互注意力机制的高速路神经网络得到融合序列,并根据该融合序列和ea,通过门控网络得到ea中每个词向量的总结表示,构建总结序列;

步骤s40,基于全局注意力机制获取所述总结序列中每个词向量的总结表示的权重,进行加权和得到ea的总结向量表示sa

步骤s50,将eb作为输入序列,将ea作为背景序列,将作为输入融合序列,将作为背景关联序列,通过步骤s30、步骤s40的方法,得到eb的总结向量表示sb

步骤s60,基于sa、sb,通过高速路神经网络得到最终总结向量表示,并根据该表示,通过softmax分类器得到所述第一文本、所述第二文本的实体匹配结果。

在一些优选的实施方式中,步骤s10中“对所述第一文本、所述第二文本进行词嵌入生成第一词向量序列ea、第二词向量序列eb”,其方法为:通过fasttext算法对所述第一文本、所述第二文本进行词嵌入,生成第一词向量序列ea、第二词向量序列eb

在一些优选的实施方式中,步骤s20中“采用基于自注意力机制的双向门控循环单元bi-gru分别提取ea、eb中每个词向量的上下文语义向量,构建第一语义向量序列第二语义向量序列”,其方法为:

基于ea、eb,通过所述双向门控循环单元bi-gru分别进行编码得到第一编码序列、第二编码序列;

基于自注意力机制分别得到所述第一编码序列、所述第二编码序列中每个词向量关于该编码序列的权重,对每个词向量进行加权平均得到上下文语义向量;

分别基于所述第一编码序列得到的上下文语义向量、所述第二编码序列得到的上下文语义向量,构建第一语义向量序列第二语义向量序列

在一些优选的实施方式中,步骤s30中“通过基于互注意力机制的高速路神经网络得到融合序列”,其方法为:

基于互注意力机制pair-attention获取所述输入序列关于所述背景序列的权重矩阵,根据该权重矩阵和所述背景关联序列得到词向量关联序列;

基于所述词向量关联序列、所述输入融合序列,通过高速路神经网络进行融合得到融合序列。

在一些优选的实施方式中,“基于所述词向量关联序列、所述输入融合序列,通过高速路神经网络进行融合得到融合序列”,其方法为:

ua=highway([x,y,|x-y|,x⊙y])

其中,ua为融合序列,x为自变量,代表输入融合序列,y为因变量,代表词向量关联序列,highway代表高速路神经网络。

在一些优选的实施方式中,步骤s40中“基于全局注意力机制获取所述总结序列中每个词向量的总结表示的权重,进行加权和得到ea的总结向量表示sa”,其方法为:

其中,λi为每个词向量的总结表示的权重,为每个词的总结表示,cx为全局背景向量,预定义的学习参数,i为下标值。

在一些优选的实施方式中,步骤s60中“通过softmax分类器得到所述第一文本、所述第二文本的实体匹配结果”,其方法为:通过softmax分类器获取所述第一文本与所述第二文本的匹配概率、不匹配概率;若所述匹配该率大于所述不匹配概率,则所述第一文本与所述第二文本描述的是同一实体,否则,不是同一实体。

本发明的第二方面,提出了一种基于深度学习的文本实体匹配系统,该系统包括词嵌入模块、上下文编码模块、关联融合模块、加权模块、重复模块、输出模块;

所述的词嵌入模块,配置为获取待实体匹配的第一文本、第二文本,并对所述第一文本、所述第二文本进行词嵌入生成第一词向量序列ea、第二词向量序列eb

所述上下文编码模块,配置为采用基于自注意力机制的双向门控循环单元bi-gru分别提取ea、eb中每个词向量的上下文语义向量,构建第一语义向量序列第二语义向量序列

所述关联融合模块,配置为将ea作为输入序列,将eb作为背景序列,将作为输入融合序列,将作为背景关联序列,通过基于互注意力机制的高速路神经网络得到融合序列,并根据该融合序列和ea,通过门控网络得到ea中每个词向量的总结表示,构建总结序列;

所述加权模块,配置为基于全局注意力机制获取所述总结序列中每个词向量的总结表示的权重,进行加权和得到ea的总结向量表示sa

所述重复模块,配置为将eb作为输入序列,将ea作为背景序列,将作为输入融合序列,将作为背景关联序列,通过所述关联融合模块、所述加权模块的方法,得到eb的总结向量表示sb

所述输出模块,配置为基于sa、sb,通过高速路神经网络得到最终总结向量表示,并根据该表示,通过softmax分类器得到所述第一文本、所述第二文本的实体匹配结果。

本发明的第三方面,提出了一种存储装置,其中存储有多条程序,所述程序应用由处理器加载并执行以实现上述的基于深度学习的文本实体匹配方法。

本发明的第四方面,提出了一种处理装置,包括处理器、存储装置;处理器,适用于执行各条程序;存储装置,适用于存储多条程序;所述程序适用于由处理器加载并执行以实现上述的基于深度学习的文本实体匹配方法。

本发明的有益效果:

本发明提高了文本实体匹配的准确率。在本发明中,使用fasttext算法作为词嵌入模型,避免出现未注册词(不在词库中的词)的情况,提高对文本识别率。通过自注意力机制(self-attention)与双向门控循环单元bi-gru组合,在对词向量进行编码的过程中,能够结合上下文信息,确保理解文本中每个词的含义。再通过互注意力机制(pair-attention)和高速路神经网络的组合,获取两个文本中词与词的关系。最后,通过全局注意力机制(global-attention)和高速路神经网络的组合,得到两个文本实体的总结向量表示,即相似性表示。通过三种注意力机制充分挖掘两个文本实体之间的局部语境信息和多语境信息,从而提高对文本实体匹配的准确率。

附图说明

通过阅读参照以下附图所做的对非限制性实施例所做的详细描述,本申请的其他特征、目的和优点将会变得更明显。

图1是本发明一种实施例的基于深度学习的文本实体匹配方法的流程示意图;

图2是本发明一种实施例的基于深度学习的文本实体匹配系统的框架示意图;

图3是本发明一种实施例的基于深度学习的文本实体匹配方法的具体实施示例图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

本发明的基于深度学习的文本实体匹配方法,如图1所示,包括以下步骤:

步骤s10,获取待实体匹配的第一文本、第二文本,并对所述第一文本、所述第二文本进行词嵌入生成第一词向量序列ea、第二词向量序列eb

步骤s20,采用基于自注意力机制的双向门控循环单元bi-gru分别提取ea、eb中每个词向量的上下文语义向量,构建第一语义向量序列第二语义向量序列

步骤s30,将ea作为输入序列,将eb作为背景序列,将作为输入融合序列,将作为背景关联序列,通过基于互注意力机制的高速路神经网络得到融合序列,并根据该融合序列和ea,通过门控网络得到ea中每个词向量的总结表示,构建总结序列;

步骤s40,基于全局注意力机制获取所述总结序列中每个词向量的总结表示的权重,进行加权和得到ea的总结向量表示sa

步骤s50,将eb作为输入序列,将ea作为背景序列,将作为输入融合序列,将作为背景关联序列,通过步骤s30、步骤s40的方法,得到eb的总结向量表示sb

步骤s60,基于sa、sb,通过高速路神经网络得到最终总结向量表示,并根据该表示,通过softmax分类器得到所述第一文本、所述第二文本的实体匹配结果。

为了更清晰地对本发明基于深度学习的文本实体匹配方法进行说明,下面结合附图对本发明方法一种实施例中各步骤进行展开详述。

步骤s10,获取待实体匹配的第一文本、第二文本,并对所述第一文本、所述第二文本进行词嵌入生成第一词向量序列ea、第二词向量序列eb

实体匹配(实体辨识)英文为entityresolutionorentitymatchingorduplicatedetection,目的是在所有的记录中找到属于同一个entity的记录,记录即记载实体信息的文本。如表1所示:

表1

如表1所示有六条记录,id1、id2表示编号,value表示实体的记录,每条记录代表一个商品信息,实体匹配的目标就是去找到属于同一个实体的记录。比如表中,就要找到左边的1和右边的1,左边的2和右边的3是属于同一个实体的。

在本实施例中,先获取一个数据集,该数据集包含两个集合(集合a、集合b),两个集合中各自有m个记录和n个记录,我们每次的输入是从两个集合中各自取出一个记录,判断他们是否属于同一个现实世界的实体。记两个记录为texta、textb。记录在下述内容中替换为文本。所述texta为第一文本,所述textb为第二文本。

在自然语言处理(nlp)中,我们经常将词映射到包含数值的向量中,以便机器可以理解它。词嵌入是一种映射,允许具有相似含义的单词具有相似的表示。但在er任务(实体匹配任务)数据集中可能会有单词拼写错误等不规范情况,如果使用词级别的词嵌入模型会有很多的“未注册词”(指的是不在词库里的词)。因此在本发明中,采用基于fasttext预训练模型作为词向量嵌入模型,fasttext是基于字符级别的词嵌入,不会产生“未注册词”的情况。

如图3所示,将texta、textb进行词嵌入生成第一词向量序列ea、第二词向量序列eb。图3中其余部分在下述步骤中展开说明。其中,假设词向量为d维,texta的序列长度为n,对于textb,假设textb的序列长度为m,将ea作为第一词向量序列,将eb作为第二词向量序列。

步骤s20,采用基于自注意力机制的双向门控循环单元bi-gru分别提取ea、eb中每个词向量的上下文语义向量,构建第一语义向量序列第二语义向量序列

由于在英文中存在很多的一词多义情况,在词嵌入中,同一个词的嵌入结果是一样的,这样无法区分一词多义。比如“apple”,可能既代表一种水果,也代表苹果公司。所以需要结合上下文信息才能确定这个词的意思。在本实施例中,我们采用了双向gru作为文本编码(contextencoding)的编码器,对于一个词的嵌入(embedding)向量,能够结合到上下文的信息。但在实体匹配任务中,一个句子可能是由好几个无关的短语拼接起来的,所以这样的上下文信息也有可能对原始的词嵌入信息造成干扰和“污染”。所以在这样的情况下,我们增加了一个门控机制,对信息流传输做了一个控制。具体处理步骤如下:

步骤s21,基于所述第一词向量序列ea、所述第二词向量序列eb,通过所述双向门控循环单元bi-gru分别进行编码得到第一编码序列、第二编码序列。如式(1)(2)(3)所示:

其中,为前向gru,为后向gru,为词向量经前向gru的输出,为词向量经后向gru的输出,为词向量经前向gru的输出和词向量经后向gru的输出的拼接,即编码向量,i为下标值,为词向量。

把每一个进行拼接,得到texta的编码序列输入eb,得到textb的编码序列hb。将ha作为第一编码序列,将hb作为第二编码序列。

步骤s22,基于自注意力机制分别得到所述第一编码序列、所述第二编码序列中每个词向量关于该编码序列的权重,对每个词向量进行加权平均得到上下文语义向量,构建语义向量序列。其求解过程如公式(4)(5)所示:

α=softmax((ha)t.ha)(4)

其中,α为自注意力机制的权重矩阵,为语义向量序列,t为矩阵转置操作。基于hb,得到语义向量序列作为第一语义向量序列,将作为第二语义向量序列。

步骤s30,将ea作为输入序列,将eb作为背景序列,将作为输入融合序列,将作为背景关联序列,通过基于互注意力机制的高速路神经网络得到融合序列,并根据该融合序列和ea,通过门控网络得到ea中每个词向量的总结表示,构建总结序列。

在本实施例中,我们将所述第一词向量序列ea作为输入序列,将所述第二词向量序列eb作为背景序列,将所述第一语义向量序列作为输入融合序列,将第二语义向量序列作为背景关联序列。

步骤s31,基于互注意力机制pair-attention获取所述输入序列关于所述背景序列的权重矩阵,根据该权重矩阵和所述背景关联序列得到词向量关联序列。其求解过程如公式(6)(7)所示:

β=softmax((ea)twpeb)(6)

其中,β为互注意力机制的权重矩阵,为预设的权重矩阵,pa为词向量关联序列。

步骤s32,基于所述词向量关联序列、所述输入融合序列,通过高速路神经网络进行融合得到融合序列。其求解过程如公式(8)所示:

y=pa

ua=highway([x,y,|x-y|,x⊙y])(8)

其中,x、y为自变量和因变量,ua为融合序列,highway为高速路神经网络。步骤s32,即图3中的fusion步骤。

步骤s33,根据该融合序列和所述输入序列,通过门控网络得到所述输入序列中每个词向量的总结表示,构建总结序列。

门控机制(门控网络:gated-controlnetwork(简写为gcn))的目的在于控制信息的传输,将两者输入后,通过控制两部分信息的传输,来得到输出。其求解过程如公式(9)所示:

va=gate2(ea,ua)(9)

其中,va为总结序列,gate2为门控机制。

上述的总结表示,优选的也可以描述为相似性表示。

本实施例中的门控网络:gated-controlnetwork,可以参考mintangandjiarancaiandhankzhankuizhuo*,"multi-matchingnetworkformultiplechoicereadingcomprehension",associationfortheadvancementofartificialintelligence,2019。此处不再展开详述。

步骤s40,基于全局注意力机制获取所述总结序列中每个词向量的总结表示的权重,进行加权和得到ea的总结向量表示sa

之前步骤的都是基于“word”这个级别进行操作,我们现在要将一个序列由一个一个的词表示va变成序列的一个向量表示sa,这个向量融合了每个词的信息。然而,每个词对于句义的贡献是不一样的,所以我们不能直接把每个词的表示直接加起来得到句子的表示,我们需要先求每个词的重要性(权重),然后根据整个权重对每个词的信息做一个加权和,最终获得句子的表示。

基于全局注意力机制获取所述总结序列中每个词向量的权重,进行加权和得到序列的总结向量表示。其求解过程如公式(10)(11)所示:

其中,λi为每个词向量的总结表示的权重,为每个词向量的总结表示,cx为全局背景向量。

上述的全局背景向量为预定义学习参数,在初始化的时候随机初始化的一个表示,然后在训练过程中依靠反向传播算法来不断调整该向量的值。

步骤s50,将eb作为输入序列,将ea作为背景序列,将作为输入融合序列,将作为背景关联序列,通过步骤s30、步骤s40的方法,得到eb的总结向量表示sb

在本实施例中,将所述第二词向量序列eb作为输入序列,将所述第一词向量序列ea作为背景序列,将所述第二语义向量序列作为输入融合序列,将第一语义向量序列作为背景关联序列。执行步骤s30,步骤s40,依次得到词向量关联序列pb、融合序列ub、总结序列vb,进而得到总结向量表示sb

步骤s60,基于sa、sb,通过高速路神经网络得到最终总结向量表示,并根据该表示,通过softmax分类器得到所述第一文本、所述第二文本的实体匹配结果。

在本实施例中,基于高速路神经网络highwaynetwork将总结向量表示sa、所述总结向量表示sb进行融合,得到最终总结向量表示,即包含了两个输入序列的相似性表示。其求解过程如公式(12)所示:

s=highway([x,y,|x-y|,x⊙y])(12)

其中,x=sa,y=sb,s为最终总结向量表示。

基于最终总结向量表示,我们使用一个线性层和一个softmax函数,生成一个二维的向量来代表匹配结果。其求解过程如公式(13)所示:

o=softmax(w0s+b)(13)

其中,o为匹配结果,w0为输出层的权重矩阵,是一个学习的参数,b为偏置项。

比如输出[0.2,0.8],第一个元素代表不匹配的概率,第二个元素代表匹配的概率,所以只要第二个元素大于第一个元素,就代表判断两个记录为匹配,否则不匹配。其中个,图3中的p表示概率。

本发明第二实施例的一种基于深度学习的文本实体匹配系统,如图2所示,包括:词嵌入模块100、上下文编码模块200、关联融合模块300、加权模块400、重复模块500、输出模块600;

所述的词嵌入模块100,配置为获取待实体匹配的第一文本、第二文本,并对所述第一文本、所述第二文本进行词嵌入生成第一词向量序列ea、第二词向量序列eb

所述上下文编码模块200,配置为采用基于自注意力机制的双向门控循环单元bi-gru分别提取ea、eb中每个词向量的上下文语义向量,构建第一语义向量序列第二语义向量序列

所述关联融合模块300,配置为将ea作为输入序列,将eb作为背景序列,将作为输入融合序列,将作为背景关联序列,通过基于互注意力机制的高速路神经网络得到融合序列,并根据该融合序列和ea,通过门控网络得到ea中每个词向量的总结表示,构建总结序列;

所述加权模块400,配置为基于全局注意力机制获取所述总结序列中每个词向量的总结表示的权重,进行加权和得到ea的总结向量表示sa

所述重复模块500,配置为将eb作为输入序列,将ea作为背景序列,将作为输入融合序列,将作为背景关联序列,通过所述关联融合模块300、所述加权模块400的方法,得到eb的总结向量表示sb

所述输出模块600,配置为基于sa、sb,通过高速路神经网络得到最终总结向量表示,并根据该表示,通过softmax分类器得到所述第一文本、所述第二文本的实体匹配结果。

所述技术领域的技术人员可以清楚的了解到,为描述的方便和简洁,上述描述的系统的具体的工作过程及有关说明,可以参考签署方法实施例中的对应过程,在此不再赘述。

需要说明的是,上述实施例提供的基于深度学习的文本实体匹配系统,仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块来完成,即将本发明实施例中的模块或者步骤再分解或者组合,例如,上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块,以完成以上描述的全部或者部分功能。对于本发明实施例中涉及的模块、步骤的名称,仅仅是为了区分各个模块或者步骤,不视为对本发明的不当限定。

本发明第三实施例的一种存储装置,其中存储有多条程序,所述程序适用于由处理器加载并实现上述的基于深度学习的文本实体匹配方法。

本发明第四实施例的一种处理装置,包括处理器、存储装置;处理器,适于执行各条程序;存储装置,适于存储多条程序;所述程序适于由处理器加载并执行以实现上述的基于深度学习的文本实体匹配方法。

所述技术领域的技术人员可以清楚的了解到,未描述的方便和简洁,上述描述的存储装置、处理装置的具体工作过程及有关说明,可以参考签署方法实例中的对应过程,在此不再赘述。

本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的模块、方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,软件模块、方法步骤对应的程序可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

术语“第一”、“第二”等是用于区别类似的对象,而不是用于描述或表示特定的顺序或先后次序。

术语“包括”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备/装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过程、方法、物品或者设备/装置所固有的要素。

至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。

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