民航知识图谱问答系统

文档序号:27111257发布日期:2021-10-27 18:45阅读:352来源:国知局
民航知识图谱问答系统

1.本发明涉及智能问答技术领域,尤其涉及民航知识图谱问答系统。


背景技术:

2.现有的民航知识图谱问答系统对用户所提出的问题进行答案反馈时,无法对反馈的答案进行优化处理,导致部分用户对部分专业名词不理解,降低用户使用体验,同时不利于相关知识的普及。


技术实现要素:

3.本发明的目的是为了解决现有民航知识图谱问答系统对反馈的答案没有进行优化处理,用户使用体验感差的技术问题,而提供一种设置了结果调用分析模块对答案进行分析优化、设置用户数据补充模块用于接收用户评价的民航知识图谱问答系统。
4.为了实现上述目的,本发明采用了如下技术方案:
5.民航知识图谱问答系统,包括用户问题接收模块、用户问题分类模块、数据检索对比模块、知识图谱模块、结果调用分析模块、答案反馈模块以及用户数据补充模块;
6.用户问题接收模块用于接收用户通过外部输入设备输入的问题,并通过数据转换处理生成问题数据,同时将问题数据发送至用户问题分类模块;
7.用户问题分类模块用于接收问题数据,并对其进行特征提取和分类,将分类结果发送至数据检索对比模块;
8.数据检索对比模块用于接收用户问题分类模块的分类结果,并对用户问题的答案进行检索对比,对知识图谱模块发送索指令;
9.知识图谱模块用于接收数据检索对比模块的检索指令,并依据检索指令开始进行数据检索;
10.结果调用分析模块用于接收数据检索对比模块的检索结果,并对其进行分析优化;
11.答案反馈模块用于接收结果调用分析模块分析优化后的答案数据,并将其通过显示设备反馈给用户;
12.用户数据补充模块用于接收用户评价,并对用户评价进行标记。
13.具体地,用户问题分类模块进行特征提取的具体步骤如下:
14.a1:用户问题分类模块开始提取用户问题中的民航领域关键词及其数量,并标记为m;
15.a2:关键词提取完成,用户问题分类模块开始对用户问题意图按照提问意图和指代意图进行分类,并分别标记为a、b;
16.a3:据a、b以及m对用户问题进行分类处理。
17.具体地,数据检索对比模块对用户问题的答案进行检索对比的具体步骤如下:
18.b1:数据检索对比模块对a、b以及m进行数据整合处理,并生成检索指令,同时将其
发送至知识图谱;
19.b2:数据检索对比模块接收知识图谱反馈的数据,并将其与用户问题进行对比;
20.b3:若对比结果符合用户问题答案,则将其处理生成结果数据t,若对比结果不符合用户问题答案,则将其处理生成结果数据f。
21.具体地,知识图谱模块依据检索指令进行数据检索的具体步骤如下:
22.c1:知识图谱接收检索指令,并开始检索是否存储有相同类型的问题类型;
23.c2:若存在,则将其对应的答案数据进行提取,并反馈至数据检索对比模块;
24.c3:若不存在,则反馈无效指令至数据检索模块。
25.具体地,所述知识图谱模块的构建方法如下:
26.d1:工作人员通过tornado搭建标注平台,并进入文本标注界面,同时工作人员输入需要进行标注的句子,以及句中所包含的三元组,其中,三元组包括主语、谓语、宾语,且其来源于民航公司每年发表的民航公报;
27.d1:三元组标注完成,文本标注界面中的spo组对话框中会显示输入的三元组产生的排列组合,同时,工作人员将有效三元组标识为“1”,将无效三元组标识为“0”;
28.d3:标注完成后点击文本标注界面中的“提交”按钮进行提交,对于每次提交的句子与三元组,将产生对应的标注序列;
29.d4:标注完成后,采用开源深度学习模型开始进行实体识别,将数据集以8:2的比例分割为训练集与测试集开始进行模型训练,并将训练完成后模型存储于对应文件夹中;
30.d5:自动生成主语s,谓语o和宾语p,并把s,o,p以及对应的文本text添加到对应的列表中,并对其添加标签以及scope属性进行约束;
31.d6:设置两个变量part和ppart,当程序遍历到大标题的时候,part自动变为此时遍历到的大标题并在主语列表s、谓语列表p、宾语列表o、文本列表t、标签列表l的列表中分别添加“20xx”、“包括”、“大标题”、“文本”和“20xx”,其中“20xx”中的“20xx”表明当前数据所在的民航公报的年份;;
32.d7:当程序遍历到小标题的时候,ppart自动变为此时遍历到的小标题并在对应的主语列表s、谓语列表p、宾语列表o、文本列表t、标签列表l中分别添加“part”、“包括”、“ppart”、“文本”和“part”,如果遍历到的是句子,则把当前的ppart添加到标签列表l,把三元组、文本以及标签添加到对应列表,并将五个列表处理生成execl文件;
33.d8:工作人员通过实体检索器对execl文件中实体的名称与标签进行实体的匹配,匹配完成,开始创建知识图谱,其中,知识图谱具体为neo4j图数据库;
34.具体地,结果调用分析模块分析优化的具体步骤如下:
35.s1:若接收到结果数据t,开始提取结果数据中的专业名词,结果调用分析模块与互联网通信连接,通过互联网进行专业名词检索,并将检索到的专业名词含义进行抓取调用,并对结果数据中的专业名词进行解释标注,生成答案数据a;
36.s2:若接收到结果数据f,结果调用分析模块开始与外部问题答案库进行通信连接,并开始将用户问题与问题答案库中问题进行相似度计算,并将相似度较高的问题所对应的答案进行提取,并处理生成答案数据b。
37.具体地,用户数据补充模块判断分析的具体步骤如下:
38.p1:用户对答案数据a或答案数据b进行查看,并通过外部输入设备输入用户评价;
39.p2:用户数据补充模块接收用户评价,并对其进行智能分析,若分析出用户满意此次答案则标记为x,若分析出用户不满意此次答案则标记为y;
40.p3:若标记为y,则开始向用户反馈“请补充正确答案”,用户通过输入设备进行答案补充,用户数据补充模块将用户补充的答案以及问题进行数据匹配处理生成存储数据,并上传至问题答案库中进行存储。
41.优选地,显示设备具体为crt显示器、led显示器或lcd显示器中的一种。
42.相比于现有技术,本发明的有益效果在于:
43.本发明设置有结果调用分析模块,结果调用分析模块接收到结果数据后,开始提取结果数据中的专业名词,并通过互联网进行专业名词检索,并将检索到的专业名词含义进行抓取调用,并对结果数据中的专业名词进行解释标注,通过对结果数据中的专业名词进行检索以及标注,提高了用户对答案的理解程度,提高用户使用体验,同时有利于相关知识的普及,并提高其答案反馈的质量。
44.本发明设置有用户数据补充模块,能够接收用户评价,并对用户的评价进行分类标记,为更好地服务客户以维护、升级系统提供数据依据。
附图说明
45.图1显示了在搭建好的标注平台中进行三元组标注;
46.图2展示了2011年民航公报部分知识图谱;
47.图3展示了将本系统部署至微信公众号后的问答效果;
48.图4显示了用户问题分类的具体流程。
具体实施方式
49.民航知识图谱问答系统,包括用户问题接收模块、用户问题分类模块、数据检索对比模块、知识图谱、结果调用分析模块、答案反馈模块以及用户数据补充模块。
50.用户问题接收模块用于接收用户通过外部输入设备输入问题,并通过数据转换处理生成问题数据,同时将其发送至用户问题分类模块,输入设备为键盘、电子笔或触控屏。
51.数据转换处理的目的是对用户输入的问题进行预处理,主要包括以下步骤:
52.将问句中的空格换为空,调用python的replace方法,将空格替换成空。
53.将问句中的年份规格化,例如将“11年”转换成“2011年”,将类似于“11

