一种实体识别方法及装置与流程

文档序号:22737573发布日期:2020-10-31 09:17阅读:126来源:国知局
一种实体识别方法及装置与流程

本发明涉及自然语言处理技术,更具体的说,是涉及一种实体识别方法及装置。



背景技术:

随着人工智能技术的不断发展,人机对话系统已经逐步渗透应用至各个领域;其能够为用户提供便捷专业的问询服务,满足用户的高标准使用需求。

在人机对话系统中,实体识别主要应用于任务型对话中。任务型对话,即人与机器之间的对话是为了完成特定的任务。每个任务对应一系列特定的实体信息,机器需要对人所说的句子进行实体识别来获取实体信息。随着人机对话系统的广泛应用,需要完成的任务种类逐渐增多,对应的实体类别也急剧增加。同时,任务和实体会随时调整,这也相应地对对话系统的灵活性提出了较高的要求。

常用的实体识别方法需要预先对所有实体类别的标注数据进行训练,即所有涉及到的实体类别都需要提前配置并经过训练。然而这种实现方式在每次需求变动时,都需要重新准备相关实体例句以及重新训练模型参数,因此其存在变动成本高和泛化能力差的问题。



技术实现要素:

有鉴于此,本发明提供如下技术方案:

一种实体识别方法,包括:

获取待识别语句;

将所述待识别语句与预先存储的所有实体数据依次进行匹配标注,得到bio标注结果,每一个所述实体数据包含实体类别描述和与所述实体类别描述对应的至少一个实体样例;

基于所述bio标注结果确定所述待识别语句中的标注实体。

可选的,将所述待识别语句与预先存储的实体数据进行匹配标注,包括:

分别处理得到所述待识别语句中每一个字的字表示、所述实体类别描述的实体描述表示和每一个所述实体样例的实体样例表示;

针对每一个所述字表示:将所述字表示、所有的所述实体样例表示相对于所述字表示的加权平均值以及所述实体描述表示输入第一神经网络模型,得到bio标注结果。

可选的,所有的所述实体样例表示相对于所述字表示的加权平均值的确定包括:

计算确定所述字表示与所有的所述实体样例表示的注意力权重;

基于所述注意力权重确定所有的所述实体样例表示的加权平均值。

可选的,处理得到所述待识别语句中每一个字的字表示,包括:

将所述待识别语句中的每一个字转换为字向量;

对每一个所述字向量进行编码,得到对应的字表示;

处理得到所述实体类别描述的实体描述表示和所述每一个所述实体样例的实体样例表示,包括:

分别将所述实体数据中的实体类别描述和实体样例中的每一个转换为字向量;

将所述实体类别描述的所有字向量取平均值,得到所述实体描述表示,并将所述实体样例的所有字向量取平均值,得到所述实体样例的表示数据。

可选的,所述对每一个所述字向量进行编码,得到对应的字表示,包括:

采用双向gru神经网络模型对每一个所述字向量进行编码,得到对应的字表示。

可选的,所述第一神经网络模型为双向lstm神经网络。

可选的,在所述基于所述bio标注结果确定所述待识别语句中的标注实体后,还包括:

将所述待识别语句与预存的正则句式进行匹配,得到正则匹配实体;

将所述标注实体和所述正则匹配实体作为实体识别结果输出。

可选的,在将所述实体识别结果输出前,还包括:

将实体识别结果与预先配置的实体词典进行匹配;

将匹配成功的实体作为最终的实体识别结果输出。

可选的,所述实体识别结果包括实体类别和实体值,所述实体类别为所述匹配成功的实体对应的的实体类别,所述实体值为所述匹配成功的实体的文字内容。

一种实体识别装置,包括:

语句获取模块,用于获取待识别语句;

标注确定模块,用于将所述待识别语句与预先存储的所有实体数据依次进行匹配标注,得到bio标注结果,每一个所述实体数据包含实体类别描述和与所述实体类别描述对应的至少一个实体样例;

实体确定模块,用于基于所述bio标注结果确定所述待识别语句中的标注实体。

一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任意一种实体识别方法。

