一种语句意图预测方法及系统与流程

文档序号:14911133发布日期:2018-07-10 23:26阅读:155来源:国知局

本发明涉及语义识别技术领域,尤其涉及一种语句意图预测方法及系统。



背景技术:

随着人工智能(Artificial Intelligence)概念的普及,以及相关科学技术的不断发展,越来越多的电子设备开始朝向人工智能的方向发展。人工智能的一大特点是智能设备可以与用户进行智能的人机交互,例如通过语音进行交互或者输入文字进行交互等,这种交互过程中,用户输入的指令不再具有固定的格式,而是按照用户自己的意愿,以用户习惯的方式输入的指令,例如用户以口语化的语言说出的语音指令等。在这类交互过程中,在领域确定的前提下,智能设备需要理解用户的意图,并将用户的输入中有用的信息抽取出来以便进行后续处理,也就是将用户输入的句子进行意图分类并且将其中的槽(即定义的有用信息)抽取出来,这是处理用户输入指令的关键一步。

在现有技术中,针对槽抽取和针对意图分类分别进行的是独立的处理,即在处理用户指令的过程中是分别采用相互独立的识别模型进行处理。这种处理方式的缺陷在于,在训练意图分类模型并采用这两个模型对指令进行处理的过程中,意图分类模型得到的错误预测就不能再返回到槽抽取模型中再对其进行纠正,这样就不能很好地对意图分类模型和槽抽取模型进行优化。并且在这种方式中,在进行预测的过程中需要首先进行槽抽取,再根据槽抽取的预测结果进行意图分类,因此输入的句子需要进行两次分类预测,处理速度比较慢。



技术实现要素:

根据现有技术中存在的上述问题,现提供一种语句意图预测方法及系统的技术方案,旨在将槽抽取与意图分类整合至一个整体的识别模型中,在训练时两者可以相互纠正,共同影响并且共同进行优化,从而提升实际预测的准确率,并且能够加快处理速度。

上述技术方案具体包括:

一种语句意图预测方法,适用于人机交互过程中;其中,预先训练形成一意图预测模型,并将所述意图预测模型适用到人机交互过程中,以对用户指令进行语义的意图分类;

采用所述意图预测模型对所述用户指令进行意图分类的方法具体包括:

步骤S1,以字为单位对依据所述用户指令转换的文字形式的指令语句进行分割;

步骤S2,将分割得到的每个字分别送入对应的第一识别单元中,经过处理后分别输出每个字所对应的中间向量,随后分别执行步骤S3a和步骤S3b;

步骤S3a,将每个字所对应的所述中间向量分别送入对应的第一分类单元中,经过处理后分别输出每个字所对应的槽标签,以作为所述指令语句的槽预测结果,随后退出;

步骤S3b,根据关联于所述指令语句的所有所述中间向量转换形成关联于所述指令语句的句子向量,随后转向步骤S4;

步骤S4,将所述句子向量送入一第二识别单元中,以得到并输出所述指令语句的意图分类结果;

预先训练形成所述意图预测模型的过程中,同样执行所述步骤S1-S4,并依据预先设置的大量的训练语句训练形成;

所述意图预测模型中包括用于对所述用户指令进行预测并输出所述意图分类结果的意图分类模型,以及用于对所述用户指令进行预测并输出所述槽预测结果的槽抽取模型。

优选的,该语句意图预测方法,其中,所述步骤S2中,所述第一识别单元根据输入的字,通过一深度神经网络处理并输出相应的所述中间向量。

优选的,该语句意图预测方法,其中,所述深度神经网络为循环神经网络,或者门控循环单元神经网络,或者长短时记忆神经网络。

优选的,该语句意图预测方法,其中,所述第一分类单元采用分类网络实现。

优选的,该语句意图预测方法,其中,所述步骤S3b中,关联于所述指令语句的所有所述中间向量形成一向量矩阵;

则所述步骤S3b中,采用max-pooling层,或者mean-pooling层,或者attention层将所述向量矩阵转换成对应的所述句子向量。

优选的,该语句意图预测方法,其中,所述步骤S3b中,关联于所述指令语句的所有所述中间向量形成一向量矩阵;

则所述步骤S3b中,获取输出的所述向量矩阵中的最后一行向量,以作为所述句子向量。

优选的,该语句意图预测方法,其中,所述第二识别单元采用分类网络实现。

