发布信息

句子成分识别方法、装置、计算机设备和存储介质与流程

作者:admin      2022-10-25 23:00:39     532



计算;推算;计数设备的制造及其应用技术1.本技术涉及自然语言处理技术领域,特别是涉及一种句子成分识别方法、装置、计算机设备和存储介质。背景技术:2.句法分析是自然语言处理中的关键技术之一,其基本任务是确定句子的句法结构或者句子中词汇之间的依存关系。例如,采用依存句法分析方法,得到词与词之间的依赖关系,依赖关系如与中心词为主谓关系等。因此,依赖关系能够用于分析句子成分。具体是基于依存句法分析和规则方法。3.但是,依存句法分析和规则的方法,需要人工定义规则并维护,操作复杂。技术实现要素:4.基于此,有必要针对上述技术问题,提供一种操作简单的句子成分识别方法、装置、计算机设备和存储介质。5.一种句子成分识别方法,所述方法包括:6.获取句子以及要识别的目标句子成分;7.将所述句子输入到预先训练好的句子成分识别模型,所述句子成分识别模型的编码层输出所述句子各词的词特征向量;所述句子成分识别模型的解码层根据各词的词特征向量进行解码,获得整句级成分标签序列,所述整句级成分标签序列标识整句中各单词所属的句子成分,以及各单词在所属句子成分的位置;8.若根据所述整句级成分标签序列确定所述句子不存在复杂成分,则根据所述整句级成分标签序列标识的整句中各单词所属的句子成分,以及各单词在所属句子成分的位置,获取所述目标句子成分对应文本内容。。9.在其中一个实施例中,所述方法还包括:10.若根据所述整句级成分标签序列确定所述句子存在复杂成分,则获取所述复杂成分的词特征向量,将所述复杂成分的词特征向量通过所述解码层解码,获取各所述复杂成分对应的从级成分标签序列;所述从级成分标签序列标识了所述复杂成分中各单词所属的句子成分,以及各单词在所属句子成分的位置;11.若根据所述从级成分标签序列确定所述复杂成分不存在嵌套的句子成分或嵌套的句子成分为简单成分,则根据已输出的有效的成分标签序列,获取所述目标句子成分对应文本内容,其中,所述有效的成分标签序列包括所述整句级成分标签序列,或所述整句级成分标签序列和所述从级成分标签序列。12.在其中一个实施例中,若所述复杂成分存在嵌套的复杂成分,则对嵌套的复杂成分执行所述获取所述复杂成分的词特征向量,将所述复杂成分的词特征向量通过所述解码层解码,获取各所述复杂成分对应的从级成分标签序列的步骤,直至对应的从级成分标签序列标识复杂成分不存在嵌套的句子成分或嵌套的句子成分为简单成分。13.在其中一个实施例中,若根据所述整句级成分标签序列确定句子存在字符数量大于1的句子成分,则所述句子存在复杂成分。14.在其中一个实施例中,若所述从级成分标签序列标识嵌套的句子成分的字符数量为1,则嵌套的句子成分为简单成分;若所述从级成分标签序列标识嵌套的句子成分的字符数量大于1,则嵌套的句子成分为复杂成分。15.在其中一个实施例中,所述方法还包括:16.获取用于训练的句子集,所述句子集包括各句子的训练语料,所述训练语料包括根据嵌套关系成分分级的成分标签序列,所述成分标签序列包括整句级成分标签序列,以及嵌套的复杂成分的从级成分标签序列,各成分标签序列包括句子中各单词在相应成分分级所属的句子成分,以及各单词在所属句子成分的位置;17.利用所述训练句子集对待训练的句子成分识别模型进行训练的步骤,包括:将所述句子集中句子的训练语料输入待训练的句子成分识别模型,所述句子成分识别模型编码层输出所述句子各词的词特征向量;所述句子成分识别模型的解码层根据各词的词特征向量进行解码,获得预测的成分标签序列,18.根据所述预测的成分标签序列和成分标签序列,调整所述句子成分识别模型;19.重复利用所述训练句子集对待训练的句子成分识别模型进行训练的步骤,直到满足训练结束条件,获得训练好的句子成分识别模型。20.在其中一个实施例中,所述获取用于训练的句子集,包括:21.获取根据句子的嵌套关系确定的句子的成分分级,每个成分分级中各句子成分对应的单词,以及句子成分的开始位置和结束位置;22.根据每个成分分级的各句子成分对应的单词,以及句子成分的开始位置和结束位置,得到整句级成分标签序列,以及嵌套的复杂成分的从级成分标签序列;23.根据所述整句级成分标签序列和嵌套的成分标签序列,分别构建句子的各句子成分用做模型输入的训练语料;24.根据各句子所述训练语料,得到训练句子集。25.一种句子成分识别装置,所述装置包括:26.输入获取模块,用于获取句子以及要识别的目标句子成分;27.成分标签序列获取模块,用于将所述句子输入到预先训练好的句子成分识别模型,所述句子成分识别模型的编码层输出所述句子各词的词特征向量;所述句子成分识别模型的解码层根据各词的词特征向量进行解码,获得整句级成分标签序列,所述整句级成分标签序列标识整句中各单词所属的句子成分,以及各单词在所属句子成分的位置;28.识别模块,用于若根据所述整句级成分标签序列确定所述句子不存在复杂成分,则根据所述整句级成分标签序列标识的整句中各单词所属的句子成分,以及各单词在所属句子成分的位置,获取所述目标句子成分对应文本内容。29.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:30.获取句子以及要识别的目标句子成分;31.将所述句子输入到预先训练好的句子成分识别模型,所述句子成分识别模型的编码层输出所述句子各词的词特征向量;所述句子成分识别模型的解码层根据各词的词特征向量进行解码,获得整句级成分标签序列,所述整句级成分标签序列标识整句中各单词所属的句子成分,以及各单词在所属句子成分的位置;32.若根据所述整句级成分标签序列确定所述句子不存在复杂成分,则根据所述整句级成分标签序列标识的整句中各单词所属的句子成分,以及各单词在所属句子成分的位置,获取所述目标句子成分对应文本内容。33.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:34.获取句子以及要识别的目标句子成分;35.将所述句子输入到预先训练好的句子成分识别模型,所述句子成分识别模型的编码层输出所述句子各词的词特征向量;所述句子成分识别模型的解码层根据各词的词特征向量进行解码,获得整句级成分标签序列,所述整句级成分标签序列标识整句中各单词所属的句子成分,以及各单词在所属句子成分的位置;36.若根据所述整句级成分标签序列确定所述句子不存在复杂成分,则根据所述整句级成分标签序列标识的整句中各单词所属的句子成分,以及各单词在所属句子成分的位置,获取所述目标句子成分对应文本内容。37.上述句子成分识别方法、装置、计算机设备和存储介质,利用训练好的句子成分模型输出整句级成分标签序列,整句级成分标签序列标识了句子中各单词所属的句子成分,以及各单词在所属句子成分的位置,从而可根据成分标签序列获取句子中的目标成分,实现句子的成分识别。该方法通过提前训练成分识别模型即可实现句子成分识别操作简单,便利性高。附图说明38.图1为一个实施例中句子成分识别方法的应用环境图;39.图2为一个实施例中句子成分识别方法的流程示意图;40.图3为一个实施例中句子成分识别模型的结构示意图;41.图4为一个另一个实施例中句子成分识别方法的流程示意图;42.图5为一个实施例中成分识别的过程示意图;43.图6为一个实施例中句子成分识别模型训练步骤的流程示意图;44.图7为一个实施例中句子成分识别装置的结构框图;45.图8为一个实施例中计算机设备的内部结构图。具体实施方式46.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。47.本技术提供的句子成分识别方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104通过网络进行通信。终端获取用户输入的要分析的句子,将识别指令以及句子发送至服务器,服务器获取句子以及要识别的目标句子成分;将句子输入到预先训练好的句子成分识别模型,句子成分识别模型的编码层输出句子各词的词特征向量;句子成分识别模型的解码层根据各词的词特征向量进行解码,获得整句级成分标签序列,整句级成分标签序列标识整句中各单词所属的句子成分,以及各单词在所属句子成分的位置;若根据整句级成分标签序列确定句子不存在复杂成分,则根据整句级成分标签序列标识的整句中各单词所属的句子成分,以及各单词在所属句子成分的位置,获取目标句子成分对应文本内容。48.其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。49.在一个实施例中,如图2所示,提供了一种句子成分识别方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:50.步骤202,获取句子以及要识别的目标句子成分。51.在语言学习中,识别句子成分,可以更好的理解语义。句子的组成成分叫句子成分,也叫句法成分。在句子中,词与词之间有一定的组合关系,按照不同的关系,可以把句子分为不同的组成成分。句子成分由词或词组充当。如,英语的句子成分包括主语、谓语、宾语、表语、定语、状语、补足语和同位语等。52.一种实施方式中,要识别的目标句子成分可以是默认的所有句子成分,在语言学习的应用场景,用户输入待分析句子后,自动获取预设置的所有句子成分。一种实施方式中,目标句子成分是指定要分析的句子成分。例如,在语言学习界面,提供有句子输入框以及可选的句子成分选项,用户输入句子后,选择指定要分析的句子成分,如“主语”,则主语作为目标句子成分。53.步骤204,将句子输入到预先训练好的句子成分识别模型,句子成分识别模型的编码层输出句子各词的词特征向量;句子成分识别模型的解码层根据各词的词特征向量进行解码,获得整句级成分标签序列,整句级成分标签序列标识整句中各单词所属的句子成分,以及各单词在所属句子成分的位置。54.具体地,句子成分识别模型基于标识了句子成分标签序列的句子集训练得到。其中,句子成分标签序列包括句子中各单词所属的句子成分以及各单词在所属句子成分的位置。也就是说,对于句子中的每个单词,标注了其所属的句子成分,以及在该句子成分中的位置。其中,位置包括开始位置、结束位置、单一位置和其它位置。对于有多个单词的句子成分而言,位置包括了开始位置、结束位置和中间位置。开始位置是指该单词为某一句子成分的第一个单词,中间位置是指该单词为某一句子成分的中间位置的单词(非第一个单词和最后一个单词),结束位置是指该单词为某一句子成分的最后一个单词。单一位置是指句子成分只有一个单词的情况,如该句子只有一个语句he,则单词he的标识为s-0,0表示单词he的句子成分为主语,s表示单词he为主语成分单一位置上的单词,即主语成分只包含一个单词。其他位置用于标识非设定句子成分之外的单词,如设定的句子成分包括了主语、谓语、宾语、定语、谓语和状语,一个句子不属于设定句子成分,则标识为其它位置。55.一个实施例中,句子成分标签序列可采用bieos格式标注,也可以采用bio,bmes标注格式。以bieos标注格式为例,b-x代表句子成分x的开始位置,i-x代表句子成分x的中间位置,e-x代表句子成分x的结束位置,当句子成分x只包含一个字符时,该字符被标注成s-x,其他位置标注成o。对于句子成分x,0表示主语,1表示谓语,2表示宾语,3表示定语,4表示状语,5表示表语。56.一个实施例的句子成分标签序列如表1所示。57.表1句子成分标签序列格式58.输入herefusedtotalkaboutthesufferingshehadduringthedisaster.标注1s-0s-1b-2e-2ooob-3i-3i-3i-3e-3o标注2‑‑‑‑‑‑‑s-0s-1b-4i-4e-4‑ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ59.一个实施例的句子成分识别模型的结构如图3所示,包括了编码层和解码层。其中,编码层用于构建句子各单词的词特征向量,解码器用于根据编码器输出的词特征向量,输出句子的成分标签序列。其中,成分标签序列标识句子中各单词所属的句子成分,以及各单词在所属句子成分的位置。60.具体地,编码层可采用lstm,cnn,bert,elmo,robert,xlnet,flair等模型,将待分析的句子中的每个字符映射成上下文相关的向量,该向量可以是多个模型(bert+lstm,cnn+lstm)输出的组合。解码层主要是将每个单词对应的词特征向量解码为相应的成分标签,一般使用crf(conditional random field,条件随机场)。61.其中,编码层针对整句的词特征向量,输出整句级成分标签序列。即,整句级成分标签序列,是针对句子整体的成分识别结果。62.步骤206,根据整句级成分标签序列确定句子是否存在复杂成分。63.具体地,获取解码层输出的得分最高的整句级成分标签序列。整句级成分标签序列是整句级的成分分析结果,是句子的第1级成分分析结果。64.句子通常包括简单句和复合句。复合句可以通过把两个以上简单句连接在一起构成,但复合句的各组成部份并非同等重要,其中一个句子由从属连词引导(从句),用以修饰另一句子(主句)。复合句主要包含以下类型从句:主语从句、宾语从句、表语从句、定语从句、状语从句、同位语从句。例如,i believe that everything is going on well,为一个复合句,that为连接词,everything is going on well为宾语从句。65.因此,整句级成分识别标签,标识了单词所属的句子成分,以及各单词在所属句子成分的位置,而对于复合句中的从句,只标识从句所属的句子成分,如属于宾语,而不对从句中嵌套的句子成分进行标识。66.由于整句级成分标签序列标识了句子中每个单词所属的句子成分,若一个句子成分有两个及两个以上的单词,则将该成分确定为复杂成分。因此,可通过每个句子成分的字符数量确定是否为复杂成分。例如,整句级成分标签序列标识了各句子成分的字符数量均不大于1,则句子不包括复杂句子。例如,根据句子“i like red”的整句级成分标签序列,可确定的整句级句子成分为:(i,主语),(like,谓语),(red,宾语),各句子成分的字符数量均不大于1,则句子不包括复杂句子。67.若根据整句级成分标签,确定存在字符数量大于1的句子成分,则将该句子成分为复杂成分。例如,句子“he refused to talk about the sufferings he had during the disaster.”的整句级成分标签序列,可确定的整句级句子成分为:(he,主语),(refused,谓语),(to talk,宾语),(he had during the disaster,定语),其中,谓语成分有两个字符,宾语成分有五个个符,则谓语成分和宾语成分为整句级成分的复杂成分。68.若句子不存在复杂成分,则执行步骤s208。69.步骤208,根据整句级成分标签序列标识的整句中各单词所属的句子成分,以及各单词在所属句子成分的位置,获取目标句子成分对应文本内容。70.针对不包括复杂成分的句子,整句级成分标签序列标识了句子中各单词所属的句子成分,以各单词在所属句子成分的位置,根据位置则可提取每个句子成分的文本内容,进而获取目标句子成分对应的文本内容。例如,一个句子“i like red.”对应的整句级成分标签序列如表2所示。71.表2整句级成分标签序列[0072][0073][0074]其中,s,表示单一字符,s-0表示该字符所属的句子成分为主语,且主语只有一个字符。s-1表示该字符所属的句子成分为谓语,且谓语只有一个字符,s-2表示该字符所属的句子成分为宾语,且宾语只有一个字符。若目标句子成分为所有的预设句子成分,则最终句子成分的识别结果为:[0075]主语:he[0076]谓语:like[0077]宾语:red。[0078]若目标句子成分为主语,则最终的句子成分的识别结果为主语:he。[0079]一个实施例中,获取句子成分对应文本内容,包括:标识目标句子成分的文本内容。其中,可以根据需求,标识出全部句子成分的文本内容,也可以标识出指定句子成分的文本内容。标识的方式可以是在句子上将每个句子成分的文本内容使用标记标识出来,同时在相应的标记下标识所属的句子成分。如,用红色框圈出主语的文本内容,并在红色框上方标识为主语。通过这种方式,能够直观地看到每个句子成分的文本内容。标识的方式还可以是以列表的形式将各成分标识以及文本内容展示,文本内容为成分标识的属性值。如,主语:he。[0080]上述的句子成分识别方法,利用训练好的句子成分模型输出整句级成分标签序列,整句级成分标签序列标识了句子中各单词所属的句子成分,以及各单词在所属句子成分的位置,从而可根据成分标签序列获取句子中的目标成分,实现句子的成分识别。该方法通过提前训练成分识别模型即可实现句子成分识别操作简单,便利性高。[0081]在一个实施例中,如图4所示,句子成分识别方法,包括:[0082]s402,获取句子以及要识别的目标句子成分。[0083]s404,将句子输入到预先训练好的句子成分识别模型,句子成分识别模型的编码层输出句子各词的词特征向量;句子成分识别模型的解码层根据各词的词特征向量进行解码,获得整句级成分标签序列。[0084]s406,根据整句级成分标签序列确定句子是否存在复杂成分。[0085]具体地,根据整句级成分标签序列确定是否存在字符数量大于1的句子成分,若根据整句级成分标签序列确定存在字符数量大于1的句子成分,则句子存在复杂成分。若根据整句级成分标签序列确定各句子字符的字符数量均不大于1,则句子不存在复杂成分。[0086]若否,则执行步骤s407,若是,则执行步骤s408。[0087]s407,根据整句级成分标签序列标识的句子中各单词所属的句子成分,以及各单词在所属句子成分的位置,获取目标句子成分对应文本内容。[0088]针对不存在复杂成分的句子,根据整句级成分标签序列标识的句子中各单词所属的句子成分,以及各单词在所属句子成分的位置,获取目标句子成分对应文本内容。[0089]s408,获取复杂成分的词特征向量,将复杂成分的词特征向量通过解码层解码,获取各复杂成分对应的从级成分标签序列;从级成分标签序列标识了复杂成分中各单词所属的句子成分,以及各单词在所属句子成分的位置。[0090]针对存在复杂成分的句子,首先根据获取复杂句子。其中,整句的复杂成分为整句级成分标签序列所标识的字符数量大于1的句子成分。[0091]以句子“he refused to talk about the sufferings he had during the disaster.”为例,其整句级成分标签序列如表3所示:[0092]表3整句级成分标签序列[0093]herefusedtotalkaboutthesufferingshehadduringthedisaster.s-0s-1b-2e-2ooob-3i-3i-3i-3e-3o[0094]其中,谓语成分有两个字符,宾语成分有五个个符,则谓语成分和宾语成分为第1级成分中的复杂成分。[0095]将第1级成分中的各复杂成分的词特征向量,在首末分别添加开始符和结束符,通过解码层继续解码,得到针对整句的复杂成分的从级成分标签序列,即第二级成分标签序列。可以理解的是,每个复杂成分,分别得到第二级成分标签序列的数量。如图5所示,句子he refused to talk about the sufferings he had during the disaster.”的第一级成分分析中有两个复杂成分,分别为“to talk”和“he had during the disaster”,则分别将这两个复杂成分的词特征向量添加开始符和结束符后,通过解码层解码。[0096]本实施例中,解码层采用crf(conditional random field,条件随机场),crf可以从数据中学习到标签之间的转移关系,也可设置为固定值,使得模型不会出现类似于非法标签序列。考虑到特殊情况,对于相同的开始结束位置可能有不同的实体标签,可对每一种实体使用一个独立的crf结构。但通常在成分识别任务中,不存在这样的情况,因此,对于所有成分使用同一个crf进行解码,从而加快解码速度。crf的参数(转移矩阵)设置为固定,合法转移设为0,不合法转移设为-1e4。[0097]在crf转移矩阵中,从未添加开始符和结束符的序列,到添加了开始符和结束符的序列,均是合法转移,转移矩阵中的值相等,如果继续选择得分最大的标签,只会获得与第一级成分识别相同的序列。因此,选择概率第二大的序列作为所需要的结果,获得复杂成分的从级成分标签序列。针对整句的复杂成分,从级成分标签序列即为第二级成分标签序列。如图5所示,“to talk”对应的第二级成分标签序列为(o,o),和“he had during the disaster”对应的第二级成分标签序列为(s-0,s-1,b-4,i-4,e-4)。[0098]s410,根据从级成分标签序列确定对应的复杂成分是否存在嵌套的句子成分或嵌套的句子成分是否为简单成分。[0099]具体地,若根据从级成分标签序列确定对应的复杂成分不存在嵌套的句子成分,即从级成分标签序列的分析结果表明包括复杂成分的各单词不属于任何一种句子成分,如从级成分标签序列得到的成分均为其它位置(o,o),如“to talk”对应的第二级成分标签序列为(o,o)”,则确定该复杂成分的分析结果表明,复杂成分内不包含任何嵌套的句子成分,则不需要继续解码。若不包括嵌套的句子成分,则执行步骤s412。若包括嵌套的句子成分,则继续判断嵌套的句子成分是否为简单成分。[0100]简单成分是指从级成分标签序列所标识的各嵌套的句子成分均只有一个字符。如图5所示,“he had during the disaster”对应的第二级成分标签序列为(s-0,s-1,b-4,i-4,e-4),表示主语和谓语均只有一个字符,则嵌套的主语和谓语为简单成分。而若嵌套的句子成分大于一个字符,则为复杂成分,如状语包括了三个字符“during the disaster”,则状语为复杂成分。[0101]若嵌套的句子成分为简单成分,则表示该句子成分下不会存在嵌套的句子成分,则执行步骤s412,若嵌套的句子成分为复杂成分,则表明该句子成分下还可能存在嵌套的句子成分,则返回步骤s408,继续对复杂成分进行解码,直至复杂成分不存在嵌套的句子成分或嵌套的句子成分为简单成分。[0102]s412,根据已输出的有效的成分标签序列,获取目标句子成分对应文本内容,其中,有效的成分标签序列包括整句级成分标签序列,或整句级成分标签序列和从级成分标签序列。[0103]其中,已输出的有效成分标签序列是指步骤s410判断结果为复杂成分不存在嵌套的句子成分或嵌套的句子成分为简单成分时,解码层已输出的具有有效成分识别标签序列的整句级成分标签和从句级成分标签,有效成分识别标签序列是指只包含有效句子成分的成分标签序列,即不包含句子成分为其它类别的成分识别标签序列。[0104]具体地,若第二级成分分析得到的第二级成分标签序列确定,复杂成分不存在嵌套的句子成分时,第二级成分标签序列为无效成分标签序列,已输出的有效的成分标签序列为整句级成分标签序列,此时,根据整句级标签序列,获取目标句子成分的对应文本内容。如,句子“i like red apple”的整句级成分标签序列表明,存在复杂宾语成分“red apple”,则将“red apple”通过解码层继续解码,得到第二级成分标签序列(o,o),在该第二级成分标签序列中,不包括有效句子成分,此时,有效的成分标签序列包括整句级标签序列,因此,根据整句级标签序列,获取目标句子成分的对应文本内容。[0105]若第二级成分分析得到的第二级成分标签序列确定,复杂成分的嵌套的句子成分为简单成分时,已输出的有效成分标签序列包括第一级成分的整句级成分标签序列和第二级成分标签序列(即从级成分标签序列)。此时,根据整句级成分标签序列和从级成分标签序列,获取目标句子成分的对应文本内容。[0106]若第二级成分分析得到的从级成分标签序列确定嵌套的句子成分为复杂成分,则对复杂成分需要再次解码,得到下一个从句级成分标签序列,即第三级成分标签序列,对于第三级成分标签序列继续执行s408的判断,直至复杂成分不存在嵌套的句子成分或嵌套的句子成分为简单成分。此时,已输出的有效成分标签序列包括整句级标签序列以及全部有效的从句级标签序列。例如,若第三级成分标签序列的判断结果为复杂成分不存在嵌套的句子成分,则已输出的有效成分标签序列包括整句级成分标签序列(第一级成分标签序列)、从级成分标签序列(第二级成分标签序列),若第三级成分标签序列的判断结果为嵌套的句子成分为简单成分,则已输出的有效成分标签序列包括整句级成分标签序列(第一级成分标签序列)、从级成分标签序列(第二级成分标签序列和第三级成分标签序列)。[0107]具体地,根据整句级成分标签序列对整句进行识别,根据整句级成分标签序列标识的句子中各单词所属的句子成分,以及各单词在所属句子成分的位置,获取各句子成分对应文本内容,进而再利用从级成分标签序列对相应的复杂句子进行识别,根据从句级成分标签序列标识的复杂成分中各单词所属的句子成分,以及各单词在所属句子成分的位置,获取嵌套的句子成分对应文本内容,从而得到全部的句子成分对应的文本内容,可根据需要,提取目标句子句子成分对应的文本内容。[0108]上述的句子成分识别方法,能够识别到嵌套的句子分成。[0109]在一个实施例中,句子成分识别模型的训练过程,如图6所示,包括以下步骤:[0110]s602,获取用于训练的句子集,句子集包括各句子的训练语料,训练语料包括根据嵌套关系成分分级的成分标签序列,成分标签序列包括整句级成分标签序列,以及嵌套的复杂成分的从级成分标签序列,各成分标签序列包括句子中各单词在相应成分分级所属的句子成分,以及各单词在所属句子成分的位置。[0111]具体地,对于句子的训练语料,处理成句子成分识别主料,整合成所需要的格式。句子成分识别语料,可以是网上公开的数据集,也可以是自己标注的数据集。数据集中的每条样本包括待分析句子及其对应的成分。英文常见的句子成分可分为:主语、谓语、宾语、表语、定语、状语、补足语和同位语,样本形式如表4:[0112]表4句子成分识别语料样例[0113][0114]具体地,获取用于训练的句子集,包括:获取根据句子的嵌套关系确定的句子的成分分级,每个成分分级中各句子成分对应的单词,以及句子成分的开始位置和结束位置;根据每个成分分级的各句子成分对应的单词,以及句子成分的开始位置和结束位置,得到整句级成分标签序列,以及嵌套的复杂成分的从级成分标签序列;根据整句级成分标签序列和嵌套的成分标签序列,分别构建句子的各句子成分用做模型输入的训练语料;根据各句子训练语料,得到训练句子集。[0115]其中,处理句子成分识别语料,整合成模型所需要的格式。[0116]对句子成分识别语料进行预处理,主要包括过滤一些特殊字符,例如非ascii字符,表情符等。将网址,电话,日期等用统一字符进行替换,过滤一些不合法的样例。[0117]基于序列标注的方法,通过对输入文本中的每个token标注bieos,从而提取出所需要的块。例如,对于命名实体任务,b-x代表实体x的开始位置,i-x代表实体x的中间位置,e-x代表实体x的结束位置,当实体x只包含一个token时,该token被标注成s-x,其他位置标注成o。识别实体x,即提取x对应的块。对于不存在嵌套结构的实体,每个字符位置只有一个标签;对于存在嵌套的结构的实体,存在一个字符被分配多个标签的情况。当有从句存在时,句子成分识别任务也包含嵌套的结构,如表5所示,he had during the disaster位置均有两个标签。[0118]表5样例转序列标注格式(0-主语1-谓语2-宾语3-定语4-状语5-表语)[0119]输入herefusedtotalkaboutthesufferingshehadduringthedisaster.标注1s-0s-1b-2e-2ooob-3i-3i-3i-3e-3o标注2‑‑‑‑‑‑‑s-0s-1b-4i-4e-4-[0120]本技术提出的句子成分识别方法,借鉴嵌套命名实体识别方法,从外到内的识别出嵌套实体,需要将输入模型样例处理成表6形式。句子成分识别模型在训练或者测试的过程中,首先通过得分最大序列识别出第一级成分,即整句级标签序列,然后在已识别出来的第一级成分的基础上,通过得分第二大的序列识别出第二级成分。同样的,在第二级已识别出来的序列的基础上,通过得分第二大的序列识别出第三级成分,以此类推,直到成分只包含一个字符(即为简单成分),或者标签全为其它位置(即不存在桥套的句子成分)。[0121]表6模型输入样例[0122][0123]以上步骤将句子成分的原始数据,转换成模型所需的数据格式。[0124]步骤604,利用训练句子集对待训练的句子成分识别模型进行训练的步骤,包括:将句子集中句子的训练语料输入待训练的句子成分识别模型,句子成分识别模型编码层输出句子各词的词特征向量;句子成分识别模型的解码层根据各词的词特征向量进行解码,获得预测的成分标签序列;根据所述预测的成分标签序列和标注的成分标签序列,调整所述句子成分识别模型;[0125]具体地,利用图3所示的句子成分识别模型进行训练。将句子输入编码层,将待分析的句子中的每个词映射成上下文相关的向量,该向量可以是多个模型(bert+lstm,cnn+lstm)输出的组合。解码层主要是将每个字符对应的向量解码为相应的成分标签,一般使用crf。crf可以从数据中学习到标签之间的转移关系,也可设置为固定值,使得模型不会出现类似于非法标签序列。对于所有成分使用同一个crf进行解码,从而加快解码速度。crf的参数(转移矩阵)设置为固定,合法转移设为0,不合法转移设为-1e4。[0126]在训练阶段,由于句子的标注结果已确定句子的成分分级,而在解码层中,根据crf转移矩阵的特性,合法转移的转移矩阵中的值相等,因此,从级成分标签序列如果继续选择得分最大的标签,获取的标签序列与第一级成分识别相同。因此,从级成分标签序列通常是选择概率第二大的序列作为所需要的结果,获得第二级成分。基于此,根据标注的成分分级,从预测的成分标签序列中可获取预测的整句级标签序列(概率得分最大)和从句级标签序列(概率得分第二)。[0127]进而,根据预测的整句级标签序列和标注的整句级标签序列的差异进行反向传播,调整句子成分识别模型的参数。[0128]其中,在句子成分识别模型的序列标注模型中,第i个位置对应的标签yi得分为φ(yi-1,yi,zi):[0129][0130][0131]其中,表示第i个位置对应的标签yi的得分,为标签从yi-1转移yi的得分.的得分.是yi对应的可训练的参数,zi是编码器输出的第i个位置的词向量。为了保证的解码过程,需要设计相应的损失函数:[0132]l(θ)=-logp(y|z;θ)[0133][0134]其中,l1st是最优路径的极大似然概率,对应整句级成从标签序列,l2nd是第二优路径的极大似然概率,对应从句级成分标签序列。sl,j代表第l级,第j个待解码序列的开始位置,el,j代表第l级,第j个待解码序列的结束位置。第一级(整句级),考虑整个待分析文本,因此s1,1=1,e1,1=n,y1,1,...,y1,n为第一级真实标注序列,第二级的开始结束位置,依赖于第一级识别出的成分,yl,i代表第l级,第i个位置真实的bieos标签。z是编码器输出,θ为待训练的参数。[0135]计算第一级损失函数,ζs:e代表从位置s到位置e的所有可能的序列,ψs:e(y,z)是位置s到位置e的实际成分标签的得分,ψ1:n(y1,z)为第一级整句实际成分标签的得分,即s=1,e=n。(exp是以e为底的指数函数,例如exp(x)=ex)。[0136][0137]y1=[y1,1,y1,2,...,y1,n][0138][0139]ys-1=[s][0140]ye+1=[e][0141]计算第二级损失函数,从位置sl,j到位置el,j除最优路径外所有可能的序列,为第l级,第j个序列实际成分标签的得分。[0142][0143]在训练过程中,最小化损失函数l(θ)的值,训练模型,保存在验证集上成分识别效果最好的模型。[0144]s606,满足训练结束条件,获得训练好的句子成分识别模型。[0145]具体地,若未满足训练结束条件,则迭代执行利用训练样本对待训练的句子成分识别模型进行训练的,直到满足训练结束条件,得到训练好的句子成分识别模型。结束条件包括迭代次数达到最大迭代次数,或是模型输出精度达到要求。[0146]本技术提出使用基于序列标注的句子成分识别方法直接提取出待分析句子的成分。对于含有从句成分的样例,借鉴嵌套命名实体识别的方法,通过获取解码得分第二大的序列,得到内层成分。相比原有的方式更加简单,并且在自己整理的测试集合上f1值可以达到95.62%,说明了该方法的有效性。[0147]现以句子“he refused to talk about the sufferings he had during the disaster.”作为待分析句子,经过编码层和解码层,获取最优路径得到最优的整句级成分标签序列,[s]s-0s-1b-2e-2o o o b-3i-3i-3i-3e-3o[e],转换得到he主语成分,refused谓语成分,to talk宾语成分,以及he had during the disaster定语成分。其中,宾语成分和定语成分存在复杂成分,分别添加开始符和结束符,通过解码层解码,得到第二级成分标签序列。[0148]对于第二级别的第一个待分析序列“to talk”,获取得分第二高的第二优序列,作为从级标签序列,[s]o o[e],根据该序列,没有识别到嵌套的成分。对于第二级别第二个待分析序列“he had during the disaster”,获取得分第二高的第二优序列,[s]s-0s-1b-4i-4e-4[e],转换得到he主语成分,had谓语成分,during the disaster状语成分。该从级标签序列存在嵌套的复杂成分“during the disaster”。则将其添加开始符和结束符,通过解码层解码,得到第三级成分标签序列。[0149]对于第三级别的第一个待分析序列,获取得分第二高的第二优序列,[s]o oo[e],全部标注为o表示没有得到识别到任何成分。此时,完成整个文本的成分识别。最终成分识别的结果如下所示。[0150][0151]应该理解的是,虽然图2、4和6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、4和6中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。[0152]在一个实施例中,如图7所示,提供了一种句子成分识别装置,包括:[0153]输入获取模块702,用于获取句子以及要识别的目标句子成分;[0154]成分标签序列获取模块704,用于将所述句子输入到预先训练好的句子成分识别模型,所述句子成分识别模型的编码层输出所述句子各词的词特征向量;所述句子成分识别模型的解码层根据各词的词特征向量进行解码,获得整句级成分标签序列,所述整句级成分标签序列标识整句中各单词所属的句子成分,以及各单词在所属句子成分的位置;[0155]识别模块706,用于若根据所述整句级成分标签序列确定所述句子不存在复杂成分,则根据所述整句级成分标签序列标识的整句中各单词所属的句子成分,以及各单词在所属句子成分的位置,获取所述目标句子成分对应文本内容。[0156]上述句子成分识别装置,利用训练好的句子成分模型输出整句级成分标签序列,整句级成分标签序列标识了句子中各单词所属的句子成分,以及各单词在所属句子成分的位置,从而可根据成分标签序列获取句子中的目标成分,实现句子的成分识别。该方法通过提前训练成分识别模型即可实现句子成分识别操作简单,便利性高。[0157]在其中一个实施例中,成分标签序列获取模块,还用于若根据所述整句级成分标签序列确定所述句子存在复杂成分时,获取所述复杂成分的词特征向量,将所述复杂成分的词特征向量通过所述解码层解码,获取各所述复杂成分对应的从级成分标签序列;所述从级成分标签序列标识了所述复杂成分中各单词所属的句子成分,以及各单词在所属句子成分的位置;[0158]所述识别模块,还用于若根据所述从级成分标签序列确定所述复杂成分不存在嵌套的句子成分或嵌套的句子成分为简单成分,则根据已输出的有效的成分标签序列,获取所述目标句子成分对应文本内容,其中,所述有效的成分标签序列包括所述整句级成分标签序列,或所述整句级成分标签序列和所述从级成分标签序列。[0159]在另一个实施例中,所述成分标签序列识别模块,还用于若所述复杂成分存在嵌套的复杂成分时,则对嵌套的复杂成分进行解码,获取各所述复杂成分对应的从级成分标签序列。[0160]在另一个实施例中,若根据所述整句级成分标签序列确定句子存在字符数量大于1的句子成分,则所述句子存在复杂成分。[0161]在另一个实施例中,若所述从级成分标签序列标识嵌套的句子成分的字符数量为1,则嵌套的句子成分为简单成分;若所述从级成分标签序列标识嵌套的句子成分的字符数量大于1,则嵌套的句子成分为复杂成分。[0162]在另一个实施例中,成分识别装置还包括:句子集获取模块和训练模块,[0163]句子集获取模块,用于获取用于训练的句子集,所述句子集包括各句子的训练语料,所述训练语料包括根据嵌套关系成分分级的成分标签序列,所述成分标签序列包括整句级成分标签序列,以及嵌套的复杂成分的从级成分标签序列,各成分标签序列包括句子中各单词在相应成分分级所属的句子成分,以及各单词在所属句子成分的位置;[0164]训练模块,用于将所述句子集中句子的训练语料输入待训练的句子成分识别模型,所述句子成分识别模型编码层输出所述句子各词的词特征向量;所述句子成分识别模型的解码层根据各词的词特征向量进行解码,获得预测的成分标签序列,根据所述预测的成分标签序列和标注的成分标签序列,调整所述句子成分识别模型,直到满足训练结束条件,获得训练好的句子成分识别模型。[0165]在另一个实施例中,句子集获取模块,用于获取根据句子的嵌套关系确定的句子的成分分级,每个成分分级中各句子成分对应的单词,以及句子成分的开始位置和结束位置;根据每个成分分级的各句子成分对应的单词,以及句子成分的开始位置和结束位置,得到整句级成分标签序列,以及嵌套的复杂成分的从级成分标签序列;根据所述整句级成分标签序列和嵌套的成分标签序列,分别构建句子的各句子成分用做模型输入的训练语料;根据各句子所述训练语料,得到训练句子集。[0166]关于句子成分识别装置的具体限定可以参见上文中对于句子成分识别方法的限定,在此不再赘述。上述句子成分识别装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。[0167]在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储训练句子集和句子成分对应的问询数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种句子成分识别方法。[0168]本领域技术人员可以理解,图8中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。[0169]在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各实施例的方法的步骤。[0170]在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各实施例的方法的步骤。[0171]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。[0172]以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。[0173]以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部