一种拟人句识别方法、装置、设备及存储介质
技术领域
本申请涉及自然语言处理技术领域,尤其涉及一种拟人句识别方法、装置、设备及存储介质。
背景技术
拟人是一种修辞手法,其一般用人的动作、神态、思想、感情等描述非人事物,比如,“狂风在怒吼咆哮”,“风”是一种无生命物体,不具有发声器官,将人可以做出怒吼咆哮等动作这一事实属性迁移到“风”这一自然界物体上,能够使得语言生动形象。拟人能够帮助人们利用人自身的行为、动作、思想来理解抽象事物。
在某些场景中,需要进行拟人句识别,比如,在作文自动评阅场景中,需要识别作文中是否出现了拟人句,然而,如何进行拟人句识别是当前亟需解决的问题。
发明内容
有鉴于此,本申请提供了一种拟人句识别方法、装置、设备及存储介质,用以实现拟人句的识别,其技术方案如下:
一种拟人句识别方法,包括:
获取目标句子;
基于所述目标句子和外部知识库,确定所述目标句子中每个字对应的目标特征向量,其中,所述外部知识库中包括多个词和所述多个词分别对应的类别,一个字对应的目标特征向量能够表征该字的上下文信息以及该字的相关外部知识信息,一个字的相关外部知识信息包含所述外部知识库中包含该字的词所对应的类别的信息;
以所述目标句子中每个字对应的目标特征向量为依据,确定所述目标句子是否为拟人句。
可选的,所述基于所述目标句子和外部知识库,确定所述目标句子中每个字对应的目标特征向量,包括:
基于预先建立的拟人句识别模型,以及所述目标句子和所述外部知识库,确定所述目标句子中每个字对应的目标特征向量;
所述以所述目标句子中每个字对应的目标特征向量为依据,确定所述目标句子是否为拟人句,包括:
基于所述拟人句识别模型,以及所述目标句子中每个字对应的目标特征向量,确定所述目标句子是否为拟人句;
其中,所述拟人句识别模型通过两个阶段的训练得到,第一阶段的训练用于使拟人句识别模型学习百科知识以及句子中字词的构成关系、词的词性信息、句子本身的句法结构信息,所述第二阶段的训练用于使拟人句识别模型具备判别句子是否为拟人句的能力。
可选的,所述基于预先建立的拟人句识别模型,以及所述目标句子和所述外部知识库,确定所述目标句子中每个字对应的目标特征向量,包括:
基于所述拟人句识别模型和所述目标句子,确定所述目标句子中每个字对应的上下文向量,其中,一个字对应的上下文向量能够表征该字的上下文信息;
基于所述拟人句识别模型、所述外部知识库和所述目标句子中每个字对应的上下文向量,确定所述目标句子中每个字对应的外部知识向量,其中,一个字对应的外部知识向量能够表征该字的相关外部知识信息;
基于所述拟人句识别模型、所述目标句子中每个字对应的上下文向量和所述目标句子中每个字对应的外部知识向量,获得所述目标句子中每个字对应的目标特征向量。
可选的,所述基于所述拟人句识别模型和所述目标句子,确定所述目标句子中每个字对应的上下文向量,包括:
基于所述拟人句识别模型和所述目标句子,确定所述目标句子中每个字的表征向量;
基于所述拟人句识别模型和所述目标句子中每个字的表征向量,确定所述目标句子中每个字对应的上下文向量。
可选的,所述基于所述拟人句识别模型和所述目标句子,确定所述目标句子中每个字的表征向量,包括:
将所述目标句子拆分为单字,获得所述目标句子中的每个字;
基于所述拟人句识别模型和所述目标句子中每个字的内容和位置,确定所述目标句子中每个字的表征向量。
可选的,所述基于所述拟人句识别模型,以及所述外部知识库和所述目标句子中每个字对应的上下文向量,确定所述目标句子中每个字对应的外部知识向量,包括:
对于所述目标句子中的每个字:
基于所述拟人句识别模型,从所述外部知识库中获取包含该字的词所对应的类别,组成该字对应的目标类别集合;
基于所述拟人句识别模型,以及所述目标句子中每个字对应的上下文向量和该字对应的目标类别集合,确定该字对应的目标类别集合中每个类别对应的注意力权重;
基于所述拟人句识别模型、所述目标类别集合中每个类别的表征向量和所述目标类别集合中每个类别对应的注意力权重,确定该字对应的外部知识向量;
以得到所述目标句子中每个字对应的外部知识向量。
可选的,所述基于所述拟人句识别模型,以及所述目标句子中每个字对应的目标特征向量,确定所述目标句子是否为拟人句,包括:
基于所述拟人句识别模型和所述目标句子中每个字对应的目标特征向量,确定所述目标句子中每个字对应的注意力权重;
基于所述拟人句识别模型、所述目标句子中每个字对应的目标特征向量和所述目标句子中每个字对应的注意力权重,确定所述目标句子的语义表征向量;
基于所述拟人句识别模型和所述目标句子的语义表征向量,确定所述目标句子是否为拟人句。
可选的,建立所述拟人句识别模型的过程包括:
利用百科数据集中的数据对初始的拟人句识别模型进行预训练,其中,所述百科数据集中的数据为无标注的百科数据;
利用拟人数据集中的数据对预训练后的拟人句识别模型进一步进行训练,其中,所述拟人数据集中的数据为标注有句子类别的拟人句和非拟人句。
可选的,所述利用拟人数据集中的数据对预训练后的拟人句识别模型进一步进行训练,包括:
从所述拟人数据集中获取训练数据;
利用预训练后的拟人句识别模型,确定所述训练数据分别为拟人句和非拟人句的概率;
根据所述训练数据标注的句子类别,以及所述训练数据分别为拟人句和非拟人句的概率,确定预训练后的拟人句识别模型的预测损失;
根据所述预测损失,更新预训练后的拟人句识别模型的参数。
一种拟人句识别装置,包括:句子获取模块、特征向量确定模块和句子识别模块;
所述句子获取模块,用于获取目标句子;
所述特征向量确定模块,用于基于所述目标句子和外部知识库,确定所述目标句子中每个字对应的目标特征向量,其中,所述外部知识库中包括多个词和所述多个词分别对应的类别,一个字对应的目标特征向量能够表征该字的上下文信息以及该字的相关外部知识信息,一个字的相关外部知识信息包含所述外部知识库中包含该字的词所对应的类别的信息;
所述句子识别模块,用于以所述目标句子中每个字对应的目标特征向量为依据,确定所述目标句子是否为拟人句。
可选的,所述特征向量确定模块,具体用于基于预先建立的拟人句识别模型,以及所述目标句子和所述外部知识库,确定所述目标句子中每个字对应的目标特征向量;
所述句子识别模块,具体用于基于所述拟人句识别模型,以及所述目标句子中每个字对应的目标特征向量,确定所述目标句子是否为拟人句;
其中,所述拟人句识别模型通过两个阶段的训练得到,第一阶段的训练用于使拟人句识别模型学习百科知识以及句子中字词的构成关系、词的词性信息、句子本身的句法结构信息,所述第二阶段的训练用于使拟人句识别模型具备判别句子是否为拟人句的能力。
一种拟人句识别设备,包括:存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现上述任一项所述的拟人句识别方法的各个步骤。
一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现上述任一项所述的拟人句识别方法的各个步骤。
经由上述方案可知,本申请提供的拟人句识别方法、装置、设备及存储介质,在获得待识别的目标句子后,首先基于目标句子和外部知识库,确定目标句子中每个字对应的目标特征向量,然后以目标句子中每个字对应的目标特征向量为依据,确定目标句子是否为拟人句。本申请提供的拟人句识别方法可识别出目标句子是否为拟人句,并且,由于目标向量能够表征对应字的上下文信息和对应字的相关外部知识信息,因此,本申请以目标句子中每个字对应的目标特征向量为依据,能够准确找出目标句子中触发拟人的搭配,从而能够准确地识别出目标句子是否为拟人句,即本申请提供的拟人句识别方法可实现拟人句的识别,且能够获得较高的识别准确度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的拟人句识别方法的流程示意图;
图2为本申请实施例提供的基于预先建立的拟人句识别模型,以及目标句子和外部知识库,确定目标句子中每个字对应的目标特征向量的流程示意图;
图3为本申请实施例提供的Transformer单元的具体结构示意图;
图4为本申请实施例提供的基于拟人句识别模型、外部知识库和目标句子中每个字对应的上下文向量,确定目标句子中每个字对应的外部知识向量的流程示意图;
图5为本申请实施例提供的基于拟人句识别模型,以及目标句子中每个字对应的目标特征向量,确定目标句子是否为拟人句的流程示意图;
图6为本申请实施例提供的建立拟人句识别模型的流程示意图;
图7为本申请实施例提供的利用拟人数据集中的数据对预训练后的拟人句识别模型进一步进行训练的流程示意图;
图8为本申请实施例提供的拟人句识别模型的拓扑结构的一示例的示意图;
图9为本申请实施例提供的拟人句识别装置的结构示意图;
图10为本申请实施例提供的拟人句识别设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
拟人句识别可以看作是句子级别的分类任务,其以一个句子为单位,判断其中是否包含拟人修辞,因此,拟人句识别可以抽象成为对句子进行二分类的问题,为了实现拟人句识别,即实现对句子进行二分类,本案发明人进行了研究,起初的思路是:
首先从目标文本中获取待识别句子,然后对待识别句子进行预处理,预处理包括分词、词性标注、依存句法分析等,接着对预处理后句子进行特征抽取,以获得预处理后句子对应的特征向量,最后将预处理后句子对应的特征向量输入统计分类器进行二分类,以获得待识别句子是否为拟人句的分类结果。其中,在对预处理后句子进行特征抽取时,考虑到句子中的每个词都有可能是构成拟人的一部分,因此,需要对句子中的所有词进行特征抽取,将词汇、词性、搭配等特征组合映射到参数空间。
本案发明人在研究的过程中发现,上述思路存在诸多缺陷:
从特征抽取角度来看,上述思路中的特征由人工抽取,需要说明的是,进行拟人句识别需要准确找出一句话中触发拟人的搭配,基于此,需要抽取出触发拟人的搭配特征,然而,触发拟人的搭配往往形式多样且内容多样,既有可能是非人事物做出了人的动作,也有可能用形容人的词去形容非人事物,为了能够获得较好的识别效果,往往需要抽取出足够多的搭配特征,可以理解的是,抽取出足够多的搭配特征十分耗费人力,另外,局限于进行数据统计的语料,抽取的特征可能覆盖不全,这导致遇到新奇的搭配时,往往难以成功识别。
从模型角度来看,上述思路中的模型仅通过文本语料做训练,没有外部常识知识的输入,因此,模型不具有人类本身具有的常识,比如,人类很清楚“风”是非人物体,“咆哮”是只有人才能做出来的动作,模型缺少这种对现实世界的认识。
从数据预处理来看,分词、词性标注、依存句法分析均为独立的自然语言处理任务,当前技术条件下,虽然能够一定程度上解决问题,但效果远达不到完美,仍可能存在一些错误,尤其是依存句法分析,在常用的“被”“把”字句上效果可能有较大下降,无法正确识别出整个句子的句法结构。
从语料库角度来看,由于拟人并没有明显的触发词,因此,需要考虑原始语料库的几乎所有句子,这导致数据集本身数量较大,数据集中的数据量大带来了一个比较明显的问题,即拟人句的数量远少于非拟人句的数量,经统计,作文语料库中拟人句的正负例比例在1:12左右,这样悬殊的正负例比例为模型训练带来了比较大的困难。在实际应用中,一般会限制训练语料到特定的场景,比如,对于作文自动评阅场景而言,会限制训练语料到童话、寓言等特定作文场景,将训练语料限定到特定的场景会导致训练得到的模型无法处理足够广泛的题材,泛化性不够。
为了解决上述思路存在的问题,本案发明人进一步进行研究,最终提出了一种效果较好的拟人句识别方法,该拟人句识别方法适用于任何需要进行拟人句识别的应用场景,该拟人句识别方法可应用于终端,比如PC、笔记本、平板电脑、智能手机等,也可应用于单个服务器、多个服务器或服务器集群。接下来通过下述实施例对本申请提供的拟人句识别方法进行介绍。
第一实施例
请参阅图1,示出了本申请实施例提供的拟人句识别方法的流程示意图,该方法可以包括:
步骤S101:获取目标句子。
在本实施例中,获取目标句子的过程可以包括:从目标文本中获取待识别句子作为目标句子。
其中,在从目标文本中获取待识别句子时,先对目标文本进行分段处理,然后对分段处理得到的段落进行分句处理,从而得到由分句处理得到的句子组成的句子集合,最后从句子集合中获取句子作为目标句子。
需要说明的是,目标文本可以为任何场景中需要进行拟人句识别的文本,比如,其可以为作文自动评阅场景中作文,相应的,目标句子即为作文中的一待识别句子。
步骤S102:基于目标句子和外部知识库,确定目标句子中每个字对应的目标特征向量。
其中,外部知识库中包括多个词和多个词分别对应的类别,比如,外部知识库中包括词“刮风”、“风湿”等,“刮风”对应的类别为“自然现象”,“风湿”对应的类别为“疾病”。
需要说明的是,目标句子中一个字对应的目标特征向量能够表征该字的上下文信息以及该字的相关外部知识信息。
其中,目标句子中一个字的外部知识信息包括外部知识库中包含该字的词所对应的类别的信息。
示例性的,目标句子中有“风”这个字,外部知识库中包含“风”这个字的词有“刮风”、“风湿”,则“风”字的相关外部知识信息包括“刮风”、“风湿”分别对应的类别“自然现象”、“疾病”的信息。
步骤S103:以目标句子中每个字对应的目标特征向量为依据,确定目标句子是否为拟人句。
具体的,可根据目标句子中每个字对应的目标特征向量,确定目标句子的语义表征向量,进而根据目标句子的语义表征向量确定目标句子是否为拟人句。其中,目标句子的语义表征向量能够表征目标句子的语义。
在一种可能的实现方式中,“步骤S102:基于目标句子和外部知识库,确定目标句子中每个字对应的目标特征向量”的实现过程可以包括:基于预先建立的拟人句识别模型,以及目标句子和外部知识库,确定目标句子中每个字对应的目标特征向量;“步骤S103:以目标句子中每个字对应的目标特征向量为依据,确定目标句子是否为拟人句”的实现过程可以包括:基于拟人句识别模型,以及目标句子中每个字对应的目标特征向量,确定目标句子是否为拟人句。
其中,拟人句识别模型通过两个阶段的训练得到,具体的,第一阶段的训练数据集为百科数据集,第一阶段的训练用于使拟人句识别模型学习百科知识以及句子中字词的构成关系、词的词性信息、句子本身的句法结构信息,第二阶段的训练数据集为拟人数据集,第二阶段的训练用于使拟人句识别模型具备判别句子是否为拟人句的能力。
首先需要说明的是,百科数据集中的数据为无标注的百科数据,拟人数据集中的数据为标注有句子类别的拟人句和非拟人句,其次需要说明的是,为了使拟人句识别模型能够具有人类所具有的常识,在进行第二阶段的训练时,结合外部知识库对拟人句识别模型进行训练。
本申请实施例提供的拟人句识别方法,在获得待识别的目标句子后,首先基于目标句子和外部知识库,确定目标句子中每个字对应的目标特征向量,然后以目标句子中每个字对应的目标特征向量为依据,确定目标句子是否为拟人句,由此可见,本申请实施例提供的拟人句识别方法可识别出目标句子是否为拟人句,并且,由于目标向量能够表征对应字的上下文信息和对应字的相关外部知识信息,因此,以目标句子中每个字对应的目标特征向量为依据,能够准确找出目标句子中触发拟人的搭配,从而能够准确地识别出目标句子是否为拟人句,即本申请提供的拟人句识别方法可实现拟人句的识别,且能够获得较高的识别准确度。
第二实施例
上述实施例提到,可“基于预先建立的拟人句识别模型,以及目标句子和外部知识库,确定目标句子中每个字对应的目标特征向量”,本实施例对这一过程进行介绍。
请参阅图2,示出了基于预先建立的拟人句识别模型,以及目标句子和外部知识库,确定目标句子中每个字对应的目标特征向量的流程示意图,可以包括:
步骤S201:基于拟人句识别模型和目标句子,确定目标句子中每个字对应的上下文向量。
其中,目标句子中一个字对应的上下文向量能够表征目标句子中该字的上下文信息。
具体的,基于拟人句识别模型和目标句子,确定目标句子中每个字对应的上下文向量的过程可以包括:
步骤S2011、基于拟人句识别模型和目标句子,确定目标句子中每个字的表征向量。
基于拟人句识别模型和目标句子,确定目标句子中每个字的表征向量的实现方式有多种:在一种可能的实现方式中,可基于拟人句识别模型和目标句子中每个字的内容,确定目标句子中每个字的表征向量;在另一种可能的实现方式中,可基于拟人句识别模型和目标句子中每个字的内容和位置,确定目标句子中每个字的表征向量。
为了获得能够更好地表征目标句子中每个字的表征向量,本实施例优选通过上述第二种实现方式确定目标句子中每个字的表征向量。
更为具体的,本实施例中的拟人句识别模型包括字表征模块,在获得目标句子后,可先将目标句子拆成单字,以获得目标句子中的每个字,然后将目标句子中的每个字输入拟人句识别模型的字表征模块,从而获得字表征模块输出的、目标句子中每个字的表征向量。
步骤S2012、基于拟人句识别模型和目标句子中每个字的表征向量,确定目标句子中每个字对应的上下文向量。
具体的,拟人句识别模型包括上下文向量确定模块,在获得目标句子中每个字的表征向量后,将目标句子中每个字的表征向量输入拟人句识别模型的上下文向量确定模块,从而获得拟人句识别模型的上下文向量确定模块输出的、目标句子中每个字对应的上下文向量。
可选的,拟人句识别模型中的上下文向量确定模块可以为多层Transformer单元,请参阅图3,示出了Transformer单元的具体结构示意图,目标句子中每个字的表征向量经多层Transformer单元计算后,可得到目标句子中每个字对应的上下文向量。
步骤S202:基于拟人句识别模型、外部知识库和目标句子中每个字对应的上下文向量,确定目标句子中每个字对应的外部知识向量。
其中,目标句子中一个字对应的外部知识向量能够表征该字的相关外部知识信息。
具体的,拟人句识别模型包括外部知识向量确定模块,在获得目标句子中每个字对应的上下文向量后,可将目标句子中每个字对应的上下文向量输入拟人句识别模型的外部知识向量确定模块,外部知识向量确定模块以目标句子中每个字对应的上下文向量为依据,同时结合外部知识库,确定目标句子中每个字对应的、能够表征该字的相关外部知识的外部知识向量。
步骤S203:基于拟人句识别模型、目标句子中每个字对应的上下文向量和目标句子中每个字对应的外部知识向量,获得目标句子中每个字对应的目标特征向量。
具体的,对于目标句子中的每个字,基于拟人句识别模型的向量拼接模块将该字对应的上下文向量与该字对应的外部知识向量进行拼接,拼接后的向量作为该字对应的目标特征向量,从而得到目标句子中每个字对应的目标特征向量。
第三实施例
本实施例对上述实施例中的“步骤S202:基于拟人句识别模型、外部知识库和目标句子中每个字对应的上下文向量,确定目标句子中每个字对应的外部知识向量”进行介绍。
请参阅图4,示出了基于拟人句识别模型、外部知识库和目标句子中每个字对应的上下文向量,确定目标句子中每个字对应的外部知识向量的流程示意图,可以包括:
步骤S401、基于拟人句识别模型和外部知识库,确定目标句子中每个字对应的目标类别集合。
具体的,对于目标句子中的每个字,从外部知识库中查找包含该字的词作为目标词,将查找到的所有目标词分别对应的类别组成的集合,确定为该字对应的目标类别集合,从而获得目标句子中每个字对应的目标类别集合。
示例性的,目标句子为“狂风在怒吼咆哮”,对于“狂”字,在外部知识库中查找包含“狂”字的词,假设包含“狂”字的词有5个,5个包含“狂”字的词分别对应的类别为a、b、a、c、d,则“狂”字对应的目标类别集合为{a,b,c,d},其它字对应的目标类别集合的确定方式同理。
步骤S402、基于拟人句识别模型、目标句子中每个字对应的上下文向量和目标句子中每个字对应的目标类别集合,确定目标句子中每个字对应的目标类别集合中每个类别对应的注意力权重。
具体的,对于目标句子中的每个字,基于拟人句识别模型、该字对应的上下文向量和该字对应的目标类别集合,确定该字对应的目标类别集合中每个类别对应的注意力权重,以得到目标句子中每个字对应的目标类别集合中每个类别对应的注意力权重。
假设目标句子中第t个字对应的目标类别集合Ct中包括m个类别,m个类别的表征向量组成的集合表示为K=(k1,k2,...,km),其中,K通过训练得到,ki表示目标类别集合Ct中第i个类别的表征向量,可根据下式确定目标类别集合Ct对应的注意力向量:
其中,α=(α
1,α
2,...,α
m),α
1为目标类别集合C
t中第1个类别对应的注意力权重,α
2为C
t中第2个类别对应的注意力权重,…,α
m为目标类别集合C
t中第m个类别对应的注意力权重,α本质上是第t个字在目标类别集合C
t中各个类别上的概率分布,其体现了第t个字与目标类别集合C
t中各个类别的相关程度,s
t为目标句子中第t个字对应的上下文向量,
和W
K为模型中的可训练权重。
步骤S403、基于拟人句识别模型、目标句子中每个字对应的目标类别集合中每个类别对应的注意力权重和目标句子中每个字对应的目标类别集合中每个类别的表征向量,确定目标句子中每个字对应的外部知识向量。
具体的,对于目标句子中的每个字,基于拟人句识别模型、该字对应的目标类别集合中每个类别对应的注意力权重和该字对应的目标类别集合中每个类别的表征向量,确定该字对应的外部知识向量,以得到目标句子中每个字对应的外部知识向量。
更为具体的,对于目标句子中的第t个字,将其对应的目标类别集合中的各个类别的表征向量加权求和,便可得到目标句子中第t个字对应的外部知识向量rcategory,即:
rcategory=αT·K (2)
第四实施例
上述实施例提到,可“基于拟人句识别模型,以及目标句子中每个字对应的目标特征向量,确定目标句子是否为拟人句”,本实施例对这一过程进行介绍。
请参阅图5,示出了基于拟人句识别模型,以及目标句子中每个字对应的目标特征向量,确定目标句子是否为拟人句的流程示意图,可以包括:
步骤S501:基于拟人句识别模型和目标句子中每个字对应的目标特征向量,确定目标句子中每个字对应的注意力权重。
可以理解的是,一个句子中并不是所有的字对拟人识别有同等的作用,有的字对拟人识别所起的作用较大,有的字对拟人识别所起的作用较小,还有的字对拟人识别起不到任何作用,为了建模这种差别,本申请引入了注意力机制,假设目标句子包括n个字,目标句子中各个字分别对应的目标特征向量组成的目标特征向量序列为S'=(s'1,s'2,...,s'n),则可通过下式计算S'对应的注意力向量α':
α′=softmax(tanh(Wα'S')) (3)
其中,注意力向量α'=(α′1,α′2,...α′n),α′1为目标句子中第一个字对应的注意力权重,α'2为目标句子中第二个字对应的注意力权重,…,α'n为目标句子中第n个字对应的注意力权重,Wα'为模型的可训练权重。
步骤S502:基于拟人句识别模型、目标句子中每个字对应的目标特征向量和目标句子中每个字对应的注意力权重,确定目标句子的语义表征向量。
具体的,可按目标句子中各个字分别对应的注意力权重,对目标句子中各个字对应的目标特征向量加权求和,即:
r=(α')T·S' (4)
加权求和后的向量r作为目标句子的语义表征向量。
步骤S503:基于拟人句识别模型和目标句子的语义表征向量,确定目标句子是否为拟人句。
具体的,基于拟人句识别模型和目标句子的语义表征向量,确定目标句子为拟人句的概率以及为非拟人句的概率,根据目标句子为拟人句的概率以及为非拟人句的概率,确定目标句子是否为拟人句。
第五实施例
经由上述实施例可知,拟人句识别可基于预先建立的拟人句识别模型实现,本实施例对建立拟人句识别模型的过程进行介绍。
请参阅图6,示出了建立拟人句识别模型的流程示意图,可以包括:
步骤S601:利用百科数据集中的数据对初始的拟人句识别模型进行预训练。
本实施例利用大规模的百科数据,对拟人句识别模型进行双向语言模型任务的预训练,即,利用训练数据中一个字的前文和后文预测该字,具体的,对于包括n个字的训练数据,假设当前待预测的位置是t,利用前向部分即位置1、2、…、t-1处的字,以及后向部分即位置t+1、t+2、…、n处的字,预测当前位置t处的字,根据预测出的字和当前位置t处的真实字更新模型的参数。
对初始的拟人句识别模型进行预训练的目的是更新模型的权重,预训练所起的作用主要为,一方面,采用百科数据进行预训练,能够使模型学习到一些百科知识,一定程度上建立对客观事实的认识,另一方面,使用大规模数据进行预训练,能够使模型自动学习句子中字词的构成关系、词的词性信息、句子本身的句法结构信息。
需要说明的是,词汇对拟人的识别有一定价值,特定的非人物体的词汇与描述人的词汇共同出现时,句中出现拟人现象的几率比较大,词性、句法关系也对拟人的识别有一定贡献,形成拟人的片段一般由形容词-名词、名词-动词等词性搭配组成,并形成特定的句法结构,为此,本申请通过预训练的方式使模型对这些信息进行自动学习。
步骤S602:利用拟人数据集中的数据对预训练后的拟人句识别模型进一步进行训练。
在预训练的基础上,本实施例使用人工标注的拟人数据集对预训练得到的模型进行微调训练,在这一步骤中,首先,使用大规模训练数据帮助模型自动抽取特征,其次,对正负例比例悬殊的数据进行增采样和降采样,降采样的目的是平衡非拟人句的比例,同时使模型尽可能观察到更多不同类型的非拟人句,增采样的目的是,重复利用数量较少的拟人句,加强模型对于拟人相关特征的抽取。经过微调训练后,最终得到能够进行拟人句识别的模型。
另外,为了使得拟人句识别模型具有较强的泛化能力,拟人数据集中的数据为广泛语料,而不是不局限于特定场景的语料,比如,待识别句子为作文评阅场景中的句子,拟人数据集中包括来自童话、寓言等多种题材的文本的句子。
请参阅图7,示出了利用拟人数据集中的数据对预训练后的拟人句识别模型进一步进行训练的流程示意图,可以包括:
步骤S701:从拟人数据集中获取训练数据。
步骤S702:利用拟人句识别模型,确定训练数据分别为拟人句和非拟人句的概率。
具体的,利用拟人句识别模型确定训练数据分别为拟人句和非拟人句的概率的过程可以包括:
步骤S7021、基于拟人句识别模型,以及训练数据和外部知识库,确定训练数据中每个字对应的目标特征向量。
其中,训练数据中一个字对应的目标特征向量能够表征该字的上下文信息以及该字的相关外部知识信息,一个字的外部知识信息包括外部知识库中包含该字的词所对应的类别的信息。
基于拟人句识别模型,以及训练数据和外部知识库,确定训练数据中每个字对应的目标特征向量的过程与上述实施例中“基于预先建立的拟人句识别模型,以及目标句子和外部知识库,确定目标句子中每个字对应的目标特征向量”的过程类似,具体可参见上述实施例中的相关部分,本实施例在此不做赘述。
需要说明的是,拟人现象本质上是非人类别的事物和属于人的属性之间的一种搭配,具有鲜明的类别偏向特性,综合这种语言学上的先验知识,结合外部知识库,显式地指出某些字词之间的共性,如“风”“雷”分别是不同的自然现象,利用外部知识库,为这两个字增加它们所属的类别信息,更便于模型建立这样的联系:“风”“雷”均为自然现象,均可能与“发声”相关联,从而在一定程度上,为模型增强了学习现实知识的能力。
步骤S7022、基于拟人句识别模型,以及训练数据中每个字对应的目标特征向量,确定训练数据分别为拟人句和非拟人句的概率。
具体的,首先基于拟人句识别模型和训练数据中每个字对应的目标特征向量,确定训练数据中每个字对应的注意力权重;然后基于拟人句识别模型、训练数据中每个字对应的目标特征向量和训练数据中每个字对应的注意力权重,确定训练数据的语义表征向量;最后,基于拟人句识别模型和训练数据的语义表征向量,确定训练数据分别为拟人句和非拟人句的概率。
需要说明的时,基于拟人句识别模型,以及训练数据中每个字对应的目标特征向量,确定训练数据分别为拟人句和非拟人句的概率的具体实现过程与上述实施例中基于拟人句识别模型,以及目标句子中每个字对应的目标特征向量,确定目标句子分别为拟人句和非拟人句的概率的具体实现过程类似,具体可参见上述实施例中的相关部分,本实施例在此不做赘述。
步骤S703:根据训练数据标注的句子类别,以及训练数据分别为拟人句和非拟人句的概率,确定拟人句识别模型的预测损失。
具体的,根据训练数据标注的句子类别,以及训练数据分别为拟人句和非拟人句的概率,确定训练数据在真实句子类别上的概率Ptrue,进而根据训练数据在真实句子类别上的概率Ptrue确定损失函数E,具体的:
E=-log(Ptrue) (5)
步骤S704:根据拟人句识别模型的预测损失,更新拟人句识别模型的参数。
利用拟人数据集中的训练数据,按上述步骤S701~步骤S704的方式进行多次迭代训练,直至达到预设的训练迭代次数,或者,拟人句识别模型的性能满足要求,最后一次训练后得到的模型即为建立的拟人句识别模型,即用于对目标句子进行拟人句识别的模型。
第六实施例
在上述实施例的基础上,本实施例结合图8(拟人句识别模型的拓扑结构),以一个具体的句子为例,对利用拟人句识别模型进行拟人句识别的过程进行介绍。
假设目标句子为“狂风在怒吼咆哮”,识别该句子是否为拟人句的过程包括:
步骤a、将目标句子拆分为单字,得到目标句子中的每个字:“狂”、“风”、“在”、“怒”、“吼”、“咆”、“哮”。
步骤b、将X=(#CLS,狂,风,在,怒,吼,咆,哮)输入拟人句识别模型,基于拟人句识别模型的字表征模块801获取X中每个字的表征向量。
具体的,对于X中的每个字,基于拟人句识别模型的字表征模块801,获取表征该字本身内容的向量echar以及表征该字的位置信息的向量eposition,将这两个向量拼接,拼接后的向量作为该字的表征向量,从而得到E=(e0,e1,...,e7),其中,ei为X中第i个字的表征向量。
需要说明的是,#CLS为句子的起始符标识,其也会作为一个字进行处理。另外需要说明的是,一个字的位置信息指的是该字在目标句子中出现的绝对位置。
步骤c、基于拟人句识别模型的上下文向量确定模块802和E=(e0,e1,...,e7),确定X中每个字对应的上下文向量。
具体的,将E=(e0,e1,...,e7)输入拟人句识别模型的上下文向量确定模块802(即多层Transformer单元),可获得S=(s0,s1,...,s7),其中,si为X中第i个字对应的上下文向量。
步骤d、基于拟人句识别模型的外部知识向量确定模块803、外部知识库和S=(s1,s2,...,s7),确定X中每个字对应的外部知识向量。
具体的,对于X中的每个字,首先从外部知识库中获取包含该字的词所对应的类别,组成该字对应的目标类别集合,然后确定该字对应的目标类别集合中每个类别对应的注意力权重,最后,根据该字对应的目标类别集合中每个类别的表征向量和每个类别对应的注意力权重,确定该字对应的外部知识向量,以得到X中每个字对应的外部知识向量。
步骤e、基于拟人句识别模型的向量拼接模块804、S=(s0,s1,...,s7)和X中每个字对应的外部知识向量,确定X中每个字对应的目标特征向量。
对于X中的每个字,基于拟人句识别模型的向量拼接模块804,将该字对应的上下文向量与该字对应的外部知识向量进行拼接,拼接后的向量作为该字对应的目标特征向量,可获得S'=(s'1,s'2,...,s'7),其中,si'为X中第i个字对应的目标特征向量。
步骤f、基于拟人句识别模型的语义表征向量确定模块805和S'=(s'1,s'2,...,s'7),确定目标句子的语义表征向量。
具体的,将S'=(s'1,s'2,...,s'7)输入拟人句识别模型的语义表征向量确定模块805,语义表征向量确定模块805先确定S'=(s1',s'2,...,s'7)对应的注意力向量α',然后根据S'和α'确定目标句子的语义表征向量。
步骤g、基于拟人句识别模型的句子分类模块和目标句子的语义表征向量,确定目标句子是否为拟人句。
具体的,将目标句子的语义表征向量输入拟人句识别模型的句子分类模块,可得到目标句子为拟人句的概率和为非拟人句的概率,进而可根据目标句子为拟人句的概率和为非拟人句的概率,确定目标句子是否为拟人句。
经由上述各个实施例可知,本申请提供的拟人句识别方法具体如下优点:其一,本申请利用拟人句识别模型进行拟人句识别,由于拟人句识别模型能够自动抽取特征,因此,大大减轻了人工设计特征的工作负担;其二,由于拟人句识别模型在大规模语料上进行训练,因此回避了数据统计语料有偏的问题;其三,由于拟人句识别模型训练时结合了外部知识库,而且还在百科语料上进行了预训练,因此增强了模型的常识建模能力;其四,本申请以字为单位进行识别,不需要进行先行的分词、词性标注和依存句法分析工作,直接采用模型的自动学***衡的问题,提升了模型的训练效果。
第七实施例
本申请实施例还提供了一种拟人句识别装置,下面对本申请实施例提供的拟人句识别装置进行描述,下文描述的拟人句识别装置与上文描述的拟人句识别方法可相互对应参照。
请参阅图9,示出了本申请实施例提供的拟人句识别装置的结构示意图,可以包括:句子获取模块901、特征向量确定模块902和句子识别模块903。
句子获取模块901,用于获取目标句子。
特征向量确定模块902,用于基于所述目标句子和外部知识库,确定所述目标句子中每个字对应的目标特征向量。
其中,所述外部知识库中包括多个词和所述多个词分别对应的类别,一个字对应的目标特征向量能够表征该字的上下文信息以及该字的相关外部知识信息,一个字的相关外部知识信息包含所述外部知识库中包含该字的词所对应的类别的信息。
句子识别模块903,用于以所述目标句子中每个字对应的目标特征向量为依据,确定所述目标句子是否为拟人句。
可选的,特征向量确定模块902,具体用于基于预先建立的拟人句识别模型,以及所述目标句子和所述外部知识库,确定所述目标句子中每个字对应的目标特征向量;
可选的,句子识别模块903,具体用于基于所述拟人句识别模型,以及所述目标句子中每个字对应的目标特征向量,确定所述目标句子是否为拟人句。
其中,所述拟人句识别模型通过两个阶段的训练得到,第一阶段的训练用于使拟人句识别模型学习百科知识以及句子中字词的构成关系、词的词性信息、句子本身的句法结构信息,所述第二阶段的训练用于使拟人句识别模型具备判别句子是否为拟人句的能力。
可选的,特征向量确定模块902在基于预先建立的拟人句识别模型,以及所述目标句子和所述外部知识库,确定所述目标句子中每个字对应的目标特征向量时,具体用于基于所述拟人句识别模型和所述目标句子,确定所述目标句子中每个字对应的上下文向量,其中,一个字对应的上下文向量能够表征该字的上下文信息;基于所述拟人句识别模型、所述外部知识库和所述目标句子中每个字对应的上下文向量,确定所述目标句子中每个字对应的外部知识向量,其中,一个字对应的外部知识向量能够表征该字的相关外部知识信息;基于所述拟人句识别模型、所述目标句子中每个字对应的上下文向量和所述目标句子中每个字对应的外部知识向量,获得所述目标句子中每个字对应的目标特征向量。
可选的,特征向量确定模块902在基于所述拟人句识别模型和所述目标句子,确定所述目标句子中每个字对应的上下文向量时,具体用于基于所述拟人句识别模型和所述目标句子,确定所述目标句子中每个字的表征向量;基于所述拟人句识别模型和所述目标句子中每个字的表征向量,确定所述目标句子中每个字对应的上下文向量。
可选的,特征向量确定模块902在基于所述拟人句识别模型和所述目标句子,确定所述目标句子中每个字的表征向量时,具体用于将所述目标句子拆分为单字,获得所述目标句子中的每个字;基于所述拟人句识别模型和所述目标句子中每个字的内容和位置,确定所述目标句子中每个字的表征向量。
可选的,特征向量确定模块902在基于所述拟人句识别模型,以及所述外部知识库和所述目标句子中每个字对应的上下文向量,确定所述目标句子中每个字对应的外部知识向量时,具体用于对于所述目标句子中的每个字:基于所述拟人句识别模型,从所述外部知识库中获取包含该字的词所对应的类别,组成该字对应的目标类别集合;基于所述拟人句识别模型,以及所述目标句子中每个字对应的上下文向量和该字对应的目标类别集合,确定该字对应的目标类别集合中每个类别对应的注意力权重;基于所述拟人句识别模型、所述目标类别集合中每个类别的表征向量和所述目标类别集合中每个类别对应的注意力权重,确定该字对应的外部知识向量;以得到所述目标句子中每个字对应的外部知识向量。
可选的,句子识别模块903在基于所述拟人句识别模型,以及所述目标句子中每个字对应的目标特征向量,确定所述目标句子是否为拟人句时,具体用于基于所述拟人句识别模型和所述目标句子中每个字对应的目标特征向量,确定所述目标句子中每个字对应的注意力权重;基于所述拟人句识别模型、所述目标句子中每个字对应的目标特征向量和所述目标句子中每个字对应的注意力权重,确定所述目标句子的语义表征向量;基于所述拟人句识别模型和所述目标句子的语义表征向量,确定所述目标句子是否为拟人句。
可选的,拟人句识别装置可以包括模型构建模块。模型构建模块包括第一训练模块和第二训练模块。
第一训练模块,用于利用百科数据集中的数据对初始的拟人句识别模型进行预训练,其中,所述百科数据集中的数据为无标注的百科数据。
第二训练模块,用于利用拟人数据集中的数据对预训练后的拟人句识别模型进一步进行训练,其中,所述拟人数据集中的数据为标注有句子类别的拟人句和非拟人句。
可选的,第二训练模块,具体用于从所述拟人数据集中获取训练数据;利用预训练后的拟人句识别模型,确定所述训练数据分别为拟人句和非拟人句的概率;根据所述训练数据标注的句子类别,以及所述训练数据分别为拟人句和非拟人句的概率,确定预训练后的拟人句识别模型的预测损失;根据所述预测损失,更新预训练后的拟人句识别模型的参数。
本申请实施例提供的拟人句识别装置,可识别出目标句子是否为拟人句,并且,由于目标向量能够表征对应字的上下文信息和对应字的相关外部知识信息,因此,以目标句子中每个字对应的目标特征向量为依据,能够准确找出目标句子中触发拟人的搭配,从而能够准确地识别出目标句子是否为拟人句,即本申请提供的拟人句识别装置可实现拟人句的识别,且能够获得较高的识别准确度。
第八实施例
本申请实施例还提供了一种拟人句识别设备,请参阅图10,示出了该拟人句识别设备的结构示意图,该拟人句识别设备可以包括:至少一个处理器1001,至少一个通信接口1002,至少一个存储器1003和至少一个通信总线1004;
在本申请实施例中,处理器1001、通信接口1002、存储器1003、通信总线1004的数量为至少一个,且处理器1001、通信接口1002、存储器1003通过通信总线1004完成相互间的通信;
处理器1001可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
存储器1003可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory)等,例如至少一个磁盘存储器;
其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:
获取目标句子;
基于所述目标句子和外部知识库,确定所述目标句子中每个字对应的目标特征向量,其中,所述外部知识库中包括多个词和所述多个词分别对应的类别,一个字对应的目标特征向量能够表征该字的上下文信息以及该字的相关外部知识信息,一个字的相关外部知识信息包含所述外部知识库中包含该字的词所对应的类别的信息;
以所述目标句子中每个字对应的目标特征向量为依据,确定所述目标句子是否为拟人句。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
第九实施例
本申请实施例还提供一种可读存储介质,该可读存储介质可存储有适于处理器执行的程序,所述程序用于:
获取目标句子;
基于所述目标句子和外部知识库,确定所述目标句子中每个字对应的目标特征向量,其中,所述外部知识库中包括多个词和所述多个词分别对应的类别,一个字对应的目标特征向量能够表征该字的上下文信息以及该字的相关外部知识信息,一个字的相关外部知识信息包含所述外部知识库中包含该字的词所对应的类别的信息;
以所述目标句子中每个字对应的目标特征向量为依据,确定所述目标句子是否为拟人句。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。