掌桥专利:专业的专利平台
掌桥专利
首页

识别对话中句子类别的方法、装置、电子设备和存储介质

文献发布时间:2023-06-19 11:29:13


识别对话中句子类别的方法、装置、电子设备和存储介质

技术领域

本申请涉及计算机技术领域,特别涉及一种识别对话中句子类别的方法、装置、电子设备和存储介质。

背景技术

随着计算机技术的不断发展与进步,语音识别被广泛应用于教育、医疗以及工业生产等多个领域。在多人对话场景下进行语音识别时,如果能够识别对话中句子的类别,可以提升语音识别的准确性,并可以基于句子类别的识别结果实现其他功能。比如,在课堂教学场景下,识别教师与学生对话中教师所讲述句子是否为“提问”、“鼓励”或“幽默”等类别,进而可以基于句子类别识别结果更加准确的确定教师所要表达的内容。

目前,识别对话中句子类别时,将对话中的待识别句子输入预先训练的分类模型,根据分类模型的输出结果确定待识别句子的类别。

对于目前识别对话中句子类别的方法,直接对单个句子的类别进行识别,由于识别时可参考的信息较少,导致对句子类别进行识别的准确性较低。

发明内容

有鉴于此,本申请实施例提供了一种识别对话中句子类别的方法、装置、电子设备和存储介质,能够提高对话中句子类别的识别准确性。

第一方面,本申请实施例提供的一种识别对话中句子类别的方法,包括:

获取包括至少两个句子的对话文本;

针对所述对话文本中的每个所述句子,将用于指示该句子的说话人的说话人信息与该句子进行拼接,生成该句子对应的第一句子;

获得包括所述对话文本中各所述句子对应的所述第一句子的句子序列;

从所述句子序列中获取所述对话文本中待识别的目标句子的上下文信息,其中,所述上下文信息包括所述目标句子的上文句子和/或下文句子对应的所述第一句子;

根据所述目标句子对应的所述第一句子和所述上下文信息,识别所述目标句子的类别。

第二方面,本申请实施例还提供了一种识别对话中句子类别的装置,包括:

一个文本获取模块,用于获取包括至少两个句子的对话文本;

一个信息拼接模块,用于针对所述文本获取模块获取到的所述对话文本中的每个所述句子,将用于指示该句子的说话人的说话人信息与该句子进行拼接,生成该句子对应的第一句子;

一个序列获取模块,用于获得包括所述信息拼接模块生成的各所述第一句子的句子序列;

一个上下文获取模块,用于从所述序列获取模块获取到的所述句子序列中,获取所述对话文本中待识别的目标句子的上下文信息,其中,所述上下文信息包括所述目标句子的上文句子和/或下文句子对应的所述第一句子;

一个类别识别模块,用于根据所述信息拼接模块获取到的所述目标句子对应的所述第一句子,及所述上下文获取模块获取到的所述上下文信息,识别所述目标句子的类别。

第三方面,本申请实施例还提供了一种电子设备,包括:处理器和存储器,所述处理器和所述存储器连接,所述存储器存储有计算机程序,所述处理器用于执行所述计算机程序实现上述第一方面提供的识别对话中句子类别的方法。

第四方面,本申请实施例还提供了一种计算机存储介质,包括:所述计算机存储介质存储有计算机程序,在处理器执行所述计算机程序时,实现上述第一方面提供的识别对话中句子类别的方法。

由上述技术方案可知,将对话文本中每个句子与说话人信息进行拼接,获得每个句子对应的第一句子,对于对话文本中任意一个待识别的目标句子,获取目标句子的上文句子和/或下文句子对应的第一句子作为上下文信息,进而根据目标句子对应的第一句子和上下文信息,对目标句子的类别进行识别。由于目标句子对应的第一句子中包括说话人信息,而目标句子的上下文信息包括目标句子的上文句子和/或下文句子,因此在对目标句子的类别进行识别时,不仅可以参考目标句子本身的内容,还可以将目标句子的说话人和上下文句子作为参考信息,而句子的说话人和上下文均能够体现句子的类别,所以可以参考较多信息对目标句子的类别进行识别,从而可以提高对句子类别进行识别的准确性。

附图说明

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

图1是本申请实施例一提供的一种识别对话中句子类别的方法的流程图;

图2是本申请实施例二提供的一种识别对话中句子类别的方法的流程图;

图3是本申请实施例二提供的一种转换句向量的示意图;

图4是本申请实施例三提供的一种识别对话中句子类别的装置的示意图;

图5是本申请实施例四提供的一种电子设备的示意图。

具体实施方式

为了使本领域的人员更好地理解本申请实施例中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请所提供的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请实施例保护的范围。

实施例一

图1是本申请实施例一提供的一种识别对话中句子类别的方法的流程图。参见图1,本申请实施例提供的识别对话中句子类别的方法包括如下步骤:

101、获取包括至少两个句子的对话文本。

对话文本为多人对话的文本表示,对话文本包括多个句子,每个句子为一个说话人所讲述内容的文本表示,不同的句子可以为相同或不同说话人所讲述内容的文本表示,但对话文本所包括的各句子为至少两个不同说话人所讲述内容的文本表示。

