文本三元组的抽取方法及装置、电子设备及存储介质与流程

文档序号:22967364发布日期:2020-11-19 21:41阅读:227来源:国知局
文本三元组的抽取方法及装置、电子设备及存储介质与流程

本申请涉及自然语言处理领域,尤其涉及一种提取信息的方法及装置、电子设备及计算机可读存储介质。



背景技术:

三元组的结构为:第一实体-实体关系-第二实体,文本三元组抽取的目标是抽取文本中实体以及确定实体之间的关系,文本三元组信息抽取是从自然语言文本中抽取实体、属性、关系及事件等事实类信息的文本处理技术,是信息检索、智能问答、以及智能对话等人工智能应用的重要基础。

因此,如何高效且准确的抽取文本三元组信息,成为了目前亟待解决的问题。



技术实现要素:

发明人研究发现,现有的文本三元组信息抽取的抽取方法通常是,先抽取文本中的实体,再通过实体预测实体间的关系,从而得到三元组信息。这样抽取方式的问题在于,如果文本中抽取出的实体比较多,但很多实体不存在对应的实体关系,则需要花费较长的时间,才可以找到满足实体关系的实体,导致文本三元组信息抽取效率低。另外,若抽取的实体抽取错误的情况下,会直接导致最后得到文本三元组也是错误的。所以先抽取文本中的实体,再通过实体预测实体间的关系会往往会导致抽取三元组信息的效率低且准确性低。为此,本申请提供了一种文本三元组的抽取方法及装置,目的在于解决如何高效且准确的抽取文本三元组信息的问题。

为了实现上述目的,本申请提供了以下技术方案:

一种文本三元组的抽取方法,包括:

确定文本中存在的实体关系;

获取第一集合和第二集合;所述第一集合中包括的任意一个实体为所述文本中的满足所述实体关系的第一实体,所述第二集合中包括的任意一个实体为所述文本中的满足所述实体关系的第二实体;所述第一实体所属的实体类型为所述实体关系中规定的第一实体类型,所述第二实体所属的实体类型为所述实体关系中规定的第二实体类型;

针对所述第一集合的每个所述第一实体,从所述第二集合中确定与所述第一实体匹配的所述第二实体;

依据所述第一实体、所述实体关系、以及与所述第一实体匹配的所述第二实体,得到所述文本三元组。

上述的方法,可选的,所述确定文本中存在的实体关系,包括:

获取预先建立的实体关系数据库,所述实体关系数据库包括多个所述实体关系;

针对所述实体关系数据库中的每个所述实体关系,采用基于bert模型的文本二分类算法,计算所述实体关系存在于所述文本中的概率值;

若所述概率值大于第一阈值,则将所述实体关系作为所述文本中存在的所述实体关系。

上述的方法,可选的,所述获取第一集合和第二集合,包括:

将所述文本与所述实体关系进行拼接,得到第一文本;

从所述第一文本中获取所述第一实体和所述第二实体;

将所有所述第一实体组成的集合作为所述第一集合,并将所有所述第二实体组成的集合作为所述第二集合。

上述的方法,可选的,从所述第一文本中获取所述第一实体的过程,包括:

针对所述第一文本中每个文字,采用基于bert模型的微调算法对所述文字进行二分类计算,得到所述文字作为第一实体起始字、和第一实体结束字的概率值;所述第一实体起始字为所述第一实体的第一个字,所述第一实体结束字为所述第一实体的最后一个字;

将所述第一实体起始字的概率值大于第二阈值的所有所述文字,作为所述第一实体起始字;

将所述第一实体结束字的概率值大于第三阈值的所有所述文字,作为所述第一实体结束字;

针对每个所述第一实体起始字,从所有所述第一实体结束字中选取第一目标结束字,所述第一目标结束字在所述第一文本中位于所述第一实体起始字之后,且所述第一目标结束字在所有所述第一实体结束字中,与所述第一实体起始字在所述第一文本中的位置最近;

将所述第一文本中从所述第一实体起始字到所述第一目标结束字的文字段作为所述第一实体。

