发明内容
本申请问题的分析采用对问题的语义的理解,信息检索利用问题分析的结果从知识谱中查找到相关知识,答案的生成根据检索出的知识生成对用户的回答;采用实类结构去提取知识,构建基于电商平台实类的自动问答系统,由电商实类知识谱的构建、电商平台问句语义理解和答案的提取三个部分组成。本申请开发设计面向中小型电商平台平台,减轻中小型电商企业客服的压力,能够从商品数据信息中提取知识,并且容易部署,且具有较好的语义理解。是一种搜索、检索的形式。相对于传统的搜索,自动问答系统能够理解用户询问的语义,快速、准确找到用户询问的答案;能够更好的改善搜索质量和用户体验。
为实现以上技术效果,本申请所采用的技术方案以下:
准确理解语义的电商平台智能客服问答系统,问题的分析采用对问题的语义的理解,信息检索利用问题分析的结果从知识谱中查找到相关知识,答案的生成根据检索出的知识生成对用户的回答;采用实类结构去提取知识,构建基于电商平台实类的自动问答系统,由电商实类知识谱的构建、电商平台问句语义理解和答案的提取三个部分组成;
(1)电商实类知识谱的构建:包括实类知识谱的存储和结构、实类的挖掘两个方面:1)在实类的存储时,建立利用关系数据库以纵向模式存储实类的方法,将实类中的概念、个体以实体的方式存储,而将实类中两个元素之间的包括属性、包含的各种关联以关系的形式,通过记录存储在关系表中,即实类的纵向存储模式;2)通过构建电商平台数据库结构,挖掘用户询问的知识就在数据库的各个数据表中,数据表的格式固定,通过对数据表每条数据的每个字段的解析,提取实类信息,并建立实类的自动维护和更新机制;
(2)电商平台问句语义理解:问句处理中首先进行分词,然后根据分词结果对问句进行句法解析,分词采用融合实类知识谱的词法分析分词方法,将实类知识谱中的概念、个体名词性语义添加进词法分析中提高分词的准确性,另外归纳电商平台常用问句模型,并构建疑问词在不同位置的句法解析方法,解析析出问句的主谓宾成分,进而得到问句的语义分类;
(3)答案的提取:构建基于问句模型的近似度计算方法:通过分词结果,提取问句的句型结构,在进行问句分类之后,与分类中的问句模型从长度、成分、顺序方面计算近似度,对于不同的问句模型,分别构建从实类库中提取检索结果的sql语句,从而得到答案;
(4)构建基于电商平台实类的问答系统:构建系统总体框架,基于C#语言运行在.net framework之上,建立实类知识知识谱,问答处理系统回答用户在具体的电商平台的提问。
优选地,电商实类知识谱的构建及实类的提取:采用关系数据库来存储实类,采用三元组作为知识的基本单位,通过纵向模式来存储OWL资源;
问答系统中的知识来源于问答系统所依附的电商平台数据库,电商平台实类知识谱的构建通过分析具体的电商平台数据库,从中构建出实类,并将实类数据存放在数据库中。
优选地,电商平台数据解析:
(1)根据分类层次,将商品的分类定义成类Class,其中,父分类ID为0的默认为顶层类,而其它的类根据继承关系采用rdfs:subClassOf来声明概念的继承关系;
(2)类型的属性对应关系Propertyof关系;
(3)商品的属性值是属性,是实例的属性;
(4)具体的商品记录是实例,实例和概念之间的关系是InstanceOf;
(5)商品的分类与分类之间存在继承与派生的关系。
优选地,电商平台实类的存储:采用四个数据表来存储电商平台实类,其结构和模型分别如下:
(1)实体表:电商平台所有出现的名词术语都看作是可识别的实体,实体的类型包括概念、实例、属性、属性的约束,其中属性包含数据属性和对象属性,与protege中的属性一致;
模型1:实体entity<实体ID,实体名称,实体类别ID,实体描述>
其中实体类别ID是外键,引用自实体类别表;
(2)实体类别:描述类型的名称,用以确定实体的类别及实体的范围的约束;
模型2:实体类别type<类别ID,类别名称,类别约束>
(3)关系类型:描述实体之间的关系的种实类,关系类型包含实类描述中最基本的四种关系,根据需要增加用于推理或描述更强的逻辑的推理关系,关系类型可扩展;
模型3:关系类型<关系类型ID,关系类型名称,关系类型描述>
(4)实体关系:描述实体表中的实体之间的关系,实体之间的关系是实类的知识性体现,实类中描述事实的知识,通过各种实类实体的关系来体现,关系类型越多,实类知识越丰富;
模型4:实体关系<ID,主实体ID,客实体ID,关系类型ID,关系取值,关系描述>。
优选地,基于电商实类知识谱的分词系统:添加用户自定义词典,将用户的词典添加进词法分析,并优先识别,流程概括如下:
步骤一:扫描实类知识谱的实体数据表,获取其中的专有名词,组成词典,其中实体表中全部是名词,词典中的词的词性为名词;
步骤二:将步骤一的词典添加进词法分析;
步骤三:采用新的词法分析进行分词并进行词性标记,得到符合电商平台需要的分词和词性标记。
优选地,问句句法解析:取得问句中的主谓宾的结构及其之间的关系,在疑问代词作主语、宾语和定语的情况,其中,疑问代词作主语时有谓语动词紧随其后,疑问代词和谓语动词的距离是1,疑问代词作宾语处于问句末尾,疑问代词作定语需要根据疑问代词和谓语动词的位置信息做出对应判断,以上过程详细描述如下:
第一步:将词法分析中的分词及标记结果存入数组;
第二步:查找疑问代词,一个问句中只有一个疑问代词;
第三步:查找谓语动词:在问句中,谓语动词离疑问代词最近;
第四步:分析主语和宾语部分:
(1)疑问代词在句末,此时疑问代词做宾语,谓语动词之前的名词作为特征主语;
(2)疑问代词不在句末,且谓语动词紧跟疑问代词之后,此时疑问代词做主语,谓语动词之后的名词作为特征宾语;
(3)疑问代词不在句末,且和谓语动词不相邻,此时疑问一般作定语,又分为两种情况:
1)疑问代词在谓语动词之前:疑问代词和谓语动词之间的名词作为特征主语项,如果疑问代词和谓语动词之间没有名词,则谓语动词之后的名词作为特征宾语项;
2)疑问代词在谓语动词之后:疑问代词之后的名词作为特征宾语项,如果疑问代词之后没有名词,将谓语动词之前的名词作为特征主语项。
优选地,基于问题分类的问句模型的建立:结合对实类数据库的构造,归纳出常见的问句模型,采用问句模型解析和匹配的方法来理解问句;本申请从电商平台用户的检索目的、用户的询问方式,并结合关系数据库纵向存储的实类知识谱中进行检索的方法来构建问句模型。
优选地,问句模型识别:设待识别的问句为S,系统问句模型集合为M={M1…Mn},该过程就是从M中找出与S最适合的问句模型Ms,采用的问句模型识别过程包括2个步骤:对S去除语义块部分,得到问句S的句型结构Si;计算Mi与Si之间的近似度,最后选择最大近似度所对应的问句模型作为S的句型结构,若最大近似度小于一个设定的临界值,则匹配失败,语句S不是问句或语义理解失败;
1)问句句型结构解析
对于疑问代词语义块:结合词法分析的分词结果和预定的疑问代词库进行查找,提取出问句中的疑问代词语义块;
对于特征词:特征词即是需要检索的目标,是用户询问的语义,特证词在疑问代词或谓语附近,即主语、宾语或定语;
对于问句的检索主体:是名词或名词性的短语,本申请直接采用分词的结果以变量的形式表示,在检索时,通过实类知识谱去识别问句中的变量成分,并根据问句模型构建检索;
通过以上过程,问句被表示成问句模型,其中除掉特征词的部分用参数表示,问句最终转换成对实类的检索,需要根据已有的模型去匹配,在此之前,需要在问句模型库中找到最合适的模型,从问句模型库中查找与用户问句模型最合适的模型,通过计算用户问句的句型和问句模型库中的模型的近似度;
2)问句模型近似度计算
得到句型结构Si后,识别该结构是否与对应的问句模型Mi相匹配,采用语句近似度来计算二者之间的近似度,实现句型结构Si与问句模型Mi的匹配识别;
问句S以问句模型Mi为模板生成句型结构Si,(Mi,Si)都是由短语和表示词性的标记所组成的符号集合,其中模型中包含动态语义块和特征语义块,问句模型Mi与问句S的近似度由Mi与句型结构Si的近似度表示,包括3个部分:
1))模型长度近似度:长度指语义块的数量,设句型结构Si的长度为m,问句模型Mi的长度为n,则用户问句S和句型模型M之间的近似度SimLen用式1计算:
2))句型成分近似度:引入向量的点积进行计算,设句型结构Si的语义块的个数为m(即长度为m),问句模型Mi的语义块的个数为n(即长度为n),Si中每个成分(语义块)的权值向量分别为:Ws=(ws1,ws2,…,wsm},Mi中每个成分(语义块)的权值向量分别为:Wm={wm1,wm2,…,wmn},其中wm1+wm2+…+wmn=1,每个值在构造问句模型时,根据问句各成分的重要性,由人工确定;
对Ws中的每个值,则是Si中的每个语义块和Mi中的每个语义成分的近似程度,如果Si中的每个成分在Mi中存在,则对应的wsi=1,否则则认为不存在,当m不等于n时,取其中较短的向量,句型的成分近似度SimTerm利用式2计算:
SimTerm=Ws*Wm 式2
式2就是Ws和Wm两个向量的点积;
3))序列近似度:与问句模型Mi各语义块相比较,记录句型结构Si中各语义块成分在Mi中的位置与在Si中的位置不相同的个数,记为逆序的个数为num;
序列近似度SimOrder利用式3计算:
综上计算出总的句型近似度Sim,总的句型近似度由模型长度近似度、句型成分近似度、序列近似度线性组合而成:
Sim=k1*SimLen+k2*SimTerm+k3*SimOrder 式4
在式4中:k1,k2,k3分别是模型长度近似度SimLen、句型成分近似度SimTerm、序列近似度SimOrder的权值,表示各近似度在总近似度中的比重成分,且k1,k2,k3满足k1+k2+k3=1,那么Sim∈[0,1],Sim值越高,说明问句S和某个问句模型Mi越匹配;
设置k1=0.7,k2=0.2,k3=0.1,增加问句模型的适应程度,尽可能将语义成分引入实类知识谱中去检索推理;
以上过程的简要描述如下:
步骤1:根据句法解析的结果,选择问句的句型分类;
步骤2:提取问句的结构:遍历分词结构,提取问句中的名词和形容词部分作为参数,参数化的问句即为问句的结构Si;
步骤3:计算问句结构和问句所属分类中的各问句模型的近似度,选取最优的问句模型。
优选地,构造检索语句与生成答案:
1.在实类知识谱中检索的步骤
第1步:扫描问句,提取问句模型中的变量,根据最匹配的模型,利用分词结构,将模型中的变量赋值;
第2步:在本地知识谱中查找变量所对应的实类类型,在内存中构建实类模型,并检索;
1)首先查找实体表,搜索出各变量对应的实体类型,在实体表中查找,找到之后,并查找其实体类型;
2)对在实体表中查找不到的,则在关系表中查找关系取值字段,并根据第1步中找到的实体类型进行配合查找,找到对应的实体,此实体是检索主体;
3)分析检索特证词,对第2步中找到的主体进行检索,检索主体的相关特征,得到需要返回的答案;
4)如果第1步和第2步其中一个检索失败,则实类知识谱中的知识不能回答用户的问题,返回失败;
2.在内存中构建检索主体及其关系模型
在检索过程中,当扫描完实体,如果只有一个概念或个体的时候,确定这个概念或个体就是检索的主体,此时再次检索数据库,通过检索实体的关系表,挖掘检索主体的各种关系;
如果在检索语句中出现两个及以上的概念或个体,此时问句的语义是求取两个概念或个体之间的关系,以两个概念或个体,在关系实体中检索并返回其中的关系或关系值。
优选地,建立实类知识知识谱:自动建立并提取实类的方法:
(1)实类知识存储数据库的关系模型
实类知识谱将每一个数据拆分成最基本的元素,分析这些基本元素之间的关系,进而形成语义知识;
(2)自动提取实类的步骤
1)设定实类知识数据库中的实体类别和关系类别:实体类别是实类中出现元素的集合,实类中出现的元素包括:概念、个体、对象属性、数据属性,数据属性描述个体属性,具有具体的值;
关系类别描述各元素之间的关系,包括:0bjectProperty0f:描述概念和其对象属性的关系;DataPropertyOf:描述个体和其数据属性的关系,此时除二者之间的关系外,还包含二者的关系取值;InstanceOf:描述概念和个体之间的关系,某个具体的商品是某个商品分类的实例;SubClassOf:描述概念和概念之间的从属关系,描述商品分类之间的从属关系;PartOf:描述概念与概念之间的整体和部分的关系;
2)扫描商品分类表,建立商品分类的顶级概念,并将顶级概念存储到实类知识谱中的实体表中,类别为概念,对于父分类为0的分类表示顶级概念,如果父分类不为0,则为子分类,需要建立子分类和父分类之间的关系,关系类型为SubClassOf;
3)扫描商品属性名表,将商品分类的属性存储到实类知识数据库的实体表中,类别为对象属性;同时将商品属性和商品分类的关系存储到实类知识数据库的实体关系数据表中,关系类型为DataPropertyOf,关系值为空;
4)扫描商品表,逐条记录建立商品的个体,并将商品的个体存储到实体表中,实体类型为个体;同时将商品的个体和其所属分类建立关系,关系类型为InstanceOf,关系值为空;
5)扫描商品属性值表,将商品个体和其属性建立关系,此时的关系类型是DataPropertyOf的关系,并且将关系值存储;
6)对于商品的SKU,将其设置成个体和属性的关系;
通过以上步骤,将电商平台平台的商品数据表以实类知识的组织形式存储进关系数据库,以上关系描述实类的知识。
与现有技术相比,本申请的创新点和优势在于:
(1)本申请问题的分析采用对问题的语义的理解,信息检索利用问题分析的结果从知识谱中查找到相关知识,答案的生成根据检索出的知识生成对用户的回答;采用实类结构去提取知识,构建基于电商平台实类的自动问答系统,由电商实类知识谱的构建、电商平台问句语义理解和答案的提取三个部分组成。本申请开发设计面向中小型电商平台平台,减轻中小型电商企业客服的压力,能够从商品数据信息中提取知识,并且容易部署,且具有较好的语义理解。是一种精准检索的形式。相对于传统的搜索,自动问答系统能够理解用户询问的语义,快速、准确找到用户询问的答案;能够更好的改善搜索质量和用户体验。
(2)本申请创造性的提出了电商实类知识谱的构建方法,在实类的存储时,建立利用关系数据库以纵向模式存储实类的方法,将实类中的概念、个体以实体的方式存储,而将实类中两个元素之间的包括属性、包含的各种关联以关系的形式,通过记录存储在关系表中,实类的纵向存储模式;通过构建电商平台数据库结构,挖掘用户询问的知识就在数据库的各个数据表中,数据表的格式固定,通过对数据表每条数据的每个字段的解析,提取实类信息,并建立实类的自动维护和更新机制;有利于减轻人工负担,又能准确理解客户问题,作出满意回答,满足顾客需求的智能问答系统,既具有重要的应用价值,满足电商平台发展的迫切要求。
(3)本申请创造性的提出了电商平台问句语义理解方法,问句处理中首先进行分词,然后根据分词结果对问句进行句法解析,分词采用融合实类知识谱的词法分析分词方法,将实类知识谱中的概念、个体名词性语义添加进词法分析中提高分词的准确性,另外归纳电商平台常用问句模型,并构建疑问词在不同位置的句法解析方法,解析析出问句的主谓宾成分,进而得到问句的语义分类;有效解决了智能问答系统自然语言语义理解,词法分析,语法分析,语义提取等方面的问题。
(4)本申请创造性的提出了答案的提取方法,构建基于问句模型的近似度计算方法,通过分词结果,提取问句的句型结构,在进行问句分类之后,与分类中的问句模型从长度、成分、顺序方面计算近似度,对于不同的问句模型,分别构建从实类库中提取检索结果的sql语句,从而得到答案。构建了基于电商平台实类的问答系统,回答用户在具体的电商平台的提问。具有智能化,能真正的理解客户的语义,并根据用户意图作出正确的响应。对于领域和非领域知识,系统能够自动的学得知识,并根据领域数据和提问者的问题的不断变化而更新。问答系统提供给提问者的答案是对领域问题的真正描述,用户体验好。
具体实施方式
下面结合附图,对本申请提供的准确理解语义的电商平台智能客服问答系统的技术方案进行进一步的描述,使本领域的技术人员能够更好的理解本申请并能够予以实施。
自动问答系统是一种搜索、检索的形式。相对于传统的搜索,自动问答系统能够理解用户询问的语义;快速、准确找到用户询问的答案;能够更好的改善搜索质量和用户体验。现有技术大部分都是基于对用户问句的关键字的检索和匹配,较少的涉及语义的理解。
开发设计面向中小型电商平台平台的自动问答系统,减轻中小型电商企业客服的压力是本申请关注的问题。中小型电商平台,通常有完备的商品数据信息,而且这些系统结构简单。面向该平台的问答系统,需要能够从商品数据信息中提取知识,并且容易部署,且具有较好的语义理解。
(1)实类知识谱的存储:利用关系数据库以纵向模式存储实类的方法,将实类中的概念、个体以实体的方式存储,将实类中两个元素之间的各种关联(如属性、包含等)以关系的形式,通过记录存储在关系表中,即实类的纵向存储模式。这种方法可以比较容易的挖掘和提取电商数据表中的知识,并以实类的方式存储。
(2)基于实类库的句法解析:词法分析的分词颗粒度比较细。在进行分词的时候,将实类知识谱中的概念、个体等名词性语义添加进词法分析中可以提高分词的准确性。另外,本申请总结了电商平台常用问句的模型,并设计了疑问词在不同位置的句法解析方法。通过该方法,可以轻易的分析出问句的主谓宾成分,从而得到问句的语义分类。
(3)基于问句模型的问句处理方法:本申请提出了基于问句模型的近似度计算方法。通过分词结果,提取问句的句型结构,在进行问句分类之后,与分类中的问句模型从长度、成分、顺序三个方面计算近似度。对比问句的结构和问句模型库中的模型的近似度,得到与问句结构最相近的问句模型,而把具体语义块的部分交给问句模型对应的检索,在实类知识谱中检索答案,这样使系统具有很好的鲁棒性。对于不同的问句模型,分别设计从实类库中提取检索结果的sql语句,从而得到答案。
最后本申请根据以上技术特点,设计了一个系统原型,并进行了实验分析,证明了系统设计的正确性和有效性。
一、电商实类知识谱的构建及实类的提取
考虑到电商平台商品及其分类清晰,本申请决定不适用XML文件直接存储,而是采用关系数据库来存储实类,采用三元组作为知识的基本单位,通过纵向模式来存储OWL资源。
在关系数据库中采用纵向模式存储知识的有如下的优点:1)可以采用统一的结构分解存储实类,如果采用其它模式,不可避免的造成知识数据库的膨胀和维护的复杂。2)更新、维护方便,不需要更改数据库的结构,不需要变动数据库的内容,直接向数据库中,按照定义模式增加知识即可。3)可以借助关系数据库的优势,便于知识的共享和访问。4)节省资源和存储空间,可以将复杂的表示语义的OWL实类标记转换为关系数据库中的字段或记录来表示,大幅节省存储空间和资源。5)提高访问效率。
问答系统中的知识来源于问答系统所依附的电商平台数据库,电商平台实类知识谱的构建就是通过分析具体的电商平台数据库,从中构建出实类,并将实类数据存放在数据库中。
(一)电商平台数据解析
(1)根据分类层次,将商品的分类定义成类Class,其中,父分类ID为0的默认为顶层类,而其它的类根据继承关系采用rdfs:subClassOf来声明概念的继承关系;
(2)类型的属性对应关系Propertyof关系;
(3)商品的属性值是属性,是实例的属性;
(4)具体的商品记录是实例,实例和概念之间的关系是InstanceOf;
(5)商品的分类与分类之间存在继承与派生的关系。
(二)电商平台实类的存储
采用四个数据表来存储电商平台实类,其结构和模型分别如下:
(1)实体表:电商平台所有出现的名词术语都看作是可识别的实体,实体的类型包括概念、实例、属性、属性的约束,其中属性包含数据属性和对象属性,与protege中的属性一致;
模型1:实体entity<实体ID,实体名称,实体类别ID,实体描述>
其中实体类别ID是外键,引用自实体类别表;
(2)实体类别:描述类型的名称,用以确定实体的类别及实体的范围的约束;
模型2:实体类别type<类别ID,类别名称,类别约束>
(3)关系类型:描述实体之间的关系的种实类,关系类型包含实类描述中最基本的四种关系,根据需要增加用于推理或描述更强的逻辑的推理关系,关系类型可扩展;
模型3:关系类型<关系类型ID,关系类型名称,关系类型描述>
(4)实体关系:描述实体表中的实体之间的关系,实体之间的关系是实类的知识性体现,实类中描述事实的知识,通过各种实类实体的关系来体现,关系类型越多,实体之间的关系越丰富,实类知识就越丰富;
模型4:实体关系<ID,主实体ID,客实体ID,关系类型ID,关系取值,关系描述>
在采用半自动构建实类知识谱的过程中,完善电商平台数据之间的联系。
二、电商平台问句语义理解
本申请对问句提出的问题经过分词、词性标记、命名实体识别和关键词提取,最终得出问句的逻辑表达,以便在知识谱中查找结果。
(一)基于电商实类知识谱的分词系统
采用基于电商实类知识谱词法分析分词系统,使得系统既能准确的分词,又能很好的兼顾用户的需求。
(1)单纯采用某种分词方法的问题
面向词典匹配的方法由于其需要额外的去构建字典树,分词不够全面和准确,效率也不高;而面向电商的问答系统,如果单纯的采用词法分析也会出现一些问题:1)词汇划分过于精细;2)专业词汇划分不准确;3)对新词的识别问题。
(2)本申请的解决方案
词法分析的分词结果并不能识别一些专业领域的名词,对此问题进行了补充:添加用户自定义词典,将用户的词典添加进词法分析,并优先识别。其具体过程如图1所示。
以上流程图的工作过程概括如下:
步骤一:扫描实类知识谱的实体数据表,获取其中的专有名词,组成词典,其中实体表中全部是名词,词典中的词的词性为名词;
步骤二:将步骤一的词典添加进词法分析;
步骤三:采用新的词法分析进行分词并进行词性标记,得到符合电商平台需要的分词和词性标记。
(二)问句句法解析
取得问句中的主谓宾的结构及其之间的关系,在疑问代词作主语、宾语和定语的情况,其中,疑问代词作主语时有谓语动词紧随其后,疑问代词和谓语动词的距离是1(即紧挨),疑问代词作宾语处于问句末尾,疑问代词作定语需要根据疑问代词和谓语动词的位置信息做出对应判断,以上过程详细描述如下:
第一步:将词法分析中的分词及标记结果存入数组;
第二步:查找疑问代词,一个问句中只有一个疑问代词;
第三步:查找谓语动词:在问句中,谓语动词离疑问代词最近;
第四步:分析主语和宾语部分:
(1)疑问代词在句末,此时疑问代词做宾语,谓语动词之前的名词作为特征主语;
(2)疑问代词不在句末,且谓语动词紧跟疑问代词之后,此时疑问代词做主语,谓语动词之后的名词作为特征宾语;
(3)疑问代词不在句末,且和谓语动词不相邻,此时疑问一般作定语,又分为两种情况:
1)疑问代词在谓语动词之前:疑问代词和谓语动词之间的名词作为特征主语项,如果疑问代词和谓语动词之间没有名词,则谓语动词之后的名词作为特征宾语项;
2)疑问代词在谓语动词之后:疑问代词之后的名词作为特征宾语项,如果疑问代词之后没有名词,将谓语动词之前的名词作为特征主语项。
三、答案的提取
(一)基于问题分类的问句模型的建立
结合对实类数据库的构造,归纳出常见的问句模型,采用问句模型解析和匹配的方法来理解问句;本申请从电商平台用户的检索目的、用户的询问方式,并结合关系数据库纵向存储的实类知识谱中进行检索的方法来构建问句模型。
(1)基于问句句型分类的问句模型
结合疑问句疑问代词的类型和电商平台常见的问题模式,总结出如图2的问句模型,问句模型在实际应用中根据需要增加,n表示分词结果中的名词,a表示分词结果中的形容词;{}表示问句中的语义块,[]表示可选部分,非语义的必须成分,|表示问句分词或的关系;
对用户问句进行归纳和分析,并采用一定的策略尽可能多的建立问句模型,构建起一个动态、完备覆盖大多数用户检索表达方式的问句模型库,另外,问句的模型可以扩展,并且能够根据扩展的模型动态的构建检索模型。
(2)问句模型识别
设待识别的问句为S,系统问句模型集合为M={M1…Mn},该过程就是从M中找出与S最适合的问句模型Ms,采用的问句模型识别过程包括2个步骤:对S去除语义块部分,得到问句S的句型结构Si;计算Mi与Si之间的近似度,最后选择最大近似度所对应的问句模型作为S的句型结构,若最大近似度小于一个设定的临界值,则匹配失败,语句S不是问句或语义理解失败。
1)问句句型结构解析
对于疑问代词语义块:结合词法分析的分词结果和预定的疑问代词库进行查找,提取出问句中的疑问代词语义块;
对于特征词(目标语义块):特征词即是需要检索的目标,是用户询问的语义,特证词在疑问代词或谓语附近,即主语、宾语或定语;
对于问句的检索主体(主体语义块):是名词或名词性的短语,本申请直接采用分词的结果以变量的形式表示,在检索时,通过实类知识谱去识别问句中的变量成分,并根据问句模型构建检索;
通过以上过程,问句被表示成问句模型,其中除掉特征词的部分用参数表示,问句最终转换成对实类的检索,需要根据已有的模型去匹配,在此之前,需要在问句模型库中找到最合适的模型,从问句模型库中查找与用户问句模型最合适的模型,通过计算用户问句的句型和问句模型库中的模型的近似度。
2)问句模型近似度计算
得到句型结构Si后,识别该结构是否与对应的问句模型Mi相匹配,采用语句近似度来计算二者之间的近似度,实现句型结构Si与问句模型Mi的匹配识别。
问句S以问句模型Mi为模板生成句型结构Si,(Mi,Si)都是由短语和表示词性的标记所组成的符号集合,其中模型中包含动态语义块和特征语义块,问句模型Mi与问句S的近似度由Mi与句型结构Si的近似度表示,包括3个部分:
1)模型长度近似度:长度指语义块的数量,设句型结构Si的长度为m,问句模型Mi的长度为n,则用户问句S和句型模型M之间的近似度SimLen用式1计算:
2)句型成分近似度:引入向量的点积进行计算,设句型结构Si的语义块的个数为m(即长度为m),问句模型Mi的语义块的个数为n(即长度为n),Si中每个成分(语义块)的权值向量分别为:Ws=(ws1,ws2,…,wsm},Mi中每个成分(语义块)的权值向量分别为:Wm={wm1,wm2,…,wmn},其中wm1+wm2+…+wmn=1,每个值在构造问句模型时,根据问句各成分的重要性,由人工确定;
对Ws中的每个值,则是Si中的每个语义块和Mi中的每个语义成分的近似程度,如果Si中的每个成分在Mi中存在,则对应的wsi=1,否则则认为不存在,当m不等于n时,取其中较短的向量,句型的成分近似度SimTerm利用式2计算:
SimTerm=Ws*Wm 式2
式2就是Ws和Wm两个向量的点积;
3)序列近似度:与问句模型Mi各语义块相比较,记录句型结构Si中各语义块成分在Mi中的位置与在Si中的位置不相同的个数,记为逆序的个数为num;
序列近似度SimOrder利用式3计算:
综上计算出总的句型近似度Sim,总的句型近似度由模型长度近似度、句型成分近似度、序列近似度线性组合而成:
Sim=k1*SimLen+k2*SimTerm+k3*SimOrder 式4
在式4中:k1,k2,k3分别是模型长度近似度SimLen、句型成分近似度SimTerm、序列近似度SimOrder的权值,表示各近似度在总近似度中的比重成分,且k1,k2,k3满足k1+k2+k3=1,那么Sim∈[0,1],Sim值越高,说明问句S和某个问句模型Mi越匹配;
设置k1=0.7,k2=0.2,k3=0.1,增加问句模型的适应程度,尽可能将语义成分引入实类知识谱中去检索推理。
以上过程的简要描述如下:
步骤1:根据句法解析的结果,选择问句的句型分类;
步骤2:提取问句的结构:遍历分词结构,提取问句中的名词和形容词部分作为参数,参数化的问句即为问句的结构Si;
步骤3:计算问句结构和问句所属分类中的各问句模型的近似度,选取最优的问句模型。
(二)构造检索语句与生成答案
1.在实类知识谱中检索的步骤
第1步:扫描问句,提取问句模型中的变量,根据最匹配的模型,利用分词结构,将模型中的变量赋值;
第2步:在本地知识谱中查找变量所对应的实类类型,在内存中构建实类模型,并检索;
1)首先查找实体表,搜索出各变量对应的实体类型,在实体表中查找,找到之后,并查找其实体类型;
2)对在实体表中查找不到的,该变量可能是一个关系值。则在关系表中查找关系取值字段,并根据第1步中找到的实体类型进行配合查找,找到对应的实体,此实体是检索主体;
3)分析检索特证词,对第2步中找到的主体进行检索,检索主体的相关特征,得到需要返回的答案;
4)如果第1步和第2步其中一个检索失败,则实类知识谱中的知识不能回答用户的问题,返回失败。
2.在内存中构建检索主体及其关系模型
在检索过程中,当扫描完实体,如果只有一个概念或个体的时候,确定这个概念或个体就是检索的主体,此时再次检索数据库,通过检索实体的关系表,挖掘检索主体的各种关系。
如果在检索语句中出现两个及以上的概念或个体,此时问句的语义是求取两个概念或个体之间的关系,以两个概念或个体,在关系实体中检索并返回其中的关系或关系值(约束)。
四、构建基于电商平台实类的问答系统
(一)系统总体框架
(1)问答系统完成两方面的工作:问答处理和知识管理,问答处理模块完成从接受用户提问,对用户的问句进行语法分析、问句理解,最后在实类知识谱中检索知识并返回答案的全过程,而知识管理则通过本地电商数据库动态的提取实类知识。
(2)问答系统的工作流程:在问答处理方面:当接收到用户提问时,通过对问句进行词法分析、分词、词性标记,实现问句的预处理,然后通过对问句的成分进行提取,提取语义块,生成问句的逻辑结构,并用此结构去匹配问句模型库中的模型,实现问句的理解,最后对不同的问句模型,按照提取的语义部分动态生成对实类知识谱的检索,得到用户提问的答案并返回;在知识管理方面:从电商数据库中提取知识,并且以实类进行建模,将数据存储到实类知识数据库中。
(二)建立实类知识知识谱
自动建立并提取实类的方法:
(1)实类知识存储数据库的关系模型
电商平台大部分用户的提问是问关于商品价格、商品属性特点问题,电商平台的数据库的关系如图3所示,实类知识谱的存储结构的关系如图4所示。
实类知识谱将每一个数据拆分成最基本的元素,分析这些基本元素之间的关系,进而形成语义知识。
(2)自动提取实类的步骤
1)设定实类知识数据库中的实体类别和关系类别:实体类别是实类中出现元素的集合,实类中出现的元素包括:概念、个体、对象属性、数据属性,数据属性描述个体属性,具有具体的值;
关系类别描述各元素之间的关系,包括:0bjectProperty0f:描述概念和其对象属性的关系;DataPropertyOf:描述个体和其数据属性的关系,此时除二者之间的关系外,还包含二者的关系取值;InstanceOf:描述概念和个体之间的关系,某个具体的商品是某个商品分类的实例;SubClassOf:描述概念和概念之间的从属关系,描述商品分类之间的从属关系;PartOf:描述概念与概念之间的整体和部分的关系。
2)扫描商品分类表,建立商品分类的顶级概念(concept),并将顶级概念存储到实类知识谱中的实体表中,类别为概念,对于父分类为0的分类表示顶级概念,如果父分类不为0,则为子分类,需要建立子分类和父分类之间的关系,关系类型为SubClassOf;
3)扫描商品属性名表,将商品分类的属性存储到实类知识数据库的实体表中,类别为对象属性;同时将商品属性和商品分类的关系存储到实类知识数据库的实体关系数据表中,关系类型为DataPropertyOf,关系值为空;
4)扫描商品表,逐条记录建立商品的个体,并将商品的个体存储到实体表中,实体类型为个体;同时将商品的个体和其所属分类建立关系,关系类型为InstanceOf,关系值为空;
5)扫描商品属性值表,将商品个体和其属性建立关系,此时的关系类型是DataPropertyOf的关系,并且将关系值存储;
6)对于商品的SKU,将其设置成个体和属性的关系;
通过以上步骤,将电商平台平台的商品数据表以实类知识的组织形式存储进关系数据库,以上关系描述实类的知识。
(三)问答处理系统
包括用户问句的处理,问句的语义解析和答案的生成三个部分。
(1)用户问句的处理
问句的处理包括分词和问句成分提取,其中问句成分的提取采用词法分析进行分词处理,分词之后,将分词的结果输入到Standford parse进行句法解析,得到其中的主语谓语宾语语句块;
1)将实类知识谱中的实体以名词的方式添加进词法分析用户词典;
2)调用词法分析,将用户问句进行分词;
3)句法解析,利用第二步的分词结果作为输入,提取其中的主语谓语和宾语的语句结构成分;
(2)问句的语义解析
采用上一步提取的问句的结构,对问句分类,比较问句的结构成分和问句模型的近似度,步骤是:提取主语,保留谓语和宾语作为特证词和结构;计算问句结构和问句模型的近似度,找到最合适的问句模型。
(3)答案的生成
利用分词的结果,通过在实类模型中构建实类模型,通过依存句法解析,用户提问中的名词主语是问句的主体语义块,也是问句检索的主体,而宾语去除疑问代词之后,则是需要检索的目的,根据不同的问句模型,有不同的组建语句的方式。
(四)系统的性能
问答系统需要一个评价机制来衡量它的性能,为此本申请采用一种评测方法进行测试,首先建立一个测试集,测试集由手工总结的“问题-模型-答案对”组成,将测试集中的问题依次对问答系统进行提问,让问答系统匹配问句模型,并自动给出答案。再把问答系统匹配到的问句模型和返回的答案分别与测试集中的模型和答案进行人工比对。可以分别获得问句模型的匹配准确度和问句的答案的准确度,计算出问答系统的正确率(查准率)。
设测试集的数目为N,匹配到正确的问句模型的数目为M,当匹配到正确的问句模型时系统返回正确的答案为K,返回的总的正确答案数为K1,定义问句理解的正确率为P1,则P1用式5表示:
定义问答系统回答问题的正确率为P2,则P2用式6表示:
此时的P2即为系统的查准率,其中K1是总的正确答案的总数,包含当用户问句匹配错误模型却得到正确答案的个数。
定义问答系统回答问题的查全率为P3,则P3用式7表示:
查全率反映当问句匹配正确的情况下能够得到正确答案的数目,反映了系统的检索算法的有效性。
为了观测本问答系统的性能,分别从商品的价格、商品其它参数特点这2个方面不同的问句分类中各设计了50个“问句-模型-答案对”组成测试集,对系统进行测试,测试结果如图5所示。N表示测试集数目;M表示问句模型匹配正确数;K表示在问句模型匹配正确情况下问答系统的回答正确数;K1表示问答系统总的回答正确数;P1表示问句理解的正确率;P2表示问答系统的回答问题正确率,即衡量了检索算法的准确率(查准率);P3表示问答系统在问句理解正确的情况下的答案生成的召回率。
从图5中可以看出,对于不同的问句类型,就价格方面来说,由于其特征的明显,价格属于商品属性,所以模型的匹配正确性要相对于提问商品参数的问题要高,即问答系统对商品的属性方面的问题的语义理解较好。
另一方面可以看到,系统的查准率非常的高,这是因为问句模型所对应的检索是固定设计好的,而且是正确的。只有语义块对问句有影响,所以答案生成的查准率高。
问答系统可以在较大程度上降低人工的耗费,减轻人工客服的负担。