本发明涉及自然语言处理技术领域,更具体的说,是涉及一种语料分类方法、装置及服务器。
背景技术:
人机对话系统目前已经广泛应用于客服、电销以及催收等领域,在人机对话处理过程中,机器在接收到用户的语音之后,会将用户的语音转换成文本,然后对转换成的文本进行意图分析,确定用户的意图,最后从自身保存的语料集合中筛选出与用户意图对应的语料,将与用户意图对应的语料转化成语音输出,从而实现人机对话。
目前针对人机对话系统所需的语料都是采用人工的方式进行分类,而人工分类方式明显存在着效率低的问题。
技术实现要素:
有鉴于此,本发明提供了一种语料分类方法、装置及服务器,以克服现有技术中人工分类方式存在的效率低的问题。
为实现上述目的,本发明提供如下技术方案:
一种语料分类方法,所述方法包括:
获取多个目标语料集;
确定每两个目标语料集之间的语料距离,所述语料距离表征两个不同目标语料集之间的语义相似度;
将语料距离符合预设距离条件的两个目标语料集执行合并操作,得到合并后的语料集;
将合并后的语料集以及未执行合并操作的目标语料集均作为新的目标语料集,返回执行所述确定每两个目标语料集之间的语料距离的步骤,直到满足预设分类终止条件时终止操作,得到语料分类结果。
优选的,所述确定每两个目标语料集之间的语料距离包括:
确定每一个目标语料集各自对应的中心文本以及中心语义向量;
基于每一个目标语料集各自对应的中心文本以及中心语义向量,确定每两个目标语料集之间的语料距离。
优选的,所述确定每一个目标语料集各自对应的中心文本包括:
确定每一个目标语料集中各自包含的所有目标语料中文本长度最长的目标语料;
将确定的每一个目标语料集各自对应的文本长度最长的目标语料,作为每一个目标语料集各自对应的中心文本。
优选的,所述确定每一个目标语料集各自对应的中心语义向量包括:
对每一个目标语料集中各自包含的每一个目标语料对应的语义向量做平均运算,得到每一个目标语料集各自对应的平均语义向量;
将所述每一个目标语料集各自对应的平均语义向量作为每一个目标语料集各自对应的中心语义向量。
优选的,所述基于每一个目标语料集各自对应的中心文本以及中心语义向量,确定每两个目标语料集之间的语料距离包括:
基于每一个目标语料集各自对应的中心文本,确定每两个目标语料集之间的文本距离;
基于每一个目标语料集各自对应的中心语义向量,确定每两个目标语料集之间的向量距离;
基于每两个目标语料集之间的文本距离以及向量距离,确定每两个目标语料集之间的语料距离。
优选的,所述基于每一个目标语料集各自对应的中心文本,确定每两个目标语料集之间的文本距离包括:
基于每一个目标语料集各自对应的中心文本,确定每两个目标语料集对应的公共最长子序列的长度;
基于每一个目标语料集各自对应的中心文本,确定所述每两个目标语料集各自对应的中心文本的文本字数;
基于所述每两个目标语料集对应的公共最长子序列的长度、所述每两个目标语料集各自对应的中心文本的文本字数,确定每两个目标语料集之间的文本距离。
优选的,所述基于每一个目标语料集各自对应的中心语义向量,确定每两个目标语料集之间的向量距离包括:
基于每一个目标语料集各自对应的中心语义向量,确定每两个目标语料集对应的中心语义向量点积;
基于每一个目标语料集各自对应的中心语义向量,确定所述每两个目标语料集对应的中心语义向量n阶范数乘积,n大于或等于1;
基于每两个目标语料集对应的中心语义向量点积,以及每两个目标语料集对应的中心语义向量n阶范数乘积,确定每两个目标语料集之间的向量距离。
优选的,所述基于每两个目标语料集之间的文本距离以及向量距离,确定每两个目标语料集之间的语料距离包括:
将每两个目标语料集之间的文本距离以及向量距离中数值小的一个作为每两个目标语料集之间的语料距离。
一种语料分类装置,所述装置包括:
目标语料集获取单元,用于获取多个目标语料集;
合并单元,用于确定每两个目标语料集之间的语料距离,所述语料距离表征两个不同目标语料集之间的语义相似度;将语料距离符合预设距离条件的两个目标语料集执行合并操作,得到合并后的语料集;将合并后的语料集以及未执行合并操作的目标语料集均作为新的目标语料集,返回执行所述确定每两个目标语料集之间的语料距离的步骤,直到满足预设分类终止条件时终止操作,得到语料分类结果。
一种服务器,包括:存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述存储器中存储的计算机程序;
所述计算机程序用于执行如上所述的语料分类方法。
经由上述技术方案可知,与现有技术相比,本发明提供了一种语料分类方法、装置及服务器,该方法包括:获取多个目标语料集;确定每两个目标语料集之间的语料距离,语料距离表征两个不同目标语料集之间的语义相似度;将语料距离符合预设距离条件的两个目标语料集执行合并操作,得到合并后的语料集;将合并后的语料集以及未执行合并操作的目标语料集均作为新的目标语料集,返回执行所述确定每两个目标语料集之间的语料距离的步骤,直到满足预设分类终止条件时终止操作,得到语料分类结果。本发明通过循环执行将语料距离符合预设距离条件的两个目标语料集进行合并的操作,实现了依据语料距离对语料进行自动、快速分类的目的,提高了语料分类效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种语料分类方法的流程图;
图2为本发明实施例提供的一种确定每两个目标语料集之间的语料距离的方法流程图;
图3为本发明实施例提供的一种基于每一个目标语料集各自对应的中心文本以及中心语义向量,确定每两个目标语料集之间的语料距离方法流程图;
图4为本发明实施例提供的语料分类装置的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
人机对话系统目前已经广泛应用于客服、电销以及催收等领域,在人机对话处理过程中,机器在接收到用户的语音之后,会先通过语音识别技术将用户的语音转换成文本,然后通过自然语言处理技术对转换成的文本进行意图分析,确定用户的意图,最后从当前对话状态跳转到下一个对话状态,从自身保存的语料集合中筛选出与用户意图对应的语料,将与用户意图对应的语料转化成作为对用户进行应答的语音返回给用户,从而实现人机对话,最终达到某个结束类型对话状态的情况下,终止对话。
为了保证与用户的智能交互水平,人机对话系统中需要包含大量的语料,而这些语料需要按照语义或用户意图进行分类,从而在人机对话过程中才能根据用户意图筛选出对应的语料作为应答,完成人机对话过程。目前针对人机对话系统所需的语料都是采用人工的方式进行分类,而人工分类方式明显存在着效率低的问题。
为了解决上述技术问题,本发明实施例公开了一种语料分类方法、装置及服务器,该方法包括:获取多个目标语料集;确定每两个目标语料集之间的语料距离,语料距离表征两个不同目标语料集之间的语义相似度;将语料距离符合预设距离条件的两个目标语料集执行合并操作,得到合并后的语料集;将合并后的语料集以及未执行合并操作的目标语料集均作为新的目标语料集,返回执行所述确定每两个目标语料集之间的语料距离的步骤,直到满足预设分类终止条件时终止操作,得到语料分类结果。本发明通过循环执行将语料距离符合预设距离条件的两个目标语料集进行合并的操作,实现了依据语料距离对语料进行自动、快速分类的目的,提高了语料分类效率。
下面对本发明实施例提供的语料分类方法进行介绍,图1为本发明实施例提供的语料分类方法的流程图,该方法可应用于服务器,参照图1,所述方法可以包括:
步骤s100、获取多个目标语料集;
需要说明的是,在方法开始执行的时候,每一个目标语料(即每一个句子)作为一个目标语料集,也就是说,在方法开始执行的时候,每一个目标语料集中仅包含一个目标语料。
目标语料集中的目标语料既包含用户说的语料,又包含业务人员说的语料,本发明可以预先收集大量用户说的话以及业务人员说的话,然后将收集到的用户说的话以及业务人员说的话经过语音分割以及语音转文本等技术得到用户对应的语料以及业务人员对应的语料。
步骤s110、确定每两个目标语料集之间的语料距离;
所述语料距离表征两个不同目标语料集之间的语义相似度;语料距离越小代表两个不同目标语料集之间的语义相似度越高。
步骤s120、将语料距离符合预设距离条件的两个目标语料集执行合并操作,得到合并后的语料集;
每执行一次合并操作,目标语料集的总个数都会减少。
可选的,本发明实施例可以选取语料距离小于或等于预设距离阈值(如0.2)的情况作为语料距离符合预设距离条件的情况。
可选的,本发明实施例还可以从所有语料距离小于或等于预设距离阈值的目标语料集中,选择具有最小语料距离的两个目标语料集执行合并操作。也就是说,本发明实施例还可以将所有小于或等于预设距离阈值的语料距离中语料距离最小的情况作为语料距离符合预设距离条件的情况。符合具有最小语料距离条件的目标语料集的个数大于两个,例如有两对目标语料集都是符合具有最小语料距离条件的,则按照赵预设规则,从符合具有最小语料距离条件的两对目标语料集中任意选择一对进行合并,还可以将两对都进行合并,本发明实施例不做具体限定。
步骤s130、判断是否满足预设分类终止条件;如果不满足,则将合并后的语料集以及未执行合并操作的目标语料集均作为新的目标语料集,返回执行步骤s110;如果满足,则执行步骤s140;
预设分类终止条件可以为任意两个目标语料集之间的语料距离都不符合预设距离条件,或者最终得到的语料类别数目符合预设数目阈值,或者执行分类的时长达到预设时长,或者执行合并操作的次数达到预设次数等等,本发明实施例不做具体限定。
步骤s140、终止操作,得到语料分类结果。
本发明实施例在最终得到语料分类结果之后,还可以对语料分类结果执行优化操作,例如,舍弃掉语料数量小于预设数量阈值(比如总语料数量*10%)的语料集,保留聚类结果中有较多语料数量的语料集,能保证不遗漏重要的语料。
还可以对语料分类结果执行去重操作,提高语料分类结果的准确性。
本发明实施例获取多个目标语料集;确定每两个目标语料集之间的语料距离,语料距离表征两个不同目标语料集之间的语义相似度;将语料距离符合预设距离条件的两个目标语料集执行合并操作,得到合并后的语料集;将合并后的语料集以及未执行合并操作的目标语料集均作为新的目标语料集,返回执行所述确定每两个目标语料集之间的语料距离的步骤,直到满足预设分类终止条件时终止操作,得到语料分类结果。本发明采用自底向上的层次聚类方法,通过循环执行将语料距离符合预设距离条件的两个目标语料集进行合并的操作,把语义相似的目标语料集聚在一起,实现了依据语料距离对语料进行自动、快速分类的目的,提高了语料分类效率。并且,本发明中的自动分类方式不依赖于人工经验,克服了人工方式存在的主观性偏差和局限性,能够通过上述计算每两个目标语料集之间的语料距离的方式,实现对语料的全面分析。
并且,本发明中目标语料集是从用户说的话以及业务人员说的话中收集的,能够从真实对话数据中挖掘目标语料,能获取到更全面的更合理的目标语料集,避免遗漏重要的语料。
另一方面,本发明中的上述循环执行将语料距离符合预设距离条件的两个目标语料集进行合并的操作的方式,是一种无监督机器学习算法自动聚类方式,无需投入人力成本进行预先标注,便于迅速使用和推广。
下面,以具体的实施例详细说明本发明中确定每两个目标语料集之间的语料距离的具体过程,图2为本发明实施例提供的一种确定每两个目标语料集之间的语料距离的方法流程图,该方法可应用于服务器,参照图2,所述方法可以包括:
步骤s200、确定每一个目标语料集各自对应的中心文本;
可选的,确定每一个目标语料集各自对应的中心文本包括:确定每一个目标语料集中各自包含的所有目标语料中文本长度最长的目标语料;将确定的每一个目标语料集各自对应的文本长度最长的目标语料,作为每一个目标语料集各自对应的中心文本。
也就是说,本发明实施例中将目标语料集中文本长度最长的目标语料作为目标语料集的中心文本。当一个目标语料集中仅包含一个目标语料的情况下,该目标语料即为其所属的目标语料集的中心文本。
步骤s210、确定每一个目标语料集各自对应的中心语义向量;
确定每一个目标语料集各自对应的中心语义向量包括:对每一个目标语料集中各自包含的每一个目标语料对应的语义向量做平均运算,得到每一个目标语料集各自对应的平均语义向量;将所述每一个目标语料集各自对应的平均语义向量作为每一个目标语料集各自对应的中心语义向量。
当一个目标语料集中仅包含一个目标语料的情况下,该目标语料的语义向量即为其所属的目标语料集的中心语义向量。
本发明实施例可以采用预先设置的编码方式将每一个目标语料编码为语义向量。
可选的,本发明实施例可以采用bert模型将每一个目标语料编码为语义向量,具体可以采用预训练好的具有12层隐层的bert模型,然后把每个目标语料作为输入,用bert模型倒数第二层的输出向量作为每个目标语料的语义向量。当然,本发明也可以采用其他方式得到每一个目标语料对应的语义向量,本发明实施例不做具体限定。
可选的,在采用bert模型进行编码之前,可以使用相应业务领域的语料对bert模型进行优化,例如可以采用在业务语料上的上下文预测、相似度计算(同义句判断)等方式,优化bert模型的模型参数,使得bert模型更加适用于相应业务领域的语料编码,提高bert模型对相应业务语料的语义编码能力,进而提升bert模型的编码性能。
步骤s220、基于每一个目标语料集各自对应的中心文本以及中心语义向量,确定每两个目标语料集之间的语料距离。
具体的,图3为本发明实施例提供的一种基于每一个目标语料集各自对应的中心文本以及中心语义向量,确定每两个目标语料集之间的语料距离方法流程图,参照图3,所述方法可以包括:
步骤s2201、基于每一个目标语料集各自对应的中心文本,确定每两个目标语料集之间的文本距离;
具体的,本发明实施例中公开的基于每一个目标语料集各自对应的中心文本,确定每两个目标语料集之间的文本距离的方式包括:基于每一个目标语料集各自对应的中心文本,确定每两个目标语料集对应的公共最长子序列的长度;基于每一个目标语料集各自对应的中心文本,确定所述每两个目标语料集各自对应的中心文本的文本字数;基于所述每两个目标语料集对应的公共最长子序列的长度、所述每两个目标语料集各自对应的中心文本的文本字数,确定每两个目标语料集之间的文本距离。
可选的,本发明实施例中公开了如下一种文本距离的计算公式:
tij表示目标语料集i以及目标语料集j之间的文本距离,xi表示目标语料集i对应的中心文本,xj表示目标语料集j对应的中心文本,lcs(xi,xj)表示目标语料集i以及目标语料集j对应的公共最长子序列的长度,即目标语料集i对应的中心文本与目标语料集j对应的中心文本之间的公共最长子序列的长度,即同时在xi和xj两个句子中出现,并且在两个句子中的前后顺序保持一致的字的最多个数。length(xi)表示目标语料集i对应的中心文本的文本字数,length(xj)表示目标语料集j对应的中心文本的文本字数。
步骤s2202、基于每一个目标语料集各自对应的中心语义向量,确定每两个目标语料集之间的向量距离;
具体的,所述基于每一个目标语料集各自对应的中心语义向量,确定每两个目标语料集之间的向量距离包括:基于每一个目标语料集各自对应的中心语义向量,确定每两个目标语料集对应的中心语义向量点积;基于每一个目标语料集各自对应的中心语义向量,确定所述每两个目标语料集对应的中心语义向量n阶范数乘积,n大于或等于1;基于每两个目标语料集对应的中心语义向量点积,以及每两个目标语料集对应的中心语义向量n阶范数乘积,确定每两个目标语料集之间的向量距离。
可选的,本发明实施例中公开了如下一种向量距离的计算公式:
lij表示目标语料集i以及目标语料集j之间的向量距离,vi表示目标语料集i对应的中心语义向量,vj表示目标语料集j对应的中心语义向量,vi·vj表示目标语料集i对应的中心语义向量与目标语料集j对应的中心语义向量的点积,||vi||*||vj||表示目标语料集i对应的中心语义向量与目标语料集j对应的中心语义向量2阶范数的乘积。
步骤s2203、基于每两个目标语料集之间的文本距离以及向量距离,确定每两个目标语料集之间的语料距离。
可选的,本发明实施例中基于每两个目标语料集之间的文本距离以及向量距离,确定每两个目标语料集之间的语料距离包括:
将每两个目标语料集之间的文本距离以及向量距离中数值小的一个作为每两个目标语料集之间的语料距离。
可选的,本发明实施例中公开了如下一种语料距离的计算公式:
dij=min(tij,lij)
dij表示目标语料集i以及目标语料集j之间的语料距离,tij表示目标语料集i以及目标语料集j之间的文本距离,lij表示目标语料集i以及目标语料集j之间的向量距离。
本发明实施例确定每一个目标语料集各自对应的中心文本以及中心语义向量;基于每一个目标语料集各自对应的中心文本以及中心语义向量,确定每两个目标语料集之间的语料距离,由于语料距离表征两个不同目标语料集之间的语义相似度,也就是说,本发明的语料距离既考虑了文本内容,又考虑了语义向量,从而结合文本内容以及语义向量来计算两个不同目标语料集之间的语义相似度,能够得到更加准确的计算结果,从而提高执行合并操作的准确性,达到对语料进行准确分类的目的。
下面对本申请实施例提供的语料分类装置进行介绍,下文描述的语料分类装置可与上文语料分类方法相互对应参照。
图4为本申请实施例提供的语料分类装置的结构框图,参照图4,所述语料分类装置应用于服务器,所述语料分类装置包括:
目标语料集获取单元300,用于获取多个目标语料集;
语料距离确定单元310,用于确定每两个目标语料集之间的语料距离,所述语料距离表征两个不同目标语料集之间的语义相似度;
合并单元320,用于将语料距离符合预设距离条件的两个目标语料集执行合并操作,得到合并后的语料集;
语料分类结果获得单元330,用于将合并后的语料集以及未执行合并操作的目标语料集均作为新的目标语料集,返回执行所述语料距离确定单元所执行的确定每两个目标语料集之间的语料距离的步骤,直到满足预设分类终止条件时终止操作,得到语料分类结果。
可选的,所述语料距离确定单元包括:
中心文本确定单元,用于确定每一个目标语料集各自对应的中心文本;
中心语义向量确定单元,用于确定每一个目标语料集各自对应的中心语义向量;
第一语料距离确定子单元,用于基于每一个目标语料集各自对应的中心文本以及中心语义向量,确定每两个目标语料集之间的语料距离。
可选的,所述中心文本确定单元具体用于:
确定每一个目标语料集中各自包含的所有目标语料中文本长度最长的目标语料;
将确定的每一个目标语料集各自对应的文本长度最长的目标语料,作为每一个目标语料集各自对应的中心文本。
可选的,所述中心语义向量确定单元具体用于:
对每一个目标语料集中各自包含的每一个目标语料对应的语义向量做平均运算,得到每一个目标语料集各自对应的平均语义向量;
将所述每一个目标语料集各自对应的平均语义向量作为每一个目标语料集各自对应的中心语义向量。
可选的,所述第一语料距离确定子单元包括:
文本距离确定单元,用于基于每一个目标语料集各自对应的中心文本,确定每两个目标语料集之间的文本距离;
向量距离确定单元,用于基于每一个目标语料集各自对应的中心语义向量,确定每两个目标语料集之间的向量距离;
第二语料距离确定子单元,用于基于每两个目标语料集之间的文本距离以及向量距离,确定每两个目标语料集之间的语料距离。
可选的,所述文本距离确定单元具体用于:
基于每一个目标语料集各自对应的中心文本,确定每两个目标语料集对应的公共最长子序列的长度;
基于每一个目标语料集各自对应的中心文本,确定所述每两个目标语料集各自对应的中心文本的文本字数;
基于所述每两个目标语料集对应的公共最长子序列的长度、所述每两个目标语料集各自对应的中心文本的文本字数,确定每两个目标语料集之间的文本距离。
可选的,所述向量距离确定单元具体用于:
基于每一个目标语料集各自对应的中心语义向量,确定每两个目标语料集对应的中心语义向量点积;
基于每一个目标语料集各自对应的中心语义向量,确定所述每两个目标语料集对应的中心语义向量n阶范数乘积,n大于或等于1;
基于每两个目标语料集对应的中心语义向量点积,以及每两个目标语料集对应的中心语义向量n阶范数乘积,确定每两个目标语料集之间的向量距离。
可选的,所述第二语料距离确定子单元具体用于:
将每两个目标语料集之间的文本距离以及向量距离中数值小的一个作为每两个目标语料集之间的语料距离。
本发明实施例还公开了一种服务器,包括:存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述存储器中存储的计算机程序;
所述计算机程序用于执行如上所述的语料分类方法。
本说明书中各个实施例中记载的技术特征可以相互替换或组合,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。