1.本说明书实施例涉及计算机技术领域,特别涉及一种处理对话数据的方法。
背景技术:2.随着科学技术的发展,人们通过网络与他人进行交流,与智能对话设备进行交流已经成为人们常用的沟通方式。由此,网络对话数据,人机对话数据的数量日益增加。基于海量的对话数据,对话数据的数据挖掘对改进沟通方式具有非常重要的意义。通过处理对话数据,可以辅助进行对话主题分布统计、对话关键词抽取、对话结构学习和对话摘要等下游任务。
3.目前,行业内处理对话数据的任务通过监督学习来实现。但是,对海量对话数据进行人工标注耗费人力,时间,导致该任务缺少可迁移至下游应用的通用方法。
技术实现要素:4.有鉴于此,本说明书实施例提供了一种处理对话数据的方法。本说明书一个或者多个实施例同时涉及一种处理对话数据的系统,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。
5.根据本说明书实施例的第一方面,提供了一种处理对话数据的方法,包括:获取对话数据,其中,所述对话数据中包括多个轮次对话;提取所述多个轮次对话各自的语义向量;利用所述多个轮次对话的语义向量进行聚类计算,得到聚类结果;根据所述聚类结果,确定每个类别对应的关键信息。
6.可选地,所述关键信息为话题,所述根据所述聚类结果,确定每个类别对应的关键信息,包括:根据所述聚类结果,将每个类别的聚类标签作为该类别中每个轮次对话对应的话题。
7.可选地,所述关键信息为关键话术,所述根据所述聚类结果,确定每个类别对应的关键信息,包括:根据所述聚类结果,计算每个类别中的轮次对话与该类别的中心点的向量距离;根据所述向量距离,从每个类别中选取距离中心点最近的轮次对话作为关键话术。
8.可选地,还包括:将所述关键话术推送到对话构建模块,以便所述对话构建模块将所述关键话术作为待构建对话流模型中对话节点的话术。
9.可选地,所述提取所述对话数据中每个轮次对话的语义向量,包括:针对每通对话,将该通对话中的多个轮次对话进行拼接,得到该通对话的对话序列;在每条对话序列的首部添加序列标识符以区分序列,以及,为每个轮次对话添加对应的轮次标识符以区分轮次对话;将所述对话序列输入语义向量提取模型,提取出所述多个轮次对话各自的语义向量。
10.可选地,所述利用所述多个轮次对话的语义向量进行聚类计算,得到聚类结果,包括:将多个轮次对话的语义向量存放到特征池;将特征池作为初始的切分范围;在所述切分范围中随机选取一个轮次对话作为切分点;计算所述切分点的前向聚合特征和后向聚合特
征之差,并选取最大差距位置作为所述切分范围的优化切分点;利用所述优化切分点将所述切分范围中的轮次对话分为两部分;将切分的两部分轮次对话分别作为更新的切分范围;针对轮次对话数量不满足预设对话数量要求的切分范围,将该切分范围变为已完成切分部分;如果优化切分点数量未达到预设切分点数量要求,针对更新的切分范围,重新返回到所述在所述切分范围中随机选取一个轮次对话作为切分点的步骤;如果优化切分点数量达到预设要求,获得所有优化切分点作为初始化点来初始化kmeans聚类中心,并通过kmeans聚类算法调整优化切分点并根据调整后的各优化切分点确定聚类结果。
11.可选地,还包括:判断所述多个轮次对话各自的话题是否满足预设要求;从所述多个轮次对话的话题中,删除不满足所述预设要求的话题;针对被删除话题的轮次对话,计算该轮次对话的语义向量与其他轮次对话的语义向量之间的距离;根据计算出的距离选择其他轮次对话的话题作为该轮次对话的话题。
12.可选地,所述判断所述多个轮次对话各自的话题是否满足预设要求,包括:对每通对话的多个轮次对话的话题中重复出现的话题进行统计,得到每个话题在该通对话中的重复出现次数;将重复出现次数未达到预设重复出现次数范围的话题确定为不满足预设要求的话题。
13.可选地,所述判断所述多个轮次对话各自的话题是否满足预设要求,包括:对每通对话的多个轮次对话的话题中连续重复出现的话题进行统计,得到每个话题在该通对话中的连续重复次数;将连续重复次数未达到预设连续重复次数范围的话题确定为不满足预设要求的话题。
14.可选地,所述语义向量提取模型为多层transformer模型;其中,最后一层transformer,用于根据自回归方式预测所述多个轮次对话各自的语义向量,其中,所述自回归方式是指按照一通对话中多个轮次对话的对话顺序,由排序在前的轮次对话的语义向量预测排序在后的轮次对话的语义向量。
15.可选地,还包括:在所述语义向量提取模型进行训练之前,针对每通对话的对话样本集,将该通对话的对话样本集中的多个轮次对话样本以及额外添加的轮次对话样本进行拼接,得到该通对话的对话序列样本;将所述对话序列样本输入所述语义向量提取模型进行训练,得到训练后的语义向量提取模型;其中,所述语义向量提取模型在训练时,所述最后一层transformer通过所述自回归方式预测各个轮次对话的语义向量,且所述语义向量提取模型基于额外添加的轮次对话的预测结果调整模型参数。
16.可选地,所述利用所述多个轮次对话的语义向量进行聚类计算,得到聚类结果,包括:利用所述多个轮次对话的语义向量,基于数据密度的聚类算法进行聚类计算,得到聚类结果。
17.可选地,所述利用所述多个轮次对话的语义向量,基于数据密度的聚类算法进行聚类计算,包括:基于第一聚类精度设置所述基于数据密度的聚类算法的聚类参数,并利用所述多个轮次对话的语义向量进行聚类计算,得到第一聚类结果;根据所述第一聚类结果,去除所述多个轮次对话中的噪声点,得到更新的多个轮次对话;基于第二聚类精度设置所述基于数据密度的聚类算法的聚类参数,并利用所述更新的多个轮次对话的语义向量进行聚类计算,得到第二聚类结果,其中,所述第二聚类精度大于所述第一聚类精度。
18.根据本说明书实施例的第二方面,提供了一种处理对话数据的系统,包括:客户
端,被配置为向服务端发送对话数据,其中,所述对话数据中包括多个轮次对话,接收所述服务端针对所述对话数据反馈的关键话术,将所述关键话术作为待构建对话流模型中对话节点的话术。服务端,被配置为获取对话数据,提取所述多个轮次对话各自的语义向量,利用所述多个轮次对话的语义向量进行聚类计算,得到聚类结果,根据所述聚类结果,计算每个类别中的轮次对话与该类别的中心点的向量距离,根据所述向量距离,从每个类别中选取距离中心点最近的轮次对话作为关键话术,将所述关键话术发送给客户端。
19.根据本说明书实施例的第三方面,提供了一种计算设备,包括:存储器和处理器;所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现本说明书任意实施例所述处理对话数据的方法的步骤。
20.根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现本说明书任意实施例所述处理对话数据的方法的步骤。
21.本说明书一个实施例提供了处理对话数据的方法,由于该方法获取对话数据,其中,所述对话数据中包括多个轮次对话,提取所述多个轮次对话各自的语义向量,利用所述多个轮次对话各自的语义向量进行聚类计算,得到聚类结果,根据所述聚类结果,确定每个类别对应的关键信息,因此,该方法以对话轮次为粒度提取语义向量,并应用无监督聚类方法实现对话中多种关键信息的提取,充分利用了无监督、特别是自监督学习的优势,缓解了监督学习对于数据量和标注量的需求,从而处理对话数据的任务可以实际应用于大规模对话数据,使对话主题提取、挖掘关键话术等任务能够在真实场景落地。
附图说明
22.图1是本说明书一个实施例提供的处理对话数据的方法的应用场景示意图;
23.图2是本说明书另一个实施例提供的处理对话数据的方法的应用场景示意图;
24.图3是本说明书又一个实施例提供的处理对话数据的方法的应用场景示意图;
25.图4是本说明书一个实施例提供的一种处理对话数据的方法的流程图;
26.图5是本说明书一个实施例提供的预训练对话模型的结构示意图;
27.图6是本说明书一个实施例提供的处理对话数据的方法的处理过程流程图;
28.图7是本说明书另一个实施例提供的处理对话数据的方法的处理过程流程图;
29.图8是本说明书一个实施例提供的处理对话数据的装置的结构示意图;
30.图9是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
31.在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
32.在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地
表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
33.应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
34.首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
35.自监督学习(self-supervised learning):属于无监督学习的范畴。自监督学习是在样本不包含对应标签时,根据样本自身的某些固有属性来训练和优化的学习方式。在对话数据的场景中,自监督学习可以被认为是通过对话文本本身固有属性来进行训练和优化的学习方式,如预测给定某个对话片段,其下一个最近邻的文本等。
36.预训练语言模型(pretrain language model):指在大规模文本上训练的语言模型,如bert等。
37.对话预训练语言模型(conversational pretrain language model):指在大规模双人或多人对话上训练的语言模型,例如可以包括语言模型bert。基于对话预训练语言模型学习到的信息,例如包括对话特有的信息,如轮次、角色等。
38.对话主题切分(topic-aware dialogue segmentation):是指在对话轮次上根据其主题的变化来将对话切分为多个子片段的过程,每个子片段包含一个唯一的主题。
39.对话流模型:一种基于状态机的对话模型,其节点包括用户话术和系统回复,节点和节点之间通过边连接。
40.对话流节点挖掘:从对话日志中自动化地总结出关键的用户话术和系统回复。
41.聚类:给定数据点的集合(数据点通常为向量化的表示),通过聚类算法划分多个类别,将每个数据点分到对应的类别中。
42.为了使本说明书实施例提供的方法更加易于理解,首先结合图1-图3所示的应用场景示意图,对本说明书实施例提供的方法涉及的应用场景进行示意性说明。
43.图1所示为本说明书一实施例提供的处理对话数据的方法的应用场景示意图。如图1所示,本说明书实施例提供的应用场景包括:服务端110以及下游任务端120。其中,服务端110,可以用于执行本说明书实施例提供的处理对话数据的方法,以获得对话数据中每个类别的关键信息。下游任务端120,可以用于执行关键信息相关的下游任务。例如,下游任务端120可以包括一个或多个客户端或者其他服务端。例如,下游任务可以包括:用于构建对话流模型的任务、用于对话主题分布统计的任务、对话关键词抽取的任务、对话结构学习的任务、对话摘要的任务等等。服务端110与下游任务端120之间可以建立通信连接以便通信。可以理解的是,根据场景需要,下游任务也可以设置在服务端110中,由服务端110来执行,本说明书实施例对此并不进行限制。
44.下面,以下游任务为用于构建对话流模型的任务为例,结合图2所示的本说明书一实施例的处理场景示意图对该应用场景进行示意性说明。可以理解的是,在人工智能,尤其是自然语言领域,大规模预训练模型极大地推动了相关技术的发展和进步,在自然语言处理的技术落地中,对话成为一个重要的场景。当前,基于状态机的对话流模型是对话机器人
的主流解决方案。对话流模型构建,通常需要人工浏览大量对话日志,梳理出关键节点,进而构建对话流模型结构。整个过程需要消耗大量人力,并且效率低下。通过本说明书实施例提供的处理对话数据的方法可以有效解决该问题。
45.如图2所示,用户通过用于构建对话流模型的客户端210向服务端220发送包含多个轮次对话的对话数据。服务端220获取对话数据后,提取所述多个轮次对话各自的语义向量,利用所述多个轮次对话的语义向量进行聚类计算,得到聚类结果,根据所述聚类结果,确定每个类别对应的关键信息,根据所述聚类结果,计算每个类别中的轮次对话与该类别的中心点的向量距离,根据所述向量距离,从每个类别中选取距离中心点最近的轮次对话作为关键话术,将所述关键话术发送给客户端210。客户端210接收服务端针对所述对话数据反馈的关键话术,从而用户可以按需或者由客户端自动将所述关键话术作为待构建对话流模型中对话节点的话术。可见,在该应用场景中,根据本说明书实施例提供的处理对话数据的方法实现了自动化地对话关键节点也即关键话术的挖掘。具体地,例如,可以通过预训练对话模型,对大量对话日志进行向量化编码,并通过聚类的方法,自动抽取对话关键节点,为后续的对话流模型自动构建打下基础,从而能够极大地节省人力,在对话机器人的快速构建和部署中,发挥重要的作用。
46.接下来,以下游任务为用于提取对话的话题为例,结合图3所示的本说明书另一实施例的处理场景示意图对该应用场景进行示意性说明。可以理解的是,提取对话的话题能辅助完成对话主题分布统计、对话关键词抽取、对话结构学习和对话摘要等其他下游任务,因此,对话主题提取对于缓解下游任务难度,提升下游任务效果具有重大意义。然而,行业内对该任务的研究停留在以监督学习为代表的方法上,这导致该任务缺少可迁移至下游应用的通用方法。在用监督学习的方法中,需要依靠人工标注,对一通会话内的每一轮发言所属的主题进行打标,进而将每个轮次发言文本和其所对应的标签一同输入到一个监督学习模型中,优化模型的输出和标注标签之间的交叉熵损失。主题标签一般通过人工进行梳理,并在标注过程中逐步扩充,建模模型可以是任一种能够建模多轮对话的神经网络模型,如卷积神经网络、循环神经网络、对话式预训练语言模型等。但是,为了标注主题标签,主题的梳理需要消耗大量人力,并需要借助很多启发式规则如bm25算法等,而且,由于上下文语义关联,多轮对话的标注相比单条文本难度大幅提升,很难通过人工标注完成规模化的训练集构建,因此,本说明书实施例提供了基于对话轮次聚类的自监督学习方式来处理对话数据的实施方式。
47.如图3所示,可以将包含多个轮次对话的对话数据输入语义向量提取模型来提取所述多个轮次对话各自的语义向量,将多个轮次对话各自的语义向量输入聚类算法,根据所述聚类结果,将每个类别的聚类标签作为该类别中每个轮次对话对应的话题。另外,在得到多个轮次对话各自对应的话题之后,还可以根据话题对多个轮次对话进行切分,得到各个话题对应的对话子片段,从而可以将各个话题对应的对话子片段传送给下游任务,使下游任务得以快速实施。需要说明的是,根据话题对多个轮次对话进行切分为可选步骤,也可以直接将多个轮次对话各自对应的关键信息作为话题直接发送给其他下游任务,本说明书对此并不进行限制。
48.下面,对本说明书中提供的处理对话数据的方法,处理对话数据的装置,系统,计算设备,以及计算机可读存储介质,在下面的实施例中逐一进行详细说明。
49.参见图4,图4示出了根据本说明书一个实施例提供的一种处理对话数据的方法的流程图,具体包括以下步骤。
50.步骤402:获取对话数据,其中,所述对话数据中包括多个轮次对话。
51.其中,所述对话数据是指人人之间,人机之间等任意对话场景下的对话数据。在对话数据中,可以包括一通或多通对话。例如,一通对话可以由一个在线会议中参与会议的多方人员的多轮对话构成。再例如,一通对话可以由用户在与智能客服对话过程中用户与智能客服双方的多轮对话构成,多个轮次对话可以包括用户话术和系统回复话术。又例如,一通对话可以由在线聊天的两个用户的多轮对话构成。对话数据中,参与对话的参与方每次说话即对应一个轮次对话。例如,如图6所示的处理场景中,对话数据包括20个轮次对话。
52.步骤404:提取所述多个轮次对话各自的语义向量。
53.为了更准确地提取每个轮次对话的语义向量,本说明书实施例还可以将对话数据集进行数据清洗。具体地,例如,可以将如姓名、地址等实体进行归一化处理,去停用词和连续发言合并等处理。清洗后,再对对话数据进行后续提取语义向量的处理。
54.本说明书实施例对于提取多个轮次对话各自的语义向量的实施方式不限。例如,可以将对话数据输入至语义向量提取模型来提取语义向量。语义向量提取模型可以采用任何用于建模自然语言处理任务的模型,包括但不限于卷积神经网络、循环神经网络、bert模型、基于transformer的对话式预训练语言模型等。
55.本说明书一个或多个实施例中,还可以将对话数据中的轮次进行标识,以便语义向量提取模型能够基于这些标识区分轮次,从而更加准确地提取语义向量。具体地,所述提取所述对话数据中每个轮次对话的语义向量,包括:
56.针对每通对话,将该通对话中的多个轮次对话进行拼接,得到该通对话的对话序列;
57.在每条对话序列的首部添加序列标识符以区分序列,以及,为每个轮次对话添加对应的轮次标识符以区分轮次对话;
58.将所述对话序列输入语义向量提取模型,提取出所述多个轮次对话各自的语义向量。
59.例如,对话数据中可以包括一通或多通对话。针对每通对话,可以将整通对话中的轮次对话拼接起来。拼接后,在序列首部增加例如“[cls]”前缀作为序列标识符,并在每一轮次对话首部增加例如“[start]”前缀作为轮次标识符。在处理好整个序列后,可以将对话序列输入对话式预训练语言模型中,并按照轮次标识符“[start]”区分轮次对话,提取每个轮次对话的向量,即对话中每个轮次所对应的语义表示。
[0060]
需要说明的是,本说明书实施例提供的方法对于语义向量提取模型的具体实现方式不限。例如,一个或多个实施例中,所述语义向量提取模型可以为多层transformer模型;其中,最后一层transformer,用于根据自回归方式预测所述多个轮次对话各自的语义向量,其中,所述自回归方式是指按照一通对话中多个轮次对话的对话顺序,由排序在前的轮次对话的语义向量预测排序在后的轮次对话的语义向量。
[0061]
具体地,例如,所述语义向量提取模型在实际应用中,可以表现为图5所示的预训练对话模型。如图5所示,所述预训练对话模型的结构包括:1~n层transformer层以及上下文transformer层,其中n为大于等于2的整数。所述预训练对话模型的一次输入可以为单个
对话中的多个轮次对话形成的输入序列。输入序列在经过字符编码层,字符位置编码层和对话角色编码层后,进入多层transformer模型,最后一层为上下文transformer层。在1~n层transformer层中,一层输出的语义向量作为该层后一层的输入,从而可以使语义向量的精度逐层提升。在上下文transformer层中,通过自归回的方式预测语义向量,例如,对于多个轮次对话c1,c2,c3,按对话顺序,通过c1预测c2,通过c2预测c3。
[0062]
为了进一步提高语义向量提取模型的精度,本说明书一个或多个实施例中,还可以通过为每个输入序列额外添加带有标签的轮次对话样本,以该标签为目标进行训练。具体地,所述方法还可以包括:在所述语义向量提取模型进行训练之前,针对每通对话的对话样本集,将该通对话的对话样本集中的多个轮次对话样本以及额外添加的轮次对话样本进行拼接,得到该通对话的对话序列样本;将所述对话序列样本输入所述语义向量提取模型进行训练,得到训练后的语义向量提取模型。其中,所述语义向量提取模型在训练时,所述最后一层transformer通过所述自回归方式预测各个轮次对话的语义向量,且所述语义向量提取模型基于额外添加的轮次对话的预测结果调整模型参数。
[0063]
在上述实施例中,例如,额外添加的轮次对话的预测结果可以为是否为额外添加的对话轮次。该模型的训练目标可以有两个:一个训练目标是1~n层transformer通过自归回的方式训练每个轮次对话的向量,另一个训练目标是最后一层transformer预测输入中的指定轮次例如最后轮次是否为额外添加的对话。其中,额外添加的对话轮次可以是真实的轮次对话,也可以是随机生成的轮次对话。最后,预训练对话模型输出每个对话轮次进行基于上下文的向量化编码。
[0064]
步骤406:利用所述多个轮次对话的语义向量进行聚类计算,得到聚类结果。
[0065]
其中,所述聚类计算所使用的聚类算法不限,例如,可以是kmeans聚类算法,高斯混合模型的最大期望聚类算法,基于数据密度的聚类算法等等。
[0066]
以kmeans聚类算法为例,当多个轮次对话的语义向量提取完成后,可以将多个轮次对话的语义向量存放到一个统一的特征池中。使用kmeans聚类算法对特征池中的语义向量进行聚类。kmeans聚类算法的锚点选取方式可以采用随机选取或kmeans++初始化方式来选取。聚类数量可采用1~m(m表示总共发言数量)中的任何数值。为了得到较好的聚类效果,聚类数量可以根据场景需要,选取例如100~1000等经验值。当聚类收敛后,获得聚类结果。例如,可以保存各个类别的聚类标签以供后续使用。
[0067]
具体地,例如,所述利用所述多个轮次对话的语义向量进行聚类计算,得到聚类结果,包括:
[0068]
将多个轮次对话的语义向量存放到特征池;
[0069]
将特征池作为初始的切分范围;
[0070]
在所述切分范围中随机选取一个轮次对话作为切分点;
[0071]
计算所述切分点的前向聚合特征和后向聚合特征之差,并选取最大差距位置作为所述切分范围的优化切分点;
[0072]
利用所述优化切分点将所述切分范围中的轮次对话分为两部分;
[0073]
将切分的两部分轮次对话分别作为更新的切分范围;
[0074]
针对轮次对话数量不满足预设对话数量要求的切分范围,将该切分范围变为已完成切分部分;
[0075]
如果优化切分点数量未达到预设切分点数量要求,针对更新的切分范围,重新返回到所述在所述切分范围中随机选取一个轮次对话作为切分点的步骤;
[0076]
如果优化切分点数量达到预设要求,获得所有优化切分点作为初始化点来初始化kmeans聚类中心(也即,从高到底选择距离差分点作为初始化中心),并通过kmeans聚类算法调整优化切分点并根据调整后的各优化切分点确定聚类结果。
[0077]
其中,调整后的各优化切分点即对应类别的中心点。
[0078]
以基于数据密度的聚类算法为例,所述利用所述多个轮次对话的语义向量进行聚类计算,得到聚类结果,可以包括:利用所述多个轮次对话的语义向量,基于数据密度的聚类算法进行聚类计算,得到聚类结果。通过使用基于密度方法的聚类算法,如hdbscan算法,不需要事先指定类别个数,聚类效果更好。
[0079]
为了进一步提高聚类精度,本说明书一个或多个实施例中,可以通过不同聚类精度进行多次聚类计算,从而可以在逐步提升精度的过程中,去除数据中的噪声数据点。例如,以两次聚类计算为例,所述利用所述多个轮次对话的语义向量,基于数据密度的聚类算法进行聚类计算,可以包括:
[0080]
基于第一聚类精度设置所述基于数据密度的聚类算法的聚类参数,并利用所述多个轮次对话的语义向量进行聚类计算,得到第一聚类结果;
[0081]
根据所述第一聚类结果,去除所述多个轮次对话中的噪声点,得到更新的多个轮次对话;
[0082]
基于第二聚类精度设置所述基于数据密度的聚类算法的聚类参数,并利用所述更新的多个轮次对话的语义向量进行聚类计算,得到第二聚类结果,其中,所述第二聚类精度大于所述第一聚类精度。
[0083]
在上述实施例中,相当于在第一次聚类计算时,通过控制参数进行粗聚类,以便去除数据中的噪声数据点,在第二次聚类计算时,对第一次聚类过滤后的数据,通过控制参数进行精细聚类,得到聚类结果。
[0084]
其中,所述聚类结果可以表现为多个类别,其中,每个类别具有各自的中心点。
[0085]
步骤408:根据所述聚类结果,确定每个类别对应的关键信息。
[0086]
其中,所述关键信息与类别相关,具体内容不限,在不同应用场景下可以按需设置获得方式。
[0087]
例如,本说明书一个或多个实施例中,所述关键信息为话题,所述根据所述聚类结果,确定每个类别对应的关键信息,包括:
[0088]
根据所述聚类结果,将每个类别的聚类标签作为该类别中每个轮次对话对应的话题。
[0089]
例如,还可以利用所述多个轮次对话各自对应的话题,对所述对话数据进行话题切分。
[0090]
可以理解的是,在得到多个轮次对话各自的话题的情况下,相当于得到了轮次对话与话题之间的对应关系,其中,有些轮次对话的话题相同,有些轮次对话的话题不同,有些轮次对话的话题出现频率极低以致实际应用中难以作为话题使用。因此,为了后续更准确地进行话题切分等任务,本说明书一个或多个实施例中,还可以对多个轮次对话的话题进行筛选以及整合。具体地,例如,所述方法还可以包括:
[0091]
判断所述多个轮次对话各自的话题是否满足预设要求;
[0092]
判断所述多个轮次对话各自的话题是否满足预设要求;
[0093]
从所述多个轮次对话的话题中,删除不满足所述预设要求的话题;
[0094]
针对被删除话题的轮次对话,计算该轮次对话的语义向量与其他轮次对话的语义向量之间的距离;
[0095]
根据计算出的距离选择其他轮次对话的话题作为该轮次对话的话题。
[0096]
其中,所述预设要求可以根据实际应用场景需要设置。例如,某些应用场景中所述预设要求可以包括根据经验预设的话题黑名单或话题白名单,根据话题黑名单或话题白名单来判断是否满足预设要求。再例如,某些应用场景中所述预设要求可以包括预设的出现频次阈值范围,根据话题出现的频次来判断是否满足预设要求。
[0097]
具体地,例如,所述判断所述多个轮次对话各自的话题是否满足预设要求,可以包括:
[0098]
对每通对话的多个轮次对话的话题中重复出现的话题进行统计,得到每个话题在该通对话中的重复出现次数;
[0099]
将重复出现次数未达到预设重复出现次数范围的话题确定为不满足预设要求的话题。
[0100]
以图6所示的对话主题切分的应用场景处理示意图为例,假设轮次对话1到轮次对话20为一通对话。其中,“话题1”的出现次数为6,“话题2”的出现次数为5,“话题3”的出现次数为6,“话题4”的出现次数为3。其中,“话题4”的出现次数小于预设重复出现次数范围“大于或等于5”,因此,“轮次对话10”到“轮次对话12”的“话题4”删除,进而根据“轮次对话10”到“轮次对话12”与整通对话中其他轮次对话的向量距离修改话题,例如,改为“话题1”。
[0101]
又例如,所述判断所述多个轮次对话各自的话题是否满足预设要求,可以包括:
[0102]
对每通对话的多个轮次对话的话题中连续重复出现的话题进行统计,得到每个话题在该通对话中的连续重复次数;
[0103]
将连续重复次数未达到预设连续重复次数范围的话题确定为不满足预设要求的话题。
[0104]
以图6所示的对话主题切分的应用场景示意图为例,其中,“话题1”的连续重复次数为3,“话题2”的连续重复出现次数为2和1,“话题3”的连续重复出现次数为3,“话题4”的连续重复出现次数为3。可见,“话题2”的连续重复出现次数未达到预设连续出现次数范围“大于或等于3”,因此,“话题2”删除,进而根据“轮次对话4”,“轮次对话5”,“轮次对话9”,“轮次对话13”,“轮次对话20”与整通对话中其他轮次对话的向量距离修改话题,例如,改为“话题3”。
[0105]
再例如,在上述两种实施方式结合的场景中,可以先根据预设重复出现次数范围丢弃重复次数不满足要求的话题,再根据预设连续重复出现次数范围丢弃连续重复次数不满足要求的话题。例如,根据上述示例丢弃并修改话题后,轮次对话1到轮次对话3的话题为“话题1”,轮次对话4到轮次对话9的话题为“话题3”,轮次对话10到轮次对话12的话题为“话题1”,轮次对话13的话题为“话题3”,轮次对话14到轮次对话16的话题为“话题1”,轮次对话17到轮次对话20的话题为“话题3”。
[0106]
在上述实施例中,例如可以针对每通对话,对每通对话中的对话轮次对应的话题
进行分析,进而针对每通对话进行判断,丢弃重复出现频率小于某阈值的话题,和/或,丢弃连续重复出现频率小于某阈值的话题,并在丢弃后将该位置的话题根据向量距离使用临接上下文话题代替,从而使得提取出的话题更加合理。
[0107]
由于该方法获取对话数据,其中,所述对话数据中包括多个轮次对话,提取所述多个轮次对话各自的语义向量,利用所述多个轮次对话各自的语义向量进行聚类计算,得到聚类结果,根据聚类结果,确定每个类别的关键信息,因此,该方法以对话轮次为粒度提取语义向量,并应用无监督聚类方法实现对话的关键信息的提取,充分利用了无监督、特别是自监督学习的优势,缓解了监督学习对于数据量和标注量的需求,使对话数据的处理可以实际应用于大规模对话数据,使例如对话主题提取任务,构建对话流模型任务等任务能够在真实场景落地。
[0108]
下述结合附图6,以本说明书提供的处理对话数据的方法在对话主题切分的应用场景为例,对所述处理对话数据的方法进行进一步说明。其中,图6示出了本说明书一个实施例提供的一种处理对话数据的方法的处理过程流程图,具体包括以下步骤。
[0109]
步骤602:获取对话数据,其中,所述对话数据中包括多个轮次对话。
[0110]
步骤604:通过语义向量提取模型提取所述多个轮次对话各自的语义向量。
[0111]
步骤606:利用所述多个轮次对话各自的语义向量进行聚类计算,得到聚类结果。
[0112]
步骤608:根据所述聚类结果,将每个类别的聚类标签作为该类别中每个轮次对话对应的话题。
[0113]
步骤610:利用所述多个轮次对话各自对应的话题,对所述对话数据进行话题切分。
[0114]
在该实施例中,通过进行话题切分,使对话中的多个阶段按照其主题切分成子片段,能够更加有效地辅助完成对话主题分布统计、对话关键词抽取、对话结构学习和对话摘要等下游任务,缓解下游任务难度,提升下游任务效果。
[0115]
下述结合附图7,以本说明书提供的处理对话数据的方法在对话流模型构建的应用场景为例,对所述处理对话数据的方法进行进一步说明。其中,图7示出了本说明书一个实施例提供的一种处理对话数据的方法的处理过程流程图,具体包括以下步骤。
[0116]
步骤702:获取对话数据,其中,所述对话数据中包括多个轮次对话。
[0117]
步骤704:通过语义向量提取模型提取所述多个轮次对话各自的语义向量。
[0118]
步骤706:利用所述多个轮次对话各自的语义向量进行聚类计算,得到聚类结果。
[0119]
步骤708:根据所述聚类结果,计算每个类别中的轮次对话与该类别的中心点的向量距离,并根据所述向量距离,从每个类别中选取距离中心点最近的轮次对话作为关键话术。
[0120]
另外,还可以将所述关键话术推送到对话构建模块,以便所述对话构建模块将所述关键话术作为待构建对话流模型中对话节点的话术。其中,所述对话构建模块可以设置在客户端,也可以在应用所述处理对话数据的方法的服务端,本说明书实施例对此并不进行限制。
[0121]
与上述方法实施例相对应,本说明书还提供了处理对话数据的装置实施例,图8示出了本说明书一个实施例提供的一种处理对话数据的装置的结构示意图。如图8所示,该装置包括:
[0122]
对话获取模块802,可以被配置为获取对话数据,其中,所述对话数据中包括多个轮次对话。
[0123]
特征提取模块804,可以被配置为提取所述多个轮次对话各自的语义向量。
[0124]
聚类计算模块806,可以被配置为利用所述多个轮次对话的语义向量进行聚类计算,得到聚类结果。
[0125]
信息确定模块808,可以被配置为根据所述聚类结果,确定每个类别对应的关键信息。
[0126]
由于该装置获取对话数据,其中,所述对话数据中包括多个轮次对话,提取所述多个轮次对话各自的语义向量,利用所述多个轮次对话各自的语义向量进行聚类计算,得到聚类结果,根据所述聚类结果,确定每个类别对应的关键信息,因此,该装置以对话轮次为粒度提取语义向量,并应用无监督聚类方法实现对话的关键信息的提取,充分利用了无监督、特别是自监督学习的优势,缓解了监督学习对于数据量和标注量的需求,使例如对话主题提取,构建对话流模型等任务可以实际应用于大规模对话数据,在真实场景落地。
[0127]
本说明书一个或多个实施例中,所述信息确定模块808,可以被配置为根据所述聚类结果,将每个类别的聚类标签作为该类别中每个轮次对话对应的话题。
[0128]
本说明书一个或多个实施例中,所述信息确定模块808,可以包括:
[0129]
距离计算子模块,可以被配置为根据所述聚类结果,计算每个类别中的轮次对话与该类别的中心点的向量距离。
[0130]
话术挖掘子模块,可以被配置为根据所述向量距离,从每个类别中选取距离中心点最近的轮次对话作为关键话术。
[0131]
本说明书一个或多个实施例中,所述装置还可以包括:话术推送模块,可以被配置为将所述关键话术推送到对话构建模块,以便所述对话构建模块将所述关键话术作为待构建对话流模型中对话节点的话术。
[0132]
本说明书一个或多个实施例中,所述特征提取模块804,可以包括:
[0133]
对话拼接子模块,可以被配置为针对每通对话,将该通对话中的多个轮次对话进行拼接,得到该通对话的对话序列。
[0134]
标识添加子模块,可以被配置为在每条对话序列的首部添加序列标识符以区分序列,以及,为每个轮次对话添加对应的轮次标识符以区分轮次对话。
[0135]
特征提取子模块,可以被配置为将所述对话序列输入语义向量提取模型,提取出所述多个轮次对话各自的语义向量。
[0136]
本说明书一个或多个实施例中,所述聚类计算模块806,可以包括:
[0137]
特征设置子模块,可以被配置为将多个轮次对话的语义向量存放到特征池;
[0138]
范围初始子模块,可以被配置为将特征池作为初始的切分范围;
[0139]
切分选择子模块,可以被配置为在所述切分范围中随机选取一个轮次对话作为切分点;
[0140]
优化点选择子模块,可以被配置为计算所述切分点的前向聚合特征和后向聚合特征之差,并选取最大差距位置作为所述切分范围的优化切分点;
[0141]
切分执行子模块,可以被配置为利用所述优化切分点将所述切分范围中的轮次对话分为两部分;
[0142]
范围更新子模块,可以被配置为将切分的两部分轮次对话分别作为更新的切分范围;
[0143]
粒度控制子模块,可以被配置为针对轮次对话数量不满足预设对话数量要求的切分范围,将该切分范围变为已完成切分部分;
[0144]
继续切分子模块,可以被配置为如果优化切分点数量未达到预设切分点数量要求,针对更新的切分范围,触发切分选择子模块重新返回到所述在所述切分范围中随机选取一个轮次对话作为切分点的步骤;
[0145]
聚类调整子模块,可以被配置为如果优化切分点数量达到预设要求,获得所有优化切分点作为初始化点初始化kmeans聚类中心,并通过kmeans聚类算法调整优化切分点并根据调整后的各优化切分点确定聚类结果。
[0146]
本说明书一个或多个实施例中,所述装置还可以包括:
[0147]
判断模块,可以被配置为判断所述多个轮次对话各自的话题是否满足预设要求。
[0148]
关键信息删除模块,可以被配置为从所述多个轮次对话的话题中,删除不满足所述预设要求的话题。
[0149]
特征距离计算模块,可以被配置为针对被删除话题的轮次对话,计算该轮次对话的语义向量与其他轮次对话的语义向量之间的距离。
[0150]
关键信息替代模块,可以被配置为根据计算出的距离选择其他轮次对话的话题作为该轮次对话的话题。
[0151]
本说明书一个或多个实施例中,所述判断模块,可以被配置为对每通对话的多个轮次对话的话题中重复出现的话题进行统计,得到每个话题在该通对话中的重复出现次数,将重复出现次数未达到预设重复出现次数范围的话题确定为不满足预设要求的话题。
[0152]
本说明书一个或多个实施例中,所述判断模块,可以被配置为对每通对话的多个轮次对话的话题中连续重复出现的话题进行统计,得到每个话题在该通对话中的连续重复次数,将连续重复次数未达到预设连续重复次数范围的话题确定为不满足预设要求的话题。
[0153]
本说明书一个或多个实施例中,所述语义向量提取模型为多层transformer模型;其中,最后一层transformer,用于根据自回归方式预测所述多个轮次对话各自的语义向量,其中,所述自回归方式是指按照一通对话中多个轮次对话的对话顺序,由排序在前的轮次对话的语义向量预测排序在后的轮次对话的语义向量。
[0154]
相应地,所述装置还可以包括:
[0155]
样本获取模块,可以被配置为在所述语义向量提取模型进行训练之前,针对每通对话的对话样本集,将该通对话的对话样本集中的多个轮次对话样本以及额外添加的轮次对话样本进行拼接,得到该通对话的对话序列样本。
[0156]
模型训练模块,可以被配置为将所述对话序列样本输入所述语义向量提取模型进行训练,得到训练后的语义向量提取模型;其中,所述语义向量提取模型在训练时,所述最后一层transformer通过所述自回归方式预测各个轮次对话的语义向量,且所述语义向量提取模型基于额外添加的轮次对话的预测结果调整模型参数。
[0157]
本说明书一个或多个实施例中,所述特征提取模块804,可以被配置为利用所述多个轮次对话的语义向量,基于数据密度的聚类算法进行聚类计算,得到聚类结果。
[0158]
例如,所述特征提取模块804,可以包括:
[0159]
第一聚类子模块,可以被配置为基于第一聚类精度设置所述基于数据密度的聚类算法的聚类参数,并利用所述多个轮次对话的语义向量进行聚类计算,得到第一聚类结果。
[0160]
去噪声子模块,可以被配置为根据所述第一聚类结果,去除所述多个轮次对话中的噪声点,得到更新的多个轮次对话。
[0161]
第二聚类子模块,可以被配置为基于第二聚类精度设置所述基于数据密度的聚类算法的聚类参数,并利用所述更新的多个轮次对话的语义向量进行聚类计算,得到第二聚类结果,其中,所述第二聚类精度大于所述第一聚类精度。
[0162]
上述为本实施例的一种处理对话数据的装置的示意性方案。需要说明的是,该处理对话数据的装置的技术方案与上述的处理对话数据的方法的技术方案属于同一构思,处理对话数据的装置的技术方案未详细描述的细节内容,均可以参见上述处理对话数据的方法的技术方案的描述。
[0163]
与上述方法实施例相对应,本说明书还提供了处理对话数据的系统实施例,该系统的结构可以参见图1所示的应用场景示意图。如图1所示,该系统可以包括:
[0164]
客户端,被配置为向服务端发送对话数据,其中,所述对话数据中包括多个轮次对话,接收所述服务端针对所述对话数据反馈的关键话术,将所述关键话术作为待构建对话流模型中对话节点的话术。
[0165]
服务端,被配置为获取对话数据,提取所述多个轮次对话各自的语义向量,利用所述多个轮次对话的语义向量进行聚类计算,得到聚类结果,根据所述聚类结果,计算每个类别中的轮次对话与该类别的中心点的向量距离,根据所述向量距离,从每个类别中选取距离中心点最近的轮次对话作为关键话术,将所述关键话术发送给客户端。
[0166]
上述为本实施例的一种处理对话数据的系统的示意性方案。需要说明的是,该处理对话数据的系统的技术方案与上述的处理对话数据的方法的技术方案属于同一构思,处理对话数据的系统的技术方案未详细描述的细节内容,均可以参见上述处理对话数据的方法的技术方案的描述。
[0167]
图9示出了根据本说明书一个实施例提供的一种计算设备900的结构框图。该计算设备900的部件包括但不限于存储器910和处理器920。处理器920与存储器910通过总线930相连接,数据库950用于保存数据。
[0168]
计算设备900还包括接入设备940,接入设备940使得计算设备900能够经由一个或多个网络960通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备940可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。
[0169]
在本说明书的一个实施例中,计算设备900的上述部件以及图9中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图9所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
[0170]
计算设备900可以是任何类型的静止或移动计算设备,包括移动计算机或移动计
算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备900还可以是移动式或静止式的服务器。
[0171]
其中,处理器920用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述处理对话数据的方法的步骤。例如,包括:
[0172]
获取对话数据,其中,所述对话数据中包括多个轮次对话;
[0173]
提取所述多个轮次对话各自的语义向量;
[0174]
利用所述多个轮次对话的语义向量进行聚类计算,得到聚类结果;
[0175]
根据所述聚类结果,确定每个类别对应的关键信息。
[0176]
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的处理对话数据的方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述处理对话数据的方法的技术方案的描述。
[0177]
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述处理对话数据的方法的步骤。例如,包括:
[0178]
获取对话数据,其中,所述对话数据中包括多个轮次对话;
[0179]
提取所述多个轮次对话各自的语义向量;
[0180]
利用所述多个轮次对话的语义向量进行聚类计算,得到聚类结果;
[0181]
根据所述聚类结果,确定每个类别对应的关键信息。
[0182]
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的处理对话数据的方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述处理对话数据的方法的技术方案的描述。
[0183]
本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述处理对话数据的方法的步骤。例如,包括:
[0184]
获取对话数据,其中,所述对话数据中包括多个轮次对话;
[0185]
提取所述多个轮次对话各自的语义向量;
[0186]
利用所述多个轮次对话的语义向量进行聚类计算,得到聚类结果;
[0187]
根据所述聚类结果,确定每个类别对应的关键信息。
[0188]
上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的处理对话数据的方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述处理对话数据的方法的技术方案的描述。
[0189]
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0190]
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所
述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0191]
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
[0192]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
[0193]
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。