多人对话可以是视频对话、音频对话或文本对话,比如视频对话为在线课堂场景下教师与学生通过视频进行对话,音频对话为多人通过电话进行通过对话,文本对话为利用邮件、即时聊天程序等直接通过文本进行对话。对于文本对话,每个说话人对应一个数据源,分别从各数据源获取进行文本对话的文本数据,将获取到的各个文本数据进行组合,获得包括多个句子的对话文本。对于视频对话和音频对话,每个说话人对应一个数据源,分别从各数据源获取进行视频对话/音频对话的视频数据/音频数据,通过对获取到的视频数据/音频数据进行语音识别,获得文本数据,进而对获得的文本数据进行组合,获得包括多个句子的对话文本。

需要说明的是,对于视频对话,如果所获取到的视频数据包括字幕,则可以直接对视频数据中的字幕文本进行组合,以获得对话文本,而不需要在对视频数据进行语音识别。

102、针对对话文本中的每个句子,将用于指示该句子的说话人的说话人信息与该句子进行拼接,生成该句子对应的第一句子。

在获取对话文本时,可以获取到每个句子的说话人信息,说话人信息用于指示相应句子的说话人。在将说话人信息与句子进行拼接以获得第一句子时,可以将说话人信息置于句子之前进行拼接,也可以将说话人信息置于句子之后进行拼接。

在一种可能的实现方式中,将说话人信息置于句子之前进行拼接,按照“说话人信息:句子”的格式进行拼接。比如,对话文本中的一个句子为“这件事情啊,还是由我亲自问一问赵六”,该句子的说话人是“李四”,将该句子与说明人信息进行拼接所获得的第一句子为“李四:这件事情啊,还是由我亲自问一问赵六”。

103、获得包括对话文本中各句子对应的第一句子的句子序列。

在分别将对话文本中的各句子与说话人信息进行拼接,获得各句子对应的第一句子后,按照各句子的先后顺序,对各句子对应的第一句子进行排序,获得包括排序后各第一句子的句子序列。比如,对话文本包括句子1至句子5共计5个句子,句子1至句子5依次对应第一句子1至第一句子5,句子1至句子5被表述的顺序为句子1-句子2-句子3-句子4-句子5,则句子序列为第一句子1-第一句子2-第一句子3-第一句子4-第一句子5。

104、从句子序列中获取对话文本中待识别的目标句子的上下文信息,其中,上下文信息包括目标句子的上文句子和/或下文句子对应的第一句子。

对于对话文本中任意一个需要进行类别识别的目标句子,首先从对话文本中确定目标句子的上文句子和/或下文句子,进而从句子序列中获取所确定出上文句子和/或下文句子对应的第一句子,作为目标句子的上下文信息。

在从句子序列中获取目标句子的上下文信息时,可以仅获取目标句子的上文句子对应的第一句子,作为目标句子的上下文信息,也可以仅获取目标句子的下文句子对应的第一句子,作为目标句子的上下文信息,还可以同时获取目标句子的上文句子和下文句子对应的第一句子,作为目标句子的上下文信息。比如将句子序列中目标句子对应的第一句子之前的3个第一句子,作为目标句子的上下文信息,再比如将句子序列中目标句子对应的第一句子之后的5个第一句子,作为目标句子的上下文信息,再比如将句子序列中目标句子对应的第一句子之前的3个第一句子和之后的4个第一句子,作为目标句子的上下文信息。

作为目标句子的上下文信息的第一句子,包括在句子序列中与目标句子对应的第一句子相邻的第一句子,还可以包括在句子序列中与目标句子对应的第一句子不相邻的第一句子。比如将句子序列中位于目标句子对应的第一句子之前的7个第一句子和之后的7个第一句子,确定为目标句子的上下文信息。

105、根据目标句子对应的第一句子和上下文信息,识别目标句子的类别。

在获取到目标句子对应的第一句子及目标句子的上下文信息之后,根据目标句子对应的第一句子和上下文信息,对目标句子的类别进行识别,获得识别结果。所获得的识别结果,用于表征目标句子属于多种类别中的某一类别,或者用于表征目标句子是否属于目标类别,比如要识别句子是否属于幽默类别时,目标类别为幽默类别,识别结果为目标句子属于幽默类别,或者目标句子不属于幽默类别。

需要说明的是,在根据目标句子对应的第一句子和上下文信息识别目标句子的类别时,可以根据目标句子对应的第一句子和上下文信息构建输入数据,将输入数据输入预先构建的分类模型,进而根据分类模型的输出确定目标句子的类别。

本申请实施例提供的识别对话中句子类别的方法,将对话文本中每个句子与说话人信息进行拼接,获得每个句子对应的第一句子,对于对话文本中任意一个待识别的目标句子,获取该目标句子的上下文句子和/或下文句子对应的第一句子作为上下文信息,进而根据目标句子对应的第一句子和上下文信息,对目标句子的类别进行识别。由于目标句子对应的第一句子中包括说话人信息,而目标句子的上下文信息包括目标句子的上文句子和/或下文句子,因此在对目标句子的类别进行识别时,不仅可以参考目标句子本身的内容,还可以将目标句子的说话人和上下文句子作为参考信息,而句子的说话人和上下文均能够体现句子的类别,所以在对目标句子的类别进行识别可参考信息较多,从而可以提高对句子类别进行识别的准确性。