一种语句意图预测系统,适用于人机交互过程中;其中,预先训练形成一意图预测模型,并将所述意图预测模型适用到人机交互过程中,以对用户指令进行语义的意图分类,还包括:

分割单元,用于以字为单位对依据所述用户指令转换的文字形式的指令语句进行分割;

第一识别单元,所述第一识别单元中包括多个第一识别模块,每个所述第一识别模块分别连接至所述分割单元,每个所述第一识别模块分别与分割得到的每个字一一对应,每个所述第一识别模块分别根据对应的字进行处理并输出对应字的中间向量;

转换单元,分别连接每个所述第一识别模块,用于根据所有所述第一识别单元输出的关联于所述指令语句的所有所述中间向量转换形成关联于所述指令语句的句子向量并输出;

第二识别单元,连接所述转换单元,用于根据所述句子向量得到并输出所述指令语句的意图分类结果;

多个第一分类单元,所述第一分类单元与所述第一识别模块一一对应连接,所述第一分类单元用于获取对应的所述第一识别单元输出的所述中间向量并进行处理,随后分别输出每个字的槽标签,以作为所述指令语句的槽预测结果;

采用所述语句意图预测系统,根据预先设置的大量训练语句训练得到所述意图预测模型;

所述意图预测模型中包括用于对所述用户指令进行预测并输出所述意图分类结果的意图分类模型,以及用于对所述用户指令进行预测并输出所述槽预测结果的槽抽取模型。

上述技术方案的有益效果是:

1)提供一种语句意图预测方法,能够将槽抽取与意图分类整合至一个整体的识别模型中,使得两者在训练时可以相互纠正,共同影响并且共同进行优化,从而提升实际预测的准确率,并且能够加快处理速度。

2)提供一种语句意图预测系统,能够实现上述语句意图预测方法。

附图说明

图1是现有技术中,槽抽取模型的结构示意图;

图2是现有技术中,意图分类模型的结构示意图;

图3是本发明的较佳的实施例中,一种语句意图预测方法的总体流程示意图;

图4是本发明的较佳的实施例中,一种语句意图预测系统的总体结构示意图;

图5是本发明的较佳的实施例中,整合槽抽取和意图分类的意图预测模型的结构示意图。

具体实施方式

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

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。

现有技术中的槽抽取模型如图1中所示,在训练时首先需要将输入的句子分割为字,并将每个字送入槽抽取相关的深度神经网络中,该深度神经网络也即对句子中的槽进行识别的神经网络,例如可以采用RNN(Recurrent Neural Network,循环神经网络)或者RNN+CRF(Conditional Random Field,条件随机场)等来实现,图1中采用RNN处理上述被以字为单位分割的输入句子,RNN的输出会经过一个分类网络进行分类,随后输出为槽抽取的预测结果。该预测结果中,会为句子中的每个字预测一个标签。通常情况下,槽的标签可以分为以下几种:槽的开始、中间和结尾,以及其他(不属于槽的部分)。例如音乐领域内可抽取的槽包括:歌手名、歌曲名以及歌曲风格,则音乐领域内槽的标签可以包括:歌手名的开始(B-singer)、歌手名的中间(M-singer)、歌手名的结尾(E-singer)、歌曲名的开始(B-song)、歌曲名的中间(M-song)、歌曲名的结尾(E-song)、歌曲风格的开始(B-style)、歌曲风格的中间(M-style)、歌曲风格的结尾(E-style)以及其他不属于槽的部分(O)。则针对一个句子(我想听孙燕姿的遇见),经过槽抽取后得到的预测结果应当为“O O O B-singer M-singer E-singer O B-song E-song”。图1中槽抽取模型的RNN网络选用了双向RNN,因此采用双向箭头表示。分类网络一般使用单层神经网络。

如图2中所示,经过槽抽取之后,带有槽抽取结果的句子被输入到意图分类模型中,经过深度神经网络处理后再输出到分类网络中最终就能得到句子的意图分类的预测结果。

上述过程中,由于完全割裂了槽抽取和意图分类的训练过程,使得槽抽取和意图分类无法互相影响,依据槽抽取的错误预测结果进行的意图分类的结果无法反馈给槽抽取模型来对其进行纠正,从而使得模型训练可能发生较大的偏差。并且,在实际进行预测的过程中,由于其预测过程与训练过程相同,使得一个句子需要先经过槽抽取再经过意图分类,使得一个句子需要先后进行两次分类预测,导致处理速度较慢。