经由上述的技术方案可知,与现有技术相比,本发明实施例公开了一种实体识别方法及装置,方法包括:获取待识别语句;将所述待识别语句与预先存储的所有实体数据依次进行匹配标注,得到bio标注结果,每一个所述实体数据包含实体类别描述和与所述实体类别描述对应的至少一个实体样例;基于所述bio标注结果确定所述待识别语句中的标注实体。所述实体识别方法及装置,在面对之前没有标注和训练的实体类别时,也能够仅根据该实体类别的几个样例和实体类别描述,处理得到输入语句的bio标注结果,进而得到标注的实体;该实现过程不需要对新的实体类别采集标注数据,也无需对模型重新训练,不仅节省了大量资源成本,且具有很好的泛化能力。

附图说明

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

图1为本发明实施例公开的一种实体识别方法的流程图;

图2为本发明实施例公开的待识别语句与实体数据匹配标注的流程示意图;

图3为本发明实施例公开的另一种实体识别方法的流程图;

图4为本发明实施例公开的又一种实体识别方法的流程图;

图5为本发明实施例公开的实体识别方法的实现模型示意图;

图6为本发明实施例公开的实体识别方法的实现原理框架图;

图7为本发明实施例公开的一种实体识别装置的结构示意图。

具体实施方式

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

图1为本发明实施例公开的一种实体识别方法的流程图,图1所示实体识别方法可应用于当前已有的实体识别模型,该实体识别模型为具有一定规模的实体类别训练基础的模型,其能够保证本申请实施例公开的实体识别方法更好的实施。参见图1所示,实体识别方法可以包括:

步骤101:获取待识别语句。

其中的待识别语句可以是用户输入到实体识别方法的执行主体(如前述当前已有的实体识别模型)中的自然语言数据,该待识别语句可以是系统将用户通过语音采集装置采集到的语音数据转换而成的文本数据,也可以是用户直接通过输入装置输入的文本数据,本申请实施例对于该待识别语句的来源不做固定限制,具体可以根据实际的应用场景确定。

待识别语句中包含实体,本申请即需要对待识别语句中的实体进行识别。本申请实施例中所提及的实体,是指特定类型的名词集合。比如“我想听周杰伦的青花瓷”句子中,包含了实体“歌手”(具体内容是周杰伦)和实体“歌名”(具体内容是青花瓷)。实际应用中,用户感兴趣的名词集合都可以作为实体进行识别。

步骤102:将所述待识别语句与预先存储的所有实体数据依次进行匹配标注,得到bio标注结果。

bio标注是序列标注任务中常用的一种标注模式,其中,b-begin标记实体的起始字,i-inside标记实体中的字(除了起始字),o-outside标记实体以外的字;则上述b标签指的则是实体起始字,i标签指的则是实体中除了起始字之外的其他字。

其中,每一个所述实体数据包含实体类别描述和与所述实体类别描述对应的至少一个实体样例。实体类别的描述是对实体类别的文字性解释。例如,“poi”(pointofinterest)是实体类别的名称,它的实体类别描述是“小地名”。

实体数据是预先存储在系统中的,依据应用现场任务和需求的变动,需要识别的实体类别会有新增的情况,这种情况下,不需要再对新增的实体类别进行标注和相应训练,只需要将该新增的实体类别的实体类别描述和几个实体样例存储到系统中,系统就能够基于自学习能力,从待识别语句中识别出与新增的实体类别对应的实体。

由于实体类别有多种,因此系统中预存的实体数据就具有多组,本实现中,当系统接收到待识别语句后,会基于一定原则将其与所有的实体数据进行匹配标注。在实现中,待识别语句与不同的实体数据匹配标注的过程可依次进行,若当前进行匹配标注的实体数据对应的实体类别与待识别语句中包含的实体类别不同,则其bio标注结果中只会包含o标签;若当前进行匹配标注的实体数据对应的实体类别与待识别语句中包含的实体类别相同,bio标注结果中才会有b标签和i标签。

步骤102后,进入步骤103。

步骤103:基于所述bio标注结果确定所述待识别语句中的标注实体。

