CN111563161B - 一种语句识别方法、语句识别装置及智能设备 - Google Patents
一种语句识别方法、语句识别装置及智能设备 Download PDFInfo
- Publication number
- CN111563161B CN111563161B CN202010340047.8A CN202010340047A CN111563161B CN 111563161 B CN111563161 B CN 111563161B CN 202010340047 A CN202010340047 A CN 202010340047A CN 111563161 B CN111563161 B CN 111563161B
- Authority
- CN
- China
- Prior art keywords
- sentence
- statement
- current user
- spliced
- result
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
- G06F16/353—Clustering; Classification into predefined classes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Databases & Information Systems (AREA)
- Machine Translation (AREA)
Abstract
本申请公开了一种语句识别方法、语句识别装置及智能设备,该方法将当前用户语句拼接上历史语句后输入到预训练模型中,得到预训练模型发掘的拼接语句的信息,以实现在少语料的情况下发掘出较多的特征信息;进一步地,再通过RNN模型来拆分字符级编码及上下文信息的编码,提取所需的特征,并基于所提取的特征实现对当前用户语句的识别。上述识别过程还有效结合了上下文信息,提升了对当前用户语句的理解效率及理解准确度。
Description
技术领域
本申请属于人工智能技术领域,尤其涉及一种语句识别方法、语句识别装置、智能设备及计算机可读存储介质。
背景技术
随着技术的发展,人机对话交互***得到了日益广泛的应用,为了实现自动化的人机对话,计算机需要从用户输入的文字中解析出蕴含的意图、对话行为类别,并抽取出其中的关键词,来制定相应的答复策略。近些年来,随着深度学习技术的发展及计算机运算能力的提升,人们开始将深度学习技术应用在人机对话***当中。然而,当前处理基于多轮会话的多任务语义解析这一任务的代表模型仍存在准确率不高等问题,无法满足人们的需求。
发明内容
本申请实施例提供了一种语句识别方法、语句识别装置、智能设备及计算机可读存储介质,可提升对当前用户语句的理解效率及理解准确度。
本申请的第一方面提供了一种语句识别方法,包括:
获取当前用户语句及历史语句集合,其中,上述当前用户语句为当前轮次的用户语句,上述历史语句集合由至少一个历史语句构成,上述历史语句包括各个历史轮次的用户语句及各个历史轮次的***语句;
将上述当前用户语句分别与上述历史语句集合中的各个历史语句进行拼接,得到至少一个拼接语句;
分别为至少一个拼接语句标记位置;
将至少一个已标记位置的拼接语句输入至预训练模型中,分别对应得到至少一个预训练结果;
将上述至少一个预训练结果输入至已训练的第一类循环神经网络(RecurrentNeural Network,RNN)模型中,分别对应得到上述第一类循环神经网络模型输出的与各个预训练结果相关的前向输出结果和后向输出结果;
根据与各个预训练结果相关的前向输出结果和后向输出结果对上述当前用户语句进行识别。
本申请的第二方面提供了一种语句识别装置,包括:
语句获取单元,用于获取当前用户语句及历史语句集合,其中,上述当前用户语句为当前轮次的用户语句,上述历史语句集合由至少一个历史语句构成,上述历史语句包括各个历史轮次的用户语句及各个历史轮次的***语句;
语句拼接单元,用于将上述当前用户语句分别与上述历史语句集合中的各个历史语句进行拼接,得到至少一个拼接语句;
位置标记单元,用于分别为至少一个拼接语句标记位置;
预训练结果获取单元,用于将至少一个已标记位置的拼接语句输入至预训练模型中,分别对应得到至少一个预训练结果;
第一网络输出结果获取单元,用于将上述至少一个预训练结果输入至已训练的第一类循环神经网络模型中,分别对应得到上述第一类循环神经网络模型输出的与各个预训练结果相关的前向输出结果和后向输出结果;
语句识别单元,用于根据与各个预训练结果相关的前向输出结果和后向输出结果对上述当前用户语句进行识别。
本申请的第三方面提供了一种智能设备,上述智能设备包括存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现如上述第一方面的方法的步骤。
本申请的第四方面提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现如上述第一方面的方法的步骤。
本申请的第五方面提供了一种计算机程序产品,上述计算机程序产品包括计算机程序,上述计算机程序被一个或多个处理器执行时实现如上述第一方面的方法的步骤。
由上可见,在本申请方案中,首先获取当前用户语句及历史语句集合,其中,上述当前用户语句为当前轮次的用户语句,上述历史语句集合由至少一个历史语句构成,上述历史语句包括各个历史轮次的用户语句及各个历史轮次的***语句,然后将上述当前用户语句分别与上述历史语句集合中的各个历史语句进行拼接,得到至少一个拼接语句,接着分别为至少一个拼接语句标记位置,并将至少一个已标记位置的拼接语句输入至预训练模型中,分别对应得到至少一个预训练结果,随后将上述至少一个预训练结果输入至已训练的第一类循环神经网络模型中,分别对应得到上述第一类循环神经网络模型输出的与各个预训练结果相关的前向输出结果和后向输出结果,最后根据与各个预训练结果相关的前向输出结果和后向输出结果,对上述当前用户语句进行识别。通过本申请方案,将当前用户语句拼接上历史语句后输入到预训练模型中,得到预训练模型发掘的拼接语句的信息,以实现在少语料的情况下发掘出较多的特征信息;进一步地,还通RNN模型来拆分字符级编码及上下文信息的编码,提取所需的特征,并基于所提取的特征实现对当前用户语句的识别。上述识别过程还有效结合了上下文信息,提升了对当前用户语句的理解效率及理解准确度。可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的语句识别方法的实现流程示意图;
图2是本申请实施例提供的语句识别方法中,第一类循环神经网络模型的输出的示意图;
图3是本申请实施例提供的语句识别方法所采用的模型框架示意图;
图4是本申请实施例提供的语句识别装置的结构框图;
图5是本申请实施例提供的智能设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
实施例一
下面对本申请实施例提供的一种语句识别方法进行描述,请参阅图1,本申请实施例中的语句识别方法包括:
步骤101,获取当前用户语句及历史语句集合;
在本申请实施例中,可以先接收用户本次所输入的语句,也即当前用户语句。该当前用户语句为本次语句识别的对象,也即,本次语句识别的目的为识别出上述当前用户语句的意图、对话行为及词槽。考虑到多轮会话的语句之间往往联系较为紧密,因而,此处还可以考虑历史语句对上述当前用户语句的识别所带来的影响,上述历史语句包括历史用户语句以及历史***语句,其中,上述历史用户语句指的是各个历史轮次的用户语句,上述历史***语句指的是各个历史轮次的***语句,上述用户语句为用户输入的语句,上述***语句为智能设备根据用户语句所反馈的语句。具体地,可以将多轮会话中的所有历史语句全部存入至历史语句集合中,因而,此处只需获取上述历史语句集合,即可得到多轮会话中的所有历史语句。
假定一轮会话中包括一个用户语句u以及一个智能设备根据历史信息所反馈的***语句s,则当当前轮次为第n轮时,可以将当前用户语句记为un,此时还存在有n-1个历史轮次的用户语句(即第1轮、第2轮、第3轮……直至第n-1轮的用户语句)和n-1个历史轮次的***语句(即第1轮、第2轮、第3轮……直至第n-1轮的***语句)。为了更好的进行说明,上述历史语句集合可以分为历史用户语句集合及历史***语句集合,分别表示为Cu及Cs,上述历史用户语句集合及历史***语句集合的组成如下所示:
其中,上述Cu为历史用户语句集合,上述Cs为历史***语句集合,二者一起构成了历史语句集合。
步骤102,将上述当前用户语句分别与上述历史语句集合中的各个历史语句进行拼接,得到至少一个拼接语句;
在本申请实施例中,为了有效地结合上下文信息,可以在获取到当前用户语句及历史语句集合后,将上述当前用户语句分别与上述历史语句集合中的各个历史语句进行拼接,得到至少一个拼接语句。考虑到多轮会话所包含的内容的丰富性,可以将当前用户语句分别与各个历史语句进行拼接。可选地,上述步骤102可具体表现为:
A1、获取组成上述当前用户语句的各个词语;
在本申请实施例中,通过对当前用户语句un进行分词,可以获得组成上述当前用户语句un的各个词语。具体地,假设当前用户语句un中含有个词语,则上述当前用户语句un可以表示为/>其中,w为组成语句的一个词语;w的下角标表示该词语所组成的是哪一语句,也即该词语所属的语句;w的上角标表示组成语句的第几个词语。也即,上述当前用户语句un的表示中,/>指的是组成当前用户语句un的第1个词语,/>指的是组成当前用户语句un的第2个词语,以此类推,/>指的是组成当前用户语句un的第/>个词语。
A2、获取组成待拼接历史语句的各个词语;
在本申请实施例中,上述待拼接历史语句为上述历史语句集合中的任一历史语句。可以对上述待拼接历史语句也进行分词处理,得到组成上述待拼接历史语句的各个词语。与上述步骤A1相类似的,可以以相同的方式来表示上述待拼接历史语句:例如,假设待拼接历史语句为sn-1,且该待拼接历史语句sn-1中含有个词语,则上述待拼接历史语句sn-1可以表示为/>
A3、基于上述待拼接历史语句-当前用户语句的顺序,通过预设的间隔符将组成上述当前用户语句的各个词语拼接于组成上述待拼接历史语句的各个词语之后,得到上述当前用户语句与上述待拼接历史语句的拼接语句。
在本申请实施例中,每一个拼接过程是将上述当前用户语句un放置于历史语句之后,也即,基于上述待拼接历史语句-当前用户语句的顺序进行拼接,所得到的拼接语句是待拼接历史语句在前,当前用户语句在后。具体地,在拼接的过程中,使用间隔符[SEP]拼在两句话的中间。以当前用户语句un与待拼接历史语句为sn-1为例,所得到的拼接结果如下所示:
其中,上述C为拼接语句,下角标表示了该拼接语句由哪两个语句拼接而成。通过上述拼接结果的示例可知,组成待拼接历史语句的各个词语在前,组成当前用户语句un的各个词语在后,通过间隔符[SEP]间隔开来。
需要注意的是,由于多轮会话中有n-1个历史用户语句及n-1个历史***语句,每一历史用户语句及每一历史***语句都可作为上述待拼接历史语句与上述当前用户语句un进行拼接,因而,最终可以得到k个拼接语句,其中,k=2*(n-1)。
步骤103,分别为至少一个拼接语句标记位置;
在本申请实施例中,需要为每一个拼接语句标记位置,具体为标记拼接语句中哪一部分内容来自于历史语句,哪一部分内容来自于当前用户语句。在一些实施例中,可以采用布尔向量来实现上述标记位置的操作,也即,可以在获得了k个拼接语句后,分别为各个拼接语句生成相应的布尔向量,以通过相应的布尔向量来标记各个拼接语句的位置。可选地,上述步骤103可具体表现为:
B1、基于上述待处理拼接语句初始化布尔向量;
在本申请实施例中,上述待处理拼接语句为任一拼接语句。针对待处理拼接语句,可以为其初始化一布尔向量,其中,为该待处理拼接语句所初始化的布尔向量所包含的元素数量与该待处理拼接语句所包含的元素数量相同,以使得上述布尔向量中的每一元素唯一对应该待处理拼接语句中的一个元素。例如,根据当前用户语句un与待拼接历史语句sn-1所得到的拼接语句中,包含的元素有:个组成待拼接历史语句sn-1的词语,/>个组成当前用户语句un的词语以及一个间隔符[SEP];基于此,可知根据当前用户语句un与待拼接历史语句sn-1所得到的拼接语句中包含有/>个元素,则所对应生成的布尔向量中,也包含有/>个元素,且这些元素的取值均为默认值,其中,该默认值可以为0。
B2、将待处理拼接语句中属于上述当前用户语句的元素在布尔向量中所对应的元素设定为预设的第一数值,其中,上述待处理拼接语句为任一拼接语句;
在本申请实施例中,通过对布尔向量中的元素进行赋值来实现位置的标记。将上述待处理拼接语句中属于上述当前用户语句的元素在布尔向量中所对应的元素设定为预设的第一数值。具体地,由于布尔向量中后个元素分别与上述当前用户语句的各个词语相对应,因而,可以将布尔向量中后/>个元素的值设定为预设的第一数值。具体地,上述第一数值可以为1。
B3、将上述待处理拼接语句中属于历史语句的元素在上述布尔向量中所对应的元素设定为预设的第二数值;
B4、将上述待处理拼接语句中的间隔符在上述布尔向量中所对应的元素设定为预设的第二数值;
在本申请实施例中,可以将布尔向量中除了后个元素之外的其它元素的值设定为预设的第二数值。具体地,上述第二数值可以为0。以根据当前用户语句un与待拼接历史语句sn-1所得到的拼接语句作为待处理拼接语句为例进行说明,则根据该待处理拼接语句所对应生成的布尔向量中包含有共有/>个元素的值为“0”,/>个元素的值为“1”,该布尔向量具体为/>。
B5、将上述布尔向量的长度填充或修剪至预设长度,将填充或修剪后的上述布尔向量作为上述待处理拼接语句所相应的布尔向量。
在本申请实施例中,考虑到日常对话时,用户所输入的语句的长度不是固定的,智能设备的***所反馈的语句也不是固定的,也即,当前用户语句及各个历史语句的长度不一,因而,根据步骤B3所生成的各个拼接语句的布尔向量也有长有短,为了后续运算方便,此处考虑将所生成的布尔向量填充或修剪至预设长度,其中,上述预设长度可以为64或其它数值,该预设长度可由研发人员进行设定,此处不作限定。可选地,上述步骤B4具体表现为:
B51、将上述布尔向量的长度与预设长度进行比较;
在本申请实施例中,可以将根据上述待处理拼接语句而生成的布尔向量的长度与预设长度进行比对,根据比对结果来确定是进行填充处理还是进行修剪处理。
B52、若上述布尔向量的长度长于上述预设长度,则从上述布尔向量的最后一位元素开始向前删除元素,直至上述布尔向量的元素等于上述预设长度为止,得到修剪后的上述布尔向量;
在本申请实施例中,当发现上述布尔向量的长度长于上述预设长度时,认为该布尔向量过长,此时需要进行修剪处理。上述修剪处理具体为从该布尔向量的最后一位元素开始作删除操作,并依次向前进行元素删除操作,直至上述布尔向量的元素等于上述预设长度为止,即可得到修剪后的上述布尔向量;也即,每一次删除元素时,都删除最后一位元素。为了更好的说明修剪过程,仅作为示例,假定预设长度为16,又假定所生成的布尔向量为{0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1},则修剪后的所得到的布尔向量为{0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1}。
B53、若上述布尔向量的长度短于上述预设长度,则从上述布尔向量的最后一位元素开始向后新增元素,直至上述布尔向量的元素等于上述预设长度为止,得到填充后的上述布尔向量,其中,新增的元素的取值为预设的第二数值。
在本申请实施例中,当发现上述布尔向量的长度短于上述预设长度时,认为该布尔向量过短,此时需要进行填充处理。上述填充处理具体为从上述布尔向量的最后一位元素开始向后新增元素,直至上述布尔向量的元素等于上述预设长度为止,即可得到填充后的上述布尔向量;也即,每一次新增元素时,都在最后一位元素之后进行新增操作。为了更好的说明填充过程,仅作为示例,假定预设长度为16,又假定所生成的布尔向量为{0,0,0,0,1,1},则填充后的所得到的布尔向量为{0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0}。可选地,对于所得到的k个拼接语句,以及这k个拼接语句所对应的布尔向量,本申请实施例先后采用两类不同的循环神经网络模型来进行处理。
需要注意的是,若上述布尔向量的长度等于上述预设长度,则无需对所生成的布尔向量进行填充或修剪。
步骤104,将至少一个已标记位置的拼接语句输入至预训练模型中,分别对应得到至少一个预训练结果;
在本申请实施例中,在通过RNN模型对各个已标记位置的拼接语句进行处理前,会通过预训练模型先对各个拼接语句及各个拼接语句相应的布尔向量进行处理,其中,上述预训练模型具体为预训练的BERT(Bidirectional Encoder Representations fromTransformers)模型。在本申请实施例中,可以将已标记位置的待处理拼接语句(在采用布尔向量标记位置时,可以是待处理拼接语句及上述待处理拼接语句相应的布尔向量)输入至上述BERT模型中,然后将上述BERT模型中最后一层隐藏层的输出作为与上述待处理拼接语句相关联的预训练结果,其中,上述待处理拼接语句与前文一样,为任一拼接语句。为了方便说明,以采用布尔向量标记位置及采用BERT模型作为预处理模型为例,本申请实施例中以H来表述上述预训练结果,具体如下所示:
上式中,H1为将拼接语句以及相应的布尔向量/>输入至BERT模型后所得到的最后一层隐藏层的输出,也即根据拼接语句/>以及相应的布尔向量/>所得到的预训练结果,以此类推,得到上式中的k个预训练结果H。由于共有k个拼接语句,因而,所得到的预训练结果H也会有k个,分别表示为H1、H2、……、Hk。
步骤105,将上述至少一个预训练结果输入至已训练的第一类循环神经网络模型中,分别对应得到上述第一类循环神经网络模型输出的与各个预训练结果相关的前向输出结果及后向输出结果;
在本申请实施例中,通过预训练模型,例如BERT模型强大的表征能力,可以将各个拼接语句的会话信息表达出来,但是,由于预训练模型中的参数是固化的,因而其无法表整出更多的拼接语句的具体关系信息。基于此,本申请实施例引入了第一类RNN,也即第一类循环神经网络模型,目的是为了得到拼接语句中,当前用户语句的各个词语与组成该拼接语句的历史语句的各个词语的相关关系。通过上述第一类循环神经网络模型沿着词汇去编码,可以获取到当前用户语句中各个词语与各历史语句的注意力关系分布情况。上述第一类循环神经网络模型采用的是双向RNN(BiRNN),具体为BiGRU,因而,上述第一类循环神经网络模型的输出包括前向输出结果及后向输出结果,以不丢失后文的信息。具体地,其编码的输出结果如下所示:
上式中,o为上述第一类循环神经网络模型(也即BiGRU)的输出结果,o的下角标f表示的是前向传播计算出的输出结果(也即前向输出结果),b表示的是后向传播计算出的输出结果(也即后向输出结果),l为上述预设长度(也即进行了修剪或填充后的布尔向量的长度)。以任一预训练结果作为上述第一类循环神经网络模型的输入为例作出说明:由于拼接语句的布尔向量的长度被限定为l,因而,上述预训练结果H中也只会有l个元素,这l个元素通过上述第一类循环神经网络模型后,得到l个前向传播的前向输出结果,以及l个后向传播的后向输出结果;这l个前向输出结果以及l个后向输出结果即为上述第一类循环神经网络模型的针对该输入(一预训练结果H)所得到的输出;也即,这l个前向输出结果以及l个后向输出结果与一预训练结果H相关。以此类推,每个预训练结果均对应相关有l个前向输出结果以及l个后向输出结果。
步骤106,根据与各个预训练结果相关的前向输出结果和后向输出结果,对上述当前用户语句进行识别。
在本申请实施例中,上述第一类循环神经网络模型的输出可用来表示历史语句的各个词语与当前用户语句的词语的关系,以及填充部分的表征结果;基于此,可以对与各个预训练结果相关的前向输出结果和后向输出结果进行分析,以识别出上述当前用户语句的意图、对话行为及词槽。在本申请实施例中,采用第二类循环神经网络模型沿着上下文进行编码,具体可以将上述第一类循环神经网络模型所输出的注意力关系分布情况进行编码,进而有效地根据上下文的内容输出当前会话语义帧信息,上述语义帧信息包括意图、对话行为及词槽。也即,可以将上述第一类循环神经网络模型的输出理解为一种中间结果。
在一种应用场景下,可采用第二类循环神经网络模型对与各个预训练结果相关的前向输出结果和后向输出结果进行拼接及分析,以得到上述当前用户语句的意图及对话行为,具体表现为:
C1、将与同一预训练结果相关的最后一个前向输出结果与最后一个后向输出结果进行拼接,以得到与各个预训练结果相关的拼接结果;
在本申请实施例中,上述拼接的过程具体为:将与同一预训练结果相关的第一类循环神经网络模型的前向最后一个神经元的输出结果与后向最后一个神经元的输出结果进行拼接,用于表示当前用户语句与各个历史语句的拼接全文理解情况,所得到的至少一个拼接结果的表达如下:
通过上述拼接过程,得到了k个拼接结果,以字符O表示,该k个拼接结果可以表示一系列的拼接全文理解情况。以O1为例,其由及/>拼接而得,而/>及/>均与预训练结果H1相关,也即,可以认为上述O1与预训练结果H1相关。以此类推,与预训练结果H2相关的拼接结果为O2,……,与预训练结果Hk相关的拼接结果为Ok。
C2、将与各个预训练结果相关的拼接结果输入至已训练的第二类循环神经网络模型中,通过第二类循环神经网络模型训练处理,得到上述当前用户语句的意图及对话行为。
在本申请实施例中,识别意图及对话行为相比于识别词槽来说,通常更需要关注上下文的信息,所以识别意图及对话行为与识别词槽所使用RNN模型并不共享参数,且识别意图及对话行为与识别词槽时的输入也不相同。本申请实施例中,上述第二类循环神经网络模型中具体包含有两个GRU模型,分别记为第一GRU模型(以GRUG表示)及第二GRU模型以GRUS表示)中,上述第一GRU模型用于识别意图及对话行为,上述第二GRU模型用于识别词槽;除此之外,上述第二类循环神经网络模型还包含有一BiGRU模型,且该BiGRU模型的参数与构成第一类循环神经网络模型的BiGRU模型的参数不相同,该BiGRU也用于识别词槽。后文会对上述第二类循环神经网络模型所包含的各个模型进行解释及说明。
具体地,第二类循环神经网络模型通过至少一个拼接结果来预测当前用户语句的意图及对话行为,指的是上述第一GRU模型通过至少一个拼接结果来预测当前用户语句的意图及对话行为,其过程为:
将至少一个拼接结果输入至第一GRU模型中,得到最后一个隐藏层的输出,具体表达为:
G=GRUG(O1,O2,...,Ok-1,Ok)
其中,O为步骤C1中的拼接结果,具体可查阅步骤C1对拼接结果的具体表达,此处不作赘述。将上述第一GRU模型的隐藏层的输出G作为意图及对话行为分类的分类层的输入,考虑到意图及对话行为均可能为多标签的结果,所以此处所采用的激活函数优选为sigmoid,具体表达为:
PIntent=Sigmoid(UG)
PAction=Sigmoid(VG)
上式中,U及V均为第一GRU模型的网络参数,指的是训练过程中学习的对象;G为步骤C2中所给出的第一GRU模型最后一个隐藏层的输出;PIntent为当前用户语句命中各个意图的概率;PAction为当前用户语句命中各个对话行为的概率。因而,对当前用户语句的意图及对话行为的预测可具体为:将所有拼接结果输入至上述第一GRU模型中,得到上述第一GRU模型中最后一层隐藏层的输出;将上述第一GRU模型中最后一层隐藏层的输出作为上述第一GRU模型中与意图及对话行为相关的分类层的输入,得到与意图及对话行为相关的分类层所输出的上述当前用户语句属于每一意图类别的概率及上述当前用户语句属于每一对话行为类别的概率;根据上述当前用户语句属于每一意图类别的概率,确定上述当前用户语句的意图,并根据上述当前用户语句属于每一对话行为类别的概率,确定上述当前用户语句的对话行为。例如,将目标意图类别确定为上述当前用户语句的意图,上述目标意图类别可以是概率最大的意图类别,也可以是概率高于一预设意图概率阈值的意图类别,此处不作限定;将目标对话行为类别确定为上述当前用户语句的对话行为,上述目标对话行为类别可以是概率最大的对话行为类别,也可以是概率高于一预设对话行为概率阈值的对话行为类别,此处不作限定。
在一种应用场景下,可采用第二类循环神经网络模型对与各个预训练结果相关的前向输出结果和后向输出结果进行筛选及分析,以得到上述当前用户语句的词槽,具体表现为:
D1、基于预设的筛选条件,对与各个预训练结果相关的前向输出结果及后向输出结果进行筛选,得到至少一个筛选结果;
在本申请实施例中,智能设备在解析当前用户语句的词槽时,可以对上述第一类循环神经网络模型所输出的分别与各个预训练结果相关的前向输出结果和后向输出结果进行筛选,筛选出当前用户语句un的各个词语与历史会话的注意力关系分布。可选地,在采用布尔向量标记位置时,上述步骤D1具体包括:
D11、获取与待筛选输出相关联的拼接语句的布尔向量,记为待筛选布尔向量,其中,上述待筛选输出为上述第一类循环神经网络模型所输出的与任一预训练结果相关的前向输出结果及后向输出结果;
D12、基于上述待筛选输出与上述布尔向量进行叉乘运算;
D13、将叉乘运算结果中大于0的元素保留,小于或等于0的元素剔除,得到与待筛选输出相关联的筛选结果。
在本申请实施例中,对第一类循环神经网络模型的输出作详细介绍:前文已介绍了上述第一类循环神经网络模型的输出包括前向输出结果及后向输出结果,请参阅图2,图2为第一类循环神经网络模型(BiGRU模型)的输出示意:由于前向输出结果与后向输出结果在各自的方向上的排列顺序分别是由o1至ol,因而,实际上第一个前向输出结果与最后一个后向输出结果/>是相关联的,以此类推,可知第i个前向输出结果与第l-i+1个后向输出结果是相关联的(i为不大于l的正整数);也即,前向输出结果正序排列,后向输出结果倒序排列,可得到与同一预训练结果相关联的前向输出结果与后向输出结果。在了解了第一类循环神经网络模型的输出的基础上,上述筛选过程可以通过以下式子进行说明:
上式中,字符B代表的是与待筛选输出相关联的拼接语句的布尔向量,上述待筛选输出为上述第一类循环神经网络模型所输出的与任一预训练结果相关的前向输出结果及后向输出结果。由上式可知,在得到待筛选输出(也即与同一预训练结果相关联的前向输出与后向输出)后,将该待筛选输出所表示的各个相关联的前向输出结果与后向输出结果进行拼接,得到该待筛选输出下的l组拼接后的输出,再通过与该待筛选输出相关联的拼接语句的布尔向量与该待筛选输出下的l组拼接后的输出分别进行叉乘运算;将叉乘运算所得到的结果中大于0的元素保留,小于或等于0的元素剔除,也即,只有大于0的部分才能真正的参与到后续运算中。
D2、将上述至少一个筛选结果输入至已训练的第二类循环神经网络模型中,得到上述当前用户语句的词槽;
在本申请实施例中,第二类循环神经网络模型通过至少一个筛选结果来预测当前用户语句的词槽,指的是上述第二GRU模型通过至少一个筛选结果来预测当前用户语句的词槽,具体可表达为:
其中,GRUG(也即第一GRU模型)与GRUS(也即第二GRU模型)不共享参数;Sj为GRUs针对当前用户语句的第j个词语所输出的词槽信息,j满足h为步骤D1中的筛选结果,只有大于0的h才可参与本步骤的运算,具体可查阅步骤D1进行筛选时所采用的公式及相关解释,此处不作赘述。这样一来,即可得到当前用户语句中所有词语的词槽信息,其具体表达为:
上述式子中,等式左边的S用于表示上述第二GRU模型GRUs所输出的当前用户语句所包含的词槽。需要注意的是,上述S并非本次当前用户语句的最终的词槽预测结果。在输出最终的词槽预测结果之前,还可以将上述G(第一GRU模型最后一个隐藏层的输出,请参阅步骤C2)及S(第二GRU模型运算得到的当前用户语句中所有词语的词槽信息,请参阅步骤D2)作为一个新的BiGRU模型的输入,将该BiGRU模型的输出层的结果放入softmax层,通过该新的BiGRU模型输出最终的词槽预测结果,如下所示:
通过上述的计算公式,可以计算出当前用户语句中的每一词语命中对应词槽的概率值,将该概率值与一预设的词槽概率阈值进行比对后,可以判定第j个词语所对应的词槽是否成立;也即,上述/>给出了当前用户语句中各个词语所分别对应的词槽,而通过上述/>的计算公式,可知当前用户语句中的某一词语所对应的词槽是否成立;例如,当前用户语句中第一个词语/>所对应的词槽表示为S1,在计算P1 Slot后,将该P1 Slot与上述词槽概率阈值进行比对,若P1 Slot高于该词槽概率阈值,则可确定当前用户语句中第一个词语/>所对应的词槽确实为S1;若P1 Slot不高于该词槽概率阈值,则可确定当前用户语句中第一个词语/>不存在对应的词槽。可以认为,上述第二GRU模型所得到的是当前用户语句中的各个词语分别可能对应的词槽,而上述新的BiGRU模型则是对当前用户语句中的各个词语分别可能对应的词槽进行筛选。
需要注意的是,在第二类循环神经网络模型的训练过程中,可以使用交叉熵作为意图预测、对话行为预测及词槽预测这三个任务的损失函数,并将各个任务的损失之和作为优化的对象。
请参阅图3,图3示出了本申请实施例提供的语句识别方法所采用的模型框架,下面进行简单介绍:
在得到当前用户语句un及历史语句u1、s1、u2、s2、……、un-1,sn-1之后,将当前用户语句un与各个历史语句进行拼接,得到k个拼接语句(及各个拼接语句的布尔向量,图3中未示出),并将k个拼接语句(及各个拼接语句的布尔向量,图3中未示出)输入至BERT模型,该BERT模型的输出会再输入至第一类循环神经网络模型(也即图中的BiGRUu模型)中,BiGRUu模型的输出再通过第二类循环神经网络模型(包括不共享参数的第一GRU模型GRUG及第二GRU模型GRUS,以及图3中的BiGRUS模型;需要注意的是,图3中未单独示出第一GRU模型GRUG及第二GRU模型GRUS;也即,虽然图3中仅示出一GRU模型,但该GRU模型实际上采用了两组不同的参数)进行处理,得到当前用户语句un的意图、对话行为(由第一GRU模型GRUG模型而得)及词槽(由BiGRUS模型而得)。
由上可见,本申请方案中所提出的语句识别方法将当前用户语句拼接上历史语句后输入到BERT模型中,得到BERT模型发掘的拼接语句的信息,以实现在少语料的情况下发掘出较多的特征信息;进一步地,还通过两类RNN模型来拆分字符级编码及上下文信息的编码,每一类RNN负责编码一套内容,分工明确,各自提取所需的特征,最终通过单一的模型(也即第二类RNN模型)联合预测出当前用户语句的意图、对话行为及词槽信息。上述预测过程还有效结合了上下文信息,提升了对当前用户语句的理解效率及理解准确度。
实施例二
本申请实施例二提供了一种语句识别装置,上述语句识别装置可集成于智能设备中,如图4所示,本申请实施例中的语句识别装置400包括:
语句获取单元401,用于获取当前用户语句及历史语句集合,其中,上述当前用户语句为当前轮次的用户语句,上述历史语句集合由至少一个历史语句构成,上述历史语句包括各个历史轮次的用户语句及各个历史轮次的***语句;
语句拼接单元402,用于将上述当前用户语句分别与上述历史语句集合中的各个历史语句进行拼接,得到至少一个拼接语句;
位置标记单元403,用于分别为至少一个拼接语句标记位置;
预训练结果获取单元404,用于将至少一个已标记位置的拼接语句输入至预训练模型中,分别对应得到至少一个预训练结果;
第一网络输出结果获取单元405,用于将上述至少一个预训练结果输入至已训练的第一类循环神经网络模型中,分别对应得到上述第一类循环神经网络模型输出的与各个预训练结果相关的前向输出结果和后向输出结果;
语句识别单元406,用于根据与各个预训练结果相关的前向输出结果和后向输出结果对上述当前用户语句进行识别。
可选地,上述语句识别单元406,包括:
输出拼接子单元,用于将与同一预训练结果相关的最后一个前向输出结果与最后一个后向输出结果进行拼接,以得到与各个预训练结果相关的拼接结果;
意图及对话行为获取子单元,用于将与各个预训练结果相关的拼接结果输入至已训练的第二类循环神经网络模型中,通过第二类循环神经网络模型训练处理,得到上述当前用户语句的意图及对话行为。
可选地,上述第二类循环神经网络模型包括第一GRU模型,上述意图及对话行为获取子单元,包括:
隐藏层输出获取子单元,用于将所有拼接结果输入至上述第一GRU模型中,得到上述第一GRU模型中最后一层隐藏层的输出;
概率获取子单元,用于将上述第一GRU模型中最后一层隐藏层的输出作为上述第一GRU模型中与意图及对话行为相关的分类层的输入,得到与意图及对话行为相关的分类层所输出的上述当前用户语句属于每一意图类别的概率及上述当前用户语句属于每一对话行为类别的概率;
意图及对话行为确定子单元,用于根据上述当前用户语句属于每一意图类别的概率,确定上述当前用户语句的意图,并根据上述当前用户语句属于每一对话行为类别的概率,确定上述当前用户语句的对话行为。
可选地,上述语句识别单元406,包括:
输出筛选子单元,用于基于预设的筛选条件,对与各个预训练结果相关的前向输出结果和后向输出结果进行筛选,得到至少一个筛选结果,其中,一个筛选结果包括与一个预训练结果相关的前向输出结果和后向输出结果;
词槽获取子单元,用于将上述至少一个筛选结果输入至已训练的第二类循环神经网络模型中,得到上述当前用户语句的词槽。
可选地,上述语句拼接单元402,包括:
词语获取子单元,用于获取组成上述当前用户语句的各个词语,以及获取组成待拼接历史语句的各个词语,其中,上述待拼接历史语句为上述历史语句集合中的任一历史语句;
语句拼接子单元,用于基于上述待拼接历史语句-当前用户语句的顺序,通过预设的间隔符将组成上述当前用户语句的各个词语拼接于组成上述待拼接历史语句的各个词语之后,得到上述当前用户语句与上述待拼接历史语句的拼接语句。
可选地,上述位置标记单元403,包括:
布尔向量初始化单元,用于基于上述待处理拼接语句初始化布尔向量,其中,上述待处理拼接语句为任一拼接语句,上述布尔向量中的每一元素唯一对应上述待处理拼接语句中的一个元素;
第一数值设定子单元,用于将上述待处理拼接语句中属于上述当前用户语句的元素在布尔向量中所对应的元素设定为预设的第一数值,其中,上述待处理拼接语句为任一拼接语句;
第二数值设定子单元,用于将上述待处理拼接语句中属于历史语句的元素在上述布尔向量中所对应的元素设定为预设的第二数值,并将上述待处理拼接语句中的间隔符在上述布尔向量中所对应的元素设定为预设的第二数值;
向量编辑子单元,用于将上述布尔向量的长度填充或修剪至预设长度,将填充或修剪后的上述布尔向量作为上述待处理拼接语句所相应的布尔向量,以通过上述布尔向量对相应的待处理拼接语句标记位置。
可选地,上述向量编辑子单元,包括:
长度比较子单元,用于将上述布尔向量的长度与预设长度进行比较;
向量修剪子单元,用于若上述布尔向量的长度长于上述预设长度,则从上述布尔向量的最后一位元素开始向前删除元素,直至上述布尔向量的元素等于上述预设长度为止,得到修剪后的上述布尔向量;
向量填充子单元,用于若上述布尔向量的长度短于上述预设长度,则从上述布尔向量的最后一位元素开始向后新增元素,直至上述布尔向量的元素等于上述预设长度为止,得到填充后的上述布尔向量,其中,新增的元素的取值为预设的第二数值。
可选地,上述预训练结果获取单元404,具体用于将已标记位置的待处理拼接语句输入至上述预训练模型中,将上述预训练模型中最后一层隐藏层的输出作为与上述待处理拼接语句相关联的预训练结果,其中,上述待处理拼接语句为任一拼接语句。
由上可见,本申请实施例所提出的语句识别装置将当前用户语句拼接上历史语句后输入到BERT模型中,得到BERT模型发掘的拼接语句的信息,以实现在少语料的情况下发掘出较多的特征信息;进一步地,还通过两类RNN模型来拆分字符级编码及上下文信息的编码,每一类RNN负责编码一套内容,分工明确,各自提取所需的特征,最终通过单一的模型(也即第二类RNN模型)联合预测出当前用户语句的意图、对话行为及词槽信息。上述预测过程还有效结合了上下文信息,提升了对当前用户语句的理解效率及理解准确度。
实施例三
本申请实施例三提供了一种智能设备,请参阅图5,本申请实施例中的智能设备5包括:存储器501,一个或多个处理器502(图5中仅示出一个)及存储在存储器501上并可在处理器上运行的计算机程序。其中:存储器501用于存储软件程序以及模块,处理器502通过运行存储在存储器501的软件程序以及单元,从而执行各种功能应用以及数据处理,以获取上述预设事件对应的资源。具体地,处理器502通过运行存储在存储器501的上述计算机程序时实现以下步骤:
获取当前用户语句及历史语句集合,其中,上述当前用户语句为当前轮次的用户语句,上述历史语句集合由至少一个历史语句构成,上述历史语句包括各个历史轮次的用户语句及各个历史轮次的***语句;
将上述当前用户语句分别与上述历史语句集合中的各个历史语句进行拼接,得到至少一个拼接语句;
分别为至少一个拼接语句标记位置;
将至少一个已标记位置的拼接语句输入至预训练模型中,分别对应得到至少一个预训练结果;
将上述至少一个预训练结果输入至已训练的第一类循环神经网络模型中,分别对应得到上述第一类循环神经网络模型输出的与各个预训练结果相关的前向输出结果和后向输出结果;
根据与各个预训练结果相关的前向输出结果和后向输出结果对上述当前用户语句进行识别。
假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,上述根据与各个预训练结果相关的前向输出结果和后向输出结果对上述当前用户语句进行识别,包括:
将与同一预训练结果相关的最后一个前向输出结果与最后一个后向输出结果进行拼接,以得到与各个预训练结果相关的拼接结果;
将与各个预训练结果相关的拼接结果输入至已训练的第二类循环神经网络模型中,通过第二类循环神经网络模型训练处理,得到上述当前用户语句的意图及对话行为。
在上述二种可能的实施方式作为基础而提供的第三种可能的实施方式中,上述第二类循环神经网络模型包括第一GRU模型,上述将与各个预训练结果相关的拼接结果输入至已训练的第二类循环神经网络模型中,通过第二类循环神经网络模型训练处理,得到上述当前用户语句的意图及对话行为,包括:
将所有拼接结果输入至上述第一GRU模型中,得到上述第一GRU模型中最后一层隐藏层的输出;
将上述第一GRU模型中最后一层隐藏层的输出作为上述第一GRU模型中与意图及对话行为相关的分类层的输入,得到与意图及对话行为相关的分类层所输出的上述当前用户语句属于每一意图类别的概率及上述当前用户语句属于每一对话行为类别的概率;
根据上述当前用户语句属于每一意图类别的概率,确定上述当前用户语句的意图,并根据上述当前用户语句属于每一对话行为类别的概率,确定上述当前用户语句的对话行为。
在上述一种可能的实施方式作为基础而提供的第三种可能的实施方式中,上述根据与各个预训练结果相关的前向输出结果和后向输出结果对上述当前用户语句进行识别,包括:
基于预设的筛选条件,对与各个预训练结果相关的前向输出结果和后向输出结果进行筛选,得到至少一个筛选结果,其中,一个筛选结果包括与一个预训练结果相关的前向输出结果和后向输出结果;
将上述至少一个筛选结果输入至已训练的第二类循环神经网络模型中,得到上述当前用户语句的词槽。
在上述第一种可能的实施方式作为基础,或者上述第二种可能的实施方式作为基础,或者上述第三种可能的实施方式作为基础,或者上述第四种可能的实施方式作为基础而提供的第五种可能的实施方式中,上述将上述当前用户语句分别与上述历史语句集合中的各个历史语句进行拼接,得到至少一个拼接语句,包括:
获取组成上述当前用户语句的各个词语;
获取组成待拼接历史语句的各个词语,其中,上述待拼接历史语句为上述历史语句集合中的任一历史语句;
基于上述待拼接历史语句-当前用户语句的顺序,通过预设的间隔符将组成上述当前用户语句的各个词语拼接于组成上述待拼接历史语句的各个词语之后,得到上述当前用户语句与上述待拼接历史语句的拼接语句。
在上述第五种可能的实施方式作为基础而提供的第六种可能的实施方式中,上述分别为至少一个拼接语句标记位置,包括:
基于上述待处理拼接语句初始化布尔向量,其中,上述待处理拼接语句为任一拼接语句,上述布尔向量中的每一元素唯一对应上述待处理拼接语句中的一个元素;
将上述待处理拼接语句中属于上述当前用户语句的元素在布尔向量中所对应的元素设定为预设的第一数值,其中,上述待处理拼接语句为任一拼接语句;
将上述待处理拼接语句中属于历史语句的元素在上述布尔向量中所对应的元素设定为预设的第二数值;
将上述待处理拼接语句中的间隔符在上述布尔向量中所对应的元素设定为预设的第二数值;
将上述布尔向量的长度填充或修剪至预设长度,将填充或修剪后的上述布尔向量作为上述待处理拼接语句所相应的布尔向量,以通过上述布尔向量对相应的待处理拼接语句标记位置。
在上述六种可能的实施方式作为基础而提供的第七种可能的实施方式中,上述将上述布尔向量的长度填充或修剪至预设长度,包括:
将上述布尔向量的长度与预设长度进行比较;
若上述布尔向量的长度长于上述预设长度,则从上述布尔向量的最后一位元素开始向前删除元素,直至上述布尔向量的元素等于上述预设长度为止,得到修剪后的上述布尔向量;
若上述布尔向量的长度短于上述预设长度,则从上述布尔向量的最后一位元素开始向后新增元素,直至上述布尔向量的元素等于上述预设长度为止,得到填充后的上述布尔向量,其中,新增的元素的取值为预设的第二数值。
在上述第一种可能的实施方式作为基础,或者上述第二种可能的实施方式作为基础,或者上述第三种可能的实施方式作为基础,或者上述第四种可能的实施方式作为基础而提供的第八种可能的实施方式中,上述将至少一个已标记位置的拼接语句输入至预训练模型中,分别对应得到至少一个预训练结果,包括:
将已标记位置的待处理拼接语句输入至上述预训练模型中,将上述预训练模型中最后一层隐藏层的输出作为与上述待处理拼接语句相关联的预训练结果,其中,上述待处理拼接语句为任一拼接语句。
应当理解,在本申请实施例中,所称处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Arra6,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器501可以包括只读存储器和随机存取存储器,并向处理器502提供指令和数据。存储器501的一部分或全部还可以包括非易失性随机存取存储器。例如,存储器501还可以存储设备类别的信息。
由上可见,本申请方案中所提出的智能设备将当前用户语句拼接上历史语句后输入到BERT模型中,得到BERT模型发掘的拼接语句的信息,以实现在少语料的情况下发掘出较多的特征信息;进一步地,还通过两类RNN模型来拆分字符级编码及上下文信息的编码,每一类RNN负责编码一套内容,分工明确,各自提取所需的特征,最终通过单一的模型(也即第二类RNN模型)联合预测出当前用户语句的意图、对话行为及词槽信息。上述预测过程还有效结合了上下文信息,提升了对当前用户语句的理解效率及理解准确度。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述***中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者外部设备软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的***实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关联的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读存储介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机可读存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括是电载波信号和电信信号。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (9)
1.一种语句识别方法,其特征在于,包括:
获取当前用户语句及历史语句集合,其中,所述当前用户语句为当前轮次的用户语句,所述历史语句集合由至少一个历史语句构成,所述历史语句包括各个历史轮次的用户语句及各个历史轮次的***语句;
将所述当前用户语句分别与所述历史语句集合中的各个历史语句进行拼接,得到至少一个拼接语句;
分别为至少一个拼接语句标记位置;
将至少一个已标记位置的拼接语句输入至预训练模型中,分别对应得到至少一个预训练结果;
将所述至少一个预训练结果输入至已训练的第一类循环神经网络模型中,分别对应得到所述第一类循环神经网络模型输出的与各个预训练结果相关的前向输出结果和后向输出结果;
根据与各个预训练结果相关的前向输出结果和后向输出结果对所述当前用户语句进行识别;
其中,所述根据与各个预训练结果相关的前向输出结果和后向输出结果对所述当前用户语句进行识别,包括:
将与同一预训练结果相关的最后一个前向输出结果与最后一个后向输出结果进行拼接,以得到与各个预训练结果相关的拼接结果;
将与各个预训练结果相关的拼接结果输入至已训练的第二类循环神经网络模型中,通过所述第二类循环神经网络模型进行处理,得到所述当前用户语句的意图及对话行为;
其中,所述第二类循环神经网络模型包括第一GRU模型,所述将与各个预训练结果相关的拼接结果输入至已训练的第二类循环神经网络模型中,通过第二类循环神经网络模型训练处理,得到所述当前用户语句的意图及对话行为,包括:
将所有拼接结果输入至所述第一GRU模型中,得到所述第一GRU模型中最后一层隐藏层的输出;
将所述第一GRU模型中最后一层隐藏层的输出作为所述第一GRU模型中与意图及对话行为相关的分类层的输入,得到与意图及对话行为相关的分类层所输出的所述当前用户语句属于每一意图类别的概率及所述当前用户语句属于每一对话行为类别的概率;
根据所述当前用户语句属于每一意图类别的概率,确定所述当前用户语句的意图,并根据所述当前用户语句属于每一对话行为类别的概率,确定所述当前用户语句的对话行为。
2.如权利要求1所述的语句识别方法,其特征在于,所述根据与各个预训练结果相关的前向输出结果和后向输出结果对所述当前用户语句进行识别,还包括:
基于预设的筛选条件,对与各个预训练结果相关的前向输出结果和后向输出结果进行筛选,得到至少一个筛选结果,其中,一个筛选结果包括与一个预训练结果相关的前向输出结果和后向输出结果;
将所述至少一个筛选结果输入至已训练的第二类循环神经网络模型中,通过所述第二类循环神经网络模型进行处理,得到所述当前用户语句的词槽。
3.如权利要求1至2任一项所述的语句识别方法,其特征在于,所述将所述当前用户语句分别与所述历史语句集合中的各个历史语句进行拼接,得到至少一个拼接语句,包括:
获取组成所述当前用户语句的各个词语;
获取组成待拼接历史语句的各个词语,其中,所述待拼接历史语句为所述历史语句集合中的任一历史语句;
基于所述待拼接历史语句-当前用户语句的顺序,通过预设的间隔符将组成所述当前用户语句的各个词语拼接于组成所述待拼接历史语句的各个词语之后,得到所述当前用户语句与所述待拼接历史语句的拼接语句。
4.如权利要求3所述的语句识别方法,其特征在于,所述分别为至少一个拼接语句标记位置,包括:
基于所述待处理拼接语句初始化布尔向量,其中,所述待处理拼接语句为任一拼接语句,所述布尔向量中的每一元素唯一对应所述待处理拼接语句中的一个元素;
将所述待处理拼接语句中属于所述当前用户语句的元素在布尔向量中所对应的元素设定为预设的第一数值;
将所述待处理拼接语句中属于历史语句的元素在所述布尔向量中所对应的元素设定为预设的第二数值;
将所述待处理拼接语句中的间隔符在所述布尔向量中所对应的元素设定为预设的第二数值;
将所述布尔向量的长度填充或修剪至预设长度,将填充或修剪后的所述布尔向量作为所述待处理拼接语句所相应的布尔向量,以通过所述布尔向量对相应的待处理拼接语句标记位置。
5.如权利要求4所述的语句识别方法,其特征在于,所述将所述布尔向量的长度填充或修剪至预设长度,包括:
将所述布尔向量的长度与预设长度进行比较;
若所述布尔向量的长度长于所述预设长度,则从所述布尔向量的最后一位元素开始向前删除元素,直至所述布尔向量的元素等于所述预设长度为止,得到修剪后的所述布尔向量;
若所述布尔向量的长度短于所述预设长度,则从所述布尔向量的最后一位元素开始向后新增元素,直至所述布尔向量的元素等于所述预设长度为止,得到填充后的所述布尔向量,其中,新增的元素的取值为预设的第二数值。
6.如权利要求1至2任一项所述的语句识别方法,其特征在于,所述将至少一个已标记位置的拼接语句输入至预训练模型中,分别对应得到至少一个预训练结果,包括:
将已标记位置的待处理拼接语句输入至所述预训练模型中,将所述预训练模型中最后一层隐藏层的输出作为与所述待处理拼接语句相关联的预训练结果,其中,所述待处理拼接语句为任一拼接语句。
7.一种语句识别装置,其特征在于,包括:
语句获取单元,用于获取当前用户语句及历史语句集合,其中,所述当前用户语句为当前轮次的用户语句,所述历史语句集合由至少一个历史语句构成,所述历史语句包括各个历史轮次的用户语句及各个历史轮次的***语句;
语句拼接单元,用于将所述当前用户语句分别与所述历史语句集合中的各个历史语句进行拼接,得到至少一个拼接语句;
位置标记单元,用于分别为至少一个拼接语句标记位置;
预训练结果获取单元,用于将至少一个已标记位置的拼接语句输入至预训练模型中,分别对应得到至少一个预训练结果;
第一网络输出结果获取单元,用于将所述至少一个预训练结果输入至已训练的第一类循环神经网络模型中,分别对应得到所述第一类循环神经网络模型输出的与各个预训练结果相关的前向输出结果和后向输出结果;
语句识别单元,用于根据与各个预训练结果相关的前向输出结果和后向输出结果对所述当前用户语句进行识别;
其中,所述语句识别单元,包括:
输出拼接子单元,用于将与同一预训练结果相关的最后一个前向输出结果与最后一个后向输出结果进行拼接,以得到与各个预训练结果相关的拼接结果;
意图及对话行为获取子单元,用于将与各个预训练结果相关的拼接结果输入至已训练的第二类循环神经网络模型中,通过第二类循环神经网络模型训练处理,得到所述当前用户语句的意图及对话行为;
其中,所述第二类循环神经网络模型包括第一GRU模型,所述意图及对话行为获取子单元,包括:
隐藏层输出获取子单元,用于将所有拼接结果输入至所述第一GRU模型中,得到所述第一GRU模型中最后一层隐藏层的输出;
概率获取子单元,用于将所述第一GRU模型中最后一层隐藏层的输出作为所述第一GRU模型中与意图及对话行为相关的分类层的输入,得到与意图及对话行为相关的分类层所输出的所述当前用户语句属于每一意图类别的概率及所述当前用户语句属于每一对话行为类别的概率;
意图及对话行为确定子单元,用于根据所述当前用户语句属于每一意图类别的概率,确定所述当前用户语句的意图,并根据所述当前用户语句属于每一对话行为类别的概率,确定所述当前用户语句的对话行为。
8.一种智能设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的方法。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010340047.8A CN111563161B (zh) | 2020-04-26 | 2020-04-26 | 一种语句识别方法、语句识别装置及智能设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010340047.8A CN111563161B (zh) | 2020-04-26 | 2020-04-26 | 一种语句识别方法、语句识别装置及智能设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111563161A CN111563161A (zh) | 2020-08-21 |
CN111563161B true CN111563161B (zh) | 2023-05-23 |
Family
ID=72071534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010340047.8A Active CN111563161B (zh) | 2020-04-26 | 2020-04-26 | 一种语句识别方法、语句识别装置及智能设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111563161B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112464662B (zh) * | 2020-12-02 | 2022-09-30 | 深圳平安医疗健康科技服务有限公司 | 医学短语匹配方法、装置、设备及存储介质 |
CN112559715B (zh) * | 2020-12-24 | 2023-09-22 | 北京百度网讯科技有限公司 | 态度的识别方法、装置、设备及存储介质 |
CN114154488A (zh) * | 2021-12-10 | 2022-03-08 | 北京金山数字娱乐科技有限公司 | 语句处理方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017024884A1 (zh) * | 2015-08-07 | 2017-02-16 | 广州神马移动信息科技有限公司 | 一种搜索意图识别方法及装置 |
WO2018028077A1 (zh) * | 2016-08-11 | 2018-02-15 | 中兴通讯股份有限公司 | 一种基于深度学习的中文语义分析的方法及装置 |
-
2020
- 2020-04-26 CN CN202010340047.8A patent/CN111563161B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017024884A1 (zh) * | 2015-08-07 | 2017-02-16 | 广州神马移动信息科技有限公司 | 一种搜索意图识别方法及装置 |
WO2018028077A1 (zh) * | 2016-08-11 | 2018-02-15 | 中兴通讯股份有限公司 | 一种基于深度学习的中文语义分析的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111563161A (zh) | 2020-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109992782B (zh) | 法律文书命名实体识别方法、装置及计算机设备 | |
CN111695352A (zh) | 基于语义分析的评分方法、装置、终端设备及存储介质 | |
CN111563161B (zh) | 一种语句识别方法、语句识别装置及智能设备 | |
CN112084331A (zh) | 文本处理、模型训练方法、装置、计算机设备和存储介质 | |
CN112257449B (zh) | 命名实体识别方法、装置、计算机设备和存储介质 | |
CN112528637B (zh) | 文本处理模型训练方法、装置、计算机设备和存储介质 | |
JP6677419B2 (ja) | 音声対話方法及び装置 | |
CN110188195B (zh) | 一种基于深度学习的文本意图识别方法、装置及设备 | |
CN111653275B (zh) | 基于lstm-ctc尾部卷积的语音识别模型的构建方法及装置、语音识别方法 | |
CN111950275B (zh) | 基于循环神经网络的情绪识别方法、装置及存储介质 | |
CN111767694B (zh) | 文本生成方法、装置和计算机可读存储介质 | |
CN115455171B (zh) | 文本视频的互检索以及模型训练方法、装置、设备及介质 | |
CN112804558B (zh) | 视频拆分方法、装置及设备 | |
CN114529903A (zh) | 文本细化网络 | |
CN111858878A (zh) | 从自然语言文本中自动提取答案的方法、***及存储介质 | |
CN110992943B (zh) | 基于词混淆网络的语义理解方法及*** | |
CN115840808A (zh) | 科技项目咨询方法、装置、服务器及计算机可读存储介质 | |
CN111145914A (zh) | 一种确定肺癌临床病种库文本实体的方法及装置 | |
CN113254575B (zh) | 一种基于多步证据推理的机器阅读理解方法与*** | |
CN116702765A (zh) | 一种事件抽取方法、装置及电子设备 | |
CN113221546B (zh) | 手机银行资讯数据处理方法及装置 | |
CN115617975A (zh) | 针对少样本多轮对话的意图识别方法及装置 | |
CN112417086B (zh) | 数据处理方法、装置、服务器及存储介质 | |
CN116913278B (zh) | 语音处理方法、装置、设备和存储介质 | |
CN118013962B (zh) | 一种基于双向序列生成的汉语篇章连接词识别方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |