2020ccks知识图谱问答总结
公眾號 系統之神與我同在
前幾個月參加了今年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用于語義特征建模:
路徑排序主要使用的是一個語義比對方法:
此方法也用在了項目中:
總結
以上是生活随笔為你收集整理的2020ccks知识图谱问答总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 武汉涉密信息系统集成资质介绍
- 下一篇: 前端学习(2334):angular之内