一种基于知识图谱的智能问答意图识别方法转让专利

申请号 : CN202210252068.3

文献号 : CN114579709B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张海柱黎荣王淑营丁国富江磊马自立

申请人 : 西南交通大学

摘要 :

本发明涉及一种基于知识图谱的智能问答意图识别方法。其中,该方法包括:建立基于领域知识图谱的实体词典和本体词典,采用词典与命名体识别模型从用户的问句中抽取出相关实体;对用户的问句采用分类浅度判定和句法匹配深度判定相结合的判定模型判定问句类别,输出查询模板实现查询转换;最后将抽取的实体与查询模板组装输出标准化查询语句,识别最终意图。

权利要求 :

1.一种基于知识图谱的智能问答意图识别方法,其特征在于,包括如下步骤:

步骤S1:基于词典与命名体识别模型相结合的实体抽取;具体包括如下步骤:

步骤S11:构建词典;从高速列车领域知识图谱中导出所有实体形成实体词典;手工构建实体的相关同义词形成同义词词典;从高速列车领域知识图谱中导出所有本体标签形成本体标签词典;

步骤S12:构建命名体识别模型以对实体进行初步抽取;通过对高速列车领域各阶段原始数据进行实体标注,将输出形成的标注数据输入到bert‑bilstm‑crf命名体识别模型中进行模型训练,完成命名体识别模型的构建;模型构建完成后,将用户问句输入bert‑bilstm‑crf命名体识别模型中,通过字嵌入的方式依次经过bert层、双向循环神经网络层和crf层,得到用户问句的序列标注结果,并依据序列标注结果输出用户问句中所含的预期实体,完成实体的初步抽取;

步骤S13:在得到实体抽取的初步结果之后,将抽取出来的预期实体代入到实体词典、同义词词典以及本体标签词典中进行字符串匹配,如果预期实体能够与词典中某一词语完全匹配,则将它作为最终实体输出,否则进行编辑距离和余弦相似度的计算,将同时满足编辑距离大于最小阈值以及余弦相似度最高的实体作为抽取的最终实体;

步骤S2:基于问题浅度判定与问题深度判定结合的问题种类判定;具体包括如下步骤:

步骤S21:问题浅度判定;首先对用户输入的用户问句进行分词以及停词,将用户问句转换为相关词的词序列,对词序列分别进行句型特征、用户特征以及词向量特征的提取以及融合,并将三个特征融合而成的向量作为用户问句的特征总向量输入到分类模型进行问题方向的预测,输出语义方向标签;

步骤S22:问题深度判定;将步骤S21中所得到的语义方向标签与模板库进行匹配,当匹配到相应的模板库后提取出模板库内的问句模板;然后将用户问句作句法分析和词性标注,得到用户问句的词性句法分析树,将其与提取出来的问句模板进行相似度匹配,并将相似度最大的问句模板所对应的查询模板作为用户问句的查询模板,实现查询映射;

步骤S3:组装查询语句;将步骤S1中抽取的实体与步骤S2中所对应的查询模板进行组装,将查询模板中的变量替换成实体,形成可以用于检索知识图谱的标准查询语句,标准查询语句即代表了用户的最终意图,后续将标准查询语句代入知识图谱进行检索便可以得到与用户问题相关的结果,实现高速列车领域用户意图的最终识别;在插入同类型实体时,结合高速列车结构树以及高速列车领域知识图谱结构,将同类型实体转换为其知识图谱类的本体标签,依据结构树的层级将本体标签层级低的实体替换查询语句中靠前的变量,实现同类型实体的插入;其中,结构树层级由高到低依次划分为系统、子系统、部件、零件。

2.如权利要求1所述的一种基于知识图谱的智能问答意图识别方法,其特征在于,所述将同时满足编辑距离大于最小阈值以及余弦相似度最高的实体作为抽取的最终实体,包括如下步骤:步骤S131:计算初步抽取的预期实体与词典中词语的编辑距离,其计算公式如下:

式中:leva,b(i,j)代表预期实体与词典中词语的编辑距离;a是初步抽取的预期实体;b是词典中所包含的词语;i代表预期实体a的字符串下标,从0开始;j代表词语b的字符串下标,从0开始;Max(i,j)代表i和j之间的最大值,Min(i,j)代表i和j之间的最小值;ai≠bj代表a的第i个字符与b的第j个字符不相同的情况;

步骤S132:判断预期实体与词典内每一个词语各自的编辑距离是否大于最小阈值,若大于最小阈值,则进一步计算词典内大于所述最小阈值的词语与预期实体之间的余弦相似度,其计算公式如下:式中:similarity(W,V)是初步抽取的预期实体和词典中词语的余弦相似度;W是初步抽取的预期实体预训练词向量;V是词典中所包含的词语预训练词向量;Wi是初步抽取的预期实体的预训练词向量第i个参数;Vi是词典中包含的词语的预训练词向量第i个参数;n是预训练词向量的维度;

步骤S133:将词典中同时满足编辑距离大于最小阈值以及余弦相似度最高的词语作为抽取的最终实体,其计算公式如下:式中:S为自然语言问句;Owl(S)为问句中的最终实体;a为初步抽取的预期实体个数;c为词典的总词数;d为余弦相似度计算的结果总数;Similarity(Si,Bj)为问句中第i个词与词典中第j个词的相似度;Xd代表第d组词的相似度运算结果;levSi,Bj(m,n)为问句中第i个词与词典中第j个词的编辑距离;Si代表问句中的i个词;len(Si)为问句中第i个词的长度;

Bj代表词典中第j个词;len(Bj)为词典中第j个词的长度;[]为取整符号;!Bj代表词典中第j个词非最终实体;

步骤S134:将词典内与每一个预期实体匹配的词语作为实体抽取的最终实体的集合;

如果某一预期实体的编辑距离或者相似度中任意一个未达标,则认为命名体识别模型错误的识别了预期实体,并将该预期实体剔除。

3.如权利要求2所述的一种基于知识图谱的智能问答意图识别方法,其特征在于,所述步骤S21具体包括:步骤S211:分词及停词;将用户问句输入jieba分词器进行分词处理;其中,将预先构建好的词典输入分词器中完成领域专有名词的识别;将分词后的分词序列输入到停词表中,如果某一词在停词表内,则将其视为非核心词去除,保留用户问句的主要成分形成用于特征提取的词序列;所述预先构建好的词典包括:从高速列车领域知识图谱中导出所有实体形成的实体词典;手工构建实体的相关同义词形成的同义词词典;从高速列车领域知识图谱中导出所有本体标签形成的本体标签词典;

步骤S212:特征提取及融合;将步骤S211中获得的词序列转化为词向量特征、句型特征以及用户特征三方面的特征词向量形式并将其融合为特征总向量;其中,词向量特征表示问句词语级的特征,由预训练词向量得来;句型特征表示问句句子结构的特征,由词序列的词性序列得来;用户特征表示用户级的特征,由用户信息、用户日志得来;

步骤S213:将用户问句转换为特征总向量的形式后,将特征总向量输入到分类模型里进行问题类别预测,最终输出用户问句的语义方向标签;其中,分类模型选用svm支持向量机。