上述的方法,可选的,从所述第一文本中获取所述第二实体的过程,包括:

针对所述第一文本中每个文字,采用基于bert模型的微调算法对所述文字进行二分类计算,得到所述文字作为第二实体起始字、和第二实体结束字的概率值;所述第二实体起始字为所述第二实体的第一个字,所述第二实体结束字为所述第二实体的最后一个字;

将所述第二实体起始字的概率值大于第四阈值的所有所述文字,作为所述第二实体起始字;

将所述第二实体结束字的概率值大于第五阈值的所有所述文字,作为所述第二实体结束字;

针对每个所述第二实体起始字,从所有所述第二实体结束字中选取第二目标结束字,所述第二目标结束字在所述第二文本中的位置位于所述第二实体起始字之后,且所述第二目标结束字在所有所述第二实体结束字中,与所述第二实体起始字在所述第二文本中的位置最近;

将所述第一文本中从所述第二实体起始字到所述第二目标结束字的文字段作为所述第二实体。

上述的方法,可选的,所述针对所述第一集合的每个第一实体,从所述第二集合中确定与所述第一实体匹配的所述第二实体,包括:

针对所述第一集合的每个所述第一实体,从所述第二集合中选取与所述第一实体在所述第一文本中位置最近的所述第二实体,作为与所述第一实体匹配的实体。

上述的方法,可选的,在依据所述第一实体、与所述第一实体匹配的所述第二实体、以及所述实体关系,得到所述文本三元组之后,还包括:

基于预设的三元组数据库,确定所述三元组数据库中预先存储的三元组中,包括所述第一实体与所述文本三元组中的所述实体关系的三元组的数量,与所述三元组数据库中预选存储的所述三元组中,包括所述第一实体与其他实体关系的三元组的数量的第一差值,若所述第一差值不大于第六阈值,则确定所述文本三元组为正确的三元组;其中,所述三元组数据库任意一个所述三元组中包括的实体对之间具有所述三元组中包括的实体关系;所述正确的三元组中包括的第一实体和第二实体具有所述三元组中包括的实体关系;

或者;

基于预设的三元组数据库,确定所述三元组数据库中预先存储的三元组中,包括所述第二实体与所述文本三元组中的所述实体关系的三元组的数量,与所述三元组数据库中预选存储的所述三元组中,包括所述第二实体与其他实体关系的三元组的数量的第二差值,若所述第一差值不大于第七阈值,则确定所述文本三元组为正确的三元组;

或者;

基于预设的三元组数据库,判断所述三元组数据库中预先存储的三元组中,是否存在与所述文本三元组相同的三元组;如果存在,则确定所述文本三元组为正确的三元组。

一种文本三元组的抽取装置,包括:

第一确定单元,用于确定文本中存在的实体关系;

获取单元,用于获取第一集合和第二集合;所述第一集合中包括的任意一个实体为所述文本中的满足所述实体关系的第一实体,所述第二集合中包括的任意一个实体为所述文本中的满足所述实体关系的第二实体;

匹配单元,用于针对所述第一集合的每个所述第一实体,从所述第二集合中确定与所述第一实体匹配的所述第二实体;

第二确定单元,用于依据所述第一实体、所述实体关系、以及与所述第一实体匹配的所述第二实体,得到所述文本三元组。

一种电子设备,包括:处理器和存储器,所述存储器用于存储程序;所述处理器用于运行所述程序,以实现上述的文本三元组的抽取方法。

一种存储介质,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的文本三元组的抽取方法。

本申请实施例提供的方法及装置,先确定文本中存在的实体关系,再获取第一集合和第二集合,第一集合中包括的任意一个实体为文本中的满足实体关系的第一实体,第二集合中包括的任意一个实体为文本中的满足实体关系的第二实体,所以本方案相当于,先确定文本中存在的实体关系,再从文本中抽取满足实体关系的第一实体和第二实体,从而可以避免现有技术中先抽取实体,导致因大部分实体不存在对应的实体关系,而使获取三元组效率低的问题。