将bio标注结果中b标签和i标签对应的文字提取出来,就可以得到标注实体。例如,待识别语句为“我想购买手机”中,“我”、“想”、“够”、“买”、“手”、“机”六个字对应的bio标注结果分别为“o”、“o”、“o”、“o”、“b”、“i”,将“b”和“i”标签对应的文字提取出来,即“手机”,“手机”就是待识别语句的标注实体。

本实施例所示实体识别方法,在面对之前没有标注和训练的实体类别时,也能够仅根据该实体类别的几个样例和实体类别描述,处理得到输入语句的bio标注结果,进而得到标注的实体;该实现过程不需要对新的实体类别采集标注数据,也无需对模型重新训练,不仅节省了大量资源成本,且具有很好的泛化能力。

图2为本发明实施例公开的待识别语句与实体数据匹配标注的流程示意图,参见图2所示,上述实施例所述将所述待识别语句与预先存储的实体数据进行匹配标注,可以包括:

步骤201:分别处理得到所述待识别语句中每一个字的字表示、所述实体类别描述的实体描述表示和每一个所述实体样例的实体样例表示。

其中,处理得到所述待识别语句中每一个字的字表示,可以包括:将所述待识别语句中的每一个字转换为字向量;对每一个所述字向量进行编码,得到对应的字表示。

处理得到所述实体类别描述的实体描述表示和所述每一个所述实体样例的实体样例表示,可以包括:分别将所述实体数据中的实体类别描述和实体样例中的每一个转换为字向量;将所述实体类别描述的所有字向量取平均值,得到所述实体描述表示,并将所述实体样例的所有字向量取平均值,得到所述实体样例的表示数据。

步骤202:针对每一个所述字表示:将所述字表示、所有的所述实体样例表示相对于所述字表示的加权平均值以及所述实体描述表示输入第一神经网络模型,得到bio标注结果。

其中,所有的所述实体样例表示相对于所述字表示的加权平均值的确定可以包括:计算确定所述字表示与所有的所述实体样例表示的注意力权重;基于所述注意力权重确定所有的所述实体样例表示的加权平均值。例如,在当前进行标注匹配的实体数据中,包含3个实体样例,对应的实体样例表示分别记为实体样例1、实体样例2和实体样例3;则上述过程为分别计算出一个字表示与每一个实体样例的注意力权重,由于有3个实体样例,因此得到的注意力权重也有3个,假设对应3个实体样例的3个注意力权重依次为0.3、0.2和0.5,则所述实体样例表示的加权平均值为0.3*实体样例1+0.2*实体样例2+0.5*实体样例3。

上述实施例详细介绍了将所述待识别语句与预先存储的实体数据进行匹配标注的具体实现内容,基于本申请实施例公开的上述内容,本领域技术人员能够更好的实现本申请所示实体识别方法。

上述实施例中,所述对每一个所述字向量进行编码,得到对应的字表示,可以包括:采用双向gru神经网络模型对每一个所述字向量进行编码,得到对应的字表示。

上述实施例中,所述第一神经网络模型为双向lstm神经网络。

当然,本申请对将字向量进行编码处理的神经网络模型以及所述第一神经网络模型不做固定限制,本申请实施例仅是对其进行举例说明,任何能够实现与将字向量进行编码处理的神经网络模型或能够得到bio标注结果的神经网络模型都应属于本申请的保护范围之内。

图3为本发明实施例公开的另一种实体识别方法的流程图,参见图3所示,实体识别方法可以包括:

步骤301:获取待识别语句。

步骤302:将所述待识别语句与预先存储的所有实体数据依次进行匹配标注,得到bio标注结果。

其中,每一个所述实体数据包含实体类别描述和与所述实体类别描述对应的至少一个实体样例。

步骤303:基于所述bio标注结果确定所述待识别语句中的标注实体。

步骤304:将所述待识别语句与预存的正则句式进行匹配,得到正则匹配实体。

其中,正则句式为是计算机科学的一个概念,它描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。例如实体类别“poi”(小地名)配置了一个正则表达式“导航到(?p<poi>\\w+)”,则“导航到”后边的槽位对应实体内容;对于输入的句子“导航到五角场”,就可以识别到“五角场”是一种小地名(poi)。正则句式可以理解为按照特定的模板来抽取特定模式的字符串。