13年”转换为“2011年、2012年和2013年”格式,该步骤主要通过正则表达式来对问题中的年份信息进行析取,然后将年份信息替换成规格化的年份信息。
54.手工去除ac算法带来的一些噪点,使用ac算法对于“航班准确率”可能会分为“航班”和“航班准确率”两种词语,需要使用算法将类似于“航班”这种类型的词语去掉。
55.领域关键词模糊化匹配,在用户输入的过程中可能会输错术语词,比如将“货邮周转率”输成了“货邮周率”,而导致没有答案生成,大大的影响用户的体验。所以使用levenshtein算法计算莱温斯坦比来模糊匹配领域关键词。
56.用户问题分类模块用于接收问题数据,并对其进行特征提取。用户问题分类模块通过python的ahocorasick库的aho

corasick算法提取用户问题中的民航领域关键词及其数量,并标记为m,民航领域关键词如指标、目录、年份和区域,关键词提取完成后,用户问题
分类模块开始对用户问题意图按照提问意图和指代意图进行分类,并分别标记为a、b,提问意图可以细分为是否存在、值为多少、比较和什么时候;指代意图又可以细分为目录、组成、指标、地区和状态;依据a、b以及m对用户问题进行分类处理。
57.由于问题基本上都与年份有关,而年份的个数会直接影响到问题的种类,所以首次分类应该考虑用年份的数量。分类的具体流程如图4所示。
58.数据检索对比模块用于接收a、b以及m,并开始对用户问题的答案进行检索对比。数据检索对比模块对a、b以及m进行数据整合处理,并生成cypher查询语句,同时将该cypher查询语句发送至知识图谱,数据检索对比模块接收知识图谱反馈的数据,并将其与用户问题进行对比,若在知识图谱中检索到与该问题类别相符的问题,则将知识图谱中的该问题答案生成结果数据t,若在知识图谱中未检索到与该问题类别相符的问题,则将其处理生成结果数据f;
59.知识图谱用于接收检索指令,并依据检索指令开始进行数据检索。知识图谱接收检索指令,并开始检索是否存储有相同类型的问题,若存在,则将其对应的答案数据进行提取,并反馈至数据检索对比模块,若不存在,则反馈无效指令至数据检索模块。
60.结果调用分析模块用于接收结果数据t或生成结果数据f,并对其进行分析优化。
61.若结果调用分析模块接收到结果数据t,结果调用分析模块开始与互联网通信连接,开始提取结果数据t中的专业名词,并通过互联网进行专业名词检索,并将检索到的专业名词含义进行抓取调用,并对结果数据t中的专业名词进行解释标注,生成答案数据a,方便用户理解与查看。若结果调用分析模块接收到结果数据f,结果调用分析模块开始与外部问题答案库进行通信连接,并开始将用户问题与问题答案库中问题进行相似度计算,并将相似度较高的问题所对应的答案进行提取,并处理生成答案数据b。
62.答案反馈模块用于接收答案数据a或答案数据b,并将其通过显示设备反馈给用户。显示设备具体为crt显示器、led显示器或lcd显示器中的一种。
63.用户数据补充模块用于接收用户评价,并对用户评价进行标记。用户对答案数据a或答案数据b进行查看,并通过外部输入设备输入用户评价;用户数据补充模块接收用户评价,并对其进行智能分析,若分析出用户满意此次答案则标记为x,若分析出用户不满意此次答案则标记为y;若标记为y,则开始向用户反馈“请补充正确答案”,用户通过输入设备进行答案补充,用户数据补充模块将用户补充的答案以及问题进行数据匹配处理生成存储数据,并上传至问题答案库中进行存储。
64.知识图谱具体构建方法如下:工作人员通过tornado搭建标注平台,并进入文本标注界面,同时工作人输入需要进行标注的句子,以及句中所包含的三元组,三元组标注完成,文本标注界面种的spo组对话框中会显示输入的三元组产生的排列组合,同时,工作人员将有效三元组的标识为“1”,将无效三元组标识为“0”,如图1所示,在搭建好的标注平台中,首先读入民航公报的一个句子,接着输入句子中的三元组,每个词语中以“#”分离,然后点击平台的显示spo按钮,在生成的三元组后面用1或0对三元组进行标识,以确认其是否有效;
65.标注完成后点击文本标注界面中的“提交”按钮进行提交,对于每次提交的句子与三元组,将产生对应的标注序列;对图1中的文本进行标注后点击“提交”按钮便会产生如表1的标注序列;
66.表1
[0067][0068][0069]
当标注完成后,本实施例采用albert+bilstm+crf开源深度学习模型开始进行实体识别,开始自动生成主语s,谓语o和宾语p,并把s,o,p以及对应的文本text添加到对应的列表中,并对其添加标签以及scope属性进行约束,通过设置两个变量part和ppart,当程序遍历到大标题的时候,part自动变为此时遍历到的大标题并在主语列表s、谓语列表p、宾语列表o、文本列表t、标签列表l的列表中分别添加“20xx”、“包括”、“大标题”、“文本”、“20xx”,当程序遍历到小标题的时候,ppart自动变为此时遍历到的小标题并在对应的列表中分别添加“part”、“包括”、“ppart”、“文本”、“part”,如果遍历到的是句子,则把当前的ppart添加到标签列表l,把三元组、文本以及标签添加到对应列表,并将五个列表处理生成execl文件;如表2所示,其中label中的“2011”为大标题part,“2011运输航空”、“2011运输总周转量”为小标题ppart;
[0070]
表2
[0071][0072]
工作人员通过实体检索器对execl文件中实体的名称与标签进行实体的匹配,匹配完成,开始创建知识图谱。
[0073]
三元组包括主语、谓语、宾语,且其来源于民航公司每年发表的民航公报,知识图谱具体为neo4j图数据库,如图2所示为2011年民航公报部分三元组在neo4j数据库中的存储,即部分的知识图谱展示。
[0074]
用户通过外部输入设备向用户问题接收模块输入问题,用户问题分类模块开始提取用户问题中的指标、目录、年份以及区域等关键词,同时对用户问题意图按照提问意图和指代意图进行分类,数据检索对比模块接收用户问题分类模块发送的数据,并从知识图谱检索相似问题,并将其对应答案进行提取,结果调用分析模块接收到结果数据后,开始提取结果数据中的专业名词,并通过互联网进行专业名词检索,并将检索到的专业名词含义进行抓取调用,并对结果数据中的专业名词进行解释标注,通过对结果数据中的专业名词进行检索以及标注,提高了用户对答案的理解程度,提高用户使用体验,同时有利于相关知识的普及,并提高其答案反馈的质量。图3将本系统部署至微信公众号后的效果展示,实现了民航领域的智能问答功能。
[0075]
开源深度学习模型采用albert+bilstm+crf模型,采用albert作为文本特征提取,采用bi