进一步的,针对第一集合的每个第一实体,从第二集合中确定与第一实体匹配的第二实体,最后依据第一实体、实体关系、以及与第一实体匹配的第二实体,得到文本三元组,因为得到的三元组中第一实体与第二实体是相互匹配的,且第一实体与第二实体都满足实体关系,所以可以提高三元组的准确性。

综上,本申请提供的方法可以高效且准确的从文本中抽取文本的三元组信息。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的文本三元组的抽取方法的流程图;

图2为本申请实施例提供的又一文本三元组的抽取方法的流程图;

图3为本申请实施例提供的确定文本中存在的实体关系的方法的流程图;

图4为从第一文本中获取第一实体的方法的流程图;

图5为从第一文本中获取第二实体的方法的流程图;

图6为本申请实施例提供的文本三元组的抽取装置的结构示意图;

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

具体实施方式

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

图1为本申请实施例提供的一种文本三元组的抽取方法,可以包括以下步骤:

s101、确定文本中存在的实体关系。

本实施例中,文本指的是以单个句子的文段。实体关系是表征两个实体之间的关系,实体之间的关系可以是属性关系,也可以是其他的关系。文本中存在的实体关系,说明文本中包括的实体中具有实体关系,例如,文本为:“小明出生于上海”,则“小明”和“上海”之间的实体关系为“人物-出生地-地名”。

本步骤的具体实施例方式可以参考图3所示的流程图,此处不再赘述。

s102、获取第一集合和第二集合。

第一集合中包括多个第一实体,第一集合中包括的任意一个实体为文本中的满足实体关系的第一实体。

第二集合中包括多个第二实体,第二集合中包括的任意一个实体为文本中的满足实体关系的第二实体。

第一实体满足实体关系为:第一实体所属的实体类型为实体关系中规定的第一实体类型。第二实体满足实体关系为,第二实体所属的实体类型为实体关系中所规定的第二实体类型。

例如,实体关系为“人物-出生地-地名”,其中,“人物”为第一实体类型,“地名”为第二实体类型,文本:“小明出生于上海”中,“小明”属于人物类型,“上海”属于地名类型,所以“小明”和“上海”都属于满足实体关系“人物-出生地-地名”的实体。

本步骤的具体实施方式为:将文本与实体关系进行拼接,得到第一文本,从第一文本中获取第一实体和第二实体,将所有第一实体组成的集合作为第一集合,并将所有第二实体组成的集合作为述第二集合。

例如,文本为:“小明出生于上海”,实体关系为:“人物-出生地-地名”,则将文本与实体关系进行拼接,得到第一文本为:“人物-出生地-地名—小明生于上海”。

从文本中获取得到的第一实体的总数可能是一个,也可能是多个,同样的第二实体的总数可能是一个,也可能是多个。第一实体的总数和第二实体的总数可以相等,也可以不相等。例如,文本为:“小明生于上海,而李华出生于北京”。实体关系为:“人物-出生地-地名”,则第一实体包括“小明”和“李华”,则第二实体包括“上海”和“北京”。

进一步的,第一实体和第二实体在文本中的句子成分关系可以是:第一实体为主语,第二实体为宾语。例如,文本为“小明喜欢打篮球”,则第一实体为主语“小明”,第二主体为宾语“篮球”。当然,第一实体和第二实体在文本中还可以是其他的句子成分关系,例如,第一实体为主语,第二实体为表语等。只要文本中的某一文字内容所属的实体类型为实体关系中规定的第一实体类型,即可作为第一实体,同理,只要文本中某一文字内容所属的实体类型为实体关系中所规定的第二实体类型,即可作为第二实体。

其中,从第一文本中获取第一实体的具体实现方式可以参考图4所示的流程图,从第一文本中获取第二实体的具体实现方式可以参考图5所示的流程图。

s103、针对第一集合的每个第一实体,从第二集合中确定与第一实体匹配的第二实体。

