本申请涉及自然语言处理技术领域,尤其涉及一种对话管理方法和装置。
背景技术:
随着智能化时代的到来,人机交互方式也越来越符合人类的交互方式,从键盘交互,到图形界面交互,再到目前的通过声音图像的多媒体交互,实现人类和机器的更加自然更加人性化的交互方式。交互过程中,需要通过对话管理方法根据用户的请求,确定用户意图后,将相应响应结果反馈给用户。
相关技术中,对话管理方法一般是基于规则的方法确定用户意图后,找到相应响应文本数据反馈给用户,所述规则需要预先收集大量对话文本数据后,人工分析出对话逻辑后,确定相应规则,所述规则一般只能针对对话逻辑出现过的语料,当对话逻辑未出现时,则很难适用,规则存在局限性,并且很难完全覆盖所有对话逻辑;人工分析对话文本数据的对话逻辑,工作量较大,工作效率较低。因此,如何高效准确地根据用户文本数据确定用户意图对人机交互的用户体验尤为重要。
技术实现要素:
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的一个目的在于提出一种对话管理方法,该方法可以高效准确地确定出用户意图,进而高效准确地反馈响应文本数据。
本申请的另一个目的在于提出一种对话管理装置。
为达到上述目的,本申请第一方面实施例提出的对话管理方法,包括:获取待处理用户文本数据,以及待处理用户文本数据对应的历史数据;分别对所述待处理用户文本数据和所述历史数据进行特征提取,提取得到所述待处理用户文本数据和所述历史数据分别对应的句子语义特征;根据预先构建的对话管理模型和提取得到的句子语义特征,确定用户意图;根据所述用户意图,反馈与所述待处理用户文本数据对应的响应文本数据。
本申请第一方面实施例提出的对话管理方法,通过根据对话管理模型确定用户意图,可以提高用户意图确定的准确性,并且不需要人工总结规则,大大提高了对话管理的效果,从而可以在对话管理时高效准确地确定出用户意图,进而高效准确地反馈响应文本数据。
为达到上述目的,本申请第二方面实施例提出的对话管理装置,包括:获取模块,用于获取待处理用户文本数据,以及待处理用户文本数据对应的历史数据;提取模块,用于分别对所述待处理用户文本数据和所述历史数据进行特征提取,提取得到所述待处理用户文本数据和所述历史数据分别对应的句子语义特征;确定模块,用于根据预先构建的对话管理模型和提取得到的句子语义特征,确定用户意图;反馈模块,用于根据所述用户意图,反馈与所述待处理用户文本数据对应的响应文本数据。
本申请第二方面实施例提出的对话管理装置,通过根据对话管理模型确定用户意图,可以提高用户意图确定的准确性,并且不需要人工总结规则,大大提高了对话管理的效果,从而可以在对话管理时高效准确地确定出用户意图,进而高效准确地反馈响应文本数据。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本申请一个实施例提出的对话管理方法的流程示意图;
图2是本申请另一个实施例提出的对话管理方法的流程示意图;
图3是本申请实施例中对待提取文本数据进行特征提取的方法的流程示意图;
图4是本申请实施例中确定用户文本数据样本对应的用户意图的方法的流程示意图;
图5是本申请实施例中对话管理模型的一种网络结构示意图;
图6是本申请一个实施例提出的对话管理装置的结构示意图;
图7是本申请另一个实施例提出的对话管理装置的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的模块或具有相同或类似功能的模块。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。相反,本申请的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
图1是本申请一个实施例提出的对话管理方法的流程示意图。
如图1所示,本实施例的方法包括:
S11:获取待处理用户文本数据,以及待处理用户文本数据对应的历史数据。
用户文本数据是指人机交互过程中用户主动发出的文本数据,可以为直接输入到系统中的用户文本数据,也可以为用户使用语音数据输入后,对所述语音数据进行语音识别后得到的识别文本。
人机交互过程中,可以以一句用户文本数据与一句响应文本数据交替出现的形式进行,响应文本数据是指机器反馈给用户的与用户文本数据对应的数据。一句用户文本数据及对应的一句响应文本数据可以组成一轮对话文本数据。在人机交互过程中,可以包括一轮或多轮对话文本数据,多轮指至少两轮。
在处理时,可以分别将每轮对话文本数据中的用户文本数据作为待处理用户文本数据。在人机交互过程中可以记录对话文本数据,以在记录的数据中获取到待处理用户文本数据对应的历史数据。
历史数据是指待处理用户文本数据之前的预设N轮的对话文本数据,N可以根据应用需求设置。如上所示,对话文本数据包括用户文本数据和响应文本数据,则历史数据包括历史用户文本数据和历史响应文本数据。如果待处理用户文本数据是第一轮交互中的用户文本数据,则对应的历史数据为空。
S12:分别对所述待处理用户文本数据和所述历史数据进行特征提取,提取得到所述待处理用户文本数据和所述历史数据分别对应的句子语义特征。
由于需要分别对待处理用户文本数据和历史数据进行特征提取,因此,待处理用户文本数据和历史数据可以统称为待提取文本数据,而在后续内容中,还会涉及对样本进行特征提取的步骤,因此,样本也可以称为待提取文本数据。具体的对待提取文本数据进行特征提取的方法可以参见后续内容。
如果待提取文本数据为空,比如历史数据为空,则可以设置对应的句子语义特征为固定值,如将此时的句子语义特征的取值设置为0。
S13:根据预先构建的对话管理模型和提取得到的句子语义特征,确定所述待处理用户文本数据对应的用户意图。
具体构建对话管理模型的方法可以如后续内容所示。
对话管理模型的输入为句子语义特征,输出为用户意图信息,从而在提取得到句子语义特征后,将提取得到的句子语义特征作为对话管理模型的输入,得到对话管理模型输出的用户意图信息,再根据用户意图信息确定用户意图,比如,用户意图信息为每种预设用户意图的概率值,则将概率值最高的用户意图确定为待处理用户文本数据对应的用户意图。
S14:根据所述用户意图,反馈与所述用户文本数据对应的响应文本数据。
例如,可以预先配置每种用户意图对应的响应文本数据,从而在用户意图确定后,可以直接获取对应的响应文本数据反馈给用户。比如,预先配置用户意图为“查询话费”对应的响应文本数据包括:“您想查询哪个月的话费”,则在确定出用户意图为“查询话费”时,向用户反馈“您想查询哪个月的话费”。在反馈时,可以显示响应文本数据,或者,采用语音合成技术将响应文本数据转换为语音,采用语音播放的方式进行反馈。
本实施例中,通过根据对话管理模型确定用户意图,可以提高用户意图确定的准确性,并且不需要人工总结规则,大大提高了对话管理的效果,从而可以在对话管理时高效准确地确定出用户意图,进而高效准确地反馈响应文本数据。
图2是本申请另一个实施例提出的对话管理方法的流程示意图。
如图2所示的,本实施例的方法包括:
S21:构建对话管理模型。
具体如后续描述。
S22:获取待处理用户文本数据,以及待处理用户文本数据对应的历史数据。
S23:分别对所述待处理用户文本数据和所述历史数据进行特征提取,提取得到所述待处理用户文本数据和所述历史数据分别对应的句子语义特征。
S24:根据预先构建的对话管理模型和提取得到的句子语义特征,确定所述待处理用户文本数据对应的用户意图。
S25:根据所述用户意图,反馈与所述待处理用户文本数据对应的响应文本数据。
其中,S22-S25的具体内容可以参见S11-S14,在此不再详述。
如图2所示,构建对话管理模型的方法可以包括:
S211:获取对话文本数据样本,所述对话文本数据样本包括:用户文本数据样本、用户文本数据样本对应的历史数据样本。
对话文本数据样本是指已有的对话文本数据,具体可以采用收集的方式或者从日志中直接获取的方式,获取到对话文本数据样本。
对话文本数据样本包括多轮,每轮包括一句用户文本数据样本和一句响应文本数据样本。在处理时,可以将每轮对话文本数据样本中的用户文本数据样本依次作为当前处理的用户文本数据样本,以及获取与当前处理的用户文本数据样本对应的历史数据样本。当前处理的用户文本数据样本对应的历史数据样本是指当前处理的用户文本数据样本之前的对话文本数据样本,具体包括历史用户文本数据样本和历史响应文本数据样本。
S212:分别对所述用户文本数据样本和所述历史数据样本进行特征提取,提取得到所述用户文本数据样本和所述历史数据样本分别对应的句子语义特征。
用户文本数据样本、历史数据样本以及上述实施例中的待处理用户文本数据及其对应的历史数据可以统称为待提取文本数据,对待提取文本数据进行特征提取的方法可以如图3所示。
S213:确定所述用户文本数据样本对应的用户意图。
在获取的对话文本数据样本中还包括与用户文本数据样本属于同一轮交互的响应文本数据样本,可以基于响应文本数据样本对应的句子语义特征和用户文本数据样本对应的句子语义特征确定用户文本数据样本对应的用户意图,具体如图4所示。
S214:基于预先确定的网络结构,根据所述用户文本数据样本和所述历史数据样本分别对应的句子语义特征以及所述用户文本数据样本对应的用户意图,进行模型训练,构建得到对话管理模型。
网络结构可以具体为深度神经网络结构。
模型训练过程可以包括:将所述用户文本数据样本和所述历史数据样本分别对应的句子语义特征作为模型输入,经过与模型各层参数的运算后,得到模型输出,模型输出包括各用户意图的概率值,将概率值最高的用户意图作为预测值,再将所述用户文本数据样本对应的用户意图作为真实值,根据真实值和预测值得到损失函数,通过最小化损失函数,可以得到模型各层参数,从而得到对话管理模型。具体的模型训练方式可以参见各种相关技术,在此不再详述。
下面对上述涉及的一些步骤进行具体说明。
参见图3,对待提取文本数据进行特征提取的方法可以包括:
S31:对待提取文本数据进行分词,得到分词后的词语。
具体分词方法可以参见各种相关技术,如基于条件随机场的方法对文本数据进行分词,如文本数据“取消已经开通的十元一百兆的流量”分词后得到的词语包括“取消已经开通的十元一百兆的流量”。
需要说明的是,如果待提取文本数据中包含有非法或无意义的字符,可以先清洗待提取文本数据,去除其中的非法或无意义字符,具体清洗方法可以参见各种相关技术。
S32:对所述词语进行词向量化,得到所述词语对应的词向量。
具体词向量化方法可以参见各种相关技术,如使用word2vec技术进行词向量化。
一般收集的对话文本数据较多,因此,得到的词语也非常多,为了将不同词的词向量区分开,可以使用高维向量表示每个词语,如每个词向量的维数为256维。
S33:根据所述词向量提取出所述待提取文本数据对应的句子语义特征。
具体的,可以将每句文本数据包含的词语对应的词向量的平均向量作为对应的句子语义特征。例如,直接将每轮对话中用户文本数据包含词语的词向量的平均向量作为用户文本数据对应的句子语义特征,将响应文本数据包含词语的词向量的平均向量作为响应文本数据对应的句子语义特征。所述句子语义特征的维数与词向量维数相同,平均向量是指将向量包含的各元素按位进行平均。需要说明的是,由于句子语义特征是一种向量,因此在后续内容中也可以将句子语义特征称为句子语义特征向量。
参见图4,确定用户文本数据样本对应的用户意图的方法可以包括:
S41:获取所述响应文本数据样本对应的句子语义特征,并根据所述响应文本数据样本对应的句子语义特征确定初始用户意图。
可以采用如图3所示的方法对所述响应文本数据样本进行特征提取,获取到所述响应文本数据样本对应的句子语义特征。
在获取到所述响应文本数据样本对应的句子语义特征后,可以对该句子语义特征进行分类,确定初始用户意图。
具体的,可以预先设置多种类别的用户意图,比如设置用户意图包括“查话费、查流量、查账单、话费套餐办理、流量套餐办理、网络故障报修”六种类别,之后可以采用各种相关技术,将所述响应文本数据样本对应的句子语义特征分类到上述六种类别中的一种,作为初始用户意图,比如分类到“查话费”,则将初始用户意图标记为001。
S42:根据所述用户文本数据样本对应的句子语义特征和所述初始用户意图,确定用户意图确定特征,并根据所述用户意图确定特征确定出所述用户文本数据样本对应的用户意图。
具体的,可以对所述用户文本数据样本对应的句子语义特征和所述初始用户意图进行组合,将组合后的向量作为用户意图确定特征,比如,句子语义特征为256维,初始用户意图为3维,则组合后得到的用户意图确定特征为259维。在得到用户意图确定特征后,可以采用各种相关技术,将用户意图确定特征分类到上述预设类别中的一种,作为最终的用户意图。其中,此时的预设类别与确定初始用户意图时的类别相同,如依然为上述的六种类别。
可以理解的是,上述以采用分类的方式确定用户意图为例,但不限于上述实现方式,比如还可以采用人工标注方式,由领域专家对用户文本数据样本对应的用户意图进行标注,从而可以根据标注信息直接确定用户文本数据样本对应的用户意图。
下面以一种网络结构为例,对所述对话管理模型进行说明。
如图5所示,示出了一种网络结构的对话管理模型。参见图5,该对话管理模型包括:输入层、注意力层、连接层和输出层。
需要说明的是,对话管理模型可以分为训练阶段和应用阶段,且为了区分训练阶段和应用阶段,使用的输入数据可以具有不同的名称。如在应用阶段,输入数据包括待处理用户文本数据及其对应的历史数据,历史数据包括历史用户文本数据及其对应的历史响应文本数据。而在训练阶段,输入数据可以称为样本,具体包括用户文本数据样本及其对应的历史数据样本。可以理解的是,虽然在训练阶段在相应数据的名称后加上了样本,但是模型对输入数据进行处理的原理是一致的,下面以输入数据包括待处理用户文本数据及其对应的历史数据为例进行说明,对用户文本数据样本及其对应的历史数据样本进行处理的流程可以参照执行。
输入层用于接收输入特征,其中,输入特征共包含三部分,具体如下:
1)待处理用户文本数据的句子语义特征向量,使用S表示;
2)待处理用户文本数据对应的历史用户文本数据的句子语义特征向量,使用U={u1,u2,...,uk}表示,其中,uk表示待处理用户文本数据第k轮历史用户文本数据的句子语义特征,k表示待处理用户文本数据向前取的历史数据的轮数;
3)待处理用户文本数据对应的历史响应文本数据的句子语义特征向量,使用R={r1,r2,...,rk},其中,rk表示待处理用户文本数据第k轮历史响应文本数据的句子语义特征向量;
进一步地,由于不同的用户文本数据可能对应相同或类似的响应文本数据,直接根据响应文本数据得到的句子语义特征向量的区分性不好,因此,在模型构建的过程中,可以对待处理用户文本数据对应历史响应文本数据的句子语义向量进行不断更新,以保证句子语义向量更加准确。
注意力层用于计算待处理用户文本数据对应的响应文本数据的特征向量,具体的,可以先计算待处理用户文本数据与其对应的每个历史用户文本数据的相关度权重,再根据上述的相关度权重计算待处理用户文本数据对应的响应文本数据的特征向量。
所述相关度权重计算时,可以先计算待处理用户文本数据的句子语义特征向量与其每一个历史用户文本数据的句子语义特征向量的内积后,再计算待处理用户文本数据与其每一个历史用户文本数据的相关度权重;也可以先计算待处理用户文本数据的句子语义特征向量与其每一个历史用户文本数据的句子语义特征向量之间的距离,再计算待处理用户文本数据与其每一个历史用户文本数据的相关度权重;所述相关度权重取值越大,待处理用户文本数据与其对应的历史用户文本数据的相关度越高,具体使用P={p1,p2,...pk}表示,以先计算向量之间的内积为例,所述相关度权重的计算方法如式(1)所示:
pi=f(STui) (1)
其中,pi表示待处理用户文本数据与其第i轮的历史用户文本数据的相关度权重,ui为待处理用户文本数据的第i轮历史用户文本数据的句子语义特征向量;f为相关度权重计算函数,如softmax()函数。
所述待处理用户文本数据对应的响应文本数据的特征向量计算时,可以将上述的相关度权重作为对应的每个历史响应文本数据的句子语义特征向量的加权值,进行加权求和后得到,具体计算方法如式(2)所示:
其中,A表示待处理用户文本数据对应的响应文本数据的特征向量。
连接层用于对注意力层计算得到的待处理用户文本数据对应的响应文本数据的特征向量A以及待处理用户文本数据的句子语义特征向量S进行变换,得到变换后的特征向量变换后的特征向量中包含了待处理用户文本数据的语义信息。具体变换方法如式(3)所示:
其中,W为特征向量变换权重矩阵,为模型参数,具体可以通过大量训练数据进行训练得到,初始取值可以通过随机初始化方法得到,或直接统一初始化为0;f为特征向量变换函数,如softmax()函数。
输出层用于根据所述变换后的特征向量输出用户意图信息,例如每种预设用户意图的概率值。
本实施例中,通过根据对话管理模型确定用户意图,可以提高用户意图确定的准确性,并且不需要人工总结规则,大大提高了对话管理的效果,从而可以在对话管理时高效准确地确定出用户意图。进一步的,通过上述的深度神经网络构建对话管理模型,可以进一步提高模型准确度,进而提高用户意图确定的准确度。
图6是本申请一个实施例提出的对话管理装置的结构示意图。
如图6所示,本实施例的装置60包括:获取模块61、提取模块62、确定模块63和反馈模块64。
获取模块61,用于获取待处理用户文本数据,以及待处理用户文本数据对应的历史数据;
提取模块62,用于分别对所述待处理用户文本数据和所述历史数据进行特征提取,提取得到所述待处理用户文本数据和所述历史数据分别对应的句子语义特征;
确定模块63,用于根据预先构建的对话管理模型和提取得到的句子语义特征,确定用户意图;
反馈模块64,用于根据所述用户意图,反馈与所述待处理用户文本数据对应的响应文本数据。
一些实施例中,所述提取模块62用于进行所述特征提取包括:
对待提取文本数据进行分词,得到分词后的词语;
对所述词语进行词向量化,得到所述词语对应的词向量;
根据所述词向量提取出所述待提取文本数据对应的句子语义特征;
其中,所述待提取文本数据包括:所述待处理用户文本数据,和/或,所述历史数据。
一些实施例中,参见图7,该装置60还包括:用于构建对话管理模型的构建模块65,所述构建模块65具体用于:
获取对话文本数据样本,所述对话文本数据样本包括:用户文本数据样本、用户文本数据样本对应的历史数据样本;
分别对所述用户文本数据样本和所述历史数据样本进行特征提取,提取得到所述用户文本数据样本和所述历史数据样本分别对应的句子语义特征;
确定所述用户文本数据样本对应的用户意图;
基于预先确定的网络结构,根据所述用户文本数据样本和所述历史数据样本分别对应的句子语义特征以及所述用户文本数据样本对应的用户意图,进行模型训练,构建得到对话管理模型。
一些实施例中,所述对话文本数据样本还包括:与用户文本数据样本属于同一轮交互的响应文本数据样本;所述构建模块65用于确定所述用户文本数据样本对应的用户意图,包括:
获取所述响应文本数据样本对应的句子语义特征,并根据所述响应文本数据样本对应的句子语义特征确定初始用户意图;
根据所述用户文本数据样本对应的句子语义特征和所述初始用户意图,确定用户意图确定特征,并根据所述用户意图确定特征确定出所述用户文本数据样本对应的用户意图。
一些实施例中,所述对话管理模型的网络结构包括:深度神经网络结构。
一些实施例中,所述历史数据包括:历史用户文本数据和历史响应文本数据,所述网络结构包括:
输入层、注意力层、连接层和输出层;
所述输入层用于输入如下特征:所述待处理用户文本数据对应的句子语义特征、所述历史用户文本数据对应的句子语义特征和所述历史响应文本数据对应的句子语义特征;
所述注意力层用于根据所述待处理用户文本数据对应的句子语义特征和所述历史用户文本数据对应的句子语义特征,计算所述待处理用户文本数据与所述历史用户文本数据之间的相关度权重,并根据所述相关度权重和所述历史响应文本数据对应的句子语义特征,计算所述待处理用户文本数据对应的响应文本数据的特征向量;
所述连接层用于对所述特征向量和所述待处理用户文本数据对应的句子语义特征进行变换,得到变换后的特征向量;
所述输出层用于根据所述变换后的特征向量输出用户意图信息。
可以理解的是,本实施例的装置与上述方法实施例对应,具体内容可以参见方法实施例的相关描述,在此不再详细说明。
本实施例中,通过根据对话管理模型确定用户意图,可以提高用户意图确定的准确性,并且不需要人工总结规则,大大提高了对话管理的效果,从而可以在对话管理时高效准确地确定出用户意图,进而高效准确地反馈响应文本数据。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。