发明内容
基于此,有必要针对上述技术问题,提供一种能够提高准确率的答复语句生成方法、装置、计算机设备和存储介质。
第一方面,本申请提供了一种答复语句生成方法,所述方法包括:
获取属于当前会话中的待回复问题和在所述待回复问题之前产生的上文对话内容;
从预先构建的高频问答库中,筛选与所述待回复问题匹配的多个答案,得到答案集合;所述高频问答库中存储使用频率满足高频条件的问题答案对;
针对所述答案集合中的每个答案,将所述答案分别与所述上文对话内容和所述待回复问题中的每个语句进行匹配,得到每个所述答案在已产生的对话内容中对应的匹配信息;
根据所述匹配信息,从所述答案集合中筛选出与所述待回复问题对应的目标答案,作为所述当前会话中所述待回复问题的答复语句。
在其中一个实施例中,所述从预先构建的高频问答库中,筛选与所述待回复问题匹配的多个答案,得到答案集合包括:
分别计算所述高频问答库的问题与所述待回复问题的相似度值;
根据相似度值的大小对所述高频问答库的问题进行排序;
根据排序结果从所述高频问答库中的问题中,筛选所述待回复问题对应的至少一个参考问题;筛选出的所述参考问题与所述待回复问题之间的相似度,大于所述高频问答库中未被筛选的问题与所述待回复问题之间的相似度;
获取各所述所述参考问题在所述高频问答库中对应的答案,得到答案集合。
在其中一个实施例中,所述高频问答库的预先构建步骤包括:
基于历史对话数据得到问答数据集合,所述问答数据集合包括一一对应的问题和答案;
从所述问答数据集合中选取预设数量的第一问题;
针对每个所述第一问题,从所述问答数据集合的未被选取的问题中,筛选与所述第一问题相似度大于预设第一阈值的至少一个第二问题,得到第二问题集合;
分别确定各所述第二问题在所述第二问题集合中出现的概率;
针对概率大于预设概率阈值的每个第二问题,将所述第二问题以及对应的每个不同的答案作为一组数据存储至所述高频问答库。
在其中一个实施例中,所述针对所述答案集合中的每个答案,将所述答案分别与所述上文对话内容和所述待回复问题中的每个语句进行匹配,得到每个所述答案在已产生的对话内容中对应的匹配信息包括:
针对所述答案集合中的每个答案,将所述答案与所述上文对话内容和所述待回复问题输入训练好的语句匹配模型,以基于所述语句匹配模型将所述答案分别与所述上文对话内容和所述待回复问题中的每个语句进行匹配,得到每个所述答案在已产生的对话内容中对应的匹配信息。
在其中一个实施例中,所述语句匹配模型的训练步骤包括:
基于历史对话数据获取正样本的集合;所述正样本包括样本问题、样本上文对话内容和所述样本问题的正确答案;所述样本上文对话内容是在所述样本问题所属会话中,位于所述样本问题之前的对话内容;
获取每个所述正样本对应的至少一个负样本,所述负样本包括样本问题、所述样本上文对话内容和所述样本问题的错误答案;
基于每个所述正样本以及对应的负样本训练所述语句匹配模型。
在其中一个实施例中,所述获取样本集合的每个正样本对应的至少一个负样本包括:
从所述历史对话数据中,获取与所述样本问题满足相似条件的候选问题;
从所述候选问题中,筛选至少一个与所述样本问题相似度小于预设第二阈值的目标问题;
获取所述目标问题的答案,并将所述目标问题的答案作为所述负样本中的所述样本问题的错误答案。
在其中一个实施例中,所述匹配信息包括匹配分数;
所述根据所述匹配信息,从所述答案集合中筛选出与所述待回复问题对应的目标答案包括:
根据匹配分数的大小对所述答案集合中的答案进行排序;
根据排序结果,从所述答案集合中选取与所述待回复问题对应的目标答案;所述目标答案的匹配分数大于所述答案集合中未被选取的答案的匹配分数。
第二方面,本申请还提供了一种答复语句生成装置,所述装置包括:
获取模块,用于获取属于当前会话中的待回复问题和在所述待回复问题之前产生的上文对话内容;
初步筛选模块,用于从预先构建的高频问答库中,筛选与所述待回复问题匹配的多个答案,得到答案集合;所述高频问答库中存储使用频率满足高频条件的问题答案对;
匹配模块,用于针对所述答案集合中的每个答案,将所述答案分别与所述上文对话内容和所述待回复问题中的每个语句进行匹配,得到每个所述答案在已产生的对话内容中对应的匹配信息;
进阶筛选模块,用于根据所述匹配信息,从所述答案集合中筛选出与所述待回复问题对应的目标答案,作为所述当前会话中所述待回复问题的答复语句。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行上述答复语句生成方法的步骤。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行上述答复语句生成方法的步骤。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行上述答复语句生成方法的步骤。
上述答复语句生成方法、装置、计算机设备和存储介质,通过获取属于当前对话中的待回复问题和在待回复问题之前产生的上文对话内容;从预先构建的高频问答库中,初步筛选出与待回复问题匹配的多个答案,得到答案集合。基于初步筛选本方法已经获取匹配的答案集合,在此基础上,进阶地,针对答案集合中的每个答案,将答案分别与上文对话内容和待回复问题中的每个语句进行匹配,得到每个答案在已产生的对话内容中对应的匹配信息;根据匹配信息,进一步从答案集合中筛选出与待回复问题对应的目标答案。因此,通过将答案与上文对话内容和待回复问题的每个语句进行匹配得到匹配信息,并将匹配信息作为筛选标准,以使得进阶筛选过程中可以取得更为准确的筛选结果,从而进一步提高对答案进行筛选的准确率,进而提高答复语句生成的准确率。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的答复语句生成方法,可以应用于如图1所示的应用环境中。其中,终端110通过网络与服务器120进行通信。其中,终端110可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
服务器120可以获取属于当前对话中的待回复问题和在待回复问题之前产生的上文对话内容,从预先构建的高频问答库中,筛选与待回复问题匹配的多个答案,得到答案集合。服务器110针对答案集合中的每个答案,将答案分别与上文对话内容和待回复问题中的每个语句进行匹配,得到每个答案在已产生的对话内容中对应的匹配信息。服务器120根据匹配信息,从答案集合中筛选出与待回复问题对应的目标答案,作为当前会话中所述待回复问题的答复语句。服务器120可以将目标答案发送给终端110,以触发终端110展示目标答案的内容。
在一个实施例中,如图2所示,提供了一种答复语句生成方法,本实施例以该方法应用于服务器进行举例说明,可以理解的是,该方法也可以应用于终端,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
S202,获取属于当前会话中的待回复问题和在待回复问题之前产生的上文对话内容;从预先构建的高频问答库中,筛选与待回复问题匹配的多个答案,得到答案集合;高频问答库中存储使用频率满足高频条件的问题答案对。
其中,上文对话内容是指在会话过程中,当前的待回复问题之前产生的上文对话内容。问题答案对是指一一对应的问题和答案。答案集合是指存储多个答案的集合。
在一个实施例中,上文对话内容包括了当前会话中待回复问题之前产生所有的内容。
在另一个实施例中,上文对话内容包括了当前会话中待回复问题之前产生一部分的内容。
在一个实施例中,筛选与待回复问题匹配的多个答案包括:筛选与待回复问题相似或/和相同的多个答案。
在一个实施例中,高频问答库的构建步骤包括:基于坐席历史对话数据得到问答数据集合,从问答数据集合中,筛选问题出现频率大于预设第一阈值的多个问题,将多个问题和对应的答案放入高频问答库。
在一个实施例中,服务器是基于问题之间的相似度值,从预先构建的高频问答库中,筛选出与待回复问题匹配的多个答案。
具体地,高频问答库是预先构建好的,并存储使用频率满足高频条件的问题答案对。服务器获取属于当前会话中的待回复问题和在待回复问题之前产生的上文对话内容,从高频问答库中,基于高频问答库的问题和待回复问题之间的相似度值,筛选与待回复问题相同和或相似的多个答案,从而得到答案集合。
S204,针对答案集合中的每个答案,将答案分别与上文对话内容和待回复问题中的每个语句进行匹配,得到每个答案在已产生的对话内容中对应的匹配信息。
其中,匹配信息用于表征答案跟上文对话内容和待回复问题的匹配结果。上位对话内容包括至少一个问题和对应的答案,比如问题1、答案1、问题2、答案2、问题3以及答案3。已产生的对话内容是指当前会话中已经发生的对话,包括上文对话内容和待回复问题。
在一个实施例中,对两个句子之间进行匹配可以判断出这两个句子是否具备某种类型的关系。比如,将答案和待回复问题这一个语句进行匹配,可以判断出这两个句子是否具有问答的关系。
在一个实施例中,将答案分别与上文对话内容和待回复问题中的每个语句进行匹配的过程包括:将答案分别与上位对话内容的所包括的问题和答案以及待回复问题进行匹配。
在一个实施例中,服务器是基于神经网络模型进行步骤S204中的语句匹配处理,以获取到匹配信息。在一个实施例中,该神经网络模型可以是语句匹配模型。
在一个实施例中,语句匹配模型可以是SMN(Sequential Matching Network)模型。在其他实施例中,语句匹配模型还可以是使用其他技术训练的、能够实现语句匹配处理的模型。
在一个实施例中,服务器使用正样本和负样本对语句匹配模型进行训练。
在一个实施例中,基于坐席历史对话数据,服务器获取包括正确答案的正样本,并确认与正样本的问题相似度低于预设第二阈值的问题,将该问题的答案作为正样本对应的负样本的错误答案,服务器将正样本和负样本作为语句匹配模型的训练集。
具体地,服务器使用训练好的语句匹配模型,针对答案集合中的每个答案,将答案、上文对话内容和待回复问题输入语句匹配模型,语句匹配模型在多个粒度级别上将答案分别与上文对话内容和待回复问题中的每个语句进行匹配,并进行卷积和池化操作,进而得到每个答案在已产生的对话内容中对应的匹配信息。
S206,根据匹配信息,从答案集合中筛选出与待回复问题对应的目标答案,作为当前会话中待回复问题的答复语句。
其中,目标答案是筛选出的、能够解答待回复问题的疑问的答案。
具体地,服务器根据匹配信息,对答案集合的每个答案进行筛选,进一步得到与待回复问题对应的目标答案,并将目标答案作为当前会话中待回复问题的答复语句。
在一个实施例中,服务器筛选出多个目标答案,将多个目标答案作为答复语句,并将多个目标答案发送给终端,终端展示多个目标答案,坐席可以进一步挑选。
在一个实施例中,服务器根据匹配信息,对答案集合进行排序,从而筛选出与待回复问题对应的目标答案。
上述答复语句生成方法、装置、计算机设备和存储介质,通过获取属于当前对话中的待回复问题和在待回复问题之前产生的上文对话内容;从预先构建的高频问答库中,初步筛选出与待回复问题匹配的多个答案,得到答案集合。基于初步筛选本方法已经获取匹配的答案集合,在此基础上,进阶地,针对答案集合中的每个答案,将答案分别与上文对话内容和待回复问题中的每个语句进行匹配,得到每个答案在已产生的对话内容中对应的匹配信息;根据匹配信息,进一步从答案集合中筛选出与待回复问题对应的目标答案。因此,通过将答案与上文对话内容和待回复问题的每个语句进行匹配得到匹配信息,并将匹配信息作为筛选标准,以使得进阶筛选过程中可以取得更为准确的筛选结果,从而进一步提高对答案进行筛选的准确率,进而提高答复语句生成的准确率。
在一个实施例中,从预先构建的高频问答库中,筛选与待回复问题匹配的多个答案,得到答案集合包括:分别计算高频问答库的问题与待回复问题的相似度值;根据相似度值的大小对高频问答库的问题进行排序;根据排序结果从高频问答库中的问题中,筛选待回复问题对应的至少一个参考问题;筛选出的参考问题与待回复问题之间的相似度,大于高频问答库中未被筛选的问题与待回复问题之间的相似度;获取各参考问题在高频问答库中对应的答案,得到答案集合。
其中,相似度值用于表征问题之间的相似度。至少一个,为一个或多个。
在一个实施例中,相似度值的计算是基于bm25算法(一种用来评价搜索词和文档之间相关性的算法)得到的。
具体地,服务器分别计算高频问答库的问题与待回复问题的相似度值;根据相似度值的大小对高频问答库的问题进行排序。可以理解,服务器可以根据相似度值的大小对高频问答库的问题进行正序或倒序排序。若是正序排序,服务器根据排序结果选取排名靠后问题作为参考问题,若是倒序排序,服务器根据排序结果选取排名靠前的问题作为参考问题,从而筛选待回复问题相似度高的参考问题。服务器筛选出的参考问题与待回复问题之间的相似度,大于高频问答库中未被筛选的问题与待回复问题之间的相似度。服务器再进一步获取各参考问题在高频问答库中对应的答案,从而得到答案集合。
在一个实施例中,服务器根据高频问答库的问题与待回复问题的相似度值大小,对高频问答库进行倒序排序,服务器根据倒序排序结果,选取靠前预设位次的问题作为参考问题,基于参考问题对应的答案得到答案集合。
在本实施例中,通过对相似度值的计算,并基于相似度值对高频问题库的问题进行排序,根据排序结果筛选出与待回复问题相似度高的至少一个参考问题,再获取参数问题对应的答案从而得到答案集合。因此,服务器就可以通过基于相似度的初步筛选得到待回复问题相对应的答案集合。
在一个实施例中,高频问答库的预先构建步骤包括:基于历史对话数据得到问答数据集合,问答数据集合包括一一对应的问题和答案;从问答数据集合中选取预设数量的第一问题;针对每个第一问题,从问答数据集合的未被选取的问题中,筛选与第一问题相似度大于预设第一阈值的至少一个第二问题,得到第二问题集合;分别确定各第二问题在第二问题集合中出现的概率;针对概率大于预设概率阈值的每个第二问题,将第二问题以及对应的每个不同的答案作为一组数据存储至高频问答库。
其中,历史对话数据是坐席与客户之间的已发生的对话的数据。
在一个实施例中,服务器对历史对话数据进行清洗和分离后,得到问答数据集合。比如,服务器从历史对话数据中,挑选优秀坐席的对话数据,并将坐席和客户各自发表的内容分离开来,从而得到一一对应的问题和答案的集合,即问答数据集合。
在一个实施例中,服务器从问答数据集合中随机选取出预设数量的第一问题。
在另一个实施例中,服务器针对问答数据库所涉及的业务的不同类型,分别从问答数据集合中随机选取出与业务类型相对应的预设数量的第一问题。
在一个实施例中,服务器获取第二问题,对第二问题集合的问题进行遍历,判断第二问题跟第二问题集合的问题是否相同,从而得到第二问题在第二问题集合中出现的概率。
在一个实施例中,第二问题集合中的第二问题可以是相同的,并且分别对应相同的答案或不同的答案。服务器去掉重复的问题和答案后,将第二问题以及对应的每个不同的答案各自作为一组数据存储至高频问答库。
具体地,服务器对历史对话数据进行清洗和分离后,得到包括一一对应的问题和答案的问答数据集合。服务器从问答数据集合中选取预设数量的第一问题,针对每个第一问题,分别计算第一问题和问答数据集合的未被选取的问题之间的相似度值,根据相似度值筛选与第一问题相似度大于预设第一阈值的至少一个第二问题,得到第二问题集合。服务器分别计算各个第二问题在第二问题集合中出现的概率,并选取概率大于预设概率阈值的第二问题,针对问题和答案的组合进行去重复处理后,将概率大于预设概率阈值的第二问题以及对应的每个不同的答案各自作为一组数据存储到高频问答库。
在本实施例中,服务器基于历史对话数据得到问答数据集合,基于问题之间的相似度值,选取出现频率高的问题和对应的答案到高频问题库。这样,在出现新的业务或新的知识时,服务器可以根据历史对话数据自动更新高频召回库,不需要人工标注,从而降低维护人工成本,并且服务器选取出现频率高的问题和答案,为答案集合的生成提供了可靠性的准备,从而进一步提高答复语句生成的准确率。
在一个实施例中,针对答案集合中的每个答案,将答案分别与上文对话内容和待回复问题中的每个语句进行匹配,得到每个答案在已产生的对话内容中对应的匹配信息包括:针对答案集合中的每个答案,将答案与上文对话内容和待回复问题输入训练好的语句匹配模型,以基于语句匹配模型将答案分别与上文对话内容和待回复问题中的每个语句进行匹配,得到每个答案在已产生的对话内容中对应的匹配信息。
在一个实施例中,语句匹配模型包括三层网络结构,第一层用于提取重要的匹配过程信息;第二层用于累积重要的匹配过程信息;第三层用于计算最终的匹配信息。
在一个实施例中,服务器使用训练好的语句匹配模型,针对答案集合中的每个答案,将答案、上文对话内容和待回复问题输入至语句匹配模型。语句匹配模型第一层在多个粒度级别上将答案分别与上文对话内容和待回复问题中的每个语句进行匹配,进而从上下文中提取重要的匹配过程信息,将这些匹配过程信息作为一个矩阵进行卷积和池化操作。语句匹配模型第二层通过循环神经网络模型GRU(Gate Recurrent Unit),按时间顺序累积这些匹配过程信息。语句匹配模型第三层再计算匹配过程信息最终得到匹配信息。
在本实施例中,服务器基于语句匹配模型将答案分别与上文对话内容和待回复问题中的每个语句进行匹配,得到每个答案在已产生的对话内容中对应的匹配信息,进而根据匹配信息筛选答案。这样,服务器不再是使用单句问题识别答案是否准确,而是与上下文和当前待回复语句进行匹配,生成匹配信息,从而可以基于匹配信息更准确的得到所选取的答案的准确率,以提高应对各种问题的灵活性。
在一个实施例中,语句匹配模型的训练步骤包括:基于历史对话数据获取正样本的集合;正样本包括样本问题、样本上文对话内容和样本问题的正确答案;样本上文对话内容是在样本问题所属会话中,位于样本问题之前的对话内容;获取每个正样本对应的至少一个负样本,负样本包括样本问题、样本上文对话内容和样本问题的错误答案;基于每个正样本以及对应的负样本训练语句匹配模型。
其中,样本上文对话内容是指样本问题所属会话中,位于样本问题之前的对话内容。
在一个实施例中,服务器对坐席历史对话数据进行清洗和分离后,得到正样本的集合。
在一个实施例中,服务器针对每个正样本,获取对应的两个负样本。
具体地,服务器将样本问题、样本上文对话内容和样本问题的正确答案作为一份正样本,将样本问题、样本上文对话内容和样本问题的错误答案作为一份负样本,正样本的标签为1,负样本的标签为0,将正样本和负样本以及它们对应的标签,输入到语句匹配模型进行训练。可以理解,语句匹配模型可以根据输入的标签区分正负样本。
在本实施例中,服务器使用正负样本来训练语句匹配模型,以使得语句匹配模型学习到正确与错误之间的差异化特征,从而可以提高语句匹配模型的识别能力,进而在使用训练好的语句匹配模型时,可以提高匹配信息生成的准确率,以使得提高对答复语句筛选的准确性。
在一个实施例中,获取样本集合的每个正样本对应的至少一个负样本包括:从历史对话数据中,获取与样本问题满足相似条件的候选问题;从候选问题中,筛选至少一个与样本问题相似度小于预设第二阈值的目标问题;获取目标问题的答案,并将目标问题的答案作为负样本中的样本问题的错误答案。
具体地,服务器从历史对话数据中,根据样本问题和历史对话数据中的问题之间的相似度,选取出与样本问题满足相似条件的候选问题。服务器对候选问题进行排序,筛选至少一个与样本问题相似度小于预设第二阈值的目标问题。服务器获取目标问题的答案,并将目标问题的答案作为负样本中的样本问题的错误答案。
在一个实施例中,服务器从历史对话数据中,获取与样本问题满足相似条件的候选问题包括:服务器计算样本问题和历史对话数据中的问题之间的相似度,获取与样本问题相似和/或相同,即相似度大于预设第三阈值的候选问题。
在一个实施例中,服务器针对候选问题进行正序排序,选取排名靠前预设位次的候选问题,即选取出与样本问题相似度小于预设第二阈值的候选问题,并从中候选问题中,随机挑选出至少一个目标问题。
在本实施例中,服务器所选取的目标问题与样本问题之间的相似度是大于预设第三阈值小于预设第二阈值的,并不是选取与样本问题相似度差的目标问题。这样,将目标问题的答案作为负样本的答案用于训练语句匹配模型,以提高语句匹配模型的识别精度,从而进一步提高答复语句筛选的准确率。
在一个实施例中,匹配信息为匹配分数;根据匹配信息,从答案集合中筛选出与待回复问题对应的目标答案包括:根据匹配分数的大小对答案集合中的答案进行排序;根据排序结果,从答案集合中选取与待回复问题对应的目标答案;目标答案的匹配分数大于答案集合中未被选取的答案的匹配分数。
其中,匹配分数大小用于表征答案与上文对话内容和待回复问题之间的匹配程度高低。
具体地,服务器根据匹配分数的大小对答案集合中的答案进行排序。若是正序排序,则选取排名靠后的至少一个答案作为目标答案,若是倒序排序,则选择排名靠前的至少一个答案作为目标答案,服务器所选取目标答案的匹配分数大于答案集合中未被选取的答案的匹配分数。
在本实施例中,通过对匹配分数的大小对答案集合的答案进行排序,从而选取出匹配分数大的答案。这样服务器在步骤S202的初步筛选之后,又经过基于匹配分数的进阶筛选,从而提高了所选取答案的准确性,即答复语句的准确性。
在一个实施例中,如图3所示,提供了答复语句生成方法的原理示意图。具体地,服务器针对历史对话数据进行清洗和分离后,得到正样本集合,从历史对话数据中获取与正样本满足相似条件的候选问题,基于候选问题筛选出正样本对应的负样本的错误的答案,从而生成负样本。服务器对正样本和负样本进行词向量编码后,输入语句匹配模型模型进行训练,可以理解,该语句匹配模型可以是SMN模型。服务器针对历史对话数据进行清洗和分离后,得到问答数据集合,从问答数据集合中随机选取得到召回问答集合,未选取的部分归为待召回问答集合。服务器针对召回问答集合中的每个问题,根据相似度从待召回问答集合中召回至少一个相似度大于预设第一阈值的第二问题,再从第二问题中进一步筛选出问题出现概率大于预设概率阈值的问题,从而生成高频问答库。服务器针对输入的待回复问题和上文对话内容,根据待回复问题从构建好的高频问答库获取相同和/或相似的问题。获取问题对应的答案后,将答案、上文对话内容和待回复问题输入训练好的语句匹配模型,语句匹配模型将答案与上文对话内容和待回复问题的每个语句进行匹配从而得到匹配信息,服务器基于匹配信息对所选择的答案进行排序,根据排序结果确认回复语句。获取匹配信息的过程包括:语句匹配模型在处理输入的上文对话内容、待回复问题和答案时,将答案分别和上文对话内容所包括的问题和答案、待回复问题进行匹配,从而得到匹配信息。比如,上文对话内容包括上文对话内容问题1、上位对话内容答案1至上位对话内容问题n和上位对话内容答案n,服务器将答案分别和上文对话内容问题1、上位对话内容答案1至上位对话内容问题n、上位对话内容答案n以及待回复问题进行匹配,提取每两个语句之间的匹配结果,从而得到匹配信息。
应该理解的是,虽然本申请部分实施例中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的答复语句生成方法的答复语句生成装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个答复语句生成装置实施例中的具体限定可以参见上文中对于答复语句生成方法的限定,在此不再赘述。
在一个实施例中,如图4所示,提供了一种答复语句生成装置400,包括:获取模块402、初步筛选模块404、匹配模块406和进阶筛选模块408,其中:
获取模块402,用于获取属于当前会话中的待回复问题和在待回复问题之前产生的上文对话内容。
初步筛选模块404,用于从预先构建的高频问答库中,筛选与待回复问题匹配的多个答案,得到答案集合;高频问答库中存储使用频率满足高频条件的问题答案对。
匹配模块406,用于针对答案集合中的每个答案,将答案分别与上文对话内容和待回复问题中的每个语句进行匹配,得到每个答案在已产生的对话内容中对应的匹配信息。
进阶筛选模块408,用于根据匹配信息,从答案集合中筛选出与待回复问题对应的目标答案,作为当前会话中待回复问题的答复语句。
在一个实施例中,初步筛选模块404还用于分别计算高频问答库的问题与待回复问题的相似度值;根据相似度值的大小对高频问答库的问题进行排序;根据排序结果从高频问答库中的问题中,筛选待回复问题对应的至少一个参考问题;筛选出的参考问题与待回复问题之间的相似度,大于高频问答库中未被筛选的问题与待回复问题之间的相似度;获取各参考问题在高频问答库中对应的答案,得到答案集合。
在一个实施例中,答复语句生成装置400还用于基于历史对话数据得到问答数据集合,问答数据集合包括一一对应的问题和答案;从问答数据集合中选取预设数量的第一问题;针对每个第一问题,从问答数据集合的未被选取的问题中,筛选与第一问题相似度大于预设第一阈值的至少一个第二问题,得到第二问题集合;分别确定各第二问题在第二问题集合中出现的概率;针对概率大于预设概率阈值的每个第二问题,将第二问题以及对应的每个不同的答案作为一组数据存储至高频问答库。
在一个实施例中,匹配模块406还用于针对答案集合中的每个答案,将答案与上文对话内容和待回复问题输入训练好的语句匹配模型,以基于语句匹配模型将答案分别与上文对话内容和待回复问题中的每个语句进行匹配,得到每个答案在已产生的对话内容中对应的匹配信息。
在一个实施例中,答复语句生成装置400还包括模型训练模块500;模型训练模块500包括:正样本获取模块502、负样本获取模块504和训练模块506,其中:
正样本获取模块502,用于基于历史对话数据获取正样本的集合;正样本包括样本问题、样本上文对话内容和样本问题的正确答案;样本上文对话内容是在样本问题所属会话中,位于样本问题之前的对话内容;
负样本获取模块504,用于获取每个正样本对应的至少一个负样本,负样本包括样本问题、样本上文对话内容和样本问题的错误答案;
训练模块506,用于基于每个正样本以及对应的负样本训练语句匹配模型。
在一个实施例中,匹配模块406还用于从历史对话数据中,获取与样本问题满足相似条件的候选问题;从候选问题中,筛选至少一个与样本问题相似度小于预设第二阈值的目标问题;获取目标问题的答案,并将目标问题的答案作为负样本中的样本问题的错误答案。
在一个实施例中,匹配信息包括匹配分数;进阶筛选模块408还用于根据匹配分数的大小对答案集合中的答案进行排序;根据排序结果,从答案集合中选取与待回复问题对应的目标答案;目标答案的匹配分数大于答案集合中未被选取的答案的匹配分数。
上述答复语句生成装置,通过获取属于当前对话中的待回复问题和在待回复问题之前产生的上文对话内容;从预先构建的高频问答库中,初步筛选出与待回复问题匹配的多个答案,得到答案集合。基于初步筛选本方法已经获取匹配的答案集合,在此基础上,进阶地,针对答案集合中的每个答案,将答案分别与上文对话内容和待回复问题中的每个语句进行匹配,得到每个答案在已产生的对话内容中对应的匹配信息;根据匹配信息,进一步从答案集合中筛选出与待回复问题对应的目标答案。因此,通过将答案与上文对话内容和待回复问题的每个语句进行匹配得到匹配信息,并将匹配信息作为筛选标准,以使得进阶筛选过程中可以取得更为准确的筛选结果,从而进一步提高对答案进行筛选的准确率,进而提高答复语句生成的准确率。
关于上述答复语句生成装置的具体限定可以参见上文中对于上述答复语句生成方法的限定,在此不再赘述。上述答复语句生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储高频问答库数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种答复语句生成方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。