因为第一集合中包括的第一实体可以单个,也可以是多个,第二集合中包括的第二实体可以单个,也可以是多个。所以,针对第一集合的每个第一实体,从第二集合中确定与第一实体匹配的第二实体。

本步骤的具体实施方式为:针对第一集合的每个第一实体,从第二集合中选取与第一实体在第一文本中位置最近的第二实体,作为与第一实体匹配的实体。例如,文本为:“小明生于上海,而李华出生于北京”。实体关系为:“人物-出生地-地名”,第一实体包括“小明”和“李华”,第二实体包括“上海”和“北京”。对于第一实体“小明”,在第二实体中,“上海”为与“小明”在第一文本中位置最近的实体,所以,将“上海”作为与“小明”匹配的实体。

当然,如果第一集合只有一个第一实体,如果第二集合只有一个第二实体,则可直接将第二实体作为与第一实体匹配的实体。

s104、依据第一实体、实体关系、以及与第一实体匹配的第二实体,得到文本三元组。

例如,第一实体为“小明”,实体关系为“人物-出生地-地名”第二实体为“上海”,文本三元组为“小明-出生地-上海”。

本实施例提供的方法,先确定文本中存在的实体关系,再获取第一集合和第二集合,第一集合中包括的任意一个实体为文本中的满足实体关系的第一实体,第二集合中包括的任意一个实体为文本中的满足实体关系的第二实体,所以本方案相当于,先确定文本中存在的实体关系,再从文本中抽取满足实体关系的第一实体和第二实体,从而可以避免现有技术中先抽取实体,导致因大部分实体不存在对应的实体关系,而使获取三元组效率低的问题。

进一步的,针对第一集合的每个第一实体,从第二集合中确定与第一实体匹配的第二实体,最后依据第一实体、实体关系、以及与第一实体匹配的第二实体,得到文本三元组,因为得到的三元组中第一实体与第二实体是相互匹配的,且第一实体与第二实体都满足实体关系,所以可以提高三元组的准确性。

综上,本申请提供的方法可以高效且准确的从文本中抽取文本的三元组信息。

为了验证抽取得到的文本三元组的准确性,参考图2,本申请实施例提供的另一种文本三元组的抽取方法,图2为在图1的基础上,增加了步骤s105~s109。

s105、针对每个文本三元组,判断文本三元组是否满足预设的第一条件,如果不满足,则执行s106,如果满足,则执行s108。

预设的第一条件为:预设的三元组数据库中预先存储的三元组中,包括第一实体与文本三元组中的实体关系的三元组的数量,与三元组数据库中预选存储的三元组中,包括第一实体与其他实体关系的三元组的数量的第一差值,不大于第六阈值。

其中,三元组数据库任意一个三元组中包括的实体对之间具有三元组中包括的实体关系。

s106、判断文本三元组是否满足预设的第二条件,如果不满足,则执行s107,如果满足,则执行s108。

预设的第二条件为:三元组数据库中预先存储的三元组中,存在与文本三元组相同的三元组。

s107、判断文本三元组是否满足预设的第三条件,如果满足,则执行s108,如果不满足,则执行s109。

预设的第三条件为:三元组数据库中预先存储的三元组中,包括第二实体与文本三元组中的实体关系的三元组的数量,与三元组数据库中预选存储的三元组中,包括第二实体与其他实体关系的三元组的数量的第二差值不大于第七阈值。

s108、确定文本三元组为正确的三元组,并将文本三元组放置于预设的文本三元组集合。

本实施例中,若文本三元组满足第一条件、第二条件、或者第三条件,则将文本三元组作为正确的三元组。正确的三元组中包括的第一实体和第二实体具有该三元组中包括的实体关系。

将正确的文本三元组放置于预设的文本三元组集合,使用户通过该文本三元组集合,获取得到文本的正确的三元组。

s109、确定文本三元组为错误的三元组。

本实施例中,若文本三元组不满足第一条件、第二条件、以及第三条件中的任意一个条件,则将文本三元组作为错误的三元组。错误的三元组包括的第一实体和第二实体不具有该三元组中包括的实体关系。

