2020ccks知识图谱问答总结
公众号 系统之神与我同在前几个月参加了今年ccks(中国知识图谱与计算语义大会)任务四基于知识图谱问答的比赛:a榜第三 b榜出差去了 等回来的时候结束了 在这里写个分享知识图谱典型问题:问题:武汉大学出了哪些科学家查询语句:select ?x where {?x<职业><科学家_(从事科学研究的人群)>.?x<毕业院校><武汉大学>.}答案:"<
公众号 系统之神与我同在
前几个月参加了今年ccks(中国知识图谱与计算语义大会)任务四基于知识图谱问答的比赛:
a榜第三 b榜出差去了 等回来的时候结束了 在这里写个分享
知识图谱典型问题:
问题:
武汉大学出了哪些科学家
查询语句:
select ?x where {?x<职业><科学家_(从事科学研究的人群)>.?x<毕业院校><武汉大学>.}
答案:
"<郭传杰> <张贻明> <刘西尧> <石正丽> <王小村>"
该问题的特点是两个关系的结果求交集
问题:
凯文·杜兰特得过哪些奖?
查询语句:
select ?x where { <凯文·杜兰特> <主要奖项> ?x . }
答案:
"7次全明星(2010-2016)” “5次NBA最佳阵容一阵(2010-2014)” “NBA得分王(2010-2012;2014)” “NBA全明星赛MVP(2012)” "NBA常规赛MVP(2014)"
简单的一跳问题
问题:
获得性免疫缺陷综合征涉及哪些症状?
查询语句:
select ?x where {<获得性免疫缺陷综合征><涉及症状>?x.}
答案:
"<淋巴结肿大> <HIV感染> <脾肿大> <心力衰竭> <肾源性水肿> <抑郁> <心源性呼吸困难> <低蛋白血症> <不明原因发热> <免疫缺陷> <高凝状态> <右下腹痛伴呕吐> "
医学问题都比较长,需要通过ES来搜索实体名称用于解决一般的实体识别方案的不足
问题:
詹妮弗·安妮斯顿出演了一部1994年上映的美国情景剧,这部美剧共有多少集?
查询语句:
select ?y where {?x<主演><詹妮弗·安妮斯顿>.?x<上映时间>""1994"".?x<集数>?y.}
答案:
"236"
该问题较为复杂需要用句法分析和问题类型判定来协助查询生成
实现原理

例如问题是:莫妮卡·贝鲁奇的代表作?
第一步:我们将该问题进行命名实体识别(预处理模块:实体识别),得到名为“莫妮卡·贝鲁奇”的实体提及,将该实体提及输入别名词典和ES中,得到备选实体名称;
第二步:将问题输入我们的问题结构分类模型(预处理模块:问题分类),得到该问题属于一跳问实体的问题类型,得知该问题有一个实体槽位和一个关系槽位需要填充(预处理模块:槽位预测);
第三步:将第一步中得到的实体通过语义特征和人工特征进行实体消歧,得到真正的实体为<莫妮卡·贝鲁奇>(实体分析模块:实体链接);
第四步:根据第二步中预测的槽位,将实体填充到该查询语句中得到select ?x where {<莫妮卡·贝鲁奇><>?x.}(查询生成模块:槽位填充);
第五步:搜索<莫妮卡·贝鲁奇>的所有关系名称,和原文进行语义匹配并排序,得到关系<代表作品>(查询生成模块:路径排序);
第六步:将代表作品填入第二步所预测的关系槽位中,得到查询语句select ?x where {<莫妮卡·贝鲁奇><代表作品>?x.},并转化为图数据库查询语言(查询生成模块:槽位填充);
第七步:将第六步中得到的查询语言在图数据库中查询并得到答案,并进行答案校验(答案验证模块:验证答案的实体类型)。
问题解析模块:
问题分类:
一个问题所属的类型有两个判断依据:1、链式和夹式 2、问题的跳数 3、每一跳问实体还是问关系,例如:
a)一跳问实体类型:
莫妮卡·贝鲁奇的代表作? select ?x where {<莫妮卡·贝鲁奇><代表作品>?x.} select ?x where {<><>?x.}
其括号内结构为<主><谓><宾>,得到主语、谓语,问宾语
b)二跳链式问实体类型:
发明显微镜的人是什么职业? select ?y where {<显微镜><发明人>?x.?x<职业>?y.} select ?y where {<><>?x.?x<>?y.}
其括号内结构为<主1><谓1><宾1><主2><谓2><宾2>,得到主语1、谓语1,匹配中间节点<?x>,再根据中间点的”职业“得到链式答案
c)二跳夹式问实体类型:
我们会在哪个民俗节日里猜灯谜? select ?x where {?x<类别><民俗>.?x<节日活动><猜灯谜>.} select ?x where {?x<><>.?x<><>.}
其括号内结构为<主1><谓1><宾1><主2><谓2><宾2>,得到主语1、谓语1、主语2、谓语2,最终得到宾语1、宾语2。将二者取交集,得到夹式答案
槽位预测:
根据问题的分类,就能够预测出该问题有几个语义槽位需要填充
实体链接主要使用了语义特征和图特征:
这里推荐matchzoo用于语义特征建模:

路径排序主要使用的是一个语义比对方法:

此方法也用在了项目中:

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)