本发明的较佳的实施例中,基于上文中涉及的技术问题,现提供一种语句意图预测方法,该语句意图预测方法适用于人机交互的过程中,更进一步地适用于智能设备例如智能音箱或者智能机器人的人机交互过程中。该语句意图预测方法中,预先训练形成一意图预测模型,并将意图预测模型适用到人机交互过程中,以对用户指令进行语义的意图分类,其步骤具体如图3中所示,包括:

步骤S1,以字为单位对依据用户指令转换的文字形式的指令语句进行分割;

步骤S2,将分割得到的每个字分别送入对应的第一识别单元中,经过处理后分别输出每个字所对应的中间向量,随后分别执行步骤S3a和步骤S3b;

步骤S3a,将每个字所对应的中间向量分别送入对应的第一分类单元中,经过处理后分别输出每个字所对应的槽标签,以作为指令语句的槽预测结果,随后退出;

步骤S3b,根据关联于指令语句的所有中间向量转换形成关联于指令语句的句子向量,随后转向步骤S4;

步骤S4,将句子向量送入一第二识别单元中,以得到并输出指令语句的意图分类结果;

预先训练形成意图预测模型的过程中,同样执行步骤S1-S4,并依据预先设置的大量的训练语句训练形成;

意图预测模型中包括用于对用户指令进行预测并输出意图分类结果的意图分类模型,以及用于对用户指令进行预测并输出槽预测结果的槽抽取模型。

具体地,本实施例中,针对用户输入的指令,如果是语音指令则需要采用与现有技术中相同的语音转换方法将其转换成相应的文字形式的指令语句,如果是文字指令,则直接将其作为指令语句。随后,采用与现有技术中相同的做法,将指令语句以字为单位进行分割,每个字分别被送入对应的第一识别单元中进行处理,该第一识别单元即用于识别得到中间向量。每个第一识别单元经过处理后输出对应字的中间向量,所有第一识别单元输出的整合起来就是带有对应字的中间向量的向量矩阵。随后将该向量矩阵送入一转换单元中,以将该指令语句转换成相应的句子向量并输出至一第二识别单元中。该第二识别单元用于识别并得到意图分类的预测结果。

同时,本实施例中,在上述步骤S3a中,还可以通过一连接至每个第一识别单元的第一分类单元处理得到槽抽取的预测结果,即补全了槽抽取模型。具体地,将每个字的中间向量分别送入相应的第一分类单元中进行分类处理,最终每个第一分类单元输出每个字的槽标签,即输出槽抽取的槽预测结果。同时,在实际进行预测的过程中,也可以在得到意图分类的预测结果的同时按照上述过程得到槽抽取的预测结果。

因此,在该意图预测模型中,在预测中,于前向计算过程中,槽抽取可以影响到意图分类;而在模型训练的过程中,意图分类又可以反过来影响槽抽取。即槽抽取的部分和意图分类的部分会相互作用相互影响,从而实现共同优化。

相应地,该意图预测模型的训练过程同样可以通过执行上述步骤S1-S4来实现。具体地,预先设置大量的训练语句,随后将每条训练语句按照上述步骤S1-S4进行处理:针对一条训练语句,首先以字为分割单位对训练语句进行分割,随后将每个字分别送入对应的第一识别单元中进行训练,以输出对应该字的中间向量;将包括所有中间向量的向量矩阵进行转换从而得到对应该训练语句的句子向量;最后将该句子向量送入第二识别单元中进行训练,最终得到该训练语句的意图分类结果。对所有训练语句均执行上述步骤从而可以训练得到一个完整的意图预测模型。该意图预测模型中,在训练时,槽抽取的部分和意图分类的部分能够互相纠正互相影响,从而实现共同优化。

基于预测过程和训练过程完全相同,下文中,描述实际预测过程中采用意图预测模型对指令语句进行处理的过程的同时,即是在描述训练该意图预测模型的过程。因此下文中,不特别对预测过程和训练过程做额外的区分。

本发明的较佳的实施例中,上述第一识别单元根据输入的字,通过一深度神经网络处理并输出相应的中间向量。进一步地,上述深度神经网络可以为循环神经网络(RNN),也可以采用卷积神经网络(CNN),或者采用RNN的变体例如GRU(Gated Neural Network,门控循环单元)神经网络,或者LSTM(Long Short Term Memory,长短时记忆)神经网络。上述深度神经网络均可以采用单向神经网络或者双向神经网络实现。本发明中为了描述的需要,将上述第一识别单元限定为采用RNN网络进行处理。