需要说明的是,本实施例中,第一条件、第二条件、以及第三条件的判断顺序仅仅是示例,本实施例对第一条件、第二条件、以及第三条件的判断顺序不做限定,只要文本三元组满足第一条件、第二条件、以及第三条件当中的一个条件,则确定文本三元组为正确的三元组。

本实施例提供的方法,先确定文本中存在的实体关系,再获取第一集合和第二集合,第一集合中包括的任意一个实体为文本中的满足实体关系的第一实体,第二集合中包括的任意一个实体为文本中的满足实体关系的第二实体,所以本方案相当于,先确定文本中存在的实体关系,再从文本中抽取满足实体关系的第一实体和第二实体,从而可以避免现有技术中先抽取实体,导致因大部分实体不存在对应的实体关系,而使获取三元组效率低的问题。

进一步的,针对第一集合的每个第一实体,从第二集合中确定与第一实体匹配的第二实体,最后依据第一实体、实体关系、以及与第一实体匹配的第二实体,得到文本三元组,因为得到的三元组中第一实体与第二实体是相互匹配的,且第一实体与第二实体都满足实体关系,所以可以提高三元组的准确性。

进一步的,在得到文本三元组后,对文本三元组的正确性进行验证,从而可以确保最后得到的三元组为正确的三元组。

综上,本申请提供的方法可以高效且准确的从文本中抽取文本的三元组信息。

图3为上述实施例中确定文本中存在的实体关系的具体实施方式,可以包括以下步骤:

s301、获取预先建立的实体关系数据库。

实体关系数据库中包括多个实体关系。

s302、针对实体关系数据库中的每个实体关系,采用基于bert模型的文本二分类算法,计算实体关系存在于文本中的概率值。

例如,实体关系数据库包括的所有实体关系为r={r1,r2,…,rn},r为实体关系集合,ri(i=1,2,...,n)表示实体关系。对任意一个实体关系ri,采用基于bert模型的文本二分类算法,计算得到ri在于文本t中存在的概率p(ri|t)。

bert为transformer的双向编码器表示,是一种预训练语言表示的方法,bert模型可以准确的捕捉语句中的双向关系。所以采用bert模型的文本二分类算法,计算实体关系存在于文本中的概率值具有良好的准确性。

本步骤的具体实施方式可以参考现有技术,此处不再赘述。

s303、若实体关系存在于文本中的概率值大于第一阈值,则将实体关系作为文本中存在的实体关系。

若概率p(ri|t)大于第一阈值λ,则表示实体关系ri在文本t中存在,则将实体关系作为文本中存在的实体关系。

本申请提供的方案,采用基于bert模型的文本二分类算法计算实体关系数据库中,每个实体关系存在于文本中概率值,从而得到在文本中存在所有实体关系。因为bert模型可以准确的捕捉语句中的双向关系,所以采用bert模型的文本二分类算法,计算实体关系存在于文本中的概率值具有良好的准确性,所以最终得到的在文本中存在所有实体关系具有较高的准确性。

图4为上述实施例中从第一文本中获取第一实体的方法的具体实施方式,可以包括以下步骤:

s401、针对第一文本中每个文字,采用基于bert模型的微调算法对文字进行二分类计算,得到文字作为第一实体起始字、和第一实体结束字的概率值。

第一实体起始字为第一实体的第一个字,第一实体结束字为第一实体的最后一个字。本步骤的具体实施方式可以参考现有技术。

s402、将第一实体起始字的概率值大于第二阈值的所有文字,作为第一实体起始字。

s403、将第一实体结束字的概率值大于第三阈值的所有文字,作为第一实体结束字。

s404、针对每个第一实体起始字,从所有第一实体结束字中选取第一目标结束字。

第一目标结束字在第一文本中的位于起始字之后,且第一目标结束字在所有第一实体结束字中,与第一实体起始字在第一文本中的位置最近。例如,第一文本为:“小明的出生于上海,而李华的出生于北京”,第一实体起始字为“小”和“李”,第一实体结束字为“明”和“华”,“明”在文本中位于“小”后面,且在文本中与“小”位置距离比“华”字近,则将“明”作为“小”的第一目标结束字。