实施例二

在实施例一所提供识别对话中句子类别的方法的基础上,获取目标句子的上下文信息时,可以通过多个窗口从句子序列中确定多个句子组,使得每个句子组包括一个第一句子或相邻的多个第一句子,进而将确定出的各句子组作为目标句子的上下文信息。下面以通过多窗口方式确定上下文信息为例,对本申请实施例提供的识别对话中句子类别的方法作进一步详细说明。

图2是本申请实施例二提供的一种识别对话中句子类别的方法的流程图。参见图2,本申请实施例提供的识别对话中句子类别的方法包括如下步骤:

201、获取包括至少两个句子的对话文本。

对话文本为多人对话的对话内容,对话文本包括多个句子,每个句子为一个说话人所表述的内容,不同的句子为不同或相同说话人所表述的内容。如果多人对话的对话形式为通过视频或音频进行对话,则通过对视频或音频进行语音识别,以获得包括文本句子的对话文本,如果多人对话的对话形式为通过文本发送进行对话,则直接获得包括文本句子的对话文本。

如下表1示出了对话文本的一个示例,该对话文本包括5个句子,为三个说话人的对话内容。

表1

202、将对话文本中每个句子与对应的说话人信息进行拼接,获得第一句子。

对于对话文本中的每个句子,确定用于指示该句子的说话人的说话人信息,比如说话人信息为说话人的姓名,然后将确定出的说话人信息与该句子进行拼接,获得该句子对应的第一句子。

在一种可能的实现方式中,在对句子与说话人信息进行拼接时,将说话人信息置于句子内容之前进行拼接,即按照“说话人:句子内容”的格式进行拼接。由于不同的句子可能具有不同的长度,将说话人信息置于句子内容之前进行拼接获得第一句子,使得各第一句子的起始部分均是说话人信息,方便后续对句子类别进行识别时对第一句子进行处理。

例如,对于上述表1中的5个句子,序号为1的句子与说话人信息进行拼接后所获得的第一句子1为“张三:干嘛不承认啊”,序号为2的句子与说话人信息进行拼接后所获得的第一句子2为“李四:好啦,不再争啦”,序号为3的句子与说话人信息进行拼接后所获得的第一句子3为“李四:这件事情啊,还是由我亲自问一问赵六”,序号为4的句子与说话人信息进行拼接后所获得的第一句子4为“李四:我可是有丰富的审问经验”,序号为5的句子与说话人信息进行拼接后所获得的第一句子5为“王五:有那么严重么,用您把这方面的经验全都用上”。

203、按照对话文本中各句子的先后顺序,对各句子对应的第一句子进行排序,获得句子序列。

对话文本中每个句子具有时间戳,时间戳表征了相应句子被表述的时间。在获得对话文本中各句子对应的第一句子后,可以根据对话文本中各句子的时间戳,按照句子的先后顺序对各句子对应的第一句子进行排序,获得包括排序后各第一句子的句子序列。

对于通过视频或音频进行的多人对话,在对视频或音频进行语音识别时,可以获得文本内容和时间戳。对于通过发送文本进行的多人对话,被发送的文本携带有被发送时间的时间戳。

例如,在上述表1中,序号即为相应句子被表述的顺序,即5个句子的先后顺序为句子1(序号为1的句子)-句子2(序号为2的句子)-句子3(序号为3的句子)-句子4(序号为4的句子)-句子5(序号为5的句子),进而根据5个句子的先后顺序,对5个句子对应的第一句子进行排序而获得句子序列,句子序列中5个第一句子的排序结果为第一句子1-第一句子2-第一句子3-第一句子4-第一句子5。

204、从句子序列中获取目标句子对应的至少一个句子组。

针对对话文本中任意一个需要进行句子类别识别的目标句子,在获得句子序列后,根据目标句子对应的第一句子在句子序列中的位置,确定目标句子对应的至少一个句子组,所确定的句子组可以包括句子序列中位于目标句子对应的第一句子之前的至少一个第一句子,或者可以包括句子序列中位于目标句子对应的第一句子之后的至少一个第一句子,再或者可以包括句子序列中位于目标句子对应的第一句子之前的至少一个第一句子及之后的至少一个第一句子。另外,还可以将目标句子对应的第一句子作为目标句子对应的一个句子组,该句子组仅包括目标句子对应的第一句子。

获取句子序列中位于目标句子对应的第一句子之前和/或之后的至少一个第一句子,构成目标句子对应的至少一个句子组,进而根据各句子组确定目标句子的类别。句子序列对应于对话文本中各句子的先后顺序,获取目标句子对应的第一句子之前和/或之后的第一句子构成句子组,使得句子组能够体现目标句子的上下文信息,进而基于句子组识别目标句子的类别时,能够提高识别结果的准确性。根据需求可以获取位于目标句子对应的第一句子之前、之后、之前和之后的第一句子,组成目标句子对应的句子组,从而可以满足不同应用场景的需求,提高该句子类别识别方法的适用性。