本发明的较佳的实施例中,上述第一分类单元采用分类网络实现,分类网络通常为单层的神经网络。

本发明的较佳的实施例中,上述步骤S3b中,关联于指令语句的所有中间向量形成一向量矩阵;

则步骤S3b中,采用max-pooling层,或者mean-pooling层,或者attention层将向量矩阵转换成对应的句子向量。

具体地:

1)从第一识别单元中输出的中间向量的向量矩阵中得到句子向量的max-pooling层的方法包括:

其中,

smax用于表示max-pooling层的输出,也即转换形成的句子向量;

第一识别单元输出的向量矩阵为h,下标i表示第一识别单元输出的第i个向量,下标j表示第一识别单元输出的向量矩阵中的第j列,I表示向量矩阵中的行数。

2)从第一识别单元中输出的中间向量的向量矩阵中得到句子向量的mean-pooling层的方法包括:

其中,

smean用于表示mean-pooling层的输出,也即转换形成的句子向量,其余变量的释义同上文中所述。

3)从第一识别单元中输出的中间向量的向量矩阵中得到句子向量的attention层的方法包括:

其中,

sattn用于表示attention层的输出;

J表示下标j能取到的最大值;

Ua为一参数矩阵;

Va为一参数向量,VaT为参数向量的转置矩阵;

b也为一参数向量。

Ua,Va和b均可以通过训练得到。

本发明的较佳的实施例中,上述步骤S3b中,获取输出的向量矩阵中的最后一行向量,以作为上述句子向量。

具体地,除了上述三种可选的转换方式外,还可以选择得到第一识别单元输出的向量矩阵的最后一行向量,也即取RNN网络的最后一个隐层向量(last hidden state)来作为句子向量,同样可以实现转换句子向量的目的。

本发明的较佳的实施例中,上述第二识别单元同样可以采用分类网络实现,该分类网络也可以采用单层的神经网络实现。

综上,本发明技术方案中,通过将槽抽取模型输出的带有中间向量的语句转换成相应的句子向量并作为意图预测模型输入的方式将两个独立的模型进行整合,从而实现槽抽取和意图分类在同一个识别模型中进行的目的,使得在训练过程中,槽抽取和意图分类能够相互影响、相互纠正,以达到槽抽取和意图分类共同优化的效果。并且在实际预测意图分类的过程中,输入的语句无需经过两次分类预测过程即可得到最终的预测结果,使得处理速度大幅提升。

本发明的较佳的实施例中,基于上文中所述的语句意图预测方法,现提供一种语句意图预测系统,该语句意图预测系统同样适用于人机交互过程中。

在该语句意图预测系统中,同样预先训练形成一意图预测模型,并将意图预测模型适用到人机交互过程中,以对用户指令进行语义的意图分类。

上述语句意图预测系统具体如图4中所示,包括:

分割单元1,用于以字为单位对依据用户指令转换的文字形式的指令语句进行分割;

第一识别单元2,第一识别单元2中包括多个第一识别模块21,每个第一识别模块21分别连接至分割单元1,每个第一识别模块21分别与分割得到的每个字一一对应,每个第一识别模块21分别根据对应的字进行处理并输出对应字的中间向量;上述每个第一识别模块21相互之间具有一定的联系,可以藉由所有第一识别模块21的识别结果形成一个识别序列;

转换单元3,分别连接每个第一识别单元21,用于根据所有第一识别单元输出的关联于指令语句的所有中间向量转换形成关联于指令语句的句子向量并输出;

第二识别单元4,连接转换单元3,用于根据句子向量得到指令语句的意图分类结果;

多个第一分类单元,第一分类单元与第一识别模块一一对应连接,第一分类单元用于获取对应的第一识别单元输出的中间向量并进行处理,随后分别输出每个字的槽标签,以作为指令语句的槽预测结果;

采用语句意图预测系统,根据预先设置的大量训练语句训练得到意图预测模型;

意图预测模型中包括用于对用户指令进行预测并输出意图分类结果的意图分类模型,以及用于对用户指令进行预测并输出槽预测结果的槽抽取模型。

本实施例中,上述预先训练得到意图预测模型的过程中,可以预先准备大量的训练语句,并将这些训练语句送入上述语句意图预测系统中,以通过语句意图预测系统的上述处理训练得到相应的意图预测模型,该意图预测模型包括槽抽取模型和意图分类模型,最终形成的意图预测模型如图5中所示。

以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。

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