s405、将第一文本中从第一实体起始字到第一目标结束字的文字段作为第一实体。

如上述的,第一文本为:“小明的出生于上海,而李华的出生于北京”,第一实体起始字“小”的第一目标结束字为“明”,在文本中从“小”和“明”的文字段为“小明”,所以第一实体则为“小明”。

本实施例提供的方案,针对第一文本中每个文字,采用基于bert模型的微调算法对文字进行二分类计算,得到文字作为第一实体起始字和第一实体结束字的概率值,并基于文字作为第一实体起始字和第一实体结束字的概率值,从而文本中得到第一实体。

图5为上述实施例中从第一文本中获取第二实体的方法的具体实施方式,可以包括以下步骤:

s501、针对第一文本中每个文字,采用基于bert模型的微调算法对文字进行二分类计算,得到文字作为第二实体起始字、和第二实体结束字的概率值。

第二实体起始字为第二实体的第一个字,第二实体结束字为第二实体的最后一个字。本步骤的具体实施方式可以参考现有技术。

s502、将第二实体起始字的概率值大于第四阈值的所有文字,作为第二实体起始字。

s503、将第二实体结束字的概率值大于第五阈值的所有文字,作为第二实体结束字。

s504、针对每个第二实体起始字,从所有第二实体结束字中选取第二目标结束字。

第二目标结束字在第二文本中的位置位于第二实体起始字之后,且第二目标结束字在所有第二实体结束字中,与第二实体起始字在第二文本中的位置最近。

s505、将第一文本中从第二实体起始字到第二目标结束字的文字段作为第二实体。

本实施例提供的方式,针对第一文本中每个文字,采用基于bert模型的微调算法对文字进行二分类计算,得到文字作为第二实体起始字和第二实体结束字的概率值,并基于文字作为第二实体起始字和第二实体结束字的概率值,从而文本中得到第二实体。

以下以从文本:“《红尘客栈》仍是周氏中国风,歌词很苍凉,很有“古道西风瘦马”的味道,再加上周杰伦那特殊的嗓音,相得益彰”中抽取文本三元组为例,对申请实施例提供的方法进行说明。

以下用“t”代表文本:“《红尘客栈》仍是周氏中国风,歌词很苍凉,很有“古道西风瘦马”的味道,再加上周杰伦那特殊的嗓音,相得益彰”。

本实例具有包括以下步骤:

步骤一、采用基于bert模型的文本二分类算法计算所有实体关系r={r1,r2,…,rn}r1中的每个实体关系存在于文本t中的概率,得到每个实体关系在文本t存在的概率为(0,008,0.002,0,0,0.922,0,0,.0.013,...,0.134,0.098,0,0,0,0)。设阈值λ1=0.5,则所有概率值中只有0.922大于λ,概率值0.92对应的实体关系为r20,实体关系r20为“歌手-作品-歌曲,因此得到候选实体关系集为:{r20}。

步骤二、选实体关系r20和文本t进行拼接,得到文本tnew:“歌手-作品-歌曲-《红尘客栈》仍是周氏中国风,歌词很苍凉,很有“古道西风瘦马”的味道,再加上周杰伦那特殊的嗓音,相得益彰”。

步骤三、采用基于bert模型的微调算法对拼接后文本tnew中每个字ci做二分类,得到每个字ci作为第一实体起始字、第一实体结束字、第二实体起始字、以及第二实体结束字的概率。其中,ci作为第一实体起始字、第一实体结束字、第二实体起始字、以及第二实体结束字的概率,分别用p(主语起始|ci),p(主语结束|ci),p(宾语起始|ci)以及p(宾语结束|ci)表示。i文字ci在文本tnew中的位置。