在从句子序列中获取目标句子对应的句子组时,可以获取与目标句子对应的第一句子相连续的多个第一句子,组成目标句子对应的句子组。比如,获取目标句子对应的第一句子之前的2个第一句子、目标句子对应的第一句子和目标句子对应的第一句子之后的3个第一句子,组成包括6个第一句子的句子组。另外,还可以按照设定的采样规则,从句子序列中获取多个离散的第一句子组成目标句子对应的句子组,比如获取目标句子对应的第一句子之前的第1、3、5个第一句子、目标句子对应的第一句子和目标句子对应的第一句子之后的第1、3、5个第一句子,组成包括7个第一句子的句子组。

在一种可能的实现方式中,在获得句子序列后,将句子序列中位于目标句子对应的第一句子之前的i个第一句子、目标句子对应的第一句子及位于目标句子对应的第一句子之后的j个第一句子的顺序组合,确定为目标句子对应的一个句子组。通过改变i和j的值,可以获得多个窗口,将位于同一窗口中的各第一句子的组合作为目标句子对应的一个句子组,进而可以获得目标句子对应的多个句子组。

在确定目标句子对应的句子组时,引入参数i和参数j,参数i用于指示向上取多少个第一句子作为目标句子的上文信息,参数j用于指示向下取多少个第一句子作为目标句子的下文信息。比如当i=1,j=2时,i=1表示将目标句子所对应第一句子之前的一个第一句子作为目标句子对应的上文信息,j=2表示将目标句子所对应第一句子之后的两个第一句子作为目标句子的下文信息。

针对一个确定的i、j组合,在将目标句子所对应第一句子之前的i个第一句子确定为上文信息,并将目标句子所对应第一句子之后的j个第一句子确定为下文信息后,将上文信息、目标句子对应的第一句子和下文信息进行顺序拼接,获得目标句子对应的一个句子组。例如,以上述表1中序号为3的句子为目标句子为例,当i=1,j=2时,将位于第一句子3之前的第一句子2确定为目标句子的上文信息,将位于第一句子3之后的第一句子4和第一句子5确定为目标句子的下文信息,进而将第一句子2、第一句子3、第一句子4和第一句子5进行顺序组合,获得目标句子对应的一个句子组。

预先设定参数i的取值范围为[0,m],预先设定参数j的取值范围为[0,n],m和n均为正整数,由于参数i和参数j均为整数,因此参数i和参数j的组合共计有(m+1)(n+1)种,所以可以获得(m+1)(n+1)个句子组。m和n的取值相同或不同,可以根据对话文本所包括句子的数量以及参与对话的人数确定m和n的取值,比如在对话文本所包括句子或参与对话的人数较多时,使m和n具有较大的取值,而在对话文本所包括句子较少或参与对话的人数较少时,使m和n具有较小的取值。比如,m和n的取值均为7,即参数i和参数j的最大取值为7,此时参数i和参数j选取不同的值进行组合时,共计可以获得8×8=64个句子组。

需要说明的是,根据对话文本中目标句子被表述的顺序不同,目标句子所对应第一句子之前的第一句子的数量可能小于m,目标句子所对应第一句子之后的第一句子的数量也可能小于n。当参数i的取值大于目标句子所对应第一句子之前的第一句子的数量时,选取目标句子所对应第一句子之前的所有第一句子作为目标句子的上文信息,当参数j的取值大于目标句子所对应第一句子之后的第一句子的数量时,选取目标句子所对应第一句子之后的所有第一句子作为目标句子的下文信息,因此在根据一个确定的i、j组合确定出的句子组中,第一句子的数量可能小于i+j+1,从而根据对于不同的i、j组合可能确定出相同的句子组。比如,以上述表1中序号为3的句子为目标句子为例,当i取值为2~7时,均将第一句子1和第一句子2作为目标句子的上文信息,当j取值为2~7时,均将第一句子4和第一句子5作为目标句子的下文信息,因此在所获得的64个句子组中,仅包括9种不同的句子组。

从预设的取值范围内为参数i和参数j选取可能的值进行组合,获得多个不同的i、j组合,进而根据每个i、j组合确定目标句子对应的句子组,获得目标句子对应的多个句子组,当目标句子对应的第一句子之前的第一句子的数量小于i时,选取目标句子所对应第一句子之前的所有第一句子作为目标句子的上文信息,当目标句子对应的第一句子之后的第一句子的数量小于j时,选取目标句子所对应第一句子之后的所有第一句子作为目标句子的下文信息,统一确定句子组的方式,可以更加快速的确定目标句子对应的句子组,进而提高对句子类别进行识别的效率。

在本申请实施例中,在获取句子序列后,通过参数i和参数j确定多个窗口,进而通过多个窗口从句子序列中选取第一句子,获得多个句子组,进而后续通过获得的多个句子组对目标句子的类别进行识别。由于多个句子组可以反映目标句子与不同上下文句子的相关性,进而根据多个句子组识别目标句子的类别时,能够根据目标句子与不同上下文句子的相关性对目标句子的类别进行识别,进一步提高对目标句子的类别进行识别的准确性。