4.如权利要求3所述的一种基于知识图谱的智能问答意图识别方法,其特征在于,所述步骤S22具体包括:步骤S221:构建问句模板以及查询模板以形成与语义方向标签对应的模板库;其中,问句模板用于匹配用户问句深层语义,查询模板用于实现查询映射;

步骤S222:匹配模板库;将步骤S213中输出的语义方向标签用作模板库匹配的依据,当匹配到储存有相同语义方向标签的模板库后,输出模板库中所有的问句模板用于用户问句匹配;

步骤S223:句法分析及词性标注;对用户问句做句法分析得到句法分析结果,然后再对用户问句做词性标注得到词性序列,替换句法分析结果中非实体节点为对应词性标签,替换实体节点为对应本体,得到用户问句的词性句法分析树;

步骤S224:问句模板匹配;将步骤S223中得到的用户问句的词性句法分析树与步骤S222中提取的问句模板依次进行相似度匹配,将相似度最大的问句模板作为用户问句所匹配上的对象;

步骤S225:查询映射;将步骤S224中匹配到的相似度最大的问句模板对应的查询模板提取出来,将其作为用户问句的查询模板,实现查询的转换。

5.如权利要求4所述的一种基于知识图谱的智能问答意图识别方法,其特征在于,所述步骤S212具体包括:步骤S2121:将预训练词向量导入分词、停词后形成的词序列中,并将词序列中每个词的预训练词向量加权平均后得出用户问句的词向量特征w_vector(A),其计算公式如下:式中:A为分词、停词后的词序列;w_vector(A)为A的词向量特征;i为A的序列长度;n表示词向量的维度;Asn表示A中第s个词的词向量第n个位置的数值;

步骤S2122:采用ltp词性标注工具对用户问句做词性标注后由词性替换用户问句中的词语得到问句的词性序列,将词性序列代入句型词典中进行匹配,根据匹配到的索引确定问句的句型向量,如果在句型词典中无匹配项,则在句型向量最后一位之后补位并置1,得到用户问句的句型特征s_vector(A),其计算公式如下:式中:A为分词、停词后的词序列;s_vector(A)为A的句型特征;pos(A)代表A词性标注的结果;dict代表句型词典;n代表句型词典的长度;dict(n)代表词典中最后一个句型;

代表已成功匹配并舍弃该补位;

步骤S2123:根据用户信息、用户日志获取用户特征u_vector(A);其中,用户信息来源于用户身份,以用户身份的个数作为特征向量维度;用户日志由问题类别数作为向量维度,以用户是否搜索过某类问题作为数值;

步骤S2124:特征融合;采用直接拼接的方式将词向量特征、句型特征以及用户特征融合成特征总向量,其计算公式如下:vector(A)=(w_vector(A),s_vector(A),u_vector(A))

式中:A代表分词、停词后的词序列;w_vector(A)为A的词向量特征;s_vector(A)为A的句型特征;u_vector(A)为A的用户特征;vector(A)为A的特征总向量。

6.如权利要求5所述的一种基于知识图谱的智能问答意图识别方法,其特征在于,所述步骤S221包括:步骤S2211:句法分析;利用哈工大ltp句法分析工具对训练问句进行句法分析操作,将训练问句输入到ltp句法分析工具当中,并输出该训练问句中各词语间的句法关系;

步骤S2212:词性标注;利用哈工大ltp词性标注工具对训练问句进行词性标注操作,将训练问句输入到ltp词性标注工具当中,并输出训练问句每个词对应的词性标签组成的词性序列;

步骤S2213:实体去除;将训练问句的句法分析结果中属于实体的词语替换成其在知识图谱中对应的本体,将非实体词替换成其词性标注结果中对应的词性标签,形成词性句法分析树,得到问句模板;

步骤S2214:实体抽取;为训练问句补充上相对应的知识图谱中的答案,并且依据实体抽取识别出训练问句以及其对应答案中的实体;

步骤S2215:构建查询图;将步骤S2214中问句实体以及答案实体用作知识图谱检索的条件,检索出在知识图谱中包含两个实体的最小连通图,将该最小连通图作为该条训练语句的查询图;

步骤S2216:实体去除;将步骤S2215中查询图中的问句实体节点依据其实体类型变为可替换的变量节点,实体类型包括结构实体、故障实体、原因实体、维修方法实体以及本体标签;将答案实体节点替换成其在知识图谱中对应本体,得到训练问句对应的查询模板。

7.如权利要求6所述的一种基于知识图谱的智能问答意图识别方法,其特征在于,所述步骤S223具体包括:步骤S2231:用户问句的句法分析;利用哈工大ltp句法分析工具对用户问句进行句法分析操作,将用户问句输入到ltp句法分析工具当中,并输出该用户问句中各词语间的句法关系;

步骤S2232:用户问句的词性标注;利用哈工大ltp词性标注工具对用户问句进行词性标注操作,将用户问句输入到ltp词性标注工具当中,并输出用户问句每个词对应的词性标签组成的词性序列;

步骤S2233:实体去除;将用户问句的句法分析结果中属于实体的词语替换成其在知识图谱中对应的本体,将非实体词替换成其词性标注结果中对应的词性标签,形成用户问句的词性句法分析树。

8.如权利要求7所述的一种基于知识图谱的智能问答意图识别方法,其特征在于,所述步骤S224还包括:采用树编辑距离计算相似度,根据同层之间节点插入、删除、修改的总步数作为树编辑距离,树编辑距离越小则其相似度越大,其计算公式如下:s=max(dep(X),dep(D))

式中:X代表用户问句词性句法分析树;D代表问句模板;lev_tree(X,D)代表X与D之间的树编辑距离;s代表X与D之间的最大树高;Xi,Di代表X和D的第i层;dn(Xi,Di)代表Xi转换成Di需要删除的节点个数;in(Xi,Di)代表Xi转换成Di需要插入的节点个数;mn(Xi,Di)代表Xi转换成Di需要修改的节点个数;dr(Xi,Di)代表Xi转换成Di需要删除的边个数;ir(Xi,Di)代表Xi转换成Di需要插入的边个数;mr(Xi,Di)代表Xi转换成Di需要修改的边个数;dep(X)、dep(D)代表树X和树D的高度。

说明书 :

一种基于知识图谱的智能问答意图识别方法

技术领域

[0001] 本发明属于高速列车设计领域,具体涉及一种基于知识图谱的智能问答意图识别方法。

背景技术