步骤305:将所述标注实体和所述正则匹配实体作为实体识别结果输出。

需要说明的是,上述正则句式对应的处理304在实际应用中不是必须在步骤303之后,正则句式的识别处理可以与步骤301-303对应的模型识别处理过程并列执行,或正则句式的识别处理可以在步骤301-303对应的模型识别处理之前进行。上述前后步骤只是一个示意性的介绍,并不构成对正则句式的识别处理和模型识别处理的执行顺序的限定。

本实施例中,针对可靠性要求高的实体类别,可以通过配置对应的正则句式来保证常用句式的识别,如果输入的语句与正则句式匹配,则提取相应槽位的正则匹配实体,与前面的标注实体一同作为该槽位的备选槽值(备选实体)。

进一步的,图4为本发明实施例公开的又一种实体识别方法的流程图,如图4所示,实体识别方法可以包括:

步骤401:获取待识别语句,进入步骤402或步骤404。

步骤402:将所述待识别语句与预先存储的所有实体数据依次进行匹配标注,得到bio标注结果。

其中,每一个所述实体数据包含实体类别描述和与所述实体类别描述对应的至少一个实体样例。

步骤403:基于所述bio标注结果确定所述待识别语句中的标注实体,进入步骤405。

步骤404:将所述待识别语句与预存的正则句式进行匹配,得到正则匹配实体,进入步骤405。

步骤405:将所述实体识别结果与预先配置的实体词典进行匹配。

其中,实体词典指各实体类别可能的取值列表。例如,“poi”(小地名)的词典为[“安亭”,“五角场”,“人民广场”,“政立路”,……]。

本实施例中,对于标注实体和正则匹配实体不同的情况,进一步采用实体词典来约束最终的输出结果,保证了最终输出结果的准确性。匹配的过程既是判断得到的标注实体或正则匹配实体是否存在于实体词典中。

步骤406:将匹配成功的实体作为最终的实体识别结果输出。

若标注实体或正则匹配实体是否存在于实体词典中,则说明其为正确的实体,将其作为最终的结果输出。

例如,待识别语句为“导航到安亭”。实体类别“poi”配置了一个正则句式“导航到(?p<poi>\\w+)”。实体类别“poi”(小地名)的实体词典为[“安亭”,“五角场”,“人民广场”,“政立路”],并且规定实体的值必须在实体词典范围内。假设,由bio标注结果得到的备选槽值是“到安亭”,由正则句式得到的备选槽值是“安亭”。由于“到安亭”不在实体词典的范围内,所以被剔除,而“安亭”在实体词典的范围内。所以最终的实体识别结果是“安亭”。

本实施例中,通过配置对应的正则句式来保证常用句式的识别,同时可以选择添加实体词典来约束实体的取值,如果输入的语句与正则句式匹配,则提取相应槽位的正则匹配实体,与前面的标注实体一同作为该槽位的备选槽值。这些备选实体还会经过实体词典的判断和筛选,不符合要求的实体将被剔除。这样的做法既减小了真实实体被深度模型遗漏的风险,又可以通过限制实体的选值从而提升了实体的可靠性,弥补了零样本学习的漏洞。

上述实施例中的实体识别结果可以包含实体类别和实体值,所述实体类别为所述匹配成功的实体对应的的实体类别,所述实体值为所述匹配成功的实体的文字内容。

图5为本发明实施例公开的实体识别方法的实现模型示意图,图6为本发明实施例公开的实体识别方法的实现原理框架图,在下面的内容中,将实体识别方法的实现模型称为零样本学习模型。

结合图5和图6所示,在一个具体的实现中,零样本学习模型以字为单位,输入为待识别的句子、实体类别描述以及k个实体样例,输出为bio标签。实体类别描述为对实体类别的自然语言描述,实体样例为实体可能取的值,k的值可根据实际情况调整,在图5中,k取2,一个实体样例为“五角场”,另一个实体样例为“南京路”。由待识别语句和bio标签可以得到输入实体类别的识别结果,在图5中,识别结果为“安亭”。

