1.本技术涉及知识图谱领域,尤其涉及一种工单检索方法、服务器、介质及产品。
背景技术:2.随着互联网技术的发展和社会的进步,人们越来越重视企业的服务质量,客服系统也变得越来越重要,而工单系统在客服系统中占据着重要地位。
3.每一位客服人员在处理客户问题的时候,不可能面面俱到,什么问题都能马上解决,对于不在客服人员业务能力范围内的问题,常常通过记录工单的形式,联合全单位相关人员进行专人专项的处理。相关人员进行工单的处理时,通常会在工单库中检索与其内容相似的工单,一方面可以进行处理办法的参考,另一方面也可以减少对于相似问题处理方法不一致的问题。现有技术中对工单进行检索时,通常会采用关键词检索的方式,但是,由于工单中记录的大都是口语化表达的语句,利用关键词进行检索的结果准确性较低。
4.因此,需要一种准确性更高的工单检索方案。
技术实现要素:5.本技术提供一种工单检索方法、服务器、介质及产品,用以解决现有技术中工单检索准确性低的技术问题。
6.第一方面,本技术提供一种工单检索方法,包括:
7.在接收到用户终端发送的检索请求之后,获取所述检索请求中的检索信息,并对所述检索信息进行结构化解析,以得到所述检索信息对应的结构化数据和非结构化数据;
8.对所述非结构化数据进行实体和关系的抽取,并根据抽取到的实体和关系构建初始知识三元组;
9.根据所述结构化数据和所述初始知识三元组进行数据融合处理,以得到目标知识三元组;
10.确定预设的知识三元组库中,与所述目标知识三元组的相似度大于预设的相似度阈值的第一知识三元组;
11.确定所述第一知识三元组对应的工单信息,并根据所述工单信息向用户终端输出检索结果。
12.在一种可能的实施方式中,所述对所述非结构化数据进行实体和关系的抽取,并根据抽取到的实体和关系构建初始知识三元组,具体包括:
13.对所述非结构化数据进行分句处理,以得到所述非结构化数据对应的句子;
14.对于每一所述句子,利用深度自编码器对所述句子进行实体识别,以得到所述句子对应的实体,所述句子的隐含状态以及所述实体中每一字节对应的隐含状态;
15.对于所述句子中的任意两个实体,将所述句子的隐含状态以及所述两个实体中每一字节对应的隐含状态输入训练好的关系抽取模型中,以得到所述两个实体之间的关系;
16.根据每一所述句子对应的实体,以及任意两个实体之间的关系,构建所述非结构
化数据对应的初始知识三元组。
17.在一种可能的实施方式中,所述将所述句子的隐含状态以及所述两个实体中每一字节对应的隐含状态输入训练好的关系抽取模型中,以得到所述两个实体之间的关系,具体包括:
18.对于实体d1和d2,利用下列公式分别对所述句子的隐含状态以及所述实体d1和d2中每一字节对应的隐含状态进行单层神经网络的线性变换,以得到所述句子对应的句子特征,所述实体d1对应的第一实体特征,以及所述实体d2对应的第二实体特征:
19.f
sent
=tanh(w
sent
h0+b
sent
)
20.f
ent1
=tanh(w
ent1hent1
+b
ent1
)
21.f
ent2
=tanh(w
ent2hent2
+b
ent2
)
22.其中,所述f
sent
表示句子特征,所述f
ent1
表示第一实体特征,所述f
ent2
表示第二实体特征,所述tanh表示激活函数,所述w
sent
表示神经网络参数,所述b
sent
表示神经元偏置,所述h0表示句子的隐含状态,所述h
ent1
表示所述实体d1中每一字节对应的隐含状态的平均池化,所述h
ent2
表示所述实体d2中每一字节对应的隐含状态的平均池化;
23.对所述句子特征、所述第一实体特征以及所述第二实体特征进行特征拼接,以得到拼接后的特征向量;
24.利用下列公式计算得到所述实体d1和d2之间每一预设关系的概率值:
25.p=softmax(w
out
[concat(f
sent
,f
ent1
,f
ent2
)]+b
out
)
[0026]
其中,所述p表示预设关系的概率值,所述w
out
表示输出层的神经网络参数,所述concat(f
sent
,f
ent1
,f
ent2
)表示拼接后的特征向量,所述b
out
表示输出层的神经元偏置;
[0027]
根据最大概率值对应的预设关系,确定所述实体d1和d2之间的关系。
[0028]
在一种可能的实施方式中,所述关系抽取模型包括关系分类子模型和知识表示学习子模型,所述关系抽取模型是利用下方式训练得到的:
[0029]
利用训练样本集以及下列公式对初始关系抽取模型进行迭代训练,以得到所述关系抽取模型,所述训练样本集包括句子特征、句子中实体的特征、任意两个实体之间正确的关系特征和任意两个实体之间错误的关系特征:
[0030]
l=l
1-l2[0031]
其中,l表示所述关系抽取模型训练时的损失函数,所述l1表示所述关系分类子模型训练时的第一损失函数,所述l2表示所述知识表示学习子模型训练时的第二损失函数;
[0032]
对于所述关系分类子模型,利用所述句子特征、句子中实体的特征、任意两个实体之间正确的关系特征,以及所述第一损失函数进行迭代训练,以得到所述关系抽取模型中的关系分类子模型:
[0033]
l1=-∑ylog(p)
[0034]
p=softmax(w
out
[concat(f
sent
,f
ent1
,f
ent2
)]+b
out
)
[0035]
其中,所述y表示两个实体d1和d2之间关系的真实值;
[0036]
对于所述知识表示学习子模型,利用所述句子中实体的特征、任意两个实体之间正确的关系特征、任意两个实体之间错误的关系特征,以及所述第二损失函数进行迭代训练,以得到所述关系抽取模型中的知识表示学习子模型:
[0037]
l2=max(f
′r(f
ent1
,f
ent2
)-fr(f
ent1
,f
ent2
),0)
[0038][0039][0040]
其中,所述r表示两个实体d1和d2之间正确的关系特征,所述r表示两个实体d1和d2之间错误的关系特征,所述fr(f
ent1
,f
ent2
)表示正确的实体-关系-实体之间的距离,所述fr(f
ent1
,f
ent2
)表示错误的实体-关系-实体之间的距离,所述f
ent1t
表示实体d1的第一实体特征的转置,所述diag(mr)表示关系特征r的对角矩阵。
[0041]
在一种可能的实施方式中,所述预设的知识三元组库是通过下列方式获得的:
[0042]
对工单库中的全量工单进行结构化解析,以得到所述全量工单的结构化数据和非结构化数据;
[0043]
对于每一工单,对所述工单的非结构化数据进行实体和关系的抽取,并根据抽取到的实体和关系构建第二知识三元组;
[0044]
根据所述工单的结构化数据和所述第二知识三元组进行数据融合处理,以得到所述工单的第三知识三元组;
[0045]
根据每一所述工单的第三知识三元组,以及每一所述工单对应的工单信息,建立所述知识三元组库。
[0046]
在一种可能的实施方式中,所述确定所述第一知识三元组对应的工单信息,并根据所述工单信息向用户终端输出检索结果,具体包括:
[0047]
根据所述知识三元组库,确定每一所述第一知识三元组对应的工单信息;
[0048]
按照所述第一知识三元组的相似度由大到小的顺序,对每一所述第一知识三元组对应的工单信息进行排序,以生成工单序列;
[0049]
根据所述工单序列向用户终端输出检索结果。
[0050]
在一种可能的实施方式中,在所述获取所述检索请求中的检索信息之后,还包括:
[0051]
判断所述检索信息中是否包括空格信息;
[0052]
若是,则确定所述检索信息对应的检索关键词,根据所述检索关键词确定并输出所述检索信息对应的工单信息;
[0053]
若否,则执行所述对所述检索信息进行结构化解析的步骤。
[0054]
第二方面,本技术提供一种终端设备,包括:
[0055]
接收模块,用于在接收到用户终端发送的检索请求之后,获取所述检索请求中的检索信息;
[0056]
处理模块,用于对所述检索信息进行结构化解析,以得到所述检索信息对应的结构化数据和非结构化数据;对所述非结构化数据进行实体和关系的抽取,并根据抽取到的实体和关系构建初始知识三元组;根据所述结构化数据和所述初始知识三元组进行数据融合处理,以得到目标知识三元组;确定预设的知识三元组库中,与所述目标知识三元组的相似度大于预设的相似度阈值的第一知识三元组;确定所述第一知识三元组对应的工单信息;
[0057]
输出模块,根据所述工单信息向用户终端输出检索结果。
[0058]
第三方面,本技术提供另一种服务器,包括:处理器,以及与所述处理器通信连接的存储器;
[0059]
所述存储器存储计算机执行指令;
[0060]
所述处理器执行所述存储器存储的计算机执行指令,以实现上述的方法。
[0061]
第四方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现上述的方法。
[0062]
第五方面,本技术提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法。
[0063]
本技术提供的工单检索方法、服务器、介质及产品,可以获取检索请求中的检索信息,并对检索信息进行结构化解析,以得到检索信息对应的结构化数据和非结构化数据;对非结构化数据进行实体和关系的抽取,并根据抽取到的实体和关系构建初始知识三元组;根据结构化数据和初始知识三元组进行数据融合处理,以得到目标知识三元组;确定预设的知识三元组库中,与目标知识三元组的相似度大于预设的相似度阈值的第一知识三元组;确定第一知识三元组对应的工单信息,并根据工单信息向用户终端输出检索结果。由于工单中大都是口语化表达的语句,即非结构化数据,因此,本技术的方法,可以对非结构化数据进行实体和关系的抽取,并根据抽取到的实体和关系构建初始知识三元组,从而对检索信息的非结构化数据进行精确的知识抽取。进一步的,由于工单中还会包括一定的结构化数据,因此,通过根据结构化数据和初始知识三元组进行数据融合处理得到目标知识三元组,可以实现知识三元组中实体和关系在表述上的对齐,从而提高知识三元组的准确性。
[0064]
进一步的,可以预先对已有的工单进行实体和关系的抽取,已建立知识三元组库,在确定检索信息对应的目标知识三元组之后,即可从知识三元组库中找到与目标知识三元组的相似度大于预设的相似度阈值的第一知识三元组。由于知识三元组可以表征工单内容,知识三元组相似度高,就说明工单相似度高,因此,第一知识三元组对应的工单信息即为用户想要得到的检索结果。通过这样的设置,利用知识三元组进行检索可以提高语义检索的准确性,从而提高工单检索的准确性。
附图说明
[0065]
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
[0066]
图1为本技术一实施例的系统架构图;
[0067]
图2为本技术一实施例的工单检索方法的流程图;
[0068]
图3为本技术另一实施例的工单检索方法的流程图;
[0069]
图4为本技术一实施例的实体识别示意图;
[0070]
图5为本技术一实施例的服务器的结构示意图;
[0071]
图6为本技术另一实施例的服务器的结构示意图。
[0072]
附图标记:1、用户终端;2、服务器;21、接收模块;22、处理模块;23、输出模块。
[0073]
通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。
具体实施方式
[0074]
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
[0075]
首先对本技术所涉及的名词进行解释:
[0076]
工单指的是,由一个和多个作业组成的简单维修或制造计划,上级部门下达任务,下级部门领受任务的依据。在银行金融领域,工单可以理解为客服人员在处理客户问题,对超出业务能力范围内的问题的记录,通常可以包括业务名称或者代码、待解决的问题或者客户表述等,一般为口语化表达的语句。
[0077]
本技术的技术方案中,所涉及的金融数据或用户数据等信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
[0078]
需要说明的是,本技术的工单检索方法、服务器、介质及产品可用于金融领域,也可用于除金融领域以外的任意领域,只要需要对工单检索即可应用。本技术的工单检索方法、服务器、介质及产品的应用领域并不作限定。
[0079]
每一位客服人员在处理客户问题的时候,不可能面面俱到,什么问题都能马上解决,对于不在客服人员业务能力范围内的问题,常常通过记录工单的形式,联合全单位相关人员进行专人专项的处理。相关人员进行工单的处理时,通常会在工单库中检索与其内容相似的工单,一方面可以进行处理办法的参考,另一方面也可以减少对于相似问题处理方法不一致的问题。
[0080]
现有技术中对工单进行检索时,通常会采用关键词检索的方式,但是,由于工单中记录的大都是口语化表达的语句,利用关键词进行检索的结果准确性较低。
[0081]
基于该技术问题,本技术的发明构思在于:如何提供一种准确性更高的工单检索方法。
[0082]
具体为,可以获取检索请求中的检索信息,并对检索信息进行结构化解析,以得到检索信息对应的结构化数据和非结构化数据;对非结构化数据进行实体和关系的抽取,并根据抽取到的实体和关系构建初始知识三元组;根据结构化数据和初始知识三元组进行数据融合处理,以得到目标知识三元组;确定预设的知识三元组库中,与目标知识三元组的相似度大于预设的相似度阈值的第一知识三元组;确定第一知识三元组对应的工单信息,并根据工单信息向用户终端输出检索结果。由于工单中大都是口语化表达的语句,即非结构化数据,因此,本技术的方法,可以对非结构化数据进行实体和关系的抽取,并根据抽取到的实体和关系构建初始知识三元组,从而对检索信息的非结构化数据进行精确的知识抽取。进一步的,由于工单中还会包括一定的结构化数据,因此,通过根据结构化数据和初始知识三元组进行数据融合处理得到目标知识三元组,可以实现知识三元组中实体和关系在表述上的对齐,从而提高知识三元组的准确性。
[0083]
进一步的,可以预先对已有的工单进行实体和关系的抽取,已建立知识三元组库,在确定检索信息对应的目标知识三元组之后,即可从知识三元组库中找到与目标知识三元组的相似度大于预设的相似度阈值的第一知识三元组。由于知识三元组可以表征工单内容,知识三元组相似度高,就说明工单相似度高,因此,第一知识三元组对应的工单信息即
为用户想要得到的检索结果。通过这样的设置,利用知识三元组进行检索可以提高语义检索的准确性,从而提高工单检索的准确性。
[0084]
下面以具体地实施例对本技术的技术方案以及本技术的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本技术的实施例进行描述。
[0085]
图1为本技术一实施例的系统架构图,如图1所示,1表示用户终端,2表示服务器,21表示接收模块、22表示处理模块,23表示输出模块。用户想要检索工单时,可以在用户终端1的检索界面输入检索信息,用户终端1根据检索信息生成检索请求,并将检索请求发送至服务器2,服务器2的接收模块21在接收到检索请求之后,可以获取检索请求中的检索信息。处理模块22可以对检索信息进行结构化解析,以得到检索信息对应的结构化数据和非结构化数据;对非结构化数据进行实体和关系的抽取,并根据抽取到的实体和关系构建初始知识三元组;根据结构化数据和初始知识三元组进行数据融合处理,以得到目标知识三元组;确定预设的知识三元组库中,与目标知识三元组的相似度大于预设的相似度阈值的第一知识三元组;确定第一知识三元组对应的工单信息;输出模块23可以根据工单信息向用户终端1输出检索结果。
[0086]
实施例一
[0087]
图2为本技术一实施例提供的工单检索方法的流程图,本技术实施例提供的工单检索方法的执行主体可以是终端设备,也可以是服务器,本实施例以执行主体为服务器对该工单检索方法进行说明。如图2所示,该工单检索方法可以包括以下步骤:
[0088]
s101:在接收到用户终端发送的检索请求之后,获取检索请求中的检索信息,并对检索信息进行结构化解析,以得到检索信息对应的结构化数据和非结构化数据。
[0089]
在本实施例中,对检索信息进行结构化解析可以是按字段对检索信息进行解析。结构化数据指的是能够用模板提取的结构化内容,例如,工单类型、工单交办部门、一二级业务类型、客户所属机构等信息。非结构化数据指的是不能用模板提取的文本信息、图表等内容,对于工单而言,非结构化数据基本是工单概述、工单详情描述、处理意见等,这些一般为口语化表述。
[0090]
在一个可能的实施方式中,在获取检索请求中的检索信息之后,还可以包括:判断检索信息中是否包括空格信息;若是,则确定检索信息对应的检索关键词,根据检索关键词确定并输出检索信息对应的工单信息;若否,则执行对检索信息进行结构化解析的步骤。
[0091]
在本实施方式中,本技术的工单检索可以同时支持关键词检索和基于知识三元组的语义检索。基于现有的关键词检索方法,若用户想要进行关键词检索,则关键词之间需要存在空格作为间隔。因此,在获取用户输入的检索信息之后,可以通过判断检索信息中是否包括空格信息来判断用户想要使用的检索方式。若包括空格信息,说明用户想要进行关键词检索,利用现有的关键词检索方法进行检索即可。若不包括空格信息,则用户输入的是句子,说明用户想要进行基于知识三元组的语义检索,则执行对检索信息进行结构化解析的步骤即可。
[0092]
在本实施方式中,利用关键词进行工单检索时,首先需要建立关键词库:可以对工单库中现有的全量工单进行分词处理,识别并提取每一工单对应的关键词(可以为多个),根据每一工单对应的关键词以及工单信息建立关键词库。之后,根据关键词库确定与检索
信息中的关键词匹配的关键词及其对应的工单信息,最后将工单信息作为检索结果输出即可。具体的关键词检索过程可以参考现有技术,在此不做赘述。
[0093]
在本实施方式中,可以在现有的关键词检索的基础上,添加了利用知识三元组进行的语义检索作为补充,即可以同时支持关键词检索和基于知识三元组的语义检索,本技术的基于知识三元组的语义检索可以对关键词检索作为补充,从而提高工单检索的准确性。
[0094]
s102:对非结构化数据进行实体和关系的抽取,并根据抽取到的实体和关系构建初始知识三元组。
[0095]
在本实施例中,上述步骤s102对非结构化数据进行实体和关系的抽取,并根据抽取到的实体和关系构建初始知识三元组的具体实施方式请详见实施例二。
[0096]
s103:根据结构化数据和初始知识三元组进行数据融合处理,以得到目标知识三元组。
[0097]
在本实施例中,基于非结构化数据建立的初始知识三元组可能在表述上并不标准,从而影响知识三元组的准确性。因此,需要对结构化数据和初始知识三元组进行数据融合处理,即实现知识三元组中实体和关系在表述上的对齐,以提高目标知识三元组的准确性。
[0098]
s104:确定预设的知识三元组库中,与目标知识三元组的相似度大于预设的相似度阈值的第一知识三元组。
[0099]
在本实施例中,预设的相似度阈值本领域技术人员可以根据实际灵活设置,在此不做任何限制。与目标知识三元组的相似度大于预设的相似度阈值,即可认为与目标知识三元组相似,即对应的工单相似。
[0100]
在一个可能的实施方式中,预设的知识三元组库可以是通过下列方式获得的:对工单库中的全量工单进行结构化解析,以得到全量工单的结构化数据和非结构化数据;对于每一工单,对工单的非结构化数据进行实体和关系的抽取,并根据抽取到的实体和关系构建第二知识三元组;根据工单的结构化数据和第二知识三元组进行数据融合处理,以得到工单的第三知识三元组;根据每一工单的第三知识三元组,以及每一工单对应的工单信息,建立知识三元组库。
[0101]
在本实施方式中,工单库中的每一工单对应的第三知识三元组的建立过程,与检索信息对应的目标知识三元组建立的过程相同,在此不做赘述。只是在对每一工单分别抽取到对应的第三知识三元组之后,可以根据每一工单的第三知识三元组,以及每一工单对应的工单信息,建立知识三元组库,以便后续根据知识三元组查找到对应的工单信息。
[0102]
s105:确定第一知识三元组对应的工单信息,并根据工单信息向用户终端输出检索结果。
[0103]
在本实施例中,工单信息可以包括但不限于:工单编号、工单名称、工单代码等,只要根据工单信息能够对每一工单进行识别即可,在此不做任何限制。
[0104]
在一个可能的实施方式中,上述步骤s105确定第一知识三元组对应的工单信息,并根据工单信息向用户终端输出检索结果,可以包括:根据知识三元组库,确定每一第一知识三元组对应的工单信息;按照第一知识三元组的相似度由大到小的顺序,以生成工单序列;根据工单序列向用户终端输出检索结果。
[0105]
在本实施方式中,工单序列输出给用户终端时,可以以json格式在用户终端的界面展示。
[0106]
在本实施方式中,与目标知识三元组的相似度大于预设的相似度阈值的第一知识三元组可能有多个,此时需要根据相似度由大到小的顺序对第一知识三元组对应的工单信息进行排序,以生成工单序列。通过这样的设置,可以方便用户依次查看与检索信息相似的工单,提升用户体验。
[0107]
在本实施例中,可以获取检索请求中的检索信息,并对检索信息进行结构化解析,以得到检索信息对应的结构化数据和非结构化数据;对非结构化数据进行实体和关系的抽取,并根据抽取到的实体和关系构建初始知识三元组;根据结构化数据和初始知识三元组进行数据融合处理,以得到目标知识三元组;确定预设的知识三元组库中,与目标知识三元组的相似度大于预设的相似度阈值的第一知识三元组;确定第一知识三元组对应的工单信息,并根据工单信息向用户终端输出检索结果。由于工单中大都是口语化表达的语句,即非结构化数据,因此,本技术的方法,可以对非结构化数据进行实体和关系的抽取,并根据抽取到的实体和关系构建初始知识三元组,从而对检索信息的非结构化数据进行精确的知识抽取。进一步的,由于工单中还会包括一定的结构化数据,因此,通过根据结构化数据和初始知识三元组进行数据融合处理得到目标知识三元组,可以实现知识三元组中实体和关系在表述上的对齐,从而提高知识三元组的准确性。
[0108]
进一步的,可以预先对已有的工单进行实体和关系的抽取,已建立知识三元组库,在确定检索信息对应的目标知识三元组之后,即可从知识三元组库中找到与目标知识三元组的相似度大于预设的相似度阈值的第一知识三元组。由于知识三元组可以表征工单内容,知识三元组相似度高,就说明工单相似度高,因此,第一知识三元组对应的工单信息即为用户想要得到的检索结果。通过这样的设置,利用知识三元组进行检索可以提高语义检索的准确性,从而提高工单检索的准确性。
[0109]
下面以实施例二对上述实施例一的步骤s102对非结构化数据进行实体和关系的抽取,并根据抽取到的实体和关系构建初始知识三元组的具体实施方式进行详细的阐述。
[0110]
实施例二
[0111]
图3是本技术另一实施例提供的工单检索方法的流程图,本技术实施例提供的工单检索方法的执行主体可以是终端设备,也可以是服务器,本实施例以执行主体为服务器对该工单检索方法进行说明。如图3所示,该工单检索方法可以包括以下步骤:
[0112]
s201:对非结构化数据进行分句处理,以得到非结构化数据对应的句子。
[0113]
在本实施例中,非结构化数据可能包括多个句子,因此,需要对非结构化数据进行分句处理,拆分成单个的句子。
[0114]
s202:对于每一句子,利用深度自编码器对句子进行实体识别,以得到句子对应的实体,句子的隐含状态以及实体中每一字节对应的隐含状态。
[0115]
在本实施例中,可以利用深度自编码器(bert)对句子进行实体识别,以得到句子中的实体,具体的实体识别过程可以参考现有技术,在此不做赘述。在利用深度自编码器对句子进行实体识别时,不仅可以识别出实体,也可以识别出句子的隐含状态,以及实体中每一字节对应的隐含状态。
[0116]
句子的隐含状态可以指句子整体的属性,例如句子的真假等,实体中每一字节对
应的隐含状态,可以指单个字节对应的属性。
[0117]
示例性的,图4为本技术一实施例的实体识别示意图,如图4所示,人工符号[cls]表示该特征用于分类模型,[sep]表示句子的间隔;“客户申请信用卡”为非结构化数据拆分得到的句子,和人工符号一起作为深度自编码器(bert)的输入。如图4所示,“客户申请信用卡”这一句子,经bert识别到的实体为“客户”和“信用卡”,h0为句子的隐含状态,h1和h2为实体“客户”的隐含状态,h5、h6和h7为实体“信用卡”的隐含状态。
[0118]
其中,人工符号[cls]、[sep]以及句子中的每一个字节均可作为一个token,一个token对应着有一个词向量表示,假设是一个20维度的向量,每一个token作为bert的输入,即可得到每一个token对应的隐含状态h,是维度同样为20的向量。
[0119]
s203:对于句子中的任意两个实体,将句子的隐含状态以及两个实体中每一字节对应的隐含状态输入训练好的关系抽取模型中,以得到两个实体之间的关系。
[0120]
在本实施例中,可以在关系抽取模型中预先设置一定数目的关系,之后关系抽取模型会输出两个实体对这些关系的概率值,根据概率值的大小即可确定两个实体之间的关系。
[0121]
在一个可能的实施方式中,上述步骤s203中的将句子的隐含状态以及两个实体中每一字节对应的隐含状态输入训练好的关系抽取模型中,以得到两个实体之间的关系,可以包括:
[0122]
s2031:对于实体d1和d2,利用下列公式(1)-(3)分别对句子的隐含状态以及实体d1和d2中每一字节对应的隐含状态进行单层神经网络的线性变换,以得到句子对应的句子特征,实体d1对应的第一实体特征,以及实体d2对应的第二实体特征:
[0123]fsent
=tanh(w
sent
h0+b
sent
)
ꢀꢀꢀ
(1)
[0124]fent1
=tanh9w
ent1hent1
+b
ent1
)
ꢀꢀꢀ
(2)
[0125]fent2
=tanh9w
ent2hent2
+b
ent2
)
ꢀꢀꢀ
(3)
[0126]
其中,f
sent
表示句子特征,f
ent1
表示第一实体特征,f
ent2
表示第二实体特征,tanh表示激活函数,w
sent
表示神经网络参数,b
sent
表示神经元偏置,h0表示句子的隐含状态,h
ent1
表示实体d1中每一字节对应的隐含状态的平均池化,h
ent2
表示实体d2中每一字节对应的隐含状态的平均池化。
[0127]
s2032:对句子特征、第一实体特征以及第二实体特征进行特征拼接,以得到拼接后的特征向量。
[0128]
s2033:利用下列公式(4)计算得到实体d1和d2之间每一预设关系的概率值:
[0129]
p=softmax(w
out
[concat(f
sent
,f
ent1
,f
ent2
)]+b
out
)
ꢀꢀꢀ
(4)
[0130]
其中,p表示预设关系的概率值,w
out
表示输出层的神经网络参数,concat(f
sent
,f
ent1
,f
ent2
)表示拼接后的特征向量,b
out
表示输出层的神经元偏置。
[0131]
s2034:根据最大概率值对应的预设关系,确定实体d1和d2之间的关系。
[0132]
示例性的,如图4所示,在得到实体d1(客户)和d2(信用卡)中每一字节对应的隐含状态之后,实体d1(客户)中每一字节对应的隐含状态的平均池化h
ent1
=(h1+h2)/2,实体d2(信用卡)中每一字节对应的隐含状态的平均池化h
ent2
=(h5+h6+h7)/3。
[0133]
示例性的,假设一共预设了10种关系,则线性变换后具有10个维度,softmax函数会将这10个维度映射到[0,1]区间,以得到这10中预设关系的概率值,之后根据得分最高的
关系作为实体d1和d2之间的关系即可。w
out
表示输出层的神经网络参数,如果f
sent
,f
ent1
,f
ent2
拼接后的维度为60,则w
out
是一个60*10的矩阵。
[0134]
在本实施方式中,分别对句子的隐含状态以及实体d1和d2中每一字节对应的隐含状态进行单层神经网络的线性变换,就可以得到句子对应的句子特征,实体d1对应的第一实体特征,以及实体d2对应的第二实体特征。之后根据句子特征、第一实体特征以及第二实体特征即可得到实体d1和d2之间每一预设关系的概率值,通过每一预设关系的概率值的大小关系,即可简单而又准确地得到实体d1和d2之间的关系。
[0135]
在一个可能的实施方式中,上述步骤s203中的关系抽取模型可以包括关系分类子模型和知识表示学习子模型,关系抽取模型可以是利用下方式训练得到的:
[0136]
利用训练样本集以及下列公式(5)对初始关系抽取模型进行迭代训练,以得到关系抽取模型,训练样本集包括句子特征、句子中实体的特征、任意两个实体之间正确的关系特征和任意两个实体之间错误的关系特征:
[0137]
l=l
1-l2ꢀꢀꢀ
(5)
[0138]
其中,l表示关系抽取模型训练时的损失函数,l1表示关系分类子模型训练时的第一损失函数,l2表示知识表示学习子模型训练时的第二损失函数。
[0139]
对于关系分类子模型,利用句子特征、句子中实体的特征、任意两个实体之间正确的关系特征,以及第一损失函数,公式(6)进行迭代训练,以得到关系抽取模型中的关系分类子模型:
[0140]
l1=-∑ylog(p)
ꢀꢀꢀ
(6)
[0141]
p=softmax(w
out
[concat(f
sent
,f
ent1
,f
ent2
)]+b
out
)
ꢀꢀꢀ
(4)
[0142]
其中,y表示两个实体d1和d2之间关系的真实值。
[0143]
在本实施方式中,在关系分类子模型的训练过程中,神经网络参数w
sent
和神经元偏置b
sent
,都会随模型反向传播进行训练,tanh激活函数则是为模型引入非线性。
[0144]
在本实施方式中,y表示两个实体d1和d2之间关系的真实值,若关系为真,则y=1,若关系为假,则y=0。示例性的,一条训练样本的真实值是[0,0,1,0,0,0,0,0,0,0],预测的概率值是[0.05,0.05,0.7,0.02,0.03,0.05,0.02,0.02,0.03,0.04],则l1的计算结果为-log(0.7),损失越小,预测的概率值就会越接近1。
[0145]
对于知识表示学习子模型,利用句子中实体的特征、任意两个实体之间正确的关系特征、任意两个实体之间错误的关系特征,以及第二损失函数,公式(7)进行迭代训练,以得到关系抽取模型中的知识表示学习子模型:
[0146]
l2=max(f
′r(f
ent1
,f
ent2
)-fr(f
ent1
,f
ent2
),0)
ꢀꢀꢀ
(7)
[0147][0148][0149]
其中,r表示两个实体d1和d2之间正确的关系特征,r表示两个实体d1和d2之间错误的关系特征,fr(f
ent1
,f
ent2
)表示正确的实体-关系-实体之间的距离,fr(f
ent1
,f
ent2
)表示错误的实体-关系-实体之间的距离,f
ent1t
表示实体d1的第一实体特征的转置,diag(mr)表示
关系特征r的对角矩阵。
[0150]
在本实施方式中,知识表示学习子模型可以由基于平移举例的transe模型和基于语义相似度的distmult模型组成,两个模型的输入都是实体和关系的特征表示,通过两者之间的语义约束增强实体的特征表达,因此有助于提高关系抽取的准确性。在知识表示学习子模型训练过程中,可以根据句子中实体的特征、任意两个实体之间正确的关系特征构建正确的实体-关系-实体对(ent1,r,ent2),并根据句子中实体的特征、任意两个实体之间错误的关系特征构建错误的实体-关系-实体对(ent1,r,ent2)。
[0151]
示例性的,举一个词向量的例子,因为每一个词都可以通过一个向量来表示,可以理解为词语的语义,因此单词“king”对应的向量,减去“male”,加上“female”,得到的向量应该与“queen”的词向量距离相近,因为他们语义相近,这个距离就是fr(f
ent1
,f
ent2
)。
[0152]
在本实施方式中,两个实体d1和d2之间正确的关系特征r和两个实体d1和d2之间错误的关系特征r均可以通过构建参数嵌入矩阵来实现,假设f
ent1
有20个维度,则r和r也应有20个维度,一共有10种关系,那么参数嵌入矩阵就是一个10*20的矩阵。
[0153]
在本实施方式中,第二损失函数l2可以表示为:错误的实体-关系-实体对的距离减去正确的实体-关系-实体对的距离,要使这一损失尽可能大,就要尽可能加大错误的实体-关系-实体对的距离,减小正确的实体-关系-实体对的距离。因此,在利用损失函数l对关系抽取模型进行训练时,要使l1尽可能小,l2尽可能大,从而使关系抽取模型能够很好的分辨正确的关系和错误的关系。
[0154]
在本实施方式中,可以在现有的关系抽取模型中引入知识表示学习子模型,知识表示学习子模型会和原有的关系分类子模型一起进行训练。由于关系分类子模型和知识表示学习子模型使用了共同的输入,即句子中实体的特征f
ent1
和f
ent2
,因此在训练过程中,会共同去优化f
ent1
和f
ent2
的计算过程中的参数,即关系抽取模型中的参数。利用知识表示学习子模型可以引入辅助训练任务,即加大了实体对与正确关系之间的联系,减少了与错误关系之间的联系,为关系分类子模型的训练引入了额外的信息,因此可以使得实体特征表示f
ent1
和f
ent2
更加准确,加大正确关系与错误关系的区分度,从而提高关系分类子模型对关系进行分类的准确性,提高关系抽取模型关系抽取的准确性。
[0155]
s204:根据每一句子对应的实体,以及任意两个实体之间的关系,构建非结构化数据对应的初始知识三元组。
[0156]
在本实施例中,识别到句子对应的实体之后,即可根据任意两个实体之间抽取到的关系,构建任意两个实体、以及抽取到的关系的知识三元组,所有句子对应的知识三元组也就组成了非结构化数据对应的初始知识三元组。
[0157]
在本实施例中,利用深度自编码器对句子进行实体识别之后,即可得到句子对应的实体,利用关系抽取模型以及句子的隐含状态以及任意两个实体中每一字节对应的隐含状态,即可得到者两个实体之间的关系。之后,根据识别到的实体,以及抽取到的关系即可构建非结构化数据对应的初始知识三元组。通过这样的设置,可以对检索信息的非结构化数据进行精确的知识抽取,提高知识抽取的准确性。
[0158]
下面以一个具体的实施例对本技术的工单检索方法进行阐述。
[0159]
实施例三
[0160]
在一个具体的实施例中,某银行的客服人员在接到客户的咨询之后,无法对该客
户所咨询的问题进行处理,该客服根据客户咨询的问题记录生成工单,并将工单发给对应的处理人员。处理人员根据工单中记录的问题进行搜索,想要得到相似的工单,以参考之前相同问题的处理办法,具体的工单检索过程如下:
[0161]
第一步,操作人员在终端设备的检索界面输入工单中记录的问题作为检索信息,进行检索。终端设备接收到检索信息之后,根据检索信息生成检索请求,并发送至服务器。
[0162]
第二步,服务器接收到检索请求中的检索信息之后,对检索信息进行结构化解析,以得到检索信息对应的结构化数据和非结构化数据。
[0163]
第三步,服务器对非结构化数据进行分句处理,以得到非结构化数据对应的句子。
[0164]
第四步,服务器对于每一句子,利用加载的深度自编码器对句子进行实体识别,以得到句子对应的实体,句子的隐含状态以及实体中每一字节对应的隐含状态。
[0165]
第五步,服务器对于句子中的任意两个实体,将句子的隐含状态以及两个实体中每一字节对应的隐含状态输入加载的关系抽取模型中,以得到两个实体之间的关系。
[0166]
第六步,服务器根据每一句子对应的实体,以及任意两个实体之间的关系,构建非结构化数据对应的初始知识三元组。
[0167]
第七步,服务器根据结构化数据和初始知识三元组进行数据融合处理,以得到目标知识三元组。
[0168]
第八步,服务器确定预设的知识三元组库中,与目标知识三元组的相似度大于预设的相似度阈值的第一知识三元组。
[0169]
第九步,服务器根据知识三元组库,确定每一第一知识三元组对应的工单信息;按照第一知识三元组的相似度由大到小的顺序,以生成工单序列;根据工单序列向用户终端输出检索结果。
[0170]
用户可以根据终端设备显示的工单序列依次查看相应的工单,以找到客户咨询的问题以及相应的处理办法。
[0171]
图5为本技术一实施例的服务器的结构示意图,如图5所示,该服务器包括:接收模块21,用于在接收到用户终端发送的检索请求之后,获取检索请求中的检索信息;处理模块22,用于对检索信息进行结构化解析,以得到检索信息对应的结构化数据和非结构化数据;对非结构化数据进行实体和关系的抽取,并根据抽取到的实体和关系构建初始知识三元组;根据结构化数据和初始知识三元组进行数据融合处理,以得到目标知识三元组;确定预设的知识三元组库中,与目标知识三元组的相似度大于预设的相似度阈值的第一知识三元组;确定第一知识三元组对应的工单信息;输出模块23,用于根据工单信息向用户终端输出检索结果。一个实施方式中,服务器具体实现功能的描述可以参见实施例一中的步骤s101-s105以及实施例二中的步骤s201-s204,在此不做赘述。
[0172]
图6为本技术另一实施例的服务器的结构示意图,如图6所示,该服务器包括:处理器101,以及与处理器101通信连接的存储器102;存储器102存储计算机执行指令;处理器101执行存储器102存储的计算机执行指令,实现上述各方法实施例中工单检索方法的步骤。
[0173]
在上述服务器中,存储器102和处理器101之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可以通过一条或者多条通信总线或信号线实现电性连接,如可以通过总线连接。存储器102中存储有实现数据访问控制方法的计算机执行
指令,包括至少一个可以软件或固件的形式存储于存储器102中的软件功能模块,处理器101通过运行存储在存储器102内的软件程序以及模块,从而执行各种功能应用以及数据处理。
[0174]
存储器102可以是,但不限于,随机存取存储器(random access memory,简称:ram),只读存储器(read only memory,简称:rom),可编程只读存储器(programmableread-only memory,简称:prom),可擦除只读存储器(erasable programmable read-onlymemory,简称:eprom),电可擦除只读存储器(electric erasable programmable read-only memory,简称:eeprom)等。其中,存储器102用于存储程序,处理器101在接收到执行指令后,执行程序。进一步地,上述存储器102内的软件程序以及模块还可包括操作系统,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通信,从而提供其他软件组件的运行环境。
[0175]
处理器101可以是一种集成电路芯片,具有信号的处理能力。上述的处理器101可以是通用处理器,包括中央处理器(central processing unit,简称:cpu)、网络处理器(network processor,简称:np)等。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0176]
本技术的一实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现本技术各方法实施例的步骤。
[0177]
本技术的一实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本技术各方法实施例的步骤。
[0178]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由所附的权利要求书指出。
[0179]
应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求书来限制。