1.本公开涉及计算机技术领域,尤其涉及一种会话应答方法及装置。
背景技术:2.在智能客服的坐席场景中,人工客服需要根据用户的输入进行对应的回复,回复的速度与质量往往会影响到用户后续的行为,例如成交或者投诉。在相关技术中,可以使用会话自动应答系统辅助人工客服提升回复的速度和质量。在用户输入一句话或多句话时,会话自动应答系统会推荐对应的应答,由人工客服直接采纳或者微调后回复给用户。
3.会话自动应答系统可以通过两种方式进行应答,一种是生成式,另一种是检索式,这两种方式都存在回复的内容质量不高的问题,不能满足用户需求。
技术实现要素:4.有鉴于此,本公开实施例提供了一种会话应答方法、装置、电子设备及计算机可读存储介质,以解决现有技术中应答系统回复的内容质量不高的问题。
5.本公开实施例的第一方面,提供了一种会话应答方法,方法包括:将用户输入数据输入到知识库中进行比对,得到第一比对结果,第一比对结果包括第一目标比对数据和第一目标比对数据的问题与用户输入数据的第一相似度评分;响应于第一相似度评分小于设定的第一阈值,采用预设的编码模型对当前会话的用户输入数据进行编码处理,得到编码数据;将编码数据输入到历史会话库中进行比对,得到第二比对结果,第二比对结果包括第二目标比对数据和第二目标比对数据与编码数据的第二相似度评分;响应于第二相似度评分大于等于设定的第二阈值,根据第二目标比对数据获取当前会话的会话应答数据。
6.本公开实施例的第二方面,提供了一种会话应答装置,装置包括:第一比对模块,用于将用户输入数据输入到知识库中进行比对,得到第一比对结果,第一比对结果包括第一目标比对数据和第一目标比对数据的问题与用户输入数据的第一相似度评分;编码模块,用于响应于第一相似度评分小于设定的第一阈值,采用预设的编码模型对当前会话的用户输入数据进行编码处理,得到编码数据;第二比对模块,用于将编码数据输入到历史会话库中进行比对,得到第二比对结果,第二比对结果包括第二目标比对数据和第二目标比对数据与编码数据的第二相似度评分;应答获取模块,用于响应于第二相似度评分大于等于设定的第二阈值,根据第二目标比对数据获取当前会话的会话应答数据。
7.本公开实施例的第三方面,提供了一种电子设备,包括存储器、处理器以及存储在存储器中并且可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
8.本公开实施例的第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
9.本公开实施例与现有技术相比存在的有益效果是:通过将用户输入数据输入知识库进行比对,并在第一相似度评分小于设定的第一阈值时对用户输入数据通过预设的编码
模型进行编码处理,再将得到的编码数据输入到历史会话库中进行比对,得到会话应答数据,从而可以兼顾到历史会话库和知识库,提高了会话应答数据的质量。
10.进一步地,根据用户的输入结合知识库和历史会话库得到自动回复,可以提升坐席回复效率,并保证质量稳定可控。由于仅使用用户的输入数据,不需要获得当前会话中坐席的回复,避免了频繁的数据读取,从而可以提升系统响应速度;由于可以兼顾知识库和历史会话库,使得本公开实施例的技术方案可以提升回复质量。此外,本公开实施例的技术方案设计的应答系统和编码模型复杂程度较低,易于实现。
附图说明
11.为了更清楚地说明本公开实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
12.图1是本公开实施例提供的一种会话应答方法的流程示意图;
13.图2是本公开实施例提供的编码模型的训练方法的流程示意图;
14.图3是本公开实施例提供的再一种会话应答方法的流程示意图;
15.图4是本公开实施例提供的一种会话应答装置的结构示意图;
16.图5是本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
17.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本公开实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本公开。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本公开的描述。
18.在相关技术中,会话自动应答系统可以通过两种方式进行应答,一种是生成式,通过生成式得到的应答通常不可控,而可控生成的应答延时很高难以满足上线要求。另一种是检索式,通过检索式进行回复时,候选集往往局限于历史回复,难以兼顾到现有知识库中的数据,回复的内容质量不高,不能满足用户需求。
19.此外,真实会话场景中,往往会存在用户连续输入多句话,以及坐席连续回复多句话的情况,而自动应答模型的输入输出通常是一对一的,难以处理多对多的场景。为了处理多对多的场景,往往需要对多用户输入和多坐席回复同时进行建模,引入角色信息,这样做一方面增加了模型的复杂度,另一方面在线服务时需要实时获取到坐席的回复,进一步增大了系统复杂度,造成响应延时,无法保证回复速度。
20.为解决以上问题,本公开提出一种会话应答方案,以提高会话应答系统回复质量和回复速度。
21.下面将结合附图详细说明根据本公开实施例的会话应答方法和装置。
22.图1是本公开实施例提供的一种会话应答方法的流程示意图。本公开实施例提供的方法可以由任意具备计算机处理能力的电子设备执行,例如终端或服务器。如图1所示,该会话应答方法包括:
23.s101,将用户输入数据输入到知识库中进行比对,得到第一比对结果,第一比对结果包括第一目标比对数据和第一目标比对数据的问题与用户输入数据的第一相似度评分。
24.具体地,用户输入数据输入到知识库中之前,需要经过预处理。用户输入数据在知识库中的比对过程即是将用户输入数据与知识库中的数据进行匹配的匹配过程。匹配得到的与用户输入数据相似的知识库中的在库数据即为第一目标比对数据。在库数据包括问题部分和应答部分,即第一目标比对数据包括问题数据和应答数据,第一目标对比数据的问题数据与用户输入数据的相似度评分即为第一相似度评分。
25.s102,响应于第一相似度评分小于设定的第一阈值,采用预设的编码模型对当前会话的用户输入数据进行编码处理,得到编码数据。
26.具体地,第一相似度评分大于等于设定的第一阈值,说明在知识库中为用户输入数据匹配到了较为相似的匹配数据,此时可以根据第一目标比对数据得到当前会话的会话应答数据。第一相似度评分小于设定的第一阈值,说明在知识库中没有为用户输入数据匹配到较为相似的匹配数据,此时可以根据用户输入数据在历史会话库中匹配与用户输入数据对应的在库数据。用户输入数据在输入到历史会话库之前,需要通过预设的编码模型进行编码处理。
27.s103,将编码数据输入到历史会话库中进行比对,得到第二比对结果,第二比对结果包括第二目标比对数据和第二目标比对数据与编码数据的第二相似度评分。
28.具体地,历史会话库可以称为候选集,是包含历史会话的问题和应答的数据集合。编码数据在历史会话库中的比对过程即是将编码数据与历史会话库中的数据进行匹配的匹配过程。匹配得到的与编码数据相似的历史会话库中的在库数据即为第二目标比对数据。在库数据包括问题部分和应答部分,即第二目标比对数据包括问题数据和应答数据,第二目标对比数据的问题数据与编码数据的相似度评分即为第二相似度评分。
29.s104,响应于第二相似度评分大于等于设定的第二阈值,根据第二目标比对数据获取当前会话的会话应答数据。
30.具体地,第二相似度评分大于等于设定的第二阈值,说明在历史会话库中为编码数据匹配到了较为相似的匹配数据,此时可以根据第二目标比对数据得到当前会话的会话应答数据。第二相似度评分小于设定的第二阈值,说明在历史会话库中没有为编码数据匹配到较为相似的匹配数据,此时返回无结果,当前会话应答服务结束。
31.根据本公开实施例的技术方案,根据用户的输入结合知识库和历史会话库得到自动回复,可以提升坐席回复效率,并保证质量稳定可控。由于仅使用用户的输入数据,不需要获得当前会话中坐席的回复,避免了频繁的数据读取,从而可以提升系统响应速度;由于可以兼顾知识库和历史会话库,使得本公开实施例的技术方案可以提升回复质量。此外,本公开实施例的技术方案设计的应答系统和编码模型复杂程度较低,易于实现。
32.本公开实施例的技术方案包括离线的编码模型训练阶段和在线的应答阶段。
33.在本公开实施例中,编码模型根据历史样本会话数据中的用户输入数据和坐席应答数据训练得到。由于真实会话场景中经常出现用户连续输入多句话以及坐席连续回复多句话的情况,在本公开实施例中编码模型的训练过程中,每一条训练数据可以包括至少一条应答和至少一条问题。例如,一条训练数据可以包括一条应答和对应的一条问题,也可以包括一条应答和对应的两条或者更多条问题,也可以包括两条或者更多应答和对应的两条
或者更多问题。在本公开实施例中,问题指的是用户的输入数据,应答指的是坐席的回复数据。
34.如图2所示,在本公开实施例中,编码模型的训练过程包括以下步骤:
35.步骤s201,将样本会话数据进行预处理,得到训练数据,训练数据可以包括一条应答和至少一条问题,样本会话数据包括历史会话过程中产生的问题和应答的数据,预处理包括使用设定字符替换对应的样本会话数据中的设定内容的数据,以及采用拼接符隔离样本会话数据中的问题。
36.具体地,样本会话数据中的设定内容会包括个性化的、对编码模型训练无用的信息,例如,人名、时间、手机号等信息。采用设定字符替换这些个性化信息,可以提高编码模型的训练效率。这些字符可以在在线的应答阶段被恢复为原先的个性化信息。例如,在模型训练阶段,电话号码这一设定内容可以使用[phone]这一设定字符替换,在在线应答阶段,若编码数据在历史会话库中匹配到的第二比对结果的应答数据包含设定字符[phone],由于该设定字符对应的设定内容为电话号码,可以将[phone]替换为当前用户的电话号码,以恢复个性化信息。一条样本会话数据中也可能包括两条应答,这两条应答也需要采用拼接符拼接。其中,拼接符可以为[sep]。将两个或者多个问题拼接,将两个或者多个应答拼接,拼接后的包含问题和应答的数据作为一条训练数据。
[0037]
步骤s202,采用对比学习中的批处理方案选取的正负例的交叉熵作为损失函数,将训练数据的问题部分和应答部分分别输入双塔深度学习模型进行训练,直到损失函数收敛,得到训练好的编码模型。
[0038]
具体地,对比学习可以将一个实例变换成两种不同的增广实例,然后用神经网络训练得到投影表示,用余弦相似性求出两两投影表示之间的相似性,并最大化相同实例投影表示之间的一致性。批处理方案即in-batch方案。
[0039]
在相关技术中,坐席回复中存在大量个性化的信息,比如「请问尾号1234的手机号能联系到您吗?」、「请问123xxxx4331是您的手机号吗?」、「新春快乐,小寒给您拜年啦!」等信息,类似的个性化内容一方面会对编码模型的训练产生干扰,另一方面检索到后也难以利用。在本公开实施例中,可以将离线训练阶段的训练数据和在线应答阶段的待应答的用户输入数据抹除个性化,在在线应答阶段的应答数据中恢复个性化。此处的个性化可以为人名、时间、手机号,但并不局限于此。
[0040]
具体地,在步骤s201中,可以使用设定字符替换对应的用户输入数据中的设定内容的数据,以抹除个性化。同理,在在线的应答阶段应用编码模型进行应答时,根据设定内容和设定字符的对应关系,可以再使用设定内容替换设定字符,从而实现个性化的恢复。
[0041]
例如,可以使用ner(named entity recognition,命名实体识别)模型对样本会话数据进行识别,提取其中的图片、网站、手机号、手机尾号、人名等设定内容,分别替换为[pic]、[http]、[phone]、[subphone]、[name]等设定字符,实现样本会话数据的去个性化。
[0042]
本公开实施例的技术方案在训练阶段,将个性化信息替换成了标准化的特殊符号,其原因在于,在系统模型识别时不会在意个性化信息具体的值,而仅仅在意该个性化信息代表的是哪一类信息,经过这样的替换,个性化信息原本较长的字符串变成了一个标准的词,可以有效地提升模型识别结果。在在线的应答阶段可以对个性化信息进行恢复,并对无法恢复的信息进行特殊符号提示,从而可以有效保持了推荐话术的可用性。
[0043]
此外,当用户输入图片时,系统收到的是图片网址,难以捕捉其中蕴含的信息,同时由于网址较长,会对模型训练产生干扰。例如,真实对话往往采用的是富文本格式,包含大量无意义的html(hyper text markup language,超文本标记语言)符号,对模型训练产生严重干扰。在样本会话数据的预处理过程中,例如在用设定字符替换对应的用户输入数据中的设定内容的数据之前或者之后,还可以将样本会话数据中的富文本格式去除。具体地,可以用正则表达式去除富文本格式,得到纯文本,同时记录处理后的文本与原始文本之间的映射关系,以在在线的应答阶段用以输出正确的富文本格式。
[0044]
在步骤s201中,还可以将用户当前输入的数据和根据当前会话的会话标识获取的所述当前会话中当前用户历史输入的数据使用拼接符拼接,形成所述用户输入数据。
[0045]
具体地,当前会话的会话标记可以为存储在缓存中的当前会话id。在在线的应答阶段,需要对用户输入数据进行预处理。具体地,每次调用自动应答服务时,传参仅需要用户当前输入的数据和当前会话id,接收到自动应答服务的服务请求后,将缓存中存储的当前会话id对应的当前会话中当前用户历史输入的数据取出,与用户当前输入的数据通过编码模型处理过的编码数据用拼接符[sep]拼接起来,得到新的编码数据。其中,缓存实现方案可以为redis数据库,但并不局限于此。
[0046]
在本公开实施例中,把连续几句都是用户输入或都是坐席回复的文本拼接起来,用拼接符分割,可以得到更为精确的编码模型。
[0047]
在编码模型的训练过程中,由于需要对上下文进行感知,常见做法是把上下文拼起来送进模型进行识别,当模型输入的文本长度超过指定值时,往往需要对文本进行截断或压缩处理,截断策略和压缩策略的选取对最终效果影响较大。本公开实施例在模型训练阶段,采用将问题从前截断,将应答从后截断的处理方式,可以有效保留有用信息。
[0048]
在本公开实施例中,将样本会话数据进行预处理,还包括:若问题的文本长度大于设定的m个字符,则将所述问题的后m个字符之前的首部字符删除;若应答的文本长度大于设定的m个字符,则将所述应答的前m个字符之后的尾部字符删除;若所述训练数据中的问题数量大于设定的n,则将后n条问题之前的问题删除,并把保留的n条问题使用拼接符拼接。其中,m和n均为自然数。其中,m取值可以为512,且并不局限于此。若问题的文本长度为1000个字符,则可以将问题的前488个字符删除,仅保留后512个字符。若应答的文本长度为1000个字符,则可以将问题的后488个字符删除,仅保留前512个字符。
[0049]
此外,若同一条训练数据中包括两条或者两条以上应答,也需要将应答使用拼接符拼接。
[0050]
在本公开实施例中,可以将坐席回复当成应答answer(a),将用户输入当成问题query(q),删除q的前部分和a的后部分是因为,q和a中越靠近当前时间的文本蕴含的有效信息越多,删除无效信息多的部分不影响编码模型的训练,还可以减少对编码模型训练过程的干扰。
[0051]
在本公开实施例中,对一个样本会话数据进行处理过程中,在生成训练数据时,可以选取n为5,即最多选取当前用户输入的话以及前4句话,即共5句话,以[sep]分割。例如,以a和b分别代表用户输入和坐席回复,针对会话历史序列[a1、b1、a2、b2、
…
a6、b6],可以生成的query-answer(q-a)对为:
[0052]
「a1,b1」,「a1[sep]a2,b2」,「a1[sep]a2[sep]a3,b3」,「a1[sep]a2[sep]a3[sep]
a4,b4」,「a1[sep]a2[sep]a3[sep]a4[sep]a5,b5」和「a1[sep]a2[sep]a3[sep]a4[sep]a5[sep]a6,b6」。在本公开实施例中,设定最多选取当前用户输入的话以及前4句话时,一个query中最多存在4个[sep],则根据会话历史序列[a1、b1、a2、b2、
…
a6、b6]可以得到的训练数据包括:
[0053]
「a1,b1」,「a1[sep]a2,b2」,「a1[sep]a2[sep]a3,b3」,「a1[sep]a2[sep]a3[sep]a4,b4」,「a1[sep]a2[sep]a3[sep]a4[sep]a5,b5」
[0054]
和「a2[sep]a3[sep]a4[sep]a5[sep]a6,b6」。
[0055]
在步骤s201中,生成了一系列作为训练数据的q-a对。在步骤s202中,将这些q-a对作为训练数据进行深度学习模型训练,其训练过程如下:
[0056]
将训练数据送入初始的双塔模型中进行训练时,令每一个q和它对应的a,经过模型处理之后得到的向量之间的余弦相似度最高。损失函数采用对比学习中in-batch(批处理方案)的思路,即对于一个batch(批次):(q1-a1,q2-a2,
…
,qn-an),对于里面的任意1个问题qm,将其对应的am作为正例,batch中的其它a作为负例,计算交叉熵作为损失函数。其中,m和n都是自然数,一个batch指的是将整个训练数据以固定数量平均分组后一组的数据。
[0057]
在完成步骤s202后,可以得到一个训练好的编码模型。在本公开实施例中,将使用该编码模型对样本会话数据进行处理得到的向量和其对应的原始文本一起保存,即可以得到历史会话库。具体地,在本公开实施例中,可以将样本会话数据输入编码模型,得到样本编码数据,并将样本编码数据和样本会话数据存储到历史会话库中。基于该历史会话库,即可以执行步骤s103,将编码数据在该历史会话库中进行匹配,查找与当前编码数据相似的在库数据。基于该编码模型得到的历史会话库具有匹配过程简单且匹配结果较为准确的技术效果。
[0058]
用户输入数据的预处理过程包括去除富文本,以及将图片、网站、手机号、手机尾号、人名的去个性化。具体地,去个性化内容为:将图片、网站、手机号、手机尾号、人名等设定内容,分别对应替换为设定符号[pic]、[http]、[phone]、[subphone]、[name]。这些设定的符号是自定义的特殊符号,将自定义特殊符号[pic]、[http]、[phone]、[subphone]、[name]、[sep]输入模型的分词器中,模型会将这些特殊符号当成完整的一个词来进行处理。
[0059]
在根据用户输入数据生成会话应答数据的过程中,可以进行两路检索:
[0060]
第一路是将原始的用户输入数据输入正常意图识别模型中,得到知识库中与该文本最相似度最高的第一目标对比数据,及其对应的第一相似度评分s1。其中,正常意图识别模型是基于知识库训练得到的。
[0061]
第二路是将预处理的用户文本数据输入上述离线的编码模型训练阶段得到的编码模型中,得到该文本的向量编码,使用该向量编码在历史会话库中进行检索,可以得到与该向量编码相似度最高的第二目标对比数据及其对应的富文本,及其对应的第二相似度评分s2。其中,该相似度可以为余弦相似度,但并不局限于此。
[0062]
在本公开实施例中,步骤s102可在步骤s101之前执行,也可以在步骤s101之后执行。
[0063]
在本公开实施例中,第一阈值可以设定为0.8。若第一相似度评分s1小于0.8,则执
行步骤s102或者步骤s103。若第一相似度评分s1大于等于0.8,则根据第一目标比对数据得到会话应答数据。即响应于第一相似度评分大于等于第一阈值,根据第一目标比对数据得到会话应答数据。
[0064]
在本公开实施例中,第二阈值可以设定为0.7。若第二相似度评分s2大于等于0.7,则执行步骤s104,即响应于第二相似度评分大于等于设定的第二阈值,根据第二目标比对数据获取当前会话的会话应答数据。若第二相似度评分s2小等于0.7,则返回空结果,自动应答流程失败。
[0065]
在步骤s104中,响应于第二目标比对数据中包含设定字符,使用对应的设定内容替换设定字符,得到会话应答数据。
[0066]
具体地,若第二目标比对数据中存在[pic]、[http]、[phone]、[subphone]、[name]等设定的特殊符号,则可以将设定符号[pic]和[http]原样返回,将设定符号[phone]、[subphone]、[name]替换成当前会话请求服务时附带的用户身份信息参数,如没有对应的参数,则将符号原样返回。原样返回的符号作用在于提醒坐席此处需要替换成真实的信息,避免坐席遗忘而回复错误的结果。
[0067]
如图3所示,本公开实施例的一种会话应答方法包括以下步骤:
[0068]
步骤s301,将用户输入数据输入到知识库中进行比对,得到第一比对结果。
[0069]
步骤s302,判断第一相似度评分是否小于第一阈值。若否,执行步骤s303。若是,执行步骤s304。
[0070]
步骤s303,根据第一目标比对数据获取当前会话的会话应答数据。
[0071]
步骤s304,将编码数据输入到历史会话库中进行比对,得到第二比对结果。
[0072]
步骤s305,判断第二相似度评分是否小于第二阈值。若是,执行步骤s306,若否,执行步骤s307。
[0073]
步骤s306,返回空结果。
[0074]
步骤s307,根据第二目标比对数据获取当前会话的会话应答数据。
[0075]
本公开实施例的技术方案中,每次自动应答服务的服务请求仅需要用户当前的输入,而不需要坐席的回复,这个做法极大缩短了系统的响应时间。其原因是,用户的每一轮输入仅取决于坐席的上一轮回复,而话术推荐的候选集来源为坐席的每一轮回复,因此用户当前输入的数据及其上下文已经包含了足够的信息,可以基于此进行相对精准的回复,既实现了基于上下文的话术推荐,又保证了系统响应低延时。
[0076]
上述所有可选技术方案,可以采用任意结合形成本技术的可选实施例,在此不再一一赘述。
[0077]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本公开实施例的实施过程构成任何限定。
[0078]
根据本公开实施例的会话应答方法,通过将用户输入数据输入知识库进行比对,并在第一相似度评分小于设定的第一阈值时对用户输入数据进行编码处理,再将得到编码数据输入到历史会话库中进行比对,得到会话应答数据,从而可以兼顾到历史会话库和知识库,提高了会话应答数据的质量。
[0079]
下述为本公开装置实施例,可以用于执行本公开方法实施例。下文描述的会话应
答装置与上文描述的会话应答方法可相互对应参照。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。
[0080]
图4是本公开实施例提供的一种会话应答装置的示意图。如图4所示,该会话应答装置包括:
[0081]
第一比对模块401,用于将用户输入数据输入到知识库中进行比对,得到第一比对结果,第一比对结果包括第一目标比对数据和第一目标比对数据的问题与用户输入数据的第一相似度评分。
[0082]
具体地,用户输入数据输入到知识库中之前,需要经过预处理。用户输入数据在知识库中的比对过程即是将用户输入数据与知识库中的数据进行匹配的匹配过程。匹配得到的与用户输入数据相似的知识库中的在库数据即为第一目标比对数据。在库数据包括问题部分和应答部分,即第一目标比对数据包括问题数据和应答数据,第一目标对比数据的问题数据与用户输入数据的相似度评分即为第一相似度评分。
[0083]
编码模块402,用于响应于第一相似度评分小于设定的第一阈值,采用预设的编码模型对当前会话的用户输入数据进行编码处理,得到编码数据。
[0084]
具体地,第一相似度评分大于等于设定的第一阈值,说明在知识库中为用户输入数据匹配到了较为相似的匹配数据,此时可以根据第一目标比对数据得到当前会话的会话应答数据。第一相似度评分小于设定的第一阈值,说明在知识库中没有为用户输入数据匹配到较为相似的匹配数据,此时可以根据用户输入数据在历史会话库中匹配与用户输入数据对应的在库数据。用户输入数据在输入到历史会话库之前,需要通过预设的编码模型进行编码处理。
[0085]
第二比对模块403,用于将编码数据输入到历史会话库中进行比对,得到第二比对结果,第二比对结果包括第二目标比对数据和第二目标比对数据与编码数据的第二相似度评分。
[0086]
具体地,历史会话库可以称为候选集,是包含历史会话的问题和应答的数据集合。编码数据在历史会话库中的比对过程即是将编码数据与历史会话库中的数据进行匹配的匹配过程。匹配得到的与编码数据相似的历史会话库中的在库数据即为第二目标比对数据。在库数据包括问题部分和应答部分,即第二目标比对数据包括问题数据和应答数据,第二目标对比数据的问题数据与编码数据的相似度评分即为第二相似度评分。
[0087]
应答获取模块404,用于响应于第二相似度评分大于等于设定的第二阈值,根据第二目标比对数据获取当前会话的会话应答数据。
[0088]
具体地,第二相似度评分大于等于设定的第二阈值,说明在历史会话库中为编码数据匹配到了较为相似的匹配数据,此时可以根据第二目标比对数据得到当前会话的会话应答数据。第二相似度评分小于设定的第二阈值,说明在历史会话库中没有为编码数据匹配到较为相似的匹配数据,此时返回无结果,当前会话应答服务结束。
[0089]
根据本公开实施例的技术方案,根据用户的输入结合知识库和历史会话库得到自动回复,可以提升坐席回复效率,并保证质量稳定可控。由于仅使用用户的输入数据,不需要获得当前会话中坐席的回复,避免了频繁的数据读取,从而可以提升系统响应速度;由于可以兼顾知识库和历史会话库,使得本公开实施例的技术方案可以提升回复质量。此外,本公开实施例的技术方案设计的应答系统和编码模型复杂程度较低,易于实现。
[0090]
在本公开实施例中,应答获取模块还可以用于响应于第一相似度评分大于等于第一阈值,根据第一目标比对数据得到会话应答数据。
[0091]
在本公开实施例中,会话应答装置还可以包括预处理模块,用于将将用户当前输入的数据和根据当前会话的会话标识获取的所述当前会话中当前用户历史输入的数据使用拼接符拼接,形成所述用户输入数据。预处理模块还可以使用设定字符替换对应的用户输入数据中的设定内容的数据。
[0092]
具体地,当前会话的会话标记可以为存储在缓存中的当前会话id。在在线的应答阶段,需要对用户输入数据进行预处理。具体地,每次调用自动应答服务时,传参仅需要用户当前输入的数据和当前会话id,接收到自动应答服务的服务请求后,将缓存中存储的当前会话id对应的当前会话中当前用户历史输入的数据取出,与用户当前输入的数据通过编码模型处理过的编码数据用拼接符[sep]拼接起来,得到新的编码数据。其中,缓存实现方案可以为redis数据库,但并不局限于此。
[0093]
在本公开实施例中,应答获取模块还可以用于响应于第二目标比对数据中包含设定字符,使用对应的设定内容替换设定字符,得到会话应答数据。
[0094]
例如,可以使用ner(named entity recognition,命名实体识别)模型对样本会话数据进行识别,提取其中的图片、网站、手机号、手机尾号、人名等设定内容,分别替换为[pic]、[http]、[phone]、[subphone]、[name]等设定字符,实现样本会话数据的去个性化。
[0095]
本公开实施例的技术方案在训练阶段,将个性化信息替换成了标准化的特殊符号,其原因在于,在系统模型识别时不会在意个性化信息具体的值,而仅仅在意该个性化信息代表的是哪一类信息,经过这样的替换,个性化信息原本较长的字符串变成了一个标准的词,可以有效地提升模型识别结果。在在线的应答阶段可以对个性化信息进行恢复,并对无法恢复的信息进行特殊符号提示,从而可以有效保持了推荐话术的可用性。
[0096]
在本公开实施例中,会话应答装置还可以包括训练模块,用于将样本会话数据进行预处理,得到训练数据,训练数据包括一条应答和至少一条问题,样本会话数据包括历史会话过程中产生的问题和应答的数据,并采用对比学习中的批处理方案选取的正负例的交叉熵作为损失函数,将训练数据的问题部分和应答部分分别输入双塔深度学习模型进行训练,直到损失函数收敛,得到训练好的编码模型,预处理包括使用设定字符替换对应的样本会话数据中的设定内容的数据,以及采用拼接符隔离样本会话数据中的问题。
[0097]
具体地,样本会话数据中的设定内容会包括个性化的、对编码模型训练无用的信息,例如,人名、时间、手机号等信息。采用设定字符替换这些个性化信息,可以提高编码模型的训练效率。将训练数据送入初始的模型中进行训练时,令每一个q和它对应的a,经过模型处理之后得到的向量之间的余弦相似度最高。损失函数采用对比学习中in-batch(批处理方案)的思路,即对于一个batch(批次):(q1-a1,q2-a2,
…
,qn-an),对于里面的任意1个问题qm,将其对应的am作为正例,batch中的其它a作为负例,计算交叉熵作为损失函数。其中,m和n都是自然数,一个batch指的是将整个训练数据以固定数量平均分组后一组的数据。
[0098]
在本公开实施例中,预处理模块还可以在问题的文本长度大于设定的m个字符时,将所述问题的后m个字符之前的首部字符删除;在应答的文本长度大于设定的m个字符使,将所述应答的前m个字符之后的尾部字符删除;在所述训练数据中的问题数量大于设定的n
时,将后n条问题之前的问题删除。其中,m和n均为自然数。例如,m可以取512,n可以取4,且并不局限于此。
[0099]
在编码模型的训练过程中,由于需要对上下文进行感知,常见做法是把上下文拼起来送进模型进行识别,当模型输入的文本长度超过指定值时,往往需要对文本进行截断或压缩处理,截断策略和压缩策略的选取对最终效果影响较大。本公开实施例在模型训练阶段,采用将问题从前截断,将应答从后截断的处理方式,可以有效保留有用信息。
[0100]
在本公开实施例中,会话应答装置还可以用于将样本会话数据输入编码模型,得到样本编码数据,并将样本编码数据和样本会话数据存储到历史会话库中。在本公开实施例中,将使用该编码模型对样本会话数据进行处理得到的向量和其对应的原始文本一起保存,即可以得到历史会话库。基于该历史会话库,即可以执行步骤s103,将编码数据在该历史会话库中进行匹配,查找与当前编码数据相似的在库数据。基于该编码模型得到的历史会话库具有匹配过程简单且匹配结果较为准确的技术效果。
[0101]
在本公开实施例中,每次自动应答服务的服务请求仅需要用户当前的输入,而不需要坐席的回复,这个做法极大缩短了系统的响应时间。其原因是,用户的每一轮输入仅取决于坐席的上一轮回复,而话术推荐的候选集来源为坐席的每一轮回复,因此用户当前用户输入数据及其上下文已经包含了足够的信息,可以基于此进行相对精准的回复,既实现了基于上下文的话术推荐,又保证了系统响应低延时。
[0102]
由于本公开的示例实施例的会话应答装置的各个功能模块与上述会话应答方法的示例实施例的步骤对应,因此对于本公开装置实施例中未披露的细节,请参照本公开上述的会话应答方法的实施例。
[0103]
根据本公开实施例的会话应答装置,通过将用户输入数据输入知识库进行比对,并在第一相似度评分小于设定的第一阈值时对用户输入数据进行编码处理,再将得到编码数据输入到历史会话库中进行比对,得到会话应答数据,从而可以兼顾到历史会话库和知识库,提高了会话应答数据的质量。
[0104]
图5是本公开实施例提供的电子设备5的示意图。如图5所示,该实施例的电子设备5包括:处理器501、存储器502以及存储在该存储器502中并且可在处理器501上运行的计算机程序503。处理器501执行计算机程序503时实现上述各个方法实施例中的步骤。或者,处理器501执行计算机程序503时实现上述各装置实施例中各模块的功能。
[0105]
电子设备5可以是桌上型计算机、笔记本、掌上电脑及云端服务器等电子设备。电子设备5可以包括但不仅限于处理器501和存储器502。本领域技术人员可以理解,图5仅仅是电子设备5的示例,并不构成对电子设备5的限定,可以包括比图示更多或更少的部件,或者不同的部件。
[0106]
处理器501可以是中央处理单元(central processing unit,cpu),也可以是其它通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
[0107]
存储器502可以是电子设备5的内部存储单元,例如,电子设备5的硬盘或内存。存储器502也可以是电子设备5的外部存储设备,例如,电子设备5上配备的插接式硬盘,智能
存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。存储器502还可以既包括电子设备5的内部存储单元也包括外部存储设备。存储器502用于存储计算机程序以及电子设备所需的其它程序和数据。
[0108]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0109]
集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本公开实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可以存储在计算机可读存储介质中,该计算机程序在被处理器执行时,可以实现上述各个方法实施例的步骤。计算机程序可以包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如,在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0110]
以上实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的精神和范围,均应包含在本公开的保护范围之内。
技术特征:1.一种会话应答方法,其特征在于,所述方法包括:将用户输入数据输入到知识库中进行比对,得到第一比对结果,所述第一比对结果包括第一目标比对数据和所述第一目标比对数据的问题与所述用户输入数据的第一相似度评分;响应于第一相似度评分小于设定的第一阈值,采用预设的编码模型对当前会话的用户输入数据进行编码处理,得到编码数据;将所述编码数据输入到历史会话库中进行比对,得到第二比对结果,所述第二比对结果包括第二目标比对数据和所述第二目标比对数据与所述编码数据的第二相似度评分;响应于所述第二相似度评分大于等于设定的第二阈值,根据所述第二目标比对数据获取所述当前会话的会话应答数据。2.根据权利要求1所述的方法,其特征在于,所述得到第一比对结果之后,所述方法还包括:响应于第一相似度评分大于等于所述第一阈值,根据所述第一目标比对数据得到所述会话应答数据。3.根据权利要求1所述的方法,其特征在于,所述采用预设的编码模型对当前会话的用户输入数据进行编码处理之前,所述方法还包括:将所述用户输入数据进行预处理,所述预处理包括使用设定字符替换对应的用户输入数据中的设定内容的数据;将用户当前输入的数据和根据当前会话的会话标识获取的所述当前会话中当前用户历史输入的数据使用拼接符拼接,形成所述用户输入数据。4.根据权利要求3所述的方法,其特征在于,所述根据所述第二目标比对数据获取所述当前会话的会话应答数据,包括:响应于所述第二目标比对数据中包含所述设定字符,使用对应的设定内容替换所述设定字符,得到所述会话应答数据。5.根据权利要求1所述的方法,其特征在于,所述编码模型的训练过程包括:将样本会话数据进行预处理,得到训练数据,所述训练数据包括一条应答和至少一条问题,所述样本会话数据包括历史会话过程中产生的问题和应答的数据,所述预处理包括使用设定字符替换对应的样本会话数据中的设定内容的数据,以及采用拼接符隔离所述样本会话数据中的问题;采用对比学习中的批处理方案选取的正负例的交叉熵作为损失函数,将所述训练数据的问题部分和应答部分分别输入双塔深度学习模型进行训练,直到所述损失函数收敛,得到训练好的编码模型。6.根据权利要求5所述的方法,其特征在于,所述将样本会话数据进行预处理,得到训练数据,所述训练数据包括一条应答和至少一条问题,包括:若问题的文本长度大于设定的m个字符,则将所述问题的后m个字符之前的首部字符删除,其中,m为自然数;若应答的文本长度大于设定的m个字符,则将所述应答的前m个字符之后的尾部字符删除;若所述训练数据中的问题数量大于设定的n,则将后n条问题之前的问题删除,其中,n
为自然数。7.根据权利要求5所述的方法,其特征在于,所述得到训练好的编码模型之后,所述方法还包括:将所述样本会话数据输入所述编码模型,得到样本编码数据;将所述样本编码数据和样本会话数据存储到所述历史会话库中。8.一种会话应答装置,其特征在于,所述装置包括:第一比对模块,用于将用户输入数据输入到知识库中进行比对,得到第一比对结果,所述第一比对结果包括第一目标比对数据和所述第一目标比对数据的问题与所述用户输入数据的第一相似度评分;编码模块,用于响应于第一相似度评分小于设定的第一阈值,采用预设的编码模型对当前会话的用户输入数据进行编码处理,得到编码数据;第二比对模块,用于将所述编码数据输入到历史会话库中进行比对,得到第二比对结果,所述第二比对结果包括第二目标比对数据和所述第二目标比对数据与所述编码数据的第二相似度评分;应答获取模块,用于响应于所述第二相似度评分大于等于设定的第二阈值,根据所述第二目标比对数据获取所述当前会话的会话应答数据。9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并且可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述方法的步骤。10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述方法的步骤。
技术总结本公开涉及计算机技术领域,提供了一种会话应答方法及装置。该方法包括:将用户输入数据输入到知识库中进行比对,得到第一比对结果,第一比对结果包括第一目标比对数据和第一目标比对数据的问题与用户输入数据的第一相似度评分;响应于第一相似度评分小于设定的第一阈值,采用预设的编码模型对当前会话的用户输入数据进行编码处理,得到编码数据;将编码数据输入到历史会话库中进行比对,得到第二比对结果,第二比对结果包括第二目标比对数据和第二目标比对数据与编码数据的第二相似度评分;响应于第二相似度评分大于等于设定的第二阈值,根据第二目标比对数据获取当前会话的会话应答数据。话应答数据。话应答数据。
技术研发人员:武文杰
受保护的技术使用者:深圳集智数字科技有限公司
技术研发日:2022.06.24
技术公布日:2022/11/1