205、将目标句子对应的第一句子分别与每个句子组进行拼接,获得目标句子对应的第二句子。

在确定出目标句子对应的多个句子组后,分别将每个句子组与目标句子对应的第一句子进行拼接,获得目标句子对应的多个第二句子。在一种可能的实现方式中,在对目标句子对应的第一句子和句子组进行拼接时,将目标句子对应的第一句子置于句子组之前进行拼接,此时所获得的第二句子的起始部分为目标句子对应的第一句子。在目标句子对应的各句子组中,不同句子组中目标句子所在位置可能不同,将目标句子对应的第一句子置于句子组之前进行拼接获得第二句子,各第二句子的起始部分均为目标句子对应的第一句子,便于根据第二句子确定待识别的目标句子,并可以保证对目标句子的类别进行识别的准确性。

定义目标句子对应的第一句子为St,定义目标句子对应的句子组为Sc,可以按照“St[SEP]Sc”的格式对第一句子和句子组进行拼接,获得第二句子text(i,j)。比如,当目标句子为句子3,且i+1,j=2时,将第一句子2、第一句子3、第一句子4和第一句子5进行顺序拼接,获得目标句子对应的句子组,进而将第一句子3与该句子组进行拼接,获得第二句子text(1,2)。

206、分别将每个第二句子输入相对应的第一分类模型,获得第一分类模型针对每个第二句输出的第一概率。

在一种可能的实现方式中,预先训练有一个第一分类模型,分别将每个第二句子输入该第一分类模型,获得该第一分类模型针对每个第二句子输出的第一概率。

在另一种可能的实现方式中,预先训练有多个第一分类模型,不同的第一分类模型对应不同的i、j组合。由于第二句子通过对目标句子对应的第一句子和句子组进行拼接而获得,不同的句子组对应不同的i、j组合,因此不同的第二句子也对应不同的i、j组合。针对每一种i、j组合,预先训练有该i、j组合对应的第一分类模型,第一分类模型基于输入的第二句子,输出目标句子属于目标类别的概率。比如,参数i和参数j的取值范围均为[0,7],i、j组合共计有64种,则预先针对不同的i、j组合分别训练第一分类模型,获得64个第一分类模型。

对于任意一个确定的i、j组合,按照上述步骤202至步骤205的方法,从训练数据集中获取对应于该i、j组合的多个第二句子,进而根据训练数据集中对每个句子的类别标签和获取到的各第二句子,训练对应于该i、j组合的第一分类模型。

针对所获取到的每个第二句子,根据该第二句子对应的i、j组合,将该第二句子输入相对应的第一分类模型中,进而获得第一分类模型输出的第一概率,其中该第一概率表征目标句子属于目标类别的概率。比如,预先训练的分类模型用于识别句子是否属于幽默类别,则将目标句子对应的第二句子输入第一分类模型后,第一分类模型输出的第一概率用于表征目标句子属于幽默类别的概率。

在本申请实施例中,预先针对每个i、j组合训练相对应的第一分类模型,进而在获取到目标句子对应的各第二句子后,将对应i、j组合的第二句子输入对应相同i、j组合的第一分类模型,获取每个第一分类模型输出的第一概率,进而后续基于获取到的各第一概率识别目标句子的类别。由于不同的第二句子中句子组对应不同的i、j组合,而对应不同i、j组合的句子组反映目标句子与不同上下文句子之间的相关性,预先训练对应不同i、j组合的第一分类模型,将对应i、j组合的第二句子输入对应相同i、j组合的第一分类模型,获得第一分类模型输出的第一概率,保证第一概率能够更加真实的反映目标句子是否属于目标类别,进而后续可以根据第一概率更加准确的对目标句子进行类别识别。

在本申请实施例中,第一分类模型可以通过不同的模型实现,比如第一分类模型可以是深度神经网络(Deep Neural Networks,DNN)、支持向量机(Support VectorMachine, SVM)、逻辑回归(Logistic Regression, LR)、随机森林(random forest)、朴素贝叶斯模型(Naive Bayesian Model,NBM)、神经网络(Neural Networks,NN)、梯度提升决策树(Gradient Boosting Decision Tree,GBDT)、BERT(Bidirectional EncoderRepresentations from Transformers)、长短期记忆网络(Long Short-Term Memory,LSTM)等。

当第一分类模型为BERT或LSTM等可直接处理文本的模型时,直接将第二句子输入第一分类模型,获得第一分类模型输出的第一概率。当第一分类模型为DNN、SVM、LR、随机森林、NBM、NN或GBDT等无法直接处理文本的模型时,针对每个第二句子,首先对该第二句子进行词语分割,获得至少两个词语,然后根据预先创建的词典,分别将每个词语映射为词向量,然后根据各词向量确定该第二句子对应的句向量,然后将所获得的句向量输入第一分类模型中,获得第一分类模型输出的第一概率。本领域技术人员可以知晓,各词向量具有相同的维度,以能够对各词向量进行求平均,比如词向量的维度为200维,则通过对各词向量进行求平均而获得的句向量也为200维。