[0002] 随着信息数据增长和知识图谱概念的提出,面向知识图谱的智能问答已经成为了当下提供知识服务的研究热点,而意图识别作为智能问答中重要的一环,直接决定了问答的效果,好的意图识别模型能够做到准确解析问句的语义信息和层次信息,精准识别用户的意图。
[0003] 由于高速列车领域知识图谱的构建需要从高速列车概念设计、系统设计、方案设计等多个阶段中抽取知识,使得高速列车领域知识数据存在多元性以及海量性。这也就使得面向高速列车领域知识图谱的智能问答存在为问句意图繁多、意图层次不一以及问句结构多变的问题,这对于该领域智能问答中问句的意图识别是一个极大的挑战。因此,如何精准的识别用户问句的意图,并利用此来为高速列车领域从业人员提供高效的问答服务,成为了需要克服的困难。
[0004] 现在已有学者对意图识别开展了研究,其中多是基于分类模型或者句法匹配来实现问题类别判定,基于命名体识别模型来抽取实体。但是很少有将分类模型和句法匹配结合起来,将命名体识别模型和词典结合起来进行研究,没有充分考虑相似结构不同语义问句对问句判定的影响以及具有实体同义词的短文本对实体抽取的影响。
[0005] 在实体抽取方面,主要的方法有基于词典匹配和基于命名体识别模型,其各自存在的问题为:1)基于词典匹配为严格匹配,无法识别出问句中的实体同义词。2)基于命名体识别模型由于模型精度的原因,会出现识别错误、识别名称非实际名称以及未识别出实体的问题。在问题类别判定方面,主要采用分类模型或者句法匹配,其各自存在的问题为:1)由于高速列车转向架领域问题种类的丰富性,分类模型的效果会下降,且分类模型无法解析深层语义。2)句法分析在面对高速列车领域同结构不同语义问题时错误率较高。所以,精准的抽取实体和判别问题种类是意图识别两个亟待解决的问题。

发明内容

