具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。
本说明书实施例可应用在各类网站或APP中对用户问句进行解答的场景下。为了准确的为用户提供问句答案,需要对用户问句进行句意识别。参见图1,为句意识别场景示意图。客户端10是指用户终端,例如包括个人电脑、pad、手机等;服务器20是指网站或APP的网络侧服务器。客户端10向服务器20发起问句;服务器20向客户端10返回问句答案。其中,服务器20中设置用于实现句意识别的句意相似度识别模型,该句意相似度识别模型对问句进行识别,从而可对应确定该问句对应的答案。
为了实现准确的句意识别,如何高效、准确的训练句意相似度识别模型是一个需要考虑的问题。这其中,确定训练样本是准确进行模型训练的前提。
第一方面,本说明书实施例提供一种样本确定方法,该方法用于确定句意识别中的训练样本。请参考图2-3,为该样本确定方法的流程图和示意图。
S201:获取多条原始问句。
原始问句可以从历史数据中获取。例如,从一个月之内的历史问句中获取到预定数量的问句作为原始问句。
S202:对原始问句进行句法分析,得到主谓宾三元组。
在一种可选方式中,可基于预先根据深度学习注意力模型(deep biaffineattention model)训练的句法分析模型,解析出原始问句的主谓宾部分,构成主谓宾三元组。主谓宾三元组即S(subject)V(verb)O(object)三元组,基于SVO三元组可实现文本句意解析。例如一个问句“银行卡显示已扣款”的SVO分别是“银行卡”、“显示”、“已扣款”;再如一个问句“支付宝显示未支付”的SVO分别是“支付宝”、“显示”、“未支付”。
S203:根据主谓宾三元组对原始问句进行聚类,得到至少一个问句簇。
抽取完每个句子的SVO之后,对每个句子的SVO进行聚类,利用距离计算函数将具有相似意图的句子划分在一起。
距离计算函数可以理解为计算两个句子之间SVO的函数。例如,距离计算函数可以为:
d=(1–cos(v1,v2))*(1–cos(s1+o1,s2+o2))
其中:d为两个句子之间的距离;s1、s2分别为第一个句子和第二个句子的主语;v1、v2分别为第一个句子和第二个句子的谓语;o1、o2分别为第一各句子和第二个句子的宾语。
如前面的两个例子“银行卡显示已扣款”和“支付宝显示未支付”的SVO的示意图参见图4。示出了s1、s2;v1、v2和o1、o2。通过上述距离计算函数,可以计算出两个句子的距离,作为聚类的依据。
可见,在一种可选方式中:利用距离计算函数,根据每两个原始问句的主谓宾三元组,计算两个原始问句之间的距离;将各原始问句之间距离小于距离阈值的所有原始问句确定为具有相似意图的原始问句,由具有相似意图的原始问句构成问句簇。
S204:基于问句簇对应的标准问句,对问句簇中的各个原始问句进行标注,得到正样本和负样本。
参见图5,为一个问句簇示意图。该问句簇包括20条问句,这些问句基本意思一致,因此被聚类到一个问句簇中。在聚类得到一个问句簇之后,通过分析该问句簇中句子含义,为该问句簇分配或解析出一个标准问句。例如图5中该问句簇对应的标准问句为“如何查看余额支付额度”。
在一个可选的方式中,通过标注的方式,将问句簇中与标准问句具有相同意思的问句标注为正样本,将问句簇中与标准问句具有不同意思的问句标注为负样本。
正样本和负样本是基于标准问句相对而言的。如图5的例子,通过标注(例如人工标注)的方式,可以确定第5条问句“如何查看余额支付上限”与标准问句表达的意思不一样,因此将该第5条问句标注为负样本;其余问句标注为正样本。后续利用正样本和负样本作为训练数据,训练得到句意相似度识别模型,完成用户问句识别的过程。
可见,本说明书实施例基于业务问答领域,虽然用户描述方式多样,但问句中核心主要信息相对固定,因此提出一种通过SVO三元组方式刻画并理解用户意图方式,通过对问句中SVO进行抽取识别后进行聚类,由每个问句簇进行标注,可提升对标准问句及长尾问题的覆盖,同时提升识别准确率,提升问答系统对用户问题的识别能力。
本说明书实施例提供一种建立句意相似度识别模型的方法,请参考图6,该建立句意相似度识别模型的方法包括S601-S602。
S601:确定至少一个问句簇及问句簇对应的标准问句,其中,问句簇是根据原始问句的主谓宾三元组对多条原始问句进行聚类得到的;并基于标准问句为所述问句簇标注出正样本和负样本。
原始问句可以从历史数据中获取。例如,从一个月之内的历史问句中获取到预定数量的问句作为原始问句。在一种可选方式中,可基于预先根据深度学习注意力模型(deepbiaffine attention model)训练的句法分析模型,解析出原始问句的主谓宾部分,构成主谓宾三元组。主谓宾三元组即S(subject)V(verb)O(object)三元组,基于SVO三元组可实现文本句意解析。例如一个问句“银行卡显示已扣款”的SVO分别是“银行卡”、“显示”、“已扣款”;再如一个问句“支付宝显示未支付”的SVO分别是“支付宝”、“显示”、“未支付”。
抽取完每个句子的SVO之后,对每个句子的SVO进行聚类,利用距离计算函数将具有相似意图的句子划分在一起。距离计算函数可以理解为计算两个句子之间SVO的函数。例如,距离计算函数可以为:d=(1–cos(v1,v2))*(1–cos(s1+o1,s2+o2))。其中:d为两个句子之间的距离;s1、s2分别为第一个句子和第二个句子的主语;v1、v2分别为第一个句子和第二个句子的谓语;o1、o2分别为第一各句子和第二个句子的宾语。
如前面的两个例子“银行卡显示已扣款”和“支付宝显示未支付”的SVO的示意图参见图4。示出了s1、s2;v1、v2和o1、o2。通过上述距离计算函数,可以计算出两个句子的距离,作为聚类的依据。
可见,在一种可选方式中:利用距离计算函数,根据每两个原始问句的主谓宾三元组,计算两个原始问句之间的距离;将各原始问句之间距离小于距离阈值的所有原始问句确定为具有相似意图的原始问句,由具有相似意图的原始问句构成问句簇。
参见图5,为一个问句簇示意图。该问句簇包括20条问句,这些问句基本意思一致,因此被聚类到一个问句簇中。在聚类得到一个问句簇之后,通过分析该问句簇中句子含义,为该问句簇分配或解析出一个标准问句。例如图5中该问句簇对应的标准问句为“如何查看余额支付额度”。
在一个可选的方式中,通过标注的方式,将问句簇中与标准问句具有相同意思的问句标注为正样本,将问句簇中与标准问句具有不同意思的问句标注为负样本。
正样本和负样本是基于标准问句相对而言的。如图5的例子,通过标注(例如人工标注)的方式,可以确定第5条问句“如何查看余额支付上限”与标准问句表达的意思不一样,因此将该第5条问句标注为负样本;其余问句标注为正样本。
S602:利用正样本和负样本作为训练数据,训练得到句意相似度识别模型。
在一种可选方式中,基于深度学习注意力模型作为句意相似度识别模型,利用正样本和负样本作为训练数据对句意相似度识别模型进行训练。标注过后的数据作为训练数据对句意相似度识别模型进行训练。例如可使用基于深度学习的注意力模型(AttentionModel)作为句意相似度识别训练模型。深度学习里的Attention model模拟的是人脑的注意力模型,举个例子,当观赏一幅画时,虽然可以看到整幅画的全貌,但是在深入仔细地观察时,其实眼睛聚焦的就只有很小的一块,这个时候人的大脑主要关注在这一小块图案上,也就是说这个时候人脑对整幅图的关注并不是均衡的,是有一定的权重区分的。这就是深度学习里的Attention Model的核心思想。
简单而言,句意相似度识别模型的训练过程包括:对输入的样本数据进行切词处理,得到分词向量;基于深度学习计算分词向量的差值,得到差值向量;再利用分类器根据差值向量训练出模型。
在每次训练过程中,句意相似度识别模型的输入包括两个,第一个是问句簇中依次选中的一条样本(正样本或负样本),第二个是该问句簇的标准问句;相似度识别模型的输出为二者的相似度值。
第二方面,基于同一发明构思,本说明书实施例提供一种句意相似度识别方法,请参考图7,该句意相似度识别方法包括S701-S702。
S701:获取用户输入的待识别问句。
S702:将待识别问句输入各个标准问句对应的句意相似度识别模型,得到待识别问句与各标准问句的相似度;其中,句意相似度识别模型是利用至少一个问句簇中标注的正样本和负样本作为训练数据训练得到,问句簇是根据原始问句的主谓宾三元组对多条原始问句进行聚类得到的。
原始问句可以从历史数据中获取。例如,从一个月之内的历史问句中获取到预定数量的问句作为原始问句。在一种可选方式中,可基于预先根据深度学习注意力模型(例如deep biaffine attention model)训练的句法分析模型,解析出原始问句的主谓宾部分,构成主谓宾三元组。主谓宾三元组即S(subject)V(verb)O(object)三元组,基于SVO三元组可实现文本句意解析。例如一个问句“银行卡显示已扣款”的SVO分别是“银行卡”、“显示”、“已扣款”;再如一个问句“支付宝显示未支付”的SVO分别是“支付宝”、“显示”、“未支付”。
抽取完每个句子的SVO之后,对每个句子的SVO进行聚类,利用距离计算函数将具有相似意图的句子划分在一起。距离计算函数可以理解为计算两个句子之间SVO的函数。例如,距离计算函数可以为:d=(1–cos(v1,v2))*(1–cos(s1+o1,s2+o2))。其中:d为两个句子之间的距离;s1、s2分别为第一个句子和第二个句子的主语;v1、v2分别为第一个句子和第二个句子的谓语;o1、o2分别为第一各句子和第二个句子的宾语。
如前面的两个例子“银行卡显示已扣款”和“支付宝显示未支付”的SVO的示意图参见图4。示出了s1、s2;v1、v2和o1、o2。通过上述距离计算函数,可以计算出两个句子的距离,作为聚类的依据。
可见,在一种可选方式中:利用距离计算函数,根据每两个原始问句的主谓宾三元组,计算两个原始问句之间的距离;将各原始问句之间距离小于距离阈值的所有原始问句确定为具有相似意图的原始问句,由具有相似意图的原始问句构成问句簇。
参见图5,为一个问句簇示意图。该问句簇包括20条问句,这些问句基本意思一致,因此被聚类到一个问句簇中。在聚类得到一个问句簇之后,通过分析该问句簇中句子含义,为该问句簇分配或解析出一个标准问句。例如图5中该问句簇对应的标准问句为“如何查看余额支付额度”。
在一个可选的方式中,通过标注的方式,将问句簇中与标准问句具有相同意思的问句标注为正样本,将问句簇中与标准问句具有不同意思的问句标注为负样本。
正样本和负样本是基于标准问句相对而言的。如图5的例子,通过标注(例如人工标注)的方式,可以确定第5条问句“如何查看余额支付上限”与标准问句表达的意思不一样,因此将该第5条问句标注为负样本;其余问句标注为正样本。
在一种可选方式中,基于深度学习注意力模型作为句意相似度识别模型,利用正样本和负样本作为训练数据对句意相似度识别模型进行训练。标注过后的数据作为训练数据对句意相似度识别模型进行训练。例如可使用基于深度学习的注意力模型(AttentionModel)作为句意相似度识别训练模型。
简单而言,句意相似度识别模型的训练过程包括:对输入的样本数据进行切词处理,得到分词向量;基于深度学习计算分词向量的差值,得到差值向量;再利用分类器根据差值向量训练出模型。
而相似度识别过程中,将待识别问句输入到各个标准问句对应的句意相似度识别模型,各个相似度识别模型输出该待识别问句与本身的标准问句的相似度。
在线识别过程中,是将待识别问句与各个标准问句进行比较识别出相似度。假设有100个标准问句,模型会将用户当前问句和100个标准问句一一比较,由于通过标注方式已确定了正样本和负样本,那么如果用户问句属于某个问句簇中的正样本,则它与该问句簇对应的标准问句相似度会较高,也即得到较高的相似度值。反之如果用户问句属于某个问句簇中的负样本,则它与该问句簇对应的标准问句相似度会较低,也即得到较低的相似度值。在得到当前问句与各个标准问句的相似度值之后,可以选择相似度值最高的标准问句作为该问句的识别结果。
第三方面,基于同一发明构思,本说明书实施例提供一种样本确定装置,用于确定句意相似度识别中的训练样本。请参考图8,该样本确定装置800包括:问句获取单元801,用于获取多条原始问句;句法分析单元802,用于对所述原始问句进行句法分析,得到主谓宾三元组;聚类单元803,用于根据所述主谓宾三元组对原始问句进行聚类,得到至少一个问句簇;标注单元804,用于基于所述问句簇对应的标准问句,对所述问句簇中的各个原始问句进行标注,得到正样本和负样本。
在一种可选方式中,所述句法分析单元802具体用于:基于预先根据深度学习注意力模型训练的句法分析模型,解析出原始问句的主谓宾部分,构成所述主谓宾三元组。
在一种可选方式中,所述聚类单元803具体用于:利用距离计算函数,根据每两个原始问句的主谓宾三元组,计算所述两个原始问句之间的距离;将各原始问句之间距离小于距离阈值的所有原始问句确定为具有相似意图的原始问句,由具有相似意图的原始问句构成所述问句簇。
在一种可选方式中,所述标注单元804具体用于包括:通过标注的方式,将所述问句簇中与标准问句具有相同意思的原始问句标注为正样本,将所述问句簇中与标准问句具有不同意思的原始问句标注为负样本。
第四方面,基于同一发明构思,本说明书实施例提供一种句意相似度识别设备。请参考图9,该句意相似度识别设备900包括:模型训练装置901及相似度识别装置902;其中:模型训练装置901:用于利用上述样本确定装置800确定的正样本和负样本作为训练数据,训练得到句意相似度识别模型;相似度识别装置902,用于将获取的待识别问句输入各个标准问句对应的句意相似度识别模型,得到所述待识别问句与各标准问句的相似度。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。
显然,本领域的技术人员可以对本说明书进行各种改动和变型而不脱离本说明书的精神和范围。这样,倘若本说明书的这些修改和变型属于本说明书权利要求及其等同技术的范围之内,则本说明书也意图包含这些改动和变型在内。