零样本学习模型会用到lstm和gru结构。lstm是一种循环神经网络,可以解决rnn中长期记忆的问题。gru是lstm的一种变体,它的结构比lstm更简单,更容易训练,并且可以达到相当的效果。

待识别的句子在输入后转换为字向量,字向量在图5中统一用标号1的圆圈表示。将实体类别描述的字向量取平均得到实体描述表示,对应图5中标号2的圆圈;同理,得到每个实体样例的实体样例表示,对应图5中标号3的圆圈。

零样本学习模型采用双向gru对输入句子进行编码,标号4的圆圈代表编码后的字表示。对每一个字表示,计算和k个实体样例的注意力权重,对k个实体样例的表示进行加权平均。加权平均的结果(图5标号5的圆圈)和输入句子的字表示(标号4的圆圈)以及实体描述(标号2的圆圈)的表示一起进入双向lstm结构,得到bio标签输出。

本实现解决了在人机对话系统中任务多、实体多、标注数据难以获取的问题。其优点在于,既利用了零样本学习模型在大规模通用数据上的学习能力以及在新实体上的零标注数据的泛化能力,大大降低人工成本,又通过正则表达式和词典对识别结果进行约束,让结果更加准确、可信。

需要说明的是,在实际应用中,可能会出新一个实体值对应不同的实体类别的情况,即经过了实体词典的筛选之后,如果一个位置的短语还存在多种实体类别的标签,则后续还需要经过一个冲突处理。例如,“成都”可能被识别为实体“城市”或者“歌名”,且都在相应的实体词典中,但是具体最后保留哪个结果需要相应的冲突处理模块来解决;冲突处理会考虑上下文或者基于识别方式的优先级;如对不同的识别方式(零样本实体识别模型和正则句式识别)给予不同的优先级,保留优先级较高的识别方式相应的识别结果。

对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

上述本发明公开的实施例中详细描述了方法,对于本发明的方法可采用多种形式的装置实现,因此本发明还公开了一种装置,下面给出具体的实施例进行详细说明。

图7为本发明实施例公开的一种实体识别装置的结构示意图,图1所示实体识别装置可应用于当前已有的实体识别模型,该实体识别模型为具有一定规模的实体类别训练基础的模型,其能够保证本申请实施例公开的实体识别装置更好的实施。参见图7所示,实体识别装置70可以包括:

语句获取模块701,用于获取待识别语句。

标注确定模块702,用于将所述待识别语句与预先存储的所有实体数据依次进行匹配标注,得到bio标注结果,每一个所述实体数据包含实体类别描述和与所述实体类别描述对应的至少一个实体样例。

实体确定模块703,用于基于所述bio标注结果确定所述待识别语句中的标注实体。

本实施例所示实体识别装置,在面对之前没有标注和训练的实体类别时,也能够仅根据该实体类别的几个样例和实体类别描述,处理得到输入语句的bio标注结果,进而得到标注的实体;该实现过程不需要对新的实体类别采集标注数据,也无需对模型重新训练,不仅节省了大量资源成本,且具有很好的泛化能力。

上述装置中各个模块的具体实现,以及其他可能的实体识别装置的实现,可参见方法实施例中相关部分的内容介绍,在此不再重复赘述。

上述实施例中的所述的任意一种实体识别装置包括处理器和存储器,上述实施例中的语句获取模块、标注确定模块、实体确定模块等均作为程序模块存储在存储器中,由处理器执行存储在所述存储器中的上述程序模块来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序模块。内核可以设置一个或多个,通过调整内核参数来实现回访数据的处理。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。

本发明实施例提供了一种计算机存储介质,其上存储有程序,该程序被处理器执行时实现上述实施例中所述的实体识别方法。

本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述实施例中所述的实体识别方法。

进一步,本实施例提供了一种电子设备,包括处理器以及存储器。其中存储器用于存储所述处理器的可执行指令,所述处理器配置为经由执行所述可执行指令来执行上述实施例中所述的实体识别方法。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

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

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