步骤四、设定阈值λ2=0.5,令p(第一实体起始字|ci)大于阈值λ,得到i=46;令p(第一实体结束|cj)大于阈值λ,得到j=48。其中,j表示文字ci在文本tnew中的位置。文本tnew中,从文字c46,到文字c48对应的文段为周杰伦,则第一实体s1=周杰伦。同理得到第二实体为o1=红尘客栈。最终第一实体集合s={s1}。同理得到第二实体集合o={o1}。

步骤五、因为第一实体集合s元素个数为1且第二实体集合o元素为1,因此将第一实体集合s和第二实体集合o进行一一匹配得到候选三元组集合{(s1,r20,o1)},其中s1为“周杰伦”,r20为歌手-作品-歌曲,o1为“红尘客栈”。

步骤六、对得到的候选三元组进行正确性的检验。在预设的三元组数据集合中,第一实体s1和关系r20一起共出现236次,第一实体s1与其他关系共出现396次,396与236的差值160小于预设的阈值λ3=300,表示得到的三元组正确。所以最终预测的三元组集合为{周杰伦,歌手-作品-歌曲,红尘客栈}。

图6本申请实施例提供的文本三元组的抽取装置600的结构示意图,包括:

第一确定单元601,用于确定文本中存在的实体关系。

获取单元602,用于获取第一集合和第二集合;第一集合中包括的任意一个实体为文本中的满足实体关系的第一实体,第二集合中包括的任意一个实体为文本中的满足实体关系的第二实体。第一实体所属的实体类型为实体关系中规定的第一实体类型,第二实体所属的实体类型为实体关系中规定的第二实体类型。

匹配单元603,用于针对第一集合的每个第一实体,从第二集合中确定与第一实体匹配的第二实体;

第二确定单元604,用于依据第一实体、实体关系、以及与第一实体匹配的第二实体,得到文本三元组。

可选的,上述的装置600,还包括:验证单元605,用于基于预设的三元组数据库,确定三元组数据库中预先存储的三元组中,包括第一实体与文本三元组中的实体关系的三元组的数量,与三元组数据库中预选存储的三元组中,包括第一实体与其他实体关系的三元组的数量的第一差值,若第一差值不大于第六阈值,则确定文本三元组为正确的三元组;其中,三元组数据库任意一个三元组中包括的实体对之间具有三元组中包括的实体关系;正确的三元组中包括的第一实体和第二实体具有三元组中包括的实体关系。

或者;

基于预设的三元组数据库,确定三元组数据库中预先存储的三元组中,包括第二实体与文本三元组中的实体关系的三元组的数量,与三元组数据库中预选存储的所述三元组中,包括第二实体与其他实体关系的三元组的数量的第二差值,若第一差值不大于第七阈值,则确定文本三元组为正确的三元组;

或者;

基于预设的三元组数据库,判断三元组数据库中预先存储的三元组中,是否存在与文本三元组相同的三元组;如果存在,则确定文本三元组为正确的三元组。

可选的,第一确定单元601确定文本中存在的实体关系的具体实施方式为:获取预先建立的实体关系数据库,实体关系数据库包括多个实体关系;

针对实体关系数据库中的每个实体关系,采用基于bert模型的文本二分类算法,计算实体关系存在于文本中的概率值;

若概率值大于第一阈值,则将实体关系作为文本中存在的实体关系。

可选的,获取单元602获取第一集合和第二集合的具体实施方式为:将文本与实体关系进行拼接,得到第一文本;从第一文本中获取第一实体和第二实体;将所有第一实体组成的集合作为第一集合,并将所有第二实体组成的集合作为第二集合。

可选的,获取单元602从第一文本中获取第一实体的具体实现方式为:

针对第一文本中每个文字,采用基于bert模型的微调算法对文字进行二分类计算,得到文字作为第一实体起始字、和第一实体结束字的概率值;第一实体起始字为第一实体的第一个字,第一实体结束字为第一实体的最后一个字;

将第一实体起始字的概率值大于第二阈值的所有文字,作为第一实体起始字;

将第一实体结束字的概率值大于第三阈值的所有文字,作为第一实体结束字;