[0006] 为解决现有技术中存在的问题,本发明的目的是提供一种基于知识图谱智能问答的意图识别方法,有效解决了问题种类较多以及应对相似结构不同语义问句时问句判定效果不佳、应对具有实体同义词的短文本时实体抽取效果不佳的问题,提高了意图识别的准确性。
[0007] 为了实现上述发明目的,本发明提供了以下技术方案:
[0008] 一种基于知识图谱的智能问答意图识别方法,包括如下步骤:
[0009] 步骤S1:基于词典与命名体识别模型相结合的实体抽取;具体包括如下步骤:
[0010] 步骤S11:构建词典;从高速列车领域知识图谱中导出所有实体形成实体词典;手工构建实体的相关同义词形成同义词词典;从高速列车领域知识图谱中导出所有本体标签形成本体标签词典;
[0011] 步骤S12:构建命名体识别模型以对实体进行初步抽取;通过对高速列车领域各阶段原始数据进行实体标注,将输出形成的标注数据输入到bert‑bilstm‑crf命名体识别模型中进行模型训练,完成命名体识别模型的构建;模型构建完成后,将用户问句输入bert‑bilstm‑crf命名体识别模型中,通过字嵌入的方式依次经过bert层、双向循环神经网络层和crf层,得到用户问句的序列标注结果,并依据序列标注结果输出用户问句中所含的预期实体,完成实体的初步抽取;
[0012] 步骤S13:在得到实体抽取的初步结果之后,将抽取出来的预期实体代入到实体词典、同义词词典以及本体标签词典中进行字符串匹配,如果预期实体能够与词典中某一词语完全匹配,则将它作为最终实体输出,否则进行编辑距离和余弦相似度的计算,将同时满足编辑距离大于最小阈值以及余弦相似度最高的实体作为抽取的最终实体;
[0013] 步骤S2:基于问题浅度判定与问题深度判定结合的问题种类判定;具体包括如下步骤:
[0014] 步骤S21:问题浅度判定;首先对用户输入的用户问句进行分词以及停词,将用户问句转换为相关词的词序列,对词序列分别进行句型特征、用户特征以及词向量特征的提取以及融合,并将三个特征融合而成的向量作为用户问句的特征总向量输入到分类模型进行问题方向的预测,输出语义方向标签;
[0015] 步骤S22:问题深度判定;将步骤S21中所得到的语义方向标签与模板库进行匹配,当匹配到相应的模板库后提取出模板库内的问句模板;然后将用户问句作句法分析和词性标注,得到用户问句的词性句法分析树,将其与提取出来的问句模板进行相似度匹配,并将相似度最大的问句模板所对应的查询模板作为用户问句的查询模板,实现查询映射;
[0016] 步骤S3:组装查询语句;将步骤S1中抽取的实体与步骤S2中所对应的查询模板进行组装,将查询模板中的变量替换成实体,形成可以用于检索知识图谱的标准查询语句,标准查询语句即代表了用户的最终意图,后续将标准查询语句代入知识图谱进行检索便可以得到与用户问题相关的结果,实现高速列车领域用户意图的最终识别;在插入同类型实体时,结合高速列车结构树以及高速列车领域知识图谱结构,将同类型实体转换为其知识图谱类的本体标签,依据结构树的层级将本体标签层级低的实体替换查询语句中靠前的变量,实现同类型实体的插入;其中,结构树层级由高到低依次划分为系统、子系统、部件、零件。
[0017] 优选地,所述将同时满足编辑距离大于最小阈值以及余弦相似度最高的实体作为抽取的最终实体,包括如下步骤:
[0018] 步骤S131:计算初步抽取的预期实体与词典中词语的编辑距离,其计算公式如下:
[0019]
[0020] 式中:leva,b(i,j)代表预期实体与词典中词语的编辑距离;a是初步抽取的预期实体;b是词典中所包含的词语;i代表预期实体a的字符串下标,从0开始;j代表词语b的字符串下标,从0开始;Max(i,j)代表i和j之间的最大值,Min(i,j)代表i和j之间的最小值;ai≠bj代表a的第i个字符与b的第j个字符不相同的情况;
[0021] 步骤S132:判断预期实体与词典内每一个词语各自的编辑距离是否大于最小阈值,若大于最小阈值,则进一步计算词典内大于所述最小阈值的词语与预期实体之间的余弦相似度,其计算公式如下:
[0022]
[0023] 式中:similarity(W,V)是初步抽取的预期实体和词典中词语的余弦相似度;W是初步抽取的预期实体预训练词向量;V是词典中所包含的词语预训练词向量;Wi是初步抽取的预期实体的预训练词向量第i个参数;Vi是词典中包含的词语的预训练词向量第i个参数;n是预训练词向量的维度;
[0024] 步骤S133:将词典中同时满足编辑距离大于最小阈值以及余弦相似度最高的词语作为抽取的最终实体,其计算公式如下:
[0025]
[0026] 式中:S为自然语言问句;Owl(S)为问句中的最终实体;a为初步抽取的预期实体个数;c为词典的总词数;d为余弦相似度计算的结果总数;Similarity(Si,Bj)为问句中第i个词与词典中第j个词的相似度;Xd代表第d组词的相似度运算结果;levSi,Bj(m,n)为问句中第i个词与词典中第j个词的编辑距离;Si代表问句中的i个词;len(Si)为问句中第i个词的长度;Bj代表词典中第j个词;len(Bj)为词典中第j个词的长度;[]为取整符号;!Bj代表词典中第j个词非最终实体;
[0027] 步骤S134:将词典内与每一个预期实体匹配的词语作为实体抽取的最终实体的集合;如果某一预期实体的编辑距离或者相似度中任意一个未达标,则认为命名体识别模型错误的识别了预期实体,并将该预期实体剔除。
[0028] 优选地,所述步骤S21具体包括:
[0029] 步骤S211:分词及停词;将用户问句输入jieba分词器进行分词处理;其中,将预先构建好的词典输入分词器中完成领域专有名词的识别;将分词后的分词序列输入到停词表中,如果某一词在停词表内,则将其视为非核心词去除,保留用户问句的主要成分形成用于特征提取的词序列;所述预先构建好的词典包括:从高速列车领域知识图谱中导出所有实体形成的实体词典;手工构建实体的相关同义词形成的同义词词典;从高速列车领域知识图谱中导出所有本体标签形成的本体标签词典;
[0030] 步骤S212:特征提取及融合;将步骤S211中获得的词序列转化为词向量特征、句型特征以及用户特征三方面的特征词向量形式并将其融合为特征总向量;其中,词向量特征表示问句词语级的特征,由预训练词向量得来;句型特征表示问句句子结构的特征,由词序列的词性序列得来;用户特征表示用户级的特征,由用户信息、用户日志得来;
[0031] 步骤S213:将用户问句转换为特征总向量的形式后,将特征总向量输入到分类模型里进行问题类别预测,最终输出用户问句的语义方向标签;其中,分类模型选用svm支持向量机。
[0032] 优选地,所述步骤S22具体包括:
[0033] 步骤S221:构建问句模板以及查询模板以形成与语义方向标签对应的模板库;其中,问句模板用于匹配用户问句深层语义,查询模板用于实现查询映射;
[0034] 步骤S222:匹配模板库;将步骤S213中输出的语义方向标签用作模板库匹配的依据,当匹配到储存有相同语义方向标签的模板库后,输出模板库中所有的问句模板用于用户问句匹配;
[0035] 步骤S223:句法分析及词性标注;对用户问句做句法分析得到句法分析结果,然后再对用户问句做词性标注得到词性序列,替换句法分析结果中非实体节点为对应词性标签,替换实体节点为对应本体,得到用户问句的词性句法分析树;
[0036] 步骤S224:问句模板匹配;将步骤S223中得到的用户问句的词性句法分析树与步骤S222中提取的问句模板依次进行相似度匹配,将相似度最大的问句模板作为用户问句所匹配上的对象;
[0037] 步骤S225:查询映射;将步骤S224中匹配到的相似度最大的问句模板对应的查询模板提取出来,将其作为用户问句的查询模板,实现查询的转换。
[0038] 优选地,所述步骤S212具体包括:
[0039] 步骤S2121:将预训练词向量导入分词、停词后形成的词序列中,并将词序列中每个词的预训练词向量加权平均后得出用户问句的词向量特征w_vector(A),其计算公式如下:
[0040]
[0041] 式中:A为分词、停词后的词序列;w_vector(A)为A的词向量特征;i为A的序列长度;n表示词向量的维度;Asn表示A中第s个词的词向量第n个位置的数值;
[0042] 步骤S2122:采用ltp词性标注工具对用户问句做词性标注后由词性替换用户问句中的词语得到问句的词性序列,将词性序列代入句型词典中进行匹配,根据匹配到的索引确定问句的句型向量,如果在句型词典中无匹配项,则在句型向量最后一位之后补位并置1,得到用户问句的句型特征s_vector(A),其计算公式如下:
[0043]
[0044] 式中:A为分词、停词后的词序列;s_vector(A)为A的句型特征;pos(A)代表A词性标注的结果;dict代表句型词典;n代表句型词典的长度;dict(n)代表词典中最后一个句型;代表已成功匹配并舍弃该补位;
[0045] 步骤S2123:根据用户信息、用户日志获取用户特征u_vector(A);其中,用户信息来源于用户身份,以用户身份的个数作为特征向量维度;用户日志由问题类别数作为向量维度,以用户是否搜索过某类问题作为数值;
[0046] 步骤S2124:特征融合;采用直接拼接的方式将词向量特征、句型特征以及用户特征融合成特征总向量,其计算公式如下:
[0047] vector(A)=(w_vector(A),s_vector(A),u_vector(A))
[0048] 式中:A代表分词、停词后的词序列;w_vector(A)为A的词向量特征;s_vector(A)为A的句型特征;u_vector(A)为A的用户特征;vector(A)为A的特征总向量。
[0049] 优选地,所述步骤S221包括:
[0050] 步骤S2211:句法分析;利用哈工大ltp句法分析工具对训练问句进行句法分析操作,将训练问句输入到ltp句法分析工具当中,并输出该训练问句中各词语间的句法关系;
[0051] 步骤S2212:词性标注;利用哈工大ltp词性标注工具对训练问句进行词性标注操作,将训练问句输入到ltp词性标注工具当中,并输出训练问句每个词对应的词性标签组成的词性序列;
[0052] 步骤S2213:实体去除;将训练问句的句法分析结果中属于实体的词语替换成其在知识图谱中对应的本体,将非实体词替换成其词性标注结果中对应的词性标签,形成词性句法分析树,得到问句模板;
[0053] 步骤S2214:实体抽取;为训练问句补充上相对应的知识图谱中的答案,并且依据实体抽取识别出训练问句以及其对应答案中的实体;
[0054] 步骤S2215:构建查询图;将步骤S2214中问句实体以及答案实体用作知识图谱检索的条件,检索出在知识图谱中包含两个实体的最小连通图,将该最小连通图作为该条训练语句的查询图;
[0055] 步骤S2216:实体去除;将步骤S2215中查询图中的问句实体节点依据其实体类型变为可替换的变量节点,实体类型包括结构实体、故障实体、原因实体、维修方法实体以及本体标签;将答案实体节点替换成其在知识图谱中对应本体,得到训练问句对应的查询模板。
[0056] 优选地,所述步骤S223具体包括:
[0057] 步骤S2231:用户问句的句法分析;利用哈工大ltp句法分析工具对用户问句进行句法分析操作,将用户问句输入到ltp句法分析工具当中,并输出该用户问句中各词语间的句法关系;
[0058] 步骤S2232:用户问句的词性标注;利用哈工大ltp词性标注工具对用户问句进行词性标注操作,将用户问句输入到ltp词性标注工具当中,并输出用户问句每个词对应的词性标签组成的词性序列;
[0059] 步骤S2233:实体去除;将用户问句的句法分析结果中属于实体的词语替换成其在知识图谱中对应的本体,将非实体词替换成其词性标注结果中对应的词性标签,形成用户问句的词性句法分析树。
[0060] 优选地,所述步骤S224还包括:采用树编辑距离计算相似度,根据同层之间节点插入、删除、修改的总步数作为树编辑距离,树编辑距离越小则其相似度越大,其计算公式如下:
[0061]
[0062] s=max(dep(X),dep(D))
[0063] 式中:X代表用户问句词性句法分析树;D代表问句模板;lev_tree(X,D)代表X与D之间的树编辑距离;s代表X与D之间的最大树高;Xi,Di代表X和D的第i层;dn(Xi,Di)代表Xi转换成Di需要删除的节点个数;in(Xi,Di)代表Xi转换成Di需要插入的节点个数;mn(Xi,Di)代表Xi转换成Di需要修改的节点个数;dr(Xi,Di)代表Xi转换成Di需要删除的边个数;ir(Xi,Di)代表Xi转换成Di需要插入的边个数;mr(Xi,Di)代表Xi转换成Di需要修改的边个数;dep(X)、dep(D)代表树X和树D的高度。
[0064] 本发明提供的一种基于知识图谱的智能问答意图识别方法相对于现有技术具备如下有益的技术效果:
[0065] 1、本发明采取词典与命名体识别模型相结合的方式实现实体抽取,可以有效识别问句中的实体同义词以及解决命名体识别模型可能出现的识别错误、识别名称非实际名称以及未识别出实体的问题,实体抽取准确率高。
[0066] 2、本发明采用分类浅判定和句法匹配深判定实现问题种类判定,解决因问题种类较多而造成的分类模型判定效果下降,因同结构不同语义造成的句法匹配判定效果下降的问题,问题判定的准确率高。附图说明:
[0067] 图1为本发明的一种面向知识图谱智能问答的意图识别框架;
[0068] 图2为本发明的一种基于词典与命名体识别模型相结合的实体抽取逻辑;
[0069] 图3为本发明的一种基于深、浅判定结合的问题种类判定逻辑;
[0070] 图4为本发明的一种svm分类模型调用图;
[0071] 图5为本发明的一种词性句法分析树的生成逻辑。