通过对第二句子进行词语分割,进而对分割出的各词语的词向量确定第二句子对应的句向量,将句向量输入第一分类模型获得第一概率。根据各词向量确定第二句子对应的句向量,综合了第二句子中各词语对句子类别的影响,进而在根据第一概率确定目标句子的类别时,可以进一步提高对目标句子进行类别识别的准确性。

在一种可能的实现方式中,在根据分割出的各词向量确定第二句子对应的句向量时,可以求取各词向量的平均值作为第二句子对应的句向量,由于计算过程简单,可以快速获得第二句子对应的句向量,并可以综合各词语对句子类别的响应,保证基于句向量识别句子类别的准确性。

图3是本申请实施例提供的一种转换句向量的示意图。参见图3,一个第二句子为“今天天气很好”,首先对该第二句子进行分词处理,获得“今天”、“天气”和“很好”三个分词,根据公开词典对三个分词进行映射,将“今天”映射为词向量a=[0.2,0.5,0.4…0.2],将“天气”映射为词向量b=[0.2,0.6,0.4…0.2],将“很好”映射为词向量c=[0.2,0.4,0.4…0.2],然后对词向量a、b和c求平均,获得该第二句子对应的句向量A=[0.2,0.5,0.4…0.2]。

本领域技术人员可以知晓,除了上述通过对词向量进行求平均而获得句向量的方式,还可以通过其他方式来确定第二句子的句向量,比如通过TF-IDF对词向量进行加权平均获得句向量,或者通过SIF对词向量进行加权平均获得句向量。

207、构建以各第一概率为元素的概率向量。

在将各第二句子输入第一分类模型,获得各第二句子对应的第一概率后,构建以各第一概率为元素的概率向量。在一种可能的实现方式中,按照对应参数i和参数j递增的顺序,对各第二句子对应的第一概率进行排序,然后将排序后的各第一概率依次作为行向量/列向量中的元素,获得形式为行向量/列向量的概率向量。

将第二句子text(i,j)输入对应于i、j组合的第一分类模型后,获得第一概率p(i,j),按照对应参数i和参数j递增的顺序,对各第二句子对应的第一概率进行排序,排序结果为p(0,0)/…/p(0,n)/p(1,0)/…/p(1,n)/…/p(m,1)/…/p(m,n),进而根据各第一概率的排序结果所获得的概率向量为B=[p(0,0),…,p(0,n),p(1,0),…,p(1,n),…,p(m,1),…,p(m,n)]。比如,共计获得64个第二句子,将各第二句子输入对应的第一分类模型后可以获得64个第一概率,进而构建出64维的概率向量。

208、将概率向量输入预先训练的第二分类模型,获得第二分类模型输出的第二概率。

预先训练第二分类模型,第二分类模型可以基于输入的向量输出概率值,第二分类模型输出的概率值为目标句子属于目标类别的概率。在获得概率向量后,将概率向量输入预先训练的第二分类模型,获得第二分类模型输出的第二概率。

在本申请实施例中,第二分类模型可以是逻辑回归模型(LR)。

209、判断第二概率是否大于第二概率阈值,如果是,执行步骤210,否则执行步骤211。

在完成第二分类模型的训练后,可以确定第二分类模型对应的第二概率阈值,进而根据第二概率与第二概率阈值的大小关系,确定目标句子是否属于目标类别。第二概率阈值可以根据经验值确定,还可以根据第二分类模型的调和平均值(F1值)确定,比如将使第二分类模型的F1值最大的参数α确定为第二概率阈值。调和平均值(harmonic mean)又称倒数平均数,是总体各统计变量倒数的算术平均数的倒数,表征精确率和召回率的调和均值。

在一种可能的实现方式中,在第二分类模型训练完成之后,参数α通过步长0.1遍历取值范围0~1,选取使第二分类项目F1值最大的参数α,进而将选取出的参数α确定为第二概率阈值。比如确定出的参数α为0.8,如果第二分类模型输出的第二概率大于0.8,则执行步骤210,如果第二分类模型输出的第二概率小于或等于0.8,则执行步骤211。

在本申请实施例中,根据第二分类模型的F1值确定第二概率阈值,由于F1值是精确率和召回率的调和均值,通过F1值可以综合评价第二分类模型的精确率和召回率,参数α以设定的步长遍历在0~1,将使第二分类模型的F1值最大的参数α确定为第二概率阈值,综合考虑精确率和召回率,保证基于确定出的第二概率阈值可以更加准确的对句子类别进行分类,从而进一步提高对句子类别进行识别的准确性。

在本申请实施例中,第一概率基于第二句子获得,即各第一概率基于目标句子不同的上下文信息获得,而第二概率基于概率向量获得,概率向量由各第一概率构成,即第二分类模型综合各第一分类模型对目标句子进行类别识别的结果,输出目标句子属于目标类别的第二概率,因此第二概率综合了各第一分类模型对目标句子进行类别识别的结果,能够更加准确的反映目标句子的类别,从而根据第二概率可以更加准确的确定目标句子是否属于目标类别,进一步提高了对句子类别进行识别的准确性。