lstm算法作为序列标注算法,在bilstm的输出层加上一个crf,能记录句子中“相邻”词之间的上下文关系,使得模型可以考虑类标之间的相关性。
[0076]
albert+bilstm+crf模型在数据集上展现出了优异的实体识别效果和良好的文本分类效果以及非常快的训练速度,如下表3为albert+bilstm+crf模型在测试集上的实体识别和文本分类中的效果,本发明人针对民航领域2000余个三元组进行了标注。模型训练环境cpu为i7

8750h,使用8gb内存,未使用gpu加速,最终训练完成用时24min10s,表格中3

5行为三元组中主语subj、谓语pred、宾语obj的精准率precision、总体召回率recall及总体f

score值。
[0077]
其中,precision是针对预测结果而言的,它表示的是预测为正的样本中有多少是真正的正样本,通过测试集中正确预测出的三元组样本数tp和错误预测出的非三元组样本数fp计算得出,正确预测的三元组样本数越大,precision越大。recall是针对原来的样本而言的,它表示的是样本中的正例有多少被预测正确了,通过测试集中正确预测出的三元组样本数tp和没有预测出的三元组样本数fn计算得出,正确预测的三元组样本数越大,recall越大。f

score为综合评价指标,是precision和recall加权调和平均;accuracy为所有的预测正确(正类负类)的占总的比重,正确预测出的三元组tp和非三元组样本个数tn占总样本个数的比例。tp为实际是正样本预测也是正样本的样本数量;tn为预测是负样本实际也是负样本的样本数量;fn为实际是正样本预测为负样本的样本数量;fp为实际是负样本预测为正样本的样本数量,本发明中的正样本为标注的三元组中的subj、pred、obj,其余词语为负样本。
[0078]
表3
[0079] precisionrecallf

scoretotal91.95%93.13%92.54subj93.58%95.63%94.59pred94.44%93.41%93.92obj84.76%88.12%86.41
[0080]
在进行训练时,将数据集以8:2的比例分割为训练集与测试集,文本最大长度为128,epoch个数为100。模型在测试集上的总体准确率accuracy、总体精准率为precision、总体召回率recall及总体f

score值分别为95.84%、91.95%、93.13%和92.54。由表中数据可见各指标值都较高,说明该模型在对民航公报的实体识别和文本分类上具有优秀的效果。
[0081]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1