本发明涉及自然语言处理领域,特别涉及一种训练关系抽取模型并抽取嵌套命名实体关系的方法。
背景技术:
信息抽取在自然语言处理中是一个很重要的工作,特别在当今信息爆炸的背景下,显得格外的生重要。从海量的非结构外的文本中抽取出有用的信息,并结构化成下游工作可用的格式,这是信息抽取的存在意义。信息抽取又可分为实体抽取或称命名实体识别,关系抽取以及事件抽取等。命名实体对应真实世界的实体,一般表现为一个词或一个短语,比如曹操,阿里巴巴,中国,仙人掌等等。关系则刻画两个或多个命名实体的关系。比如马致远是《天净沙·秋思》的作者,那么马致远与《天净沙·秋思》的关系即是“创作”(author_of)关系,魔鬼鱼是鱼,那么魔鬼鱼与脊椎动物则“所属”(member_of)关系。
现存关系抽取技术大致分为有监督,半监督,和无监督的方式,对于两个词汇实体之间的关系识别和抽取有一定效果。如果以三元组表示,两个实体间的关系为<ea><r><eb>,其中ea和eb为两个实体,r为他们之间的关系。例如,“超人是个英雄”可以被抽取出<e超人><r是><e英雄>。
近年来,深度学习在这方面有不错效果,无论卷积网络、循环网络、预训练方法或增强学习,能达到f1大于80%的模型不少于20多种。在这些算法中,有监督学习方法一般会强于半监督和无监督,但需要人工标记训练语料库。然而,现有技术中的模型无法有效抽取具有嵌套的实体关系。例如,“在爱情和友情逐步成为巨大压力的时候,超人成为英雄”,这句话的语义逻辑关系如果能抽取为<<e爱情><r与><e友情>><r条件><<e超人><r成为><e英雄>>,虽然至少可以说明超人并不是一个天生的英雄,但显然这句话实际隐含的实体关系并没有被精准的还原。单纯套用现有技术中的算法无法抽取复杂语义的逻辑关系。嵌套命名实体识别技术是在上述算法基础上做修改,期望能够通过一个独立的算法解决这个问题。但无法保证准确度,尤其是当层级更多的时候和跨越多个句子的时候,在端到端进行错误放大,单独算法训练和抽取过程中端到端错误放大的问题和过程中干预调试困难的问题。
故,需要一种能够解决单独算法训练和抽取过程中端到端错误放大的问题和过程中干预调试困难的问题的自然语言实体关系抽取的方法。
技术实现要素:
为了解决上述技术问题,本发明中披露了一种训练关系抽取模型并抽取嵌套命名实体关系的方法,本发明的技术方案是这样实施的:
一种在自然语言文本中训练嵌套命名实体关系抽取模型的方法,包括如下步骤:
s1:准备语料库,对语料库中的文本经行标记;
s2:获取当前语料库中训练文本,训练抽取模型,作为当前一级抽取模型;
s3:对于当前语料库中文本整理优化并生成新语料库;
s4:判断当前状态是否满足训练停止条件,若结果为假,则将上一级抽取模型当做当前一级抽取模型并执行s2,若结果为真,则执行s5;
s5:输出所有经过训练的模型。
优选地,s4中的训练判断停止条件为是否达到语料库的训练文本中存在的最大层级数。
优选地,s3中生成新语料库包含整理并合并实体关系过程,判断若存在一个实体和多个实体之间的关系,则将其中的多个实体合并为单个实体,转化为两个单独实体间的关系。
优选地,s3中生成新语料库包含文本嵌套替换过程,从第二级开始,对文本做整理优化时,所述文本嵌套替换是指一个关系的最左边和最右边两个实体间的所有文本替换为具有代表性的词汇。如果被替换文本中存在其他实体并且该实体所属关系并非当前所述关系,则该实体被复制并且放置于上述具有代表性的词汇旁边。
优选地,s3中生成新语料库包含降噪过程,对于孤立的语言词汇进行删除或补充,以降低下一步处理时候的噪声。
一个抽取嵌套命名实体关系的方法,包含如下步骤:
s6:对待识别文本经行实体识别,以备后续使用,当前文本级别为设为1级;
s7:对于当前级匹配的根据权利要求1所产生的模型群抽取模型进行关系抽取,生成并存储当前级的三元组;
s8:判断是否满足训练停止条件,若结果为真,则执行s10,若结果为假,则将当前的文本经行整理优化,将当前文本级别加1,执行s7;
s10:整理输出所有级别的三元组。
优选地,s7中的关系抽取包含整理并合并实体关系过程,判断若存在一个实体和多个实体之间的关系,则将其中的多个实体合并为单个实体,转化为两个单独实体间的关系。
优选地,s7中的关系抽取包含文本嵌套替换过程,从第二级开始,对文本做整理优化时,所述文本嵌套替换是指一个关系的最左边和最右边两个实体间的所有文本替换为具有代表性的词汇。如果被替换文本中存在其他实体并且该实体所属关系并非当前所述关系,则该实体被复制并且放置于上述具有代表性的词汇旁边。
优选地,s7中的关系抽取包含降噪过程,对于孤立的语言词汇进行删除或补充,以降低下一步处理时候的噪声。
优选地,s3中的判断抽取停止条件为下列两者的或逻辑:一、抽取关系的过程已经调用了最高一级的抽取模型;二、当前文本存在待识别实体关系。
实施本发明的技术方案可解决现有技术中单独算法训练和抽取过程中端到端错误放大的问题和过程中干预调试困难的技术问题;实施本发明的技术方案,通过单独算法训练和抽取过程,可实现的高效、精准、多层次和试用多应用场景的关系抽取的技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一种训练关系抽取模型并抽取嵌套命名实体关系的方法的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种具体实施例中的训练过程原理示意图;
图2为一种具体实施例中的关系抽取过程示意图;
图3为一个具体的关系抽取的流程示意图;
图4为具体步骤过程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在一种具体实施例中,一种在自然语言中抽取嵌套命名实体关系的方法,包括如下步骤:
如附图图1所示,
s1:准备语料库,对语料库中的文本经行标记,如图1【010】;
s2:获取当前语料库中训练文本,训练抽取模型,作为当前一级抽取模型,如图1【020】
s3:对于当前语料库中文本整理优化并生成新语料库,如图1【030】;
s4:判断当前状态是否满足训练停止条件,若结果为假,则将上一级抽取模型当做当前一级抽取模型并执行s2,若结果为真,则执行s5,如图1【040】;
s5:输出所有经过训练的模型,如图1【050】。
一个抽取嵌套命名实体关系的方法,该方法利用上述训练产生的模型群,其特征在于如下步骤:
如附图图2所示,
s6:对待识别文本经行实体识别,以备后续使用,当前文本级别为设为1级,如图2【070】;
s7:对于当前级匹配的根据权利要求1所产生的模型群抽取模型进行关系抽取,生成并存储当前级的三元组,如图2【080】;
s8:判断是否满足训练停止条件,若结果为真,则执行s10,若结果为假,则将当前的文本经行整理优化,将当前文本级别加1,执行s7,如图2【090】;
s10:整理输出所有级别的三元组,如图2【100】。
具体地,例如对于“在爱情和友情逐步成为巨大压力的时候,超人成为英雄”作为训练语料库文本时,初始实体和关系标记如下:从训练自然语言文本语料库中抽取包含两个实体的关系本文,对于“在爱情和友情逐步成为巨大压力的时候,超人成为英雄”中的实体进行识别将“爱情”标记为ea,“友情”标记为eb,“巨大压力”标记为ec,“超人”标记为ed,“英雄”标记为ee,获得ea和eb关系为r11,ed同ee关系为r12。r11和r12进一步标记为关系r31,成为嵌套关系,如图3所示:
在经过s2处理时,一级关系如r11和r12被模型接收并训练参数,随后经过s3整理关系、合并关系、嵌套替换和降噪。整理关系和合并关系,对于一个词汇实体属于多个关系的情况,做冗余处理,然后进行嵌套替换,从下级到上级语料库变换过程中,下级的关系所涵盖的所有文字会被替换成一个具体的命名实体。因此第二级关系会降级为第一级关系,适用于两个实体关系抽取算法。注意,此处的替换的不仅仅相关实体,而是替换两个边界实体之间的所有文字,这些内容会全部被替换成一个具体的命名实体。新的命名实体前后可能存在一些孤立的形容词、副词、甚至名词等语言元素,因此进行降噪处理,对不存在谓语的语言元素采用删除处理,以降低下一步训练模型时候的噪声。例如,“在爱情和友情逐步成为巨大压力的时候,超人成为英雄”中“爱情”、“友情”、“巨大压力”、“超人”、“英雄”都是命名实体,可以被“在条件逐步成为巨大压力的时候,结果”替换,其中“爱情和友情”被“条件”所替换,“超人成为英雄”被“结果”替换,生成二级的语料库“在条件逐步成为巨大压力的时候,结果”,如图4所示:如s4判断训练过程未结束,则二级语料库文本交给s2处理,第二级模型接受r21和er11、ec。
之后初始语料库中的最大层级仍未能被处理,因而还存在实体关系有待抽取,随后对于“在条件逐步成为巨大压力的时候,结果”再重复上述的整理关系、合并关系、嵌套替换和降噪的步骤,“条件逐步成为巨大压力”被“条件”替换,此处“条件“标记为er21,最终获得三级语料库,其中文本被表述为“在条件的时候,结果”,er21和er12的关系为r31,由第三级模型接受。之后,由于语料库中的最高层级实体关系已经被处理,因此结束模型训练流程。由此获得了从低到高三级的模型。
在关系抽取过程中,对于经过实体识别的自然语言文本进行抽取,初始化自然语言文本“在爱情和友情逐步成为巨大压力的时候,超人成为英雄”,对于文本进行实体标记,将“爱情”标记为ea,“友情”标记为eb,“巨大压力”标记为ec,“超人”标记为ed,“英雄”标记为ee。适配先前输出的抽取模型,发现文本能够适用一级模型,即获得ea和eb关系为r11,ed同ee关系为r12,因此提取“爱情”和“友情”的关系,“超人”和“英雄”的关系,而后各个关系所包含的文本被嵌套替换,所经过的过程同样经历了前叙的整理关系、合并关系、嵌套替换和降噪,获得了第一次整理优化后的文本:“在条件逐步成为巨大压力的时候,结果”,将处理结果存储于三元组。对于当前获得的文本进行模型适配,当前文本适用抽取模型中的二级模型,即er11和ec关系为r21。此时,尚未达到抽取模型的最高级,即三级模型,同时文本中还存在待识别的实体关系,因此继续适用第三级模型,即训练过程中产生的三级模型er21和er12的关系为r31进行关系抽取,经过整理关系、合并关系、嵌套替换和降噪,第二次整理优化后的文本,变为“在条件的时候,结果”,将处理结果存储于三元组,此时判断本次应用模型已经到达抽取模型的三级模型,结束关系抽取过程,输出三元组。
如上步骤会经历模型训练和关系抽取两大步骤,模型训练原理如附图图1所示。训练过程从标记初始语料库准备初始语料库开始,获得第一级关系抽取模型,选用一个稳定性能良好的两两实体关系抽取算法命名为算法a。以后向上每一级均需要生成上级语料库并用a来训练上级抽取模型。直到满足停止条件后,输出各级抽取模型。
初始标记过程为:首先人工或利用命名实体识别算法(对中文还需要分词算法)将实体标出来,然后人为连接各种关系。
在每一级处理语料库生成上级语料。生成上级语料库按顺序含三个步骤:
1、整理合并关系,将一对多或多对一的多实体关系整理成两实体关系。例如:<ed><r12><ee>,<ed><r12><ef>,<ed><r12><eg>会被合并成<ed><r12><ee,ef,eg>。同时,对于一个词汇实体属于多个关系的情况,该实体会被冗余处理。例如,<ed><r12><ee,ef,eg>,同时存在<ef><r13><eh>的情况时,会在<ed><r12><ee,ef,eg>附近,靠近<r13>的地方增加一个<ef>。
2、嵌套替换,将从第二级开始,从下级到上级语料库变换过程中,下级的关系会被替换成一个具体的命名实体。例如,第二级关系抽取时的语料库中第一级关系会这样变化:<eb><r11><ec>变为<er11>,<ed><r12><ee,ef,eg>变为<er12>。因此第二级关系会降级为第一级关系,适用于两个实体关系抽取算法。关系和实体之间转换的命名取决于具体算法a,以能够提供清晰可分的特征为诉求。注意,此处的替换的不仅仅相关实体,而是替换两个边界实体之间的所有文字,例如<ed>和<eg>之间会有其他非命名实体或不相关未标记实体,这些内容会全部被替换成一个具体的命名实体。
3、降噪,在嵌套替换后,新的命名实体前后可能存在一些孤立的形容词、副词、甚至名词等语言元素。因为在初始语料库中,词性可以被标识出来,这样本发明在这一步对不存在谓语的语言元素采用删除处理或者补充语言,以降低下一步训练模型时候的噪声。
训练过程的停止条件为整个初始语料库中存在的最大层级数。如果逐级处理到这个层级数,则停止。训练过程只关注当前语料库中的最下层两两实体关系。在本发明中,这个循环会产生不同层次的两两实体关系抽取模型。在停止后,整理输出的多层抽取模型。本发明采用上述的训练模式,属于有监督学习方法,与其他有监督学习不同的是,标记时要求本发明中标记语料会被进一步处理,以满足不同关系层次的训练需求,从而实现多场景应用和精准关系抽取。
在训练过程结束后,进行关系抽取,如附图图2所示,利用输出的一套两实体关系抽取模型,可以构建出如下自然语言文本的关系抽取过程。给定一个待抽取文本,待抽取自然语言文本包含自动实体识别,依次调用不同层级的识别抽取模型,再关系抽取并存储三元组,存储为三元组格式文件。判断抽取循环结束的条件为两者取其一:一、是否达到抽取模型的最高级;二、文本中是否还存在待识别实体关系。这个或逻辑为真的时候,抽取过程停止。随后通过整理优化文本过程和生成上级语料库类似,用每一次关系抽取结果处理当前文本,复用在训练过程中所使用的1、整理合并关系,2、嵌套替换和3、降噪的功能的顺序,不同的是所采用的模型为训练过程中产生的多层抽取模型。当关系抽取过程结束,生成最终的复杂关系三元组文件。
背景为一个典型的具有注意力(attention)的长短时间记忆循环神经网络(lstm)。这个模型a可以是基于卷积神经网络、支撑向量机、马尔可夫逻辑网、或transformer(如bert)的。本发明不约束具体模型中实体关系抽取算法的实现。由于本发明不依赖于特定的算法,而是一个系统和方法使得嵌套关系抽取成为可能并保证其结果不低于一个只抽取两个实体关系的算法精度。因而在本发明中,识别两个实体关系的算法作为一个黑箱部件存在,能够实现多种算法的替换。本发明对每个层次的关系抽取均训练一个模型,即最底层的两两关系抽取一个模型,第二层实体和关系的关系、关系和关系的关系为第二层,以此类推。在能够在保障精准度的同时,实现多场景应用,尤其是当层级更多的时候和跨越多个句子的时候实现精准关系抽取。
需要指出的是,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
1.一种训练嵌套命名实体关系抽取模型的方法,其特征在于,包括如下步骤:
s1:准备语料库,对语料库中的文本经行标记;
s2:获取当前语料库中训练文本,训练抽取模型,作为当前一级抽取模型;
s3:对于当前语料库中文本整理优化并生成新语料库;
s4:判断当前状态是否满足训练停止条件,若结果为假,则将上一级抽取模型当做当前一级抽取模型并执行s2,若结果为真,则执行s5;
s5:输出所有经过训练的模型。
2.根据权利要求1中所述的一种在自然语言中训练嵌套命名实体关系抽取模型的方法,其特征在于:s4中的训练判断停止条件为是否达到语料库的训练文本中存在的最大层级数。
3.根据权利要求1中所述的一种在自然语言中训练嵌套命名实体关系抽取模型的方法,其特征在于:s3中生成新语料库包含整理并合并实体关系过程,判断若存在一个实体和多个实体之间的关系,则将其中的多个实体合并为单个实体,转化为两个单独实体间的关系。
4.根据权利要求1中所述的一种在自然语言中训练嵌套命名实体关系抽取模型的方法,其特征在于:s3中生成新语料库包含文本嵌套替换过程,从第二级开始,对文本做整理优化时,所述文本嵌套替换是指一个关系的最左边和最右边两个实体间的所有文本替换为具有代表性的词汇。如果被替换文本中存在其他实体并且该实体所属关系并非当前所述关系,则该实体被复制并且放置于上述具有代表性的词汇旁边。
5.根据权利要求1中所述的一种在自然语言中训练嵌套命名实体关系抽取模型的方法,其特征在于:s3中生成新语料库包含降噪过程,对于孤立的语言词汇进行删除或补充,以降低下一步处理时候的噪声。
6.一种抽取嵌套命名实体关系的方法,其特征在于,包含如下步骤:
s6:对待识别文本经行实体识别,以备后续使用,当前文本级别为设为1级;
s7:对于当前级匹配的根据权利要求1所产生的模型群抽取模型进行关系抽取,生成并存储当前级的三元组;
s8:判断是否满足训练停止条件,若结果为真,则执行s10,若结果为假,则将当前的文本整理优化,将当前文本级别加1,执行s7;
s10:整理输出所有级别的三元组。
7.根据权利要求6所述的一种抽取嵌套命名实体关系的方法,其特征在于:s7中的关系抽取包含整理并合并实体关系过程,判断若存在一个实体和多个实体之间的关系,则将其中的多个实体合并为单个实体,转化为两个单独实体间的关系。
8.根据权利要求6所述的一种抽取嵌套命名实体关系的方法,其特征在于:s7中的关系抽取包含文本嵌套替换过程,从第二级开始,对文本做整理优化时,所述文本嵌套替换是指一个关系的最左边和最右边两个实体间的所有文本替换为具有代表性的词汇。如果被替换文本中存在其他实体并且该实体所属关系并非当前所述关系,则该实体被复制并且放置于上述具有代表性的词汇旁边。
9.根据权利要求6所述的一种抽取嵌套命名实体关系的方法,其特征在于:s7中的关系抽取包含降噪过程,对于孤立的语言词汇进行删除或补充,以降低下一步处理时候的噪声。
10.根据权利要求6所述的一种抽取嵌套命名实体关系的方法,其特征在于:s3中的判断抽取停止条件为下列两者的或逻辑:一、抽取关系的过程已经调用了最高一级的抽取模型;二、当前文本存在待识别实体关系。
技术总结