210、确定目标句子属于目标类别,并结束当前流程。

在本申请实施例中,当第二分类模型输出的第二概率大于第二概率阈值时,说明目标句子属于目标类别的概率较大,进而确定目标句子目标类别。比如,第二分类模型输出的第二概率为目标句子属于幽默类别的概率,第二概率阈值为0.8,当第二分类模型输出的第二概率大于0.8时,确定目标句子属于幽默类别。

211、确定目标句子不属于目标类别。

在本申请实施例中,当第二分类模型输出的第二概率小于或等于第二概率阈值时,说明目标句子属于目标类别的概率较低,进而确定目标句子不属于目标类别。比如,第二分类模型输出的第二概率为目标句子属于幽默类别的概率,第二概率阈值为0.8,当第二分类模型输出的第二概率小于或等于0.8时,确定目标句子不属于幽默类别。

本申请实施例提供的识别对话中句子类别的方法,引入参数i和参数j,基于i、j组合可以确定窗口,通过改变参数i和参数j的取值可以使窗口在排序后的第一句子上滑动,从而确定出多个句子组,将目标句子对应的第一句子分别与各句子组进行拼接,获得多个第二句子,分别将各第二句子输入第一分类模型获得多个第一概率,将各第一概率构成的概率向量输入第二分类模型,获得第二分类模型输出的第二概率,如果第二概率大于第二概率阈值,则确定目标句子属于目标类别,如果第二概率小于或等于第二概率阈值,则确定目标句子不属于目标类别。通过子窗口的滑动确定多个句子组,进而基于各句子组确定目标句子的类别,由于不同句子组可以体现目标句子与不同上下文句子的相关性,根据多个句子组对目标句子的类别进行识别,可以提高对目标句子类别进行识别的准确性。

需要说明的是,在另一种可能的实现方式中,根据步骤206获得的各第一概率识别目标句子的类别时,计算各第一概率的平均值,获得平均概率,然后比较平均概率与预设的第一概率阈值的大小关系,如果平均概率大于第一概率阈值,则确定目标句子属于目标类别。

在本申请实施例中,计算各第一概率的均值获得平均概率,根据平均概率与预设的第一概率阈值的大小关系,确定目标句子的类别,仅需训练用于获得第一概率的第一分类模型,而不需要训练用于获得第二概率的第二分类模型,使得该句子类别的识别方法更易实现,而且由于计算数据量较少,可以提高对句子类别进行识别的效率。

本领域技术人员可以知晓,除了本申请实施例中通过多窗口确定目标句子的上下文信息外,还可以通过其他方式确定目标句子的上下文信息,比如直接将目标句子之前的m个句子和目标句子之后的n个句子确定为目标句子的上下文信息等。

需要说明的是,上述各个方法实施例中所有的可选技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。

实施例三

图4是本申请实施例提供的一种识别对话中句子类别的装置的示意图。参见图4,本申请实施例提供的识别对话中句子类别的装置包括:

一个文本获取模块401,用于获取包括至少两个句子的对话文本;

一个信息拼接模块402,用于针对文本获取模块401获取到的对话文本中的每个句子,将用于指示该句子的说话人的说话人信息与该句子进行拼接,生成该句子对应的第一句子;

一个序列获取模块403,用于获得包括信息拼接模块402生成的各第一句子的句子序列;

一个上下文获取模块404,用于从序列获取模块403获取到的句子序列中,获取对话文本中待识别的目标句子的上下文信息,其中,上下文信息包括目标句子的上文句子和/或下文句子对应的第一句子;

一个类别识别模块405,用于根据信息拼接模块402获取到的目标句子对应的第一句子,及上下文获取模块404获取到的上下文信息,识别目标句子的类别。

在本申请实施例中,文本获取模块401可用于执行上述实施例一中的步骤101,信息拼接模块402可用于执行上述实施例一中的步骤102,序列获取模块403可用于执行上述实施例一中的步骤103,上下文获取模块404可用于执行上述实施例一中的步骤104,类别识别模块405可用于执行上述实施例一中的步骤105。

在本申请实施例中,将对话文本中每个句子与说话人信息进行拼接,获得每个句子对应的第一句子,对于对话文本中任意一个待识别的目标句子,获取该目标句子的上下文句子和/或下文句子对应的第一句子作为上下文信息,进而根据目标句子对应的第一句子和上下文信息,对目标句子的类别进行识别。由于目标句子对应的第一句子中包括说话人信息,而目标句子的上下文信息包括目标句子的上文句子和/或下文句子,因此在对目标句子的类别进行识别时,不仅可以参考目标句子本身的内容,还可以将目标句子的说话人和上下文句子作为参考信息,而句子的说话人和上下文均能够体现句子的类别,所以在对目标句子的类别进行识别可参考信息较多,从而可以提高对句子类别进行识别的准确性。

在一种可能的实现方式中,上下文获取模块404用于根据所述目标句子对应的所述第一句子在所述句子序列中的位置,确定所述目标句子对应的至少一个句子组,其中所述句子组包括:从所述句子序列中获取的位于所述目标句子对应的所述第一句子之前的至少一个所述第一句子,和/或,从所述句子序列中获取的位于所述目标句子对应的所述第一句子之后的至少一个所述第一句子;获得包括所述至少一个句子组的所述上下文信息。