具体实施方式

[0072] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。
[0073] 因此,以下对本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的部分实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0074] 需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征和技术方案可以相互组合。
[0075] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0076] 在本发明的描述中,需要说明的是,术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,或者是本领域技术人员惯常理解的方位或位置关系,这类术语仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0077] 如图1所示,本发明提供了一种基于知识图谱的智能问答意图识别方法,包括如下步骤:
[0078] 步骤S1:基于词典与命名体识别模型相结合的实体抽取;具体包括如下步骤:
[0079] 步骤S11:构建词典;从高速列车领域知识图谱中导出所有实体形成实体词典;手工构建实体的相关同义词形成同义词词典;从高速列车领域知识图谱中导出所有本体标签形成本体标签词典。其中,高速列车领域知识图谱由高速列车领域的运维、设计以及制造阶段的原始数据中提取知识并将知识存储到neo4j图形数据库中构成。知识是由高速列车领域实体及实体间关系组成,一条知识实际就是一组实体及关系所形成的实体关系对,具体形式如表1所示。
[0080]
[0081] 表1知识组成示例表
[0082] 实体指代高速列车领域所有具体的事物,如“转向架”、“车轴”、“车轮”。本体是指不同类型实体间的类别标签。如在高速列车领域中,“转向架”属于“系统”本体,而“车轴”属于“零件”本体。具体形式如表2所示。
[0083]
[0084] 表2本体及实体示例表
[0085] 步骤S12:构建命名体识别模型以对实体进行初步抽取。本发明采用bert‑bilstm‑crf命名体识别模型进行初步的实体抽取,通过对高速列车领域各阶段原始数据进行实体标注,将输出形成的标注数据输入到bert‑bilstm‑crf命名体识别模型中进行模型训练,完成命名体识别模型的构建。标注方式采用BIO方式进行,该方式通过将所需实体按其标签标注为B(实体开头字符)、I(实体其余字符)、O(非实体字符)的形式。以运维阶段为例,则其原始数据如表3所示。
[0086]
[0087] 表3原始数据示意表
[0088] 例如:标注前数据为:转向架有哪些零件;
[0089] 标注后数据为:转(B‑结构实体)向(I‑结构实体)架(I‑结构实体)有(O)哪(O)些(O)零(O)件(O);
[0090] 模型构建完成后,将用户问句输入bert‑bilstm‑crf命名体识别模型中,通过字嵌入的方式依次经过bert层、双向循环神经网络层和crf层,得到用户问句的序列标注结果,并依据序列标注结果输出用户问句中所含的预期实体,完成实体的初步抽取。其中命名体识别模型需要抽取的实体类型根据高速列车领域问句的需求来定义。以高速列车领域运维阶段为例,其问句中的实体类型如下表4所示。
[0091]
[0092] 表4问句实体类型示意表
[0093] 步骤S13:在得到实体抽取的初步结果之后,将抽取出来的预期实体代入到实体词典、同义词词典以及本体标签词典中进行字符串匹配,如果预期实体能够与词典中某一词语完全匹配,则将它作为最终实体输出,否则进行编辑距离和余弦相似度的计算,将同时满足编辑距离大于最小阈值以及余弦相似度最高(不小于0.7)的实体作为抽取的最终实体;其中,将同时满足编辑距离大于最小阈值以及余弦相似度最高(不小于0.7)的实体作为抽取的最终实体具体包括如下步骤:
[0094] 步骤S131:计算初步抽取的预期实体与词典中词语的编辑距离,其计算如公式1:
[0095]
[0096] 式中:leva,b(i,j)代表预期实体与词典中词语的编辑距离;a是初步抽取的预期实体;b是词典中所包含的词语;i代表预期实体a的字符串下标,从0开始;j代表词语b的字符串下标,从0开始;Max(i,j)代表i和j之间的最大值,Min(i,j)代表i和j之间的最小值;ai≠bj代表a的第i个字符与b的第j个字符不相同的情况。
[0097] 步骤S132:判断预期实体与词典内每一个词语各自的编辑距离是否大于最小阈值,若大于最小阈值,则进一步计算词典内大于所述最小阈值的词语与预期实体之间的余弦相似度,其计算如公式2:
[0098]
[0099] 式中:similarity(W,V)是初步抽取的预期实体和词典中词语的余弦相似度;W是初步抽取的预期实体预训练词向量;V是词典中所包含的词语预训练词向量;Wi是初步抽取的预期实体的预训练词向量第i个参数;Vi是词典中包含的词语的预训练词向量第i个参数;n是预训练词向量的维度。
[0100] 步骤S133:将词典中同时满足编辑距离大于最小阈值以及余弦相似度最高(不小于0.7)的词语作为抽取的最终实体,其计算如公式3:
[0101]
[0102] 式中:S为自然语言问句;Owl(S)为问句中的最终实体;a为初步抽取的预期实体个数;c为词典的总词数;d为余弦相似度计算的结果总数;Similarity(Si,Bj)为问句中第i个词与词典中第j个词的相似度;Xd代表第d组词的相似度运算结果;levSi,Bj(m,n)为问句中第i个词与词典中第j个词的编辑距离;Si代表问句中的i个词;len(Si)为问句中第i个词的长度;Bj代表词典中第j个词;len(Bj)为词典中第j个词的长度;[]为取整符号;!Bj代表词典中第j个词非最终实体;
[0103] 步骤S134:将词典内与每一个预期实体匹配的词语作为实体抽取的最终实体的集合;如果某一预期实体的编辑距离或者相似度中任意一个未达标,则认为命名体识别模型错误的识别了预期实体,并将该预期实体剔除。
[0104] 步骤S2:基于深、浅判定结合的问题种类判定;包括如下步骤:
[0105] 步骤S21:问题浅度判定;首先对用户输入的用户问句进行分词以及停词,将用户问句转换为相关词的词序列,对词序列分别进行句型特征、用户特征以及词向量特征的提取以及融合,并将三个特征融合而成的向量作为用户问句的特征总向量输入到分类模型进行问题方向的预测,输出语义方向标签。具体包括如下步骤:
[0106] 步骤S211:分词及停词;将用户问句输入jieba分词器进行分词处理;其中,将预先构建好的词典输入分词器中完成领域专有名词的识别;将分词后的分词序列进行停词操作,去除用户问句中的多余成分,保留用户问句的主要成分形成用于特征提取的词序列。停词操作选用现有的哈工大停词表进行,将分词后的词序列输入到停词表中,如果某一词在停词表内,则将其视为非核心词去除。其中,预先构建好的词典包括从高速列车领域知识图谱中导出所有实体形成的实体词典;手工构建实体的相关同义词形成的同义词词典;从高速列车领域知识图谱中导出所有本体标签形成的本体标签词典。
[0107] 步骤S212:特征提取及融合;将步骤S211中获得的词序列转化为词向量特征、句型特征以及用户特征三方面的特征词向量形式并将其融合为总特征向量。其中,词向量特征表示问句词语级的特征,由预训练词向量得来;句型特征表示问句句子结构的特征,由词序列的词性序列得来;用户特征表示用户级的特征,由用户信息、用户日志得来。
[0108] 具体包括如下步骤:
[0109] 步骤S2121:将预训练词向量导入分词、停词后形成的词序列中,并将词序列中每个词的预训练词向量加权平均后得出用户问句的词向量特征w_vector(A),其计算如公式4:
[0110]
[0111] 式中:A为分词、停词后的词序列;w_vector(A)为A的词向量特征;i为A的序列长度;n表示词向量的维度;Asn表示A中第s个词的词向量第n个位置的数值。
[0112] 其中预训练词向量由步骤S12中命名体识别模型在模型训练的过程中根据训练数据的上下文语义关系得到并存储训练数据中所有字符的字向量进行加权平均得到。以单词“轮对”为例,假设在命名体识别模型训练过后,“轮”的字向量为[0,0,1],“对”的字向量为[1,0,0],则单词“轮对”的预训练词向量为字向量加权平均,即[0.5,0,0.5]。
[0113] 步骤S2122:采用ltp词性标注工具对用户问句做词性标注后由词性替换用户问句中的词语得到问句的词性序列,将词性序列代入句型词典中进行匹配,根据匹配到的索引确定问句的句型向量,如果在句型词典中无匹配项,则在句型向量最后一位之后补位并置1,得到用户问句的句型特征s_vector(A),其计算如公式5:
[0114]
[0115] 式中:A为分词、停词后的词序列;s_vector(A)为A的句型特征;pos(A)代表A词性标注的结果;dict代表句型词典;n代表句型词典的长度;dict(n)代表词典中最后一个句型; 代表已成功匹配并舍弃该补位。
[0116] 在该步骤中,采用ltp词性标注工具对训练数据集中的训练问句进行词性标注,将获得的词性序列进行储存形成句型词典,以少量训练问句为例,演示句型词典的样式,如表5所示:
[0117]
[0118] 表5句型词典示意表
[0119] 步骤S2123:根据用户信息、用户日志获取用户特征u_vector(A);其中,用户信息来源于用户身份,以用户身份的个数作为特征向量维度;假设身份有运维、设计、制造三种,用户为运维身份,则特征向量为(1,0,0);用户日志由问题类别数作为向量维度,以用户是否搜索过某类问题作为数值;假设由a、b、c三种类型问题,用户搜索过a问题,则特征向量为(1,0,0)。
[0120] 步骤S2124:特征融合;采用直接拼接的方式将词向量特征、句型特征以及用户特征融合成总特征向量,其计算如公式6:
[0121] vector(A)=(w_vector(A),s_vector(A),u_vector(A))   6
[0122] 式中:A代表分词、停词后的词序列;w_vector(A)为A的词向量特征;s_vector(A)为A的句型特征;u_vector(A)为A的用户特征;vector(A)为A的特征总向量。
[0123] 步骤S213:在经过步骤S2124将用户问句转换为特征总向量的形式后,将特征总向量输入到分类模型里进行问题类别的预测,最终输出用户问句的语义方向标签。其中,分类模型选用svm支持向量机。分类模型的训练过程与用户问句的预测过程相同,训练集由训练问句及其对应的语义方向标签组成,以高速列车领域运维阶段问句为例,训练数据的构成如下表6所示(部分):
[0124]
[0125] 表6分类模型训练数据示意表
[0126] 随后对训练集中的每一条数据进行分词停词、特征提取及融合操作,将每一条数据都转换成特征总向量的形式后输入到分类模型进行模型的训练,并根据每条数据输出的语义方向标签结果来评判模型训练的精度。评判标准采用准确率以及F1值。根据本发明训练结果显示,面对高速列车领域训练问句,svm分类模型的准确率达到89%,F1值达到87%,符合使用的要求。
[0127] 步骤S22:问题深度判定;将步骤S21中所得到的语义方向标签与模板库进行匹配,当匹配到相应的模板库后提取出模板库内的问句模板;然后将用户问句作句法分析和词性标注,得到用户问句的词性句法分析树,将其与提取出来的问句模板进行相似度匹配,并将相似度最大的问句模板所对应的查询模板作为用户问句的查询模板,实现查询映射。其主要过程包括:模板库构建及匹配、句法分析及词性标注、问句模板匹配以及查询映射。具体包括如下步骤:
[0128] 步骤S221:构建问句模板以及查询模板以形成与语义方向标签对应的模板库;其中,问句模板用于匹配用户问句深层语义;查询模板用于实现查询映射。模板库是用来储存所有类型问题的查询模板以及问句模板的工具。模板库的数量由svm分类模型的类别数量决定,每一个语义方向标签都有自己的模板库,相同语义方向标签模板库中每一条问句模板对应了一条查询模板,在得到所有训练问句各自对应的查询模板和问句模板后,将相同语义方向标签的训练问句对应的查询模板和问句模板储存在一起,形成各语义方向标签的模板库。
[0129] 问句模板具体构建方式如下:
[0130] 步骤S2211:句法分析;利用哈工大ltp句法分析工具对训练问句进行句法分析操作,将训练问句输入到ltp句法分析工具当中,并输出该训练问句中各词语间的句法关系;以问句“转向架有哪些故障”为例,则其句法分析的结果为[“0”“有”“root”],[“有”“故障”“VOB”],[“有”“转向架”“SBV”],[“故障”“哪些”“ATT”];其中,VOB、SBV、ATT等代表两词间的句法关系,root以及0代表该词为句子中的谓词成分;
[0131] 步骤S2212:词性标注;利用哈工大ltp词性标注工具对训练问句进行词性标注操作,将训练问句输入到ltp词性标注工具当中,并输出训练问句每个词对应的词性标签组成的词性序列;以问句“转向架有哪些故障”为例,其词性标注结果为[“N”“V”“R”“N”];
[0132] 步骤S2213:实体去除;将训练问句的句法分析结果中属于实体的词语替换成其在知识图谱中对应的本体,将非实体词替换成其词性标注结果中对应的词性标签,形成词性句法分析树,得到问句模板;以训练问句“转向架有哪些故障”为例,则其问句模板为:[“0”“V”“root”],[“V”“N”“VOB”],[“V”“系统”“SBV”],[“N”“R”“ATT”];
[0133] 查询模板具体构建方式如下:
[0134] 步骤S2214:实体抽取;为训练问句补充上相对应的知识图谱中的答案,并且依据步骤S1中的实体抽取识别出训练问句以及其对应答案中的实体;即采取命名体识别与实体词典相结合的方式进行,将训练问句输入到命名体识别模型内得到预期实体,然后将预期实体输入到实体词典内进行匹配操作,最后将与预期实体相似度最高的词语作为训练问句的最终实体输出。以问答对“转向架有哪些故障漏油”为例,则其问句实体有“转向架”,其答案实体为“漏油”;
[0135] 步骤S2215:构建查询图;将步骤S2214中问句实体以及答案实体用作知识图谱检索的条件,检索出在知识图谱中包含两个实体的最小连通图,将该最小连通图作为该条训练语句的查询图;以问答对“转向架有哪些故障漏油”为例,则其查询图为[:转向架]‑[:发生]‑>[:漏油];其中,“发生”为两实体在知识图谱中的对应关系;
[0136] 步骤S2216:实体去除;将步骤S2215中查询图中的问句实体节点依据其实体类型变为可替换的变量节点,实体类型包括结构实体、故障实体、原因实体、维修方法实体以及本体标签;将答案实体节点替换成其在知识图谱中对应本体,得到训练问句对应的查询模板;以步骤S2215中查询图“[:转向架]‑[:发生]‑>[:漏油]”为例,则其查询模板为[:##结构实体$$]‑[:发生]‑>[:故障模式],其中,##$$代表其为可替换的变量节点。
[0137] 步骤S222:匹配模板库;将步骤S213中输出的问句语义方向标签用作模板库匹配的依据,当匹配到储存有相同语义方向标签的模板库后,输出模板库中的所有的问句模板用于用户问句匹配。
[0138] 步骤S223:句法分析及词性标注;对用户问句做句法分析得到句法分析结果,然后再对用户问句做词性标注得到词性序列,替换句法分析结果中非实体节点为对应词性标签,替换实体节点为对应本体,得到用户问句的词性句法分析树。其具体构建过程如图5所示,包括以下过程:
[0139] 步骤S2231:用户问句的句法分析;利用哈工大ltp句法分析工具对用户问句进行句法分析操作,将用户问句输入到ltp句法分析工具当中,并输出该用户问句中各词语间的句法关系;
[0140] 步骤S2232:用户问句的词性标注;利用哈工大ltp词性标注工具对用户问句进行词性标注操作,将用户问句输入到ltp词性标注工具当中,并输出用户问句每个词对应的词性标签组成的词性序列;
[0141] 步骤S2233:实体去除;将用户问句的句法分析结果中属于实体的词语替换成其在知识图谱中对应的本体,将非实体词替换成其词性标注结果中对应的词性标签,形成用户问句的词性句法分析树。
[0142] 步骤S224:问句模板匹配;将步骤S2233中得到的用户问句的词性句法分析树与步骤S222中提取的问句模板依次进行相似度的匹配,将相似度最大的问句模板作为用户问句所匹配上的对象,问句模板相似度的计算采用树编辑距离进行计算,根据同层之间节点插入、删除、修改的总步数作为树编辑距离,树编辑距离越小则其相似度越大,其计算如公式7:
[0143]
[0144] 式中:X代表用户问句词性句法分析树;D代表问句模板;lev_tree(X,D)代表X与D之间的树编辑距离;s代表X与D之间的最大树高;Xi,Di代表X和D的第i层;dn(Xi,Di)代表Xi转换成Di需要删除的节点个数;in(Xi,Di)代表Xi转换成Di需要插入的节点个数;mn(Xi,Di)代表Xi转换成Di需要修改的节点个数;dr(Xi,Di)代表Xi转换成Di需要删除的边个数;ir(Xi,Di)代表Xi转换成Di需要插入的边个数;mr(Xi,Di)代表Xi转换成Di需要修改的边个数;dep(X)、dep(D)代表树X和树D的高度。
[0145] 步骤S225:查询映射;将步骤S224中用户问句匹配到的相似度最大的问句模板对应的查询模板提取出来,将其作为用户问句的查询模板,实现查询的转换;其计算如公式8:
[0146]
[0147] 式中:S代表用户问句;D代表模板库中问句模板;board(S)代表S的查询模板;boa_D代表D对应的查询模板;tree(S)代表S生成的词性句法分析树;lev_tree(tree(S),D)代表tree(S)与D的树编辑距离;Min(lev_tree)代表所有的树编辑距离的最小值;!boa_D代表当前问句模板不匹配。
[0148] 步骤S3:组装查询语句;将步骤S1中抽取的实体与步骤S2中所对应的查询模板进行组装,将查询模板中的变量替换成实体,形成可以用于检索知识图谱的标准查询语句,标准查询语句即代表了用户的最终意图,后续将标准查询语句代入知识图谱进行检索便可以得到与用户问题相关的结果,实现高速列车领域用户意图的最终识别。
[0149] 其中在插入同类型实体时,结合高速列车结构树以及高速列车领域知识图谱结构,将同类型实体转换为其知识图谱类的本体标签,依据结构树的层级将本体标签层级较低的实体替换查询语句中较为靠前的变量,实现同类型实体的插入。其中,结构树层级由高到低依次划分为系统、子系统、部件、零件。以高速列车领域问句“短筋板是中心梢的零件吗”为例,其中,“短筋板”与“中心梢”同属于结构实体,其实体类型相同,为同类型实体,故将两者转换为知识图谱类所属本体进行比较,其中,“短筋板”为本体“零件”,“中心梢”为本体“部件”,即将二者转换为了“零件”与“部件”的层级比较,因“部件”层级较高,所以将“中心梢”插入位置靠前的变量。
[0150] 本发明以高速列车转向架运维为例进一步地对上述的基于知识图谱的智能问答意图识别方法进行说明。
[0151] 首先进行实体抽取;利用命名体识别模型实现预期实体抽取,需要事先定义好需要抽取的实体类别,以高速列车转向架运维为例,其定义的实体共有5类:结构实体、故障实体、原因实体、方法实体以及本体标签。具体示例如表7所示:
[0152]
[0153] 表7高速列车转向架运维实体类型演示表
[0154] 以高速列车转向架运维用户问句“轮子发生过哪些故障”为例,通过命名体识别模型,模型会输出如下所示的标注序列:
[0155] 轮(B‑结构实体)子(I‑结构实体)有(O)哪(O)些(O)故(O)障(O)
[0156] 即通过标注序列得知命名体识别模型的预期实体抽取结果为:
[0157] {“structure”:“轮子”}
[0158] 结合词典匹配最终实体;以高速列车转向架运维用户问句“轮子发生过哪些故障”为例,抽取出预期实体“轮子”后,将预期实体输入定义好的实体、同义词、本体标签词典内进行匹配,分别进行编辑距离和余弦相似度得计算。将满足编辑距离阈值并且余弦相似度最高(不小于0.7)的词语作为最终实体。因为待匹配词语为“轮子”,所以其编辑距离阈值为计算结果示例如表8所示:
[0159]
[0160] 表8编辑距离计算结果演示表
[0161] 取出满足阈值的词语“车轮”“轮对”,分别与预期实体计算余弦相似度,将余弦相似度最高且不小于0.7的词语作为最终实体,余弦相似度的计算结果示例如表9所示:
[0162]
[0163] 表9余弦相似度计算结果演示表
[0164] 表中,假设“车轮”预训练词向量为(1,1,1);“轮对”预训练词向量为(2,2,3);“轮子”预训练词向量为(1,1,0)。
[0165] 由此,最终得出用户问句“轮子发生过哪些故障”中所含有的实体为{“structure”:“车轮”}。
[0166] 随后进行问题浅度判定和问题深度判定。问题的浅度判定本质上是一个分类模型,分类模型需要事先定义需要分类的类别有哪些,以高速列车转向架运维为例,为该领域定义的问句类别及其示范问句如表10所示:
[0167]
[0168] 表10高速列车转向架运维问句类别以及示范问句表
[0169] 将定义好的类别以及其相关问句组合成训练数据集完成分类模型的训练后,就对用户问句进行操作以完成问题浅度判定。
[0170] 以高速列车转向架运维用户问句“轮子发生过哪些故障”为例,首先将用户的问句输入分词器进行分词处理,分词器会输出如下所示的分词序列:
[0171] [“轮子”,“有”,“哪些”,“故障”]
[0172] 然后将分词序列进行停词操作,停词表选用哈工大停词表,对分词序列进行停词操作后输出如下所示的词序列:
[0173] [“轮子”,“故障”]
[0174] 将预训练的词向量导入到词序列中,并将词序列中每个词的预训练词向量加权平均得到问句的词向量特征,假设“轮子”的预训练词向量为(1,1,0)“故障”的预训练词向量为(0,2,2),则具体计算步骤如下所示:
[0175]
[0176] 在得到用户问句的词向量特征后,接着提取问句的句型特征,将训练问句进行词性标注后的词性序列存储形成句型词典,以少量问句为例,演示句型词典的样式,如表11所示:
[0177]
[0178] 表11句型词典示意表
[0179] 以高速列车转向架运维用户问句“轮子发生过哪些故障”为例,建立句型词典后,对用户问句进行词性标注,选用ltp词性标注工具进行,标注结果如下所示:
[0180] [“N”,“V”,“U”,“R”,“N”]
[0181] 随后将词性序列与句型词典中存储的词性序列进行匹配,如表11中所示,匹配到第2个词性序列,则根据词典长度建立空向量(假设词典长度为3),根据匹配到的句型的索引将向量对应位置置1。其具体示例如下所示:
[0182] 句型特征=(0,1,0)
[0183] 随后提取用户问句的用户特征,用户特征主要分为用户身份以及搜索记录,以高速列车领域为例,用户的身份一共有3种:运维、设计以及制造人员,以高速列车转向架运维用户问句“轮子发生过哪些故障”为例,则用户的身份为运维人员,则根据身份个数建立空数组,在相应位置置1,具体示例如下所示:
[0184] 用户身份特征=(1,0,0)
[0185] 用户的搜索记录则在身份特征向量后加一位,如果用户搜索过相关问题则为1,否则为0,以高速列车转向架运维用户问句“轮子发生过哪些故障”为例,假设用户没有搜索过,则用户特征如下所示:
[0186] 用户特征=(1,0,0,0)
[0187] 最后将3个不同方面的特征向量以直接拼接的方式融合成特征总向量,以高速列车转向架运维用户问句“轮子发生过哪些故障”为例,具体示意如下所示:
[0188] 特征总向量=(0.5,1.5,1,0,1,0,1,0,0,0)
[0189] 将特征总向量输入到分类模型中进行问题浅度判定,以高速列车转向架运维用户问句“轮子发生过哪些故障”为例,最终判断问句为“查故障类”。
[0190] 随后进行问题深度判定。以高速列车转向架运维用户问句“轮子发生过哪些故障”为例,根据问题浅度判定得出的语义方向标签匹配对应的模板库,模板中存有该语义方向标签下不同的深层语义问句的问句模板和查询模板,根据问句“查故障类”匹配出的模板库如表12所示(仅展示少量):
[0191]
[0192]
[0193] 表12模板库示意表
[0194] 抽取出其中的问句模板,然后对用户问句作句法分析,选用ltp工具进行此操作,输出用户问句的句法分析结果,以高速列车转向架运维用户问句“轮子发生过哪些故障”为例,句法分析结果为:
[0195] [[(1,2,'SBV'),(2,0,'HED'),(3,2,'RAD'),(4,5,'ATT'),(5,2,'VOB')]]
[0196] 将句法分析结果中属于实体的节点替换为知识图谱中对应本体,其他节点替换为对应词性标签,则得到词性句法分析树如下所示:
[0197] [[(“零件”,v,'SBV'),(v,0,'HED'),(u,v,'RAD'),(r,n,'ATT'),(n,v,'VOB')]][0198] 将用户问句的词性句法分析树与抽取出的问句模板进行匹配,将相似度最大的模板作为匹配成功的对象,相似度以树编辑距离作为度量,树编辑距离越小则相似度最大。计算用户问句的词性句法分析树依次转换为问句模板所需要的步骤次数,以高速列车转向架运维用户问句“轮子发生过哪些故障”,以表12中第一个问句模板为例,计算过程如下所示:
[0199] 用户问句词性句法分析树第一层:(v,0,'HED');
[0200] 问句模板第一层:(v,0,'HED');
[0201] 树编辑距离:0;
[0202] 用户问句词性句法分析树第二层:(“零件”,v,'SBV'),(u,v,'RAD'),(n,v,'VOB');
[0203] 问句模板第二层:(“零件”,v,'SBV'),(u,v,'RAD'),(n,v,'VOB');
[0204] 树编辑距离:0;
[0205] 用户问句词性句法分析树第三层:(r,n,'ATT');
[0206] 问句模板第三层:(r,n,'ATT');
[0207] 树编辑距离:0;
[0208] 由此得出用户问句词性句法分析树与第一个问句模板的树编辑距离为0,即两者完全相同,将该模板作为匹配对象,输出该模板对应的查询模板作为用户问句的查询模板,即:
[0209] match(n1{name:'##structure$$'})<‑[:所属结构{}]‑(d2:`零件编码`)‑[:发生{}]‑>(d3:`故障事件`)‑[:现象{}]‑>(d4:`故障现象`)‑[:溯果{}]‑>(m:`故障模式`)return distinct m.name as start。
[0210] 随后进行查询组装。以高速列车转向架运维用户问句“轮子发生过哪些故障”为例,实体抽取的结果为:
[0211] {“structure”:“车轮”}
[0212] 问题判定输出的查询模板为:
[0213] match(n1{name:'##structure$$'})<‑[:所属结构{}]‑(d2:`零件编码`)‑[:发生{}]‑>(d3:`故障事件`)‑[:现象{}]‑>(d4:`故障现象`)‑[:溯果{}]‑>(m:`故障模式`)return distinct m.name as start。
[0214] 则根据实体类型替换掉查询模板中对应的变量,将查询模板转化为标准的查询语句,实现用户意图的识别。实体替换后标准查询语句如下所示:
[0215] match(n1{name:'车轮'})<‑[:所属结构{}]‑(d2:`零件编码`)‑[:发生{}]‑>(d3:`故障事件`)‑[:现象{}]‑>(d4:`故障现象`)‑[:溯果{}]‑>(m:`故障模式`)return 
distinct m.name as start。
[0216] 以上实施例仅用以说明本发明而并非限制本发明所描述的技术方案,尽管本说明书参照上述的各个实施例对本发明已进行了详细的说明,但本发明不局限于上述具体实施方式,因此任何对本发明进行修改或等同替换;而一切不脱离发明的精神和范围的技术方案及其改进,其均涵盖在本发明的权利要求范围当中。