一种比喻句识别方法、装置、设备及存储介质
技术领域
本申请涉及自然语言处理技术领域,尤其涉及一种比喻句识别方法、装置、设备及存储介质。
背景技术
比喻是一种使用连接词(即喻词)对不同的两种事物(即本体、喻体)进行比较的修辞手法,这些连接词包括英文中的“like”、“as”等,中文的“像”、“如”、“仿佛”等。比喻是广泛出现于日常语言表达中的一种形象化语言,并且在认知的意义上,又是人们尤其是儿童对陌生事物建立认知的一块关键基石。
在自然语言处理领域的相关研究中,比喻作为一种高级语言现象,具有形式多样又高度抽象的特点,目前,比喻句识别是机器翻译、机器阅读理解等技术中的一项严重瓶颈,可以理解的是,无法做到比喻句识别,就难以精确地翻译语言、准确地理解文字。
发明内容
有鉴于此,本申请提供了一种比喻句识别方法、装置、设备及存储介质,用以实现比喻句识别,其技术方案如下:
一种比喻句识别方法,包括:
获取目标句子;
利用预先建立的比喻句识别模型,从所述目标句子中抽取比喻成分,并对所述目标句子进行分类,获得比喻成分抽取结果以及用于指示所述目标句子是否为比喻句的分类结果,其中,所述比喻成分包括本体、喻词和喻体;
根据所述比喻成分抽取结果和所述分类结果,获得所述目标句子的比喻句识别结果。
可选的,所述利用预先建立的比喻句识别模型,从所述目标句子中抽取比喻成分,并对所述目标句子进行分类,包括:
利用所述比喻句识别模型,获取所述目标句子中每个词对应的上下文向量;
利用所述比喻句识别模型和所述目标句子中每个词对应的上下文向量,从所述目标句子中抽取比喻成分;
利用所述比喻句识别模型和所述目标句子中每个词对应的上下文向量,对所述目标句子进行分类。
可选的,所述利用所述比喻句识别模型和所述目标句子中每个词对应的上下文向量,从所述目标句子中抽取比喻成分,包括:
利用所述比喻句识别模型和所述目标句子中每个词对应的上下文向量,确定所述目标句子中每个词对标签集合中每种标签的贡献程度得分,以得到由确定出的得分组成的发射矩阵,其中,所述标签集合包括本体、喻词、喻体和非比喻成分;
利用所述比喻句识别模型、所述发射矩阵和转移矩阵,确定所述目标句子中每个词对应的目标标签,其中,所述转移矩阵中的元素为所述标签集合中每个标签分别向所述标签集合中各个标签的转移概率;
根据所述目标句子中每个词对应的目标标签,获得所述目标句子中的比喻成分。
可选的,所述利用所述比喻句识别模型、所述发射矩阵和转移矩阵,确定所述目标句子中每个词对应的目标标签,包括:
利用所述比喻句识别模型、所述发射矩阵和所述转移矩阵,确定所述目标句子在其对应的每个候选标签序列上的得分,其中,所述目标句子对应的一候选标签序列由所述目标句子中各个词分别对应的一候选标签组成,一个词对应的候选标签包括本体、喻词、喻体和非比喻成分;
根据所述目标句子在其对应的每个候选标签序列上的得分,确定所述目标句子对应的目标序列标签,并根据所述目标句子对应的目标序列标签,获得所述目标句子中每个词对应的目标标签。
可选的,所述利用所述比喻句识别模型和所述目标句子中每个词对应的上下文向量,对所述目标句子进行分类,包括:
利用所述比喻句识别模型、所述目标句子中每个词对应的上下文向量,以及所述目标句子中每个词对标签集合中每种标签的贡献程度得分,确定所述目标句子中每个词对应的特征向量,其中,所述标签集合包括本体、喻词、喻体和非比喻成分;
利用所述比喻句识别模型和所述目标句子中每个词对应的特征向量,确定所述目标句子是否为比喻句。
可选的,所述利用所述比喻句识别模型和所述目标句子中每个词对应的特征向量,确定所述目标句子是否为比喻句,包括:
利用所述比喻句识别模型和所述目标句子中每个词对应的特征向量,确定所述目标句子中每个词对应的注意力权重;
利用所述比喻句识别模型、所述目标句子中每个词对应的特征向量以及所述目标句子中每个词对应的注意力权重,确定所述目标句子的表征向量;
利用所述比喻句识别模型和所述目标句子的表征向量,确定所述目标句子是否为比喻句。
可选的,建立所述比喻句识别模型的过程,包括:
利用第一训练数据集中的训练数据对初始的比喻句识别模型进行预训练,以使以使比喻句识别模型具备获取词在其所在句子中语义的能力,其中,所述第一训练数据集中的训练数据为不具有标注的任意句子;
利用第二训练数据集中的训练数据对预训练后的比喻句识别模型进行训练,以使比喻句识别模型具备比喻成分抽取和句子分类的能力,其中,所述第二训练数据集中的训练数据为未标注任何信息的非比喻句和标注出比喻成分的比喻句。
可选的,所述利用第二训练数据集中的训练数据对预训练后的比喻句识别模型进行训练,包括:
从所述第二训练数据集中获取训练数据;
利用预训练后的比喻句识别模型,确定所述训练数据在其对应的每个候选标签序列上的得分,并确定所述训练数据分别为比喻句和非比喻句的概率其中,所述训练数据对应的一候选标签序列由该训练数据中各个词分别对应的一个候选标签组成,一个词对应的候选标签包括本体、喻词、喻体和非比喻成分;
以所述训练数据对应的真实类别及真实标签序列、所述训练数据在其对应的每个候选标签序列上的得分,以及所述训练数据分别为比喻句和非比喻句的概率为依据,确定比喻句识别模型的预测损失,其中,所述训练数据对应的真实类别及真实标签序列根据所述训练数据的标注情况确定;
根据比喻句识别模型的预测损失,更新比喻句识别模型的参数。
可选的,所述以所述训练数据对应的真实类别及真实标签序列、所述训练数据在其对应的每个候选标签序列上的得分,以及所述训练数据分别为比喻句和非比喻句的概率为依据,确定比喻句识别模型的预测损失,包括:
根据所述训练数据对应的真实标签序列,以及所述训练数据在其对应的每个候选标签序列上的得分,确定所述训练数据在其对应的真实标签序列上的概率,作为第一概率,并根据所述第一概率确定第一损失;
根据所述训练数据对应的真实类别,以及所述训练数据分别为比喻句和非比喻句的概率,确定所述训练数据在其对应的真实类别上的概率,作为第二概率,并根据所述第二概率确定第二损失;
根据所述第一损失和所述第二损失,确定比喻句识别模型的预测损失。
一种比喻句识别装置,包括:目标句子获取模块、比喻句识别模块和识别结果获取模块;
所述目标句子获取模块,用于获取目标句子;
所述比喻句识别模块,用于利用预先建立的比喻句识别模型,从所述目标句子中抽取比喻成分,并对所述目标句子进行分类,获得比喻成分抽取结果以及用于指示所述目标句子是否为比喻句的分类结果,其中,所述比喻成分包括本体、喻词和喻体;
所述识别结果获取模块,用于根据所述比喻成分抽取结果和所述分类结果,获得所述目标句子的比喻句识别结果。
一种比喻句识别设备,包括:存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现上述任一项所述的比喻句识别方法的各个步骤。
一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现上述任一项所述的比喻句识别方法的各个步骤。
经由上述方案可知,本申请提供的比喻句识别方法、装置、设备及存储介质,在获得目标句子后,一方面利用预先建立的比喻句识别模型从目标句子中抽取比喻成分,另一方面利用预先建立的比喻句识别模型对目标句子进行句子分类,从而可获得目标句子的比喻成分抽取结果和分类结果,进而根据目标句子的比喻成分抽取结果以及分类结果获得目标句子的比喻句识别结果。本申请提供的比喻句识别方法,不但可实现比喻句识别,而且,由于比喻成分的抽取与句子分类是两个独立的过程,二者互不依赖,因此,基于比喻成分抽取结果以及分类结果能够获得准确的比喻句识别结果,另外,本申请将喻词也作为比喻成分的一部分,即利用比喻句识别模型除了进行本体和喻体识别外,还对喻词进行识别,将喻词作为需要抽取的比喻成分的一部分能够更好地抓取多种多样的比喻形式,从而能够提升比喻句识别效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的比喻句识别方法的流程示意图;
图2为本申请实施例提供的利用预先建立的比喻句识别模型,从目标句子中抽取比喻成分,并对目标句子进行分类的流程示意图;
图3为本申请实施例提供的比喻句识别模型的拓扑结构示意图;
图4为本申请实施例提供的建立比喻句识别模型的流程示意图;
图5为本申请实施例提供的利用第二训练数据集中的训练数据对预训练后的比喻句识别模型进行训练的流程示意图;
图6为本申请实施例提供的比喻句识别装置的结构示意图;
图7为本申请实施例提供的比喻句识别设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本案的比喻句识别任务主要包括两项子任务,一是比喻现象的识别,即给定一个句子,判断其中是否存在比喻现象,即判断该句子是否为比喻句,这一问题可以抽象为“句子分类”,二为比喻结构的识别,即从包含比喻现象的句子中,抽取构成比喻义的结构,这一问题可以抽象为“比喻成分抽取”,比如,给定一个句子“这风平浪静的海面真像一块蓝色的宝石,闪烁着迷人的光泽”,首先对该句子进行是否为比喻句的分类,其次,从该句子中抽取比喻成分,本体为“海面”,喻体为“宝石”,这句话中包含的比喻结构是“海面像宝石”。
比喻识别是一项具有挑战性的任务。在句子可能包含喻词的情况下,喻词除了表示比喻含义之外,还可能表示外表上的相似、表示推测、表示举例等,这使得只有一定程度上理解了语义,才能准确地判断出句子是否表达的是比喻含义。而比喻成分抽取则涉及到整个句子范围内的每个词汇的语义,这些词汇不仅句法角色多样,意义丰富,更是表达了比字面意思层次更高的比喻性含义。这一系列现实问题为比喻自动识别带来了阻碍。
为了实现比喻句识别,本案发明人进行了研究,起初的思路是:
针对包含比喻词的句子,首先进行句子分类,若句子为比喻句,进一步进行比喻成分抽取。其中,实现句子分类的大致过程为,首先以喻词为中心进行特征提取,其次,使用统计分类器对提取的特征向量进行分类,得到句子是否为比喻句的两分类结果;对句子进行比喻成分抽取的大致过程为,首先进行特征提取,比喻成分抽取子任务提取的特征也来自于句子中的文字,但与句子分类的特征提取以喻词为中心不同,比喻成分抽取子任务的特征分别以每个词为中心进行提取,在提取到特征后,可构建基于统计的序列标注器,以提取的特征向量为依据,得到句子中每个词的序列标注结果,一个词的序列标注结果表明该词是否为比喻成分,以及是哪种比喻成分。
上述思路是将句子分类和比喻成分抽取两项子任务按照级联方式进行组合。句子分类相对来说层次更低,要求更模糊,不需要明确指出触发比喻的是哪些字词,且句中一般包含着丰富的上下文信息,更有助于判断整句中是否包含比喻的含义,因此,句子分类是相对更容易的一项子任务,一般置于处理过程中的第一步。而“比喻成分抽取”则有更严格的要求,需要准确指出句中表达了比喻含义的成分片段,相对难度更高,一般只有在比喻句子分类得到肯定的答案后再进行抽取。
发明人通过对上述思路进行研究发现,虽然上述思路能够实现比喻句识别,但是存在一些缺陷,具体体现在:
一方面,上述思路使用的多为低阶语言学特征或基本的向量特征,难以有足够的建模能力去建模复杂的语义关系;另一方面,先进行句子分类,再进行比喻成分抽取,会带来错误传递的问题,由于句子分类效果难以达到完美,因此,必然有一些识别出的比喻句其实并不含有比喻成分,强行抽取必然会抽取出错误的成分,影响准确率,而识别出的非比喻句也有可能存在漏识别,不会进行成分抽取,影响召回率。此外,上述思路往往局限于某一个或某一些喻词,如“像”“比如”“仿佛”等,难以覆盖全部类型的喻词,因此识别效果存在局限。
鉴于上述思路存在的缺陷,本案发明人进一步深入研究,最终提出了一种能够克服上述缺陷的比喻句识别方法。本申请提供的比喻句识别方法适用于任何需要进行比喻句识别的应用场景,该方法可应用于终端(比如PC、笔记本、平板电脑、智能手机等),也可应用于单个服务器、多个服务器或服务器集群。接下来通过下述实施例对本申请提供的比喻句识别方法进行介绍。
第一实施例
请参阅图1,示出了本申请实施例提供的比喻句识别方法的流程示意图,该方法可以包括:
步骤S101:获取目标句子。
从认知语言学的角度来看,比喻是一种由此及彼的心理活动,即表面谈论某一类事物却暗示另一类事物的语言行为,低龄儿童往往通过将陌生的事物映射到已知的事物上的方式逐渐建立对陌生事物的认识,因此,教育上,尤其是低学年段的语文教育大幅强调了比喻这一语言现象的重要性,教学中传授给学生比喻的用法,并以作文习练的方式,考察学生对比喻的掌握程度,启发学生通过比喻的角度观察生活、认识世界,基于此,本实施例提供的比喻句识别方法可适用于作文自动评阅场景,相应的,本实施例中的目标句子可以为待评阅作文中的任一句子。
需要说明的是,本实施例提供的比喻句识别方法适用于任何需要进行比喻句识别的应用场景,不只局限于上述的作文自动评阅场景,上述的作文自动评阅场景仅为一示例。
步骤S102:利用预先建立的比喻句识别模型,从目标句子中抽取比喻成分,并对目标句子进行分类,获得比喻成分抽取结果以及用于指示目标句子是否为比喻句的分类结果。
其中,比喻句识别模型经过两个阶段的训练得到,第一个阶段为预训练,预训练的目的是使比喻句识别模型能够学习到句子中的词在句子中的语义,预训练的训练数据为无标注的任意句子,第二阶段是对预训练后的模型进一步进行训练,使其具备句子分类和比喻成分抽取的能力,第二阶段的训练数据是经过标注的比喻句和非比喻句。
本实施例一方面利用预先建立的比喻句识别模型,从目标句子中抽取比喻成分,以获得比喻成分抽取结果,另一方面,利用预先建立的比喻句识别模型对目标句子进行分类,以获得分类结果,由此可见,从目标句子中抽取比喻成分与对目标句子进行分类是两个独立的过程,也就是说,本实施例并不是在确定目标句子为比喻句后,才对目标句子进行比喻成分抽取,而是直接对目标句子进行比喻成分抽取。
在本实施例中,从目标句子中抽取的比喻成分包括本体、喻词和喻体,示例性的,目标句子为“这风平浪静的海面真像一块蓝色的宝石,闪烁着迷人的光泽”,则从该句子抽取的比喻成分为:本体“海面”,喻词“像”,喻体“宝石”。需要说明的是,一般比喻成分包括本体和喻体,而本申请将喻词也作为比喻成分,之所以将喻词也作为比喻成分,是为了能够抓取到更多的比喻形式,从而获得更好的识别效果。
步骤S103:根据比喻成分抽取结果和分类结果,获得目标句子的比喻句识别结果。
具体的,若从目标句子中抽取到了比喻成分,且分类结果指示目标句子为比喻句,则将比喻成分抽取结果和分类结果作为目标句子的识别结果;若从目标句子中抽取到了比喻成分,但分类结果指示目标句子不是比喻句,则说明分类结果可能有误,此时,纠正分类结果,将纠正后的分类结果和比喻成分抽取结果作为目标句子的识别结果;若未从目标句子中抽取出比喻成分,但分类结果指示目标句子为比喻句,则说明分类结果可能有误,此时,可纠正分类结果,将纠正后的分类结果作为目标句子的识别结果。
本实施例中,由于从目标句子中抽取比喻成分与对目标句子进行分类并行执行,二者相互独立,因此,比喻成分抽取结果不受分类结果影响,相应的,分类结果也不受比喻成分抽取结果的影响,最终综合比喻成分抽取结果和分类结果能够获得更加准确的比喻句识别结果。
本申请实施例提供的比喻句识别方法,在获得目标句子后,一方面利用预先建立的比喻句识别模型从目标句子中抽取比喻成分,另一方面利用预先建立的比喻句识别模型对目标句子进行句子分类,从而可获得目标句子的比喻成分抽取结果和分类结果,进而根据目标句子的比喻成分抽取结果以及分类结果可获得目标句子的比喻句识别结果。本申请实施例提供的比喻句识别方法,不但可实现比喻句识别,而且,由于比喻成分的抽取与句子分类是两个独立的过程,因此,基于比喻成分抽取结果以及分类结果能够获得准确的比喻句识别结果,另外,本申请实施例将喻词也作为比喻成分的一部分,即利用比喻句识别模型除了进行本体和喻体识别外,还对喻词进行识别,将喻词作为需要抽取的比喻成分的一部分能够更好地抓取多种多样的比喻形式,从而能够提升比喻句识别效果。
第二实施例
本实施例对上述实施例中的“步骤S102:利用预先建立的比喻句识别模型,从目标句子中抽取比喻成分,并对目标句子进行分类,获得比喻成分抽取结果以及用于指示目标句子是否为比喻句的分类结果”进行介绍。
请参阅图2,示出了步骤S102的流程示意图,可以包括:
步骤S201:利用比喻句识别模型,确定目标句子中每个词对应的上下文向量。
请参阅图3,示出了比喻句识别模型的拓扑结构图,如图3所示,比喻句识别模型包括上下文向量确定模块301,具体的,上下文向量确定模块301可以包括词向量确定模块3011和编码模块3012。
本实施例可利用比喻句识别模型中的上下文向量确定模块301确定目标句子中每个词对应的上下文向量。
具体的,利用比喻句识别模型中的上下文向量确定模块301,确定目标句子中每个词对应的上下文向量的过程包括:
步骤S2011、对目标句子进行分词处理,获得目标句子中的每个词。
步骤S2012、利用比喻句识别模型的词向量确定模块3011,确定目标句子中每个词对应的词向量。
步骤S2013、利用比喻句识别模型的编码模块3012和目标句子中每个词对应的词向量,确定目标句子中每个词对应的上下文向量。
其中,目标句子中一个词对应的上下文向量包含该词在目标句子中的上下文语义信息。
具体的,将目标句子中每个词对应的上下文向量输入比喻句识别模型的编码模块3022,获得目标句子中每个词对应的上下文向量。
可选的,比喻句识别模型的编码模块3012可以为单层双向LSTM(长短期记忆网络),也可以为多层双向LSTM,优选为多层双向LSTM,比如两层。LSTM是RNN(循环神经网络)的一种,其保留了RNN能够学习历史上下文信息的优点,又通过门机制回避了RNN可能出现的梯度爆炸的问题。
假设目标句子包括n个词,经步骤S2011可获得这n个词,经步骤S2012可获得n个词分别对应的词向量x1、x2、…、xn,其中,xi表示第i个词对应的词向量,获得n个词分别对应的词向量x1、x2、…、xn后,将其输入编码模块3012进行编码。
具体的,在t时刻,LSTM的输入为前一个时间步的隐含状态ht-1和当前时间步对应的词向量xt,输出一个新的隐含状态ht,双向LSTM除了进行正序建模之外,还以逆序对句子序列进行建模,双向这一特点允许模型在当前时间步下可以获取前后任意距离的信息,以更准确地获取上下文的语义。
标记正向LSTM产生的隐含状态为
逆向LSTM产生的隐含状态为
将两者进行拼接,便可得到第t个时间步的最终隐含表示h
t,h
t表示第t个位置的语义信息,即目标句子中第t个词在目标句子中的语义,在此之上,通过加深网络的层数以增强模型的特征提取能力,深度神经网络有更强的表征能力,能够建模更复杂的语义关系,假设编码模块3022包括两层双向LSTM,其中,第一层为LSTM1,第二层为LSTM2,则通过LSTM1和LSTM2产生第t个时间步的最终隐含状态的过程为:
经由上述式(1)~(6)表示的过程可获得第t个时间步的最终隐含状态
即最终会获得
即为目标句子中第一个词对应的、包含其在目标句子中语义信息的上下文向量,
为目标句子中第二个词对应的、包含其在目标句子中语义信息的上下文向量,其它以此类推。
步骤S202a:利用比喻句识别模型和目标句子中每个词对应的上下文向量,从目标句子中抽取比喻成分。
如图3所示,比喻句识别模型包括比喻成分抽取模块302,本实施例利用比喻句识别模型的比喻成分抽取模块302和目标句子中每个词对应的上下文向量,从目标句子中抽取比喻成分。
具体的,利用比喻句识别模型的比喻成分抽取模块和目标句子中每个词对应的上下文向量,从目标句子中抽取比喻成分的过程可以包括:
步骤S202a-1、利用比喻句识别模型的比喻成分抽取模块和目标句子中每个词对应的上下文向量,确定目标句子中每个词对标签集合中每种标签的贡献程度得分,以得到由确定出的得分组成的发射矩阵。
在本实施例中,目标句子中每个词对标签集合中每种标签的贡献程度得分可通过对目标句子中每个词对应的上下文向量进行线性变换得到。
其中,标签集合中可以包括“喻词”、“本体”、“喻体”和“非比喻成分”这四种标签。步骤S2021的目的在于确定目标句子中每个词分别对“喻词”、“本体”、“喻体”和“非比喻成分”的贡献程度得分。
示例性的,目标句子为“树叶像蝴蝶”,通过步骤S2021可获得词“树叶”分别对“本体”、“喻词”、“喻体”和“非比喻成分”的贡献程度得分,假设得分依次为S11、S12、S13、S14,可获得词“像”分别对“本体”、“喻词”、“喻体”和“非比喻成分”的贡献程度得分,假设得分依次为S21、S22、S23、S24,还可获得词“蝴蝶”分别对“本体”、“喻词”、“喻体”和“非比喻成分”的贡献程度得分,假设得分依次为S31、S32、S33、S34,由上述获得的得分可组成如下的发射矩阵:
|
本体 |
喻词 |
喻体 |
非比喻成分 |
树叶 |
S11 |
S12 |
S13 |
S14 |
像 |
S21 |
S22 |
S23 |
S24 |
蝴蝶 |
S31 |
S32 |
S33 |
S34 |
步骤S202a-2、利用比喻句识别模型的比喻成分抽取模块、发射矩阵和转移矩阵,确定目标句子中每个词对应的标签。
其中,转移矩阵代表了标签集合中的每种标签分别向标签集合中各标签转移的概率,转移矩阵通过训练得到,也就是说,转移矩阵是随模型训练的参数。转移矩阵的形式如下:
具体的,利用比喻句识别模型的比喻成分抽取模块、发射矩阵和转移矩阵,确定目标句子中每个词对应的标签的过程可以包括:
步骤a1、用比喻句识别模型的比喻成分抽取模块、发射矩阵和转移矩阵,确定目标句子在其对应的每个候选标签序列上的得分。
其中,所述目标句子对应的一候选标签序列由所述目标句子中各个词分别对应的一候选标签组成,一个词对应的候选标签包括“本体”、“喻词”、“喻体”和非比喻成分。
步骤a2、根据目标句子在其对应的每个候选标签序列上的得分,确定目标句子对应的目标序列标签。
具体的,对于目标句子对应的一候选标签序列,假设为y=(y1,y2,...,yn),则可根据下式确定目标句子在候选标签序列y上的得分:
其中,A∈R
k×k为转移矩阵,
为候选标签序列y中,y
t到y
t+1的转移概率,y
t为候选标签序列y中对应于第t个词的标签,y
t+1为候选标签序列y中对应于第t+1个词的标签,转移矩阵是一项随模型训练的参数,P=(p
1,p
2,...,p
n)∈R
n×k为发射矩阵,
表示词第t个词在当前上下文中对标签y
t的贡献程度得分。
步骤a3、根据目标句子对应的目标标签序列,获得目标句子中每个词对应的目标标签。
由于目标句子对应的目标标签序列包括了目标句子中每个词对应的目标标签,因此,根据目标句子对应的目标标签序列便可获得目标句子中每个词对应的目标标签。
步骤S202a-3、根据目标句子中每个词对应的目标标签,获得目标句子中的比喻成分。
对于目标句子中的每个词,若该词对应的目标标签为“喻词”、“本体”、“喻体”中的任一个,则可确定该词为比喻成分,从而可获得目标句子中的比喻成分。
步骤S202b:利用比喻句识别模型和目标句子中每个词对应的上下文向量,对目标句子进行分类。
如图3所示,比喻句识别模型包括句子分类模块303,本实施例利用比喻句识别模型的句子分类模块303和目标句子中每个词对应的上下文向量,对目标句子进行分类。
具体的,利用比喻句识别模型的句子分类模块303和目标句子中每个词对应的上下文向量,对目标句子进行分类的过程可包括:
步骤S202b-1:利用比喻句识别模型的句子分类模块303、目标句子中每个词对应的上下文向量,以及目标句子中每个词对标签集合中每种标签的贡献程度得分,确定目标句子中每个词对应的特征向量。
具体的,对于目标句子中的每个词,可将该词对应的上下文向量进行线性变换,将线性变换结果与该词对标签集合中每种标签的贡献程度得分进行拼接,拼接结果作为该词对应的特征向量,从而得到目标句子中每个词对应的特征向量。目标句子中第t个词对应的特征向量st可表示为:
其中,
表示第t个词对应的上下文向量,p
t表示第t个词对标签集合中每种标签的贡献程度得分,tanh(*)为激活函数。
步骤S202b-2:利用比喻句识别模型的句子分类模块303和目标句子中每个词对应的特征向量,确定目标句子是否为比喻句。
具体的,利用比喻句识别模型的句子分类模块303和目标句子中每个词对应的特征向量,确定目标句子是否为比喻句的过程可以包括:
步骤b1、利用比喻句识别模型的句子分类模块303和目标句子中每个词对应的特征向量,确定目标句子中每个词对应的注意力权重。
可以理解的是,一个句子中并不是所有的词都对比喻识别有同等的作用,一般来说,喻词、本体、喻体这些比喻成分更重要,一些关联的描述、解释次之,无关的其它内容则应尽量不考虑,为了建模这种差别,本申请引入了注意力机制,假设目标句子中各个词分别对应的特征向量组成的特征向量序列为S=(s1,s2,...,sn),则可通过下式计算注意力向量α:
α=softmax(tanh(WαS)) (9)
其中,注意力向量α=(α1,α2,...,αn),α1为目标句子中第一个词对应的注意力权重,α2为目标句子中第二个词对应的注意力权重,...,αn为目标句子中第n个词对应的注意力权重,Wα为模型的可训练参数。
步骤b2、利用比喻句识别模型的句子分类模块303以及目标句子中每个词对应的特征向量和注意力权重,确定目标句子的表征向量。
具体的,可按目标句子中各个词分别对应的注意力权重,对目标句子中各个词对应的特征向量加权求和,即:
r=αT·S (10)
加权求和后的向量r作为目标句子的表征向量。
步骤b3、利用比喻句识别模型和目标句子的表征向量,确定目标句子是否为比喻句。
具体的,可利用比喻句识别模型和目标句子的表征向量,确定目标句子为比喻句的概率以及为非比喻句的概率,从而可根据目标句子为比喻句的概率以及为非比喻句的概率确定目标句子是比喻句还是非比喻句。在本实施例中,可通过激活函数与softmax将目标句子的表征向量转换为概率。
第三实施例
经由上述实施例可知,本申请利用预先建立的比喻句识别模型实现比喻成分抽取和句子分类,本实施例对建立比喻句识别模型的过程进行介绍。
请参阅图4,示出了建立比喻句识别模型的流程示意图,可以包括:
步骤S401:利用第一训练数据集中的训练数据对初始的比喻句识别模型进行预训练,以使比喻句识别模型具备获取词在其所在句子中语义的能力。
其中,第一训练数据集中的训练数据为不具有标注的任意句子。
可以理解的是,同一个词在不同的句子中可能有不同的语义,比如“苹果”,在一个句子中表达的是公司名称,但在另一个句子中可能表达的是水果名称,为了使比喻句识别模型能够理解词在其所在句子中的语义,本申请先对比喻句识别模型,更为具体来说,是对比喻句识别模型中的上下文向量确定模块(图3中的301)进行预训练,以使上下文向量确定模块针对一个词能够确定其在当前句子中的语义,从而输出能够表征该词在其所在语句中语义的上下文向量。
本实施例采用了自然语言处理领域一项经典任务,即语言模型任务,作为上下文向量确定模块的训练目标,即,利用前文预测下一词,利用后文预测前一个词,假设训练数据为包括n个词的句子,当前待预测的位置是t,在预测位置t处的词时,利用前向部分即位置1、2、...、t-1处的t-1个词,预测当前位置t处的词,利用向部分即位置t+1、t+2、...、n处的词,预测当前位置t处的词;根据两个预测结果以及当前位置的真实词更新模型参数。正如人自身会随阅读量增加而有更宽广的思维一样,模型也能受益于大规模语料,因此,本申请利用大量的训练数据对比喻句识别模型的上下文向量确定模块进行预训练,以使其具备较强的特征抽取能力。
步骤S402:利用第二训练数据集中的训练数据对预训练后的比喻句识别模型进行训练,以使比喻句识别模型具备比喻成分抽取和句子分类的能力。
其中,第二训练数据集中的训练数据为专门用于比喻句识别的训练数据,第二训练数据集中的训练数据为非比喻句和非比喻句。
在一种可能的实现方式中,对于非比喻句,可标注句子类别,对于比喻句,可标注句子类别和句子中的比喻成分;在另一种可能的实现方式中,对于非比喻句,可不标注任何信息,对于比喻句,标注出句子中的比喻成分,为了减小标注工作量,优选为上述的第二种标注方式。
请参阅图5,示出了利用第二训练数据集中的训练数据对预训练后的比喻句识别模型进行训练的流程示意图,可以包括:
步骤S501:从第二训练数据集中获取训练数据。
步骤S502:利用预训练后的比喻句识别模型,确定训练数据在其对应的每个候选标签序列上的得分,并确定训练数据分别为比喻句和非比喻句的概率。
具体的,利用预训练后的比喻句识别模型,确定训练数据在其对应的每个候选标签序列上的得分,并确定训练数据分别为比喻句和非比喻句的概率的过程包括:
步骤S5021、利用预训练后的比喻句识别模型,确定训练数据中每个词对应的上下文向量。
其中,训练数据中一个词对应的上下文向量包含该词在训练数据中的语义信息。
步骤S5022a、利用预训练后的比喻句识别模型和训练数据中每个词对应的上下文向量,确定训练数据在其对应的每个候选标签序列上的得分。
其中,训练数据对应的一候选标签序列由该训练数据中各个词分别对应的一个候选标签组成,一个词对应的候选标签可以包括“本体”、“喻体”、“喻词”和“非比喻成分”。
需要说明的是,步骤S5022a的实现过程与上述实施例中利用比喻句识别模型和目标句子中每个词对应的上下文向量确定目标句子在其对应的每个候选标签序列上的得分的实现过程类似,具体可参见上述实施例中的相关部分,本实施例在此不作赘述。
步骤S5022b、利用预训练后的比喻句识别模型和训练数据中每个词对应的上下文向量,确定训练数据分别为比喻句和非比喻句的概率。
需要说明的是,步骤S5022b的实现过程与上述实施例中利用比喻句识别模型和目标句子中每个词对应的上下文向量确定目标句子分别为比喻句和非比喻句的概率的实现过程类似,具体可参见上述实施例中的相关部分,本实施例在此不作赘述。
步骤S503:以训练数据对应的真实类别和真实标签序列、训练数据在其对应的每个候选标签序列上的得分以及训练数据分别为比喻句和非比喻句的概率为依据,确定比喻句识别模型的预测损失。
其中,训练数据对应的真实类别和真实标签序列根据训练数据的标注情况确定。具体的,若训练数据没有标注任何信息,或者,标注了指示该训练数据为非比喻句的信息,则该训练数据对应的真实类别即为“非比喻句”,该训练数据对应的真实标签序列为{非比喻成分、非比喻成分、非比喻成分、…};若训练数据标注了指示该训练数据为比喻句的信息,且标注出了比喻成分,或者,该训练数据只标注出了比喻成分,则该训练数据对应的真实类别为“比喻句”,该训练数据对应的真实标签序列可根据标注出的比喻成分确定,示例性的,训练数据为“ABCDE”(每个字母代表一个词),假设标注了“C”为本体,“D”为喻词,“E”为喻体,则该训练数据对应的真实标签序列为{非比喻成分、非比喻成分、本体、喻词、喻体}。
在本实施例中,以训练数据对应的真实类别和真实标签序列、训练数据在其对应的每个候选标签序列上的得分以及训练数据分别为比喻句和非比喻句的概率为依据,确定比喻句识别模型的预测损失的过程可以包括:
步骤S5031、根据训练数据对应的真实标签序列,以及训练数据在其对应的每个候选标签序列上的得分,确定训练数据在其对应的真实标签序列上的概率,作为第一概率,并根据第一概率确定第一损失。
可以理解的是,训练数据对应的候选标签序列中存在训练数据对应的真实标签序列(假设为y),这意味着,根据训练数据对应的真实标签序列y以及训练数据在其对应的每个候选标签序列上的得分,可获得训练数据在其对应的真实标签序列上的得分Scorey,假设Y为训练数据对应的所有候选标签序列组成的集合,Y中包括m个候选标签序列,y'j为Y中的第j个候选标签序列,则训练数据在其对应的真实标签序列y上的概率Py可通过下式确定:
本实施例通过负最大似然形式构建比喻成分抽取子任务的损失函数:
ECE=-log(Py) (12)
步骤S5032、根据训练数据对应的真实类别,以及训练数据为比喻句的概率和为非比喻句的概率,确定训练数据在其对应的真实类别上的概率,作为第二概率,并根据第二概率确定第二损失。
假设训练数据对应的真实类别为“比喻句”,通过S5032确定训练数据为比喻句的概率为P1,为非比喻句的概率为P2,则训练数据在其对应的真实类别上的概率P1。
将训练数据在其对应的真实类别上的概率用Ptrue表示,则句子分类任务的损失函数为:
ESE=-log(Ptrue) (13)
步骤S5033、根据第一损失和第二损失,确定比喻句识别模型的预测损失。
本实施例将ECE作为第一损失,将ESE作为第二损失,在一种可能的实现方式中,可直接将第一损失与第二损失求和,求和得到的损失作为比喻句识别模型的预测损失E,在另一种可能的实现方式中,可设置权重δ,将δ作为第一损失ECE对应的权重,将1-δ作为第二损失ESE对应的权重,将两个损失加权求和,加权求和后的损失作为比喻句识别模型的预测损失E,即:
E=δ·ECE+(1-δ)·ESC (14)
步骤S504:根据比喻句识别模型的预测损失,更新比喻句识别模型的参数。
利用第二训练数据集中的训练数据,按上述步骤S501~步骤S504的方式进行多次迭代训练,直至达到预设的训练迭代次数,或者,比喻句识别模型的性能满足要求,最后一次训练后得到的模型即为建立的比喻句识别模型,即用于对目标句子进行比喻句识别的模型。
第四实施例
本申请实施例还提供了一种比喻句识别装置,下面对本申请实施例提供的比喻句识别装置进行描述,下文描述的比喻句识别装置与上文描述的比喻句识别方法可相互对应参照。
请参阅图6,示出了本申请实施例提供的比喻句识别装置的结构示意图,可以包括:目标句子获取模块601、比喻句识别模块602和识别结果获取模块603。
目标句子获取模块601,用于获取目标句子。
比喻句识别模块602,用于利用预先建立的比喻句识别模型,从所述目标句子中抽取比喻成分,并对所述目标句子进行分类,获得比喻成分抽取结果以及用于指示所述目标句子是否为比喻句的分类结果。其中,所述比喻成分包括本体、喻词和喻体。
识别结果获取模块603,用于根据所述比喻成分抽取结果和所述分类结果,获得所述目标句子的比喻句识别结果。
在一种可能的实现方式中,比喻句识别模块602包括:上下文向量确定子模块、比喻成分抽取子模块和句子分类子模块。
上下文向量确定子模块,用于利用所述比喻句识别模型,获取所述目标句子中每个词对应的上下文向量。
比喻成分抽取子模块,用于利用所述比喻句识别模型和所述目标句子中每个词对应的上下文向量,从所述目标句子中抽取比喻成分。
句子分类子模块,用于利用所述比喻句识别模型和所述目标句子中每个词对应的上下文向量,对所述目标句子进行分类。
在一种可能的实现方式中,比喻成分抽取子模块,具体用于利用所述比喻句识别模型和所述目标句子中每个词对应的上下文向量,确定所述目标句子中每个词对标签集合中每种标签的贡献程度得分,以得到由确定出的得分组成的发射矩阵,利用所述比喻句识别模型、所述发射矩阵和转移矩阵,确定所述目标句子中每个词对应的目标标签,根据所述目标句子中每个词对应的目标标签,获得所述目标句子中的比喻成分。其中,所述标签集合包括本体、喻词、喻体和非比喻成分;所述转移矩阵中的元素为所述标签集合中每个标签分别向所述标签集合中各个标签的转移概率。
在一种可能的实现方式中,比喻成分抽取子模块在利用所述比喻句识别模型、所述发射矩阵和转移矩阵,确定所述目标句子中每个词对应的目标标签时,具体用于利用所述比喻句识别模型、所述发射矩阵和所述转移矩阵,确定所述目标句子在其对应的每个候选标签序列上的得分,根据所述目标句子在其对应的每个候选标签序列上的得分,确定所述目标句子对应的目标序列标签,并根据所述目标句子对应的目标序列标签,获得所述目标句子中每个词对应的目标标签。其中,所述目标句子对应的一候选标签序列由所述目标句子中各个词分别对应的一候选标签组成,一个词对应的候选标签包括本体、喻词、喻体和非比喻成分。
在一种可能的实现方式中,句子分类子模块,具体用于利用所述比喻句识别模型、所述目标句子中每个词对应的上下文向量,以及所述目标句子中每个词对标签集合中每种标签的贡献程度得分,确定所述目标句子中每个词对应的特征向量,其中,所述标签集合包括本体、喻词、喻体和非比喻成分;利用所述比喻句识别模型和所述目标句子中每个词对应的特征向量,确定所述目标句子是否为比喻句。
在一种可能的实现方式中,句子分类子模块在利用所述比喻句识别模型和所述目标句子中每个词对应的特征向量,确定所述目标句子是否为比喻句时,具体用于利用所述比喻句识别模型和所述目标句子中每个词对应的特征向量,确定所述目标句子中每个词对应的注意力权重,利用所述比喻句识别模型、所述目标句子中每个词对应的特征向量以及所述目标句子中每个词对应的注意力权重,确定所述目标句子的表征向量,利用所述比喻句识别模型和所述目标句子的表征向量,确定所述目标句子是否为比喻句。
在一种可能的实现方式中,本申请实施例提供的比喻句识别装置还可以包括:比喻句识别模型建立模块。比喻句识别模型建立模块包括第一训练模块和第二训练模块。
第一训练模块,用于利用第一训练数据集中的训练数据对初始的比喻句识别模型进行预训练,以使以使比喻句识别模型具备获取词在其所在句子中语义的能力,其中,所述第一训练数据集中的训练数据为不具有标注的任意句子。
第二训练模块,用于利用第二训练数据集中的训练数据对预训练后的比喻句识别模型进行训练,以使比喻句识别模型具备比喻成分抽取和句子分类的能力,其中,所述第二训练数据集中的训练数据为未标注任何信息的非比喻句和标注出比喻成分的比喻句。
在一种可能的实现方式中,第二训练子模块,具体用于从所述第二训练数据集中获取训练数据;利用预训练后的比喻句识别模型,确定所述训练数据在其对应的每个候选标签序列上的得分,并确定所述训练数据分别为比喻句和非比喻句的概率,以所述训练数据对应的真实类别及真实标签序列、所述训练数据在其对应的每个候选标签序列上的得分,以及所述训练数据分别为比喻句和非比喻句的概率为依据,确定比喻句识别模型的预测损失,根据比喻句识别模型的预测损失,更新比喻句识别模型的参数。
其中,所述训练数据对应的一候选标签序列由该训练数据中各个词分别对应的一个候选标签组成,一个词对应的候选标签包括本体、喻词、喻体和非比喻成分,所述训练数据对应的真实类别及真实标签序列根据所述训练数据的标注情况确定。
在一种可能的实现方式中,第二训练子模块在以所述训练数据对应的真实类别及真实标签序列、所述训练数据在其对应的每个候选标签序列上的得分,以及所述训练数据分别为比喻句和非比喻句的概率为依据,确定比喻句识别模型的预测损失时,具体用于根据所述训练数据对应的真实标签序列,以及所述训练数据在其对应的每个候选标签序列上的得分,确定所述训练数据在其对应的真实标签序列上的概率,作为第一概率,并根据所述第一概率确定第一损失,根据所述训练数据对应的真实类别,以及所述训练数据分别为比喻句和非比喻句的概率,确定所述训练数据在其对应的真实类别上的概率,作为第二概率,并根据所述第二概率确定第二损失,根据所述第一损失和所述第二损失,确定比喻句识别模型的预测损失。
本申请实施例提供的比喻句识别装置,不但可实现比喻句识别,而且,由于比喻成分的抽取与句子分类是两个独立的过程,因此,基于比喻成分抽取结果以及分类结果能够获得准确的比喻句识别结果,另外,本申请实施例将喻词也作为比喻成分的一部分,即利用比喻句识别模型除了进行本体和喻体识别外,还对喻词进行识别,将喻词作为需要抽取的比喻成分的一部分能够更好地抓取多种多样的比喻形式,从而能够提升比喻句识别效果。
第五实施例
本申请实施例还提供了一种比喻句识别设备,请参阅图7,示出了该比喻句识别设备的结构示意图,该比喻句识别设备可以包括:至少一个处理器701,至少一个通信接口702,至少一个存储器703和至少一个通信总线704;
在本申请实施例中,处理器701、通信接口702、存储器703、通信总线704的数量为至少一个,且处理器701、通信接口702、存储器703通过通信总线704完成相互间的通信;
处理器701可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
存储器703可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory)等,例如至少一个磁盘存储器;
其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:
获取目标句子;
利用预先建立的比喻句识别模型,从所述目标句子中抽取比喻成分,并对所述目标句子进行分类,获得比喻成分抽取结果以及用于指示所述目标句子是否为比喻句的分类结果,其中,所述比喻成分包括本体、喻词和喻体;
根据所述比喻成分抽取结果和所述分类结果,获得所述目标句子的比喻句识别结果。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
第六实施例
本申请实施例还提供一种可读存储介质,该可读存储介质可存储有适于处理器执行的程序,所述程序用于:
获取目标句子;
利用预先建立的比喻句识别模型,从所述目标句子中抽取比喻成分,并对所述目标句子进行分类,获得比喻成分抽取结果以及用于指示所述目标句子是否为比喻句的分类结果,其中,所述比喻成分包括本体、喻词和喻体;
根据所述比喻成分抽取结果和所述分类结果,获得所述目标句子的比喻句识别结果。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。