在一种可能的实现方式中,上下文获取模块404用于将所述句子序列中位于所述目标句子对应的所述第一句子之前的i个所述第一句子、所述目标句子对应的所述第一句子和位于所述目标句子对应的所述第一句子之后的j个所述第一句子的顺序组合,确定为所述目标句子对应的一个所述句子组;将所述i在[0,m]内的可能取值与所述j在[0,n]内的可能取值进行组合,获得所述目标句子对应的(m+1)(n+1)个所述句子组,其中,所述m和所述n均为正整数,不同的所述句子组对应所述i与所述j的不同组合。

在一种可能的实现方式中,类别识别模块405用于将所述目标句子对应的所述第一句子,分别与所述上下文信息包括的所述至少一个句子组进行拼接,生成至少一个第二句子;针对生成的每个所述第二句子,将该第二句子输入预先训练的第一分类模型,获得所述第一分类模型针对该第二句子输出的第一概率;根据获得的各所述第一概率,识别所述目标句子的类别。

在一种可能的实现方式中,类别识别模块405用于针对生成的每个所述第二句子,均执行:根据该第二句子包括的所述句子组中,位于所述目标句子对应的所述第一句子之前和之后的所述第一句子的个数,确定该第二句子对应的所述第一分类模型;将该第二句子输入对应的所述第一分类模型,获得所述第一分类模型输出的对应于该第二句子的所述第一概率。

在一种可能的实现方式中,类别识别模块405用于针对生成的每个所述第二句子,均执行:对该第二句子进行词语分割,获得至少两个词语;根据预先创建的词典,分别将每个所述词语映射为词向量;根据各所述词向量,确定该第二句子对应的句向量;将所述句向量输入所述第一分类模型,获得所述第一分类模型针对该第二句子输出的所述第一概率。

在一种可能的实现方式中,类别识别模块405用于计算各所述词向量的平均值,作为该第二句子对应的所述句向量。

在一种可能的实现方式中,类别识别模块405用于计算各所述第一概率的平均值,获得平均概率;如果所述平均概率大于预设的第一概率阈值,则确定所述目标句子属于目标类别。

在一种可能的实现方式中,类别识别模块405用于通过获得的至少一个所述第一概率,构建包括至少一个维度的概率向量;将所述概率向量输入预先训练的第二分类模型,获得所述第二分类模型输出的第二概率;如果所述第二概率大于预设的第二概率阈值,则确定所述目标句子属于目标类别。

在一种可能的实现方式中,第二概率阈值为使第二分类模型的调和平均值最大的值。

需要说明的是,本申请实施例三提供的识别对话中句子类别的装置,与前述实施例一和实施例二提供的识别对话中句子类别的方法基于相同构思,具体内容可参见前述实施例一和实施例二中的描述,在此不再进行赘述。

实施例四

基于上述实施例一和实施例二所描述的识别对话中句子类别的方法,本申请实施例提供了一种电子设备,用于执行上述实施例一或实施例二提供的识别对话中句子类别的方法。图5是本申请实施例四提供的一种电子设备的示意图。参见图5,本申请实施例提供的电子设备50包括:至少一个处理器(processor)502、存储器(memory)504、总线506及通信接口(CommunicationsInterface)508。其中,

处理器502、通信接口508、以及存储器504通过通信总线506完成相互间的通信。

通信接口508,用于与其它设备进行通信。

处理器502,用于执行程序510,具体可以执行上述实施例一、实施例二或实施例四所描述的方法中的相关步骤。

具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。

处理器502可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。

存储器504,用于存放程序510。存储器504可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

实施例五

本申请实施例提供一种计算机存储介质,包括:计算机存储介质存储有计算机程序,在处理器执行计算机程序时,实现如本申请任一实施例所描述的识别对话中句子类别的方法。

在本申请实施例中,将对话文本中每个句子与说话人信息进行拼接,获得每个句子对应的第一句子,对于对话文本中任一待识别的目标句子,对于对话文本中任一待识别的目标句子,获取该目标句子的上下文句子对应的第一句子作为上下文信息,进而根据目标句子对应的第一句子和上下文信息,对目标句子的类别进行识别。由于目标句子对应的第一句子中包括说话人信息,而目标句子的上下文信息包括目标句子的上下文句子,因此在对目标句子的类别进行识别时,不仅可以参考目标句子本身的内容,还可以参考目标句子的说话人和上下文句子,而句子的说话人和上下文均能够体现句子的类别,所以可以参考较多信息对目标句子的类别进行识别,从而可以提高对句子类别进行识别的准确性。

至此,已经对本申请的特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作可以按照不同的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序,以实现期望的结果。在某些实施方式中,多任务处理和并行处理可以是有利的。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本申请的实施例可提供为方法、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定事务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行事务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

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

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

相关技术
  • 识别对话中句子类别的方法、装置、电子设备和存储介质
  • 识别对话中句子类别的方法、装置、电子设备和存储介质
技术分类

06120112940727