针对每个第一实体起始字,从所有第一实体结束字中选取第一目标结束字,第一目标结束字在第一文本中的位于起始字之后,且第一目标结束字在所有第一实体结束字中,与第一实体起始字在第一文本中的位置最近;

将第一文本中从第一实体起始字到第一目标结束字的文字段作为第一实体。

可选的,获取单元602从第一文本中获取第二实体的具体实现方式为:

针对第一文本中每个文字,采用基于bert模型的微调算法对文字进行二分类计算,得到文字作为第二实体起始字、和第二实体结束字的概率值;第二实体起始字为第二实体的第一个字,第二实体结束字为第二实体的最后一个字;

将第二实体起始字的概率值大于第四阈值的所有文字,作为第二实体起始字;

将第二实体结束字的概率值大于第五阈值的所有文字,作为第二实体结束字;

针对每个第二实体起始字,从所有第二实体结束字中选取第二目标结束字,第二目标结束字在第二文本中的位置位于第二实体起始字之后,且第二目标结束字在所有第二实体结束字中,与第二实体起始字在第二文本中的位置最近;

将第一文本中从第二实体起始字到第二目标结束字的文字段作为第二实体。

可选的,匹配单元603,针对第一集合的每个第一实体,从第二集合中确定与第一实体匹配的第二实体的具体实施方式为:针对第一集合的每个第一实体,从第二集合中选取与第一实体在第一文本中位置最近的第二实体,作为与第一实体匹配的实体。

本申请实施例提供的装置,先确定文本中存在的实体关系,再获取第一集合和第二集合,第一集合中包括的任意一个实体为文本中的满足实体关系的第一实体,第二集合中包括的任意一个实体为文本中的满足实体关系的第二实体,所以本方案相当于,先确定文本中存在的实体关系,再从文本中抽取满足实体关系的第一实体和第二实体,从而可以避免现有技术中先抽取实体,导致因大部分实体不存在对应的实体关系,而使获取三元组效率低的问题。

进一步的,针对第一集合的每个第一实体,从第二集合中确定与第一实体匹配的第二实体,最后依据第一实体、实体关系、以及与第一实体匹配的第二实体,得到文本三元组,因为得到的三元组中第一实体与第二实体是相互匹配的,且第一实体与第二实体都满足实体关系,所以可以提高三元组的准确性。

综上,本申请提供的装置可以高效且准确的从文本中抽取文本的三元组信息。

本申请还提供了一种电子设备700,其结构示意图如图7所示,包括:处理器701和存储器702,存储器702用于存储应用程序,处理器701用于执行应用程序,以实现本申请的文本三元组的抽取方法,即执行以下步骤:

确定文本中存在的实体关系;

获取第一集合和第二集合;第一集合中包括的任意一个实体为文本中的满足实体关系的第一实体,第二集合中包括的任意一个实体为文本中的满足实体关系的第二实体;所述第一实体所属的实体类型为所述实体关系中规定的第一实体类型,所述第二实体所属的实体类型为所述实体关系中规定的第二实体类型;

针对第一集合的每个所述第一实体,从第二集合中确定与第一实体匹配的第二实体;

依据第一实体、实体关系、以及与第一实体匹配的第二实体,得到文本三元组。

本申请还提供了一种存储介质,该存储介质中存储有指令,当其在计算机上运行时,使得计算机执本申请的文本三元组的抽取方法,即执行以下步骤:

确定文本中存在的实体关系;

获取第一集合和第二集合;所述第一集合中包括的任意一个实体为所述文本中的满足所述实体关系的第一实体,所述第二集合中包括的任意一个实体为所述文本中的满足所述实体关系的第二实体;所述第一实体所属的实体类型为所述实体关系中规定的第一实体类型,所述第二实体所属的实体类型为所述实体关系中规定的第二实体类型;

针对所述第一集合的每个所述第一实体,从所述第二集合中确定与所述第一实体匹配的所述第二实体;

依据所述第一实体、所述实体关系、以及与所述第一实体匹配的所述第二实体,得到所述文本三元组。

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

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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