KBQA問答系統流程
阿新 • • 發佈:2018-11-01
目錄
簡介
KBQA()基於知識圖譜的問答系統,大體流程是根據問句查詢知識譜曲,然後根據知識圖譜的資訊生成一句答案返回給使用者。
1、nlu(自然語言理解)
對於問答系統來說,自然語言理解就是要從自然語言當中提取query所提問的資訊。
1、意圖識別
匹配法:
預先定義好一些意圖類別,根據正則匹配出指定的意圖,從而判斷出query的意圖。
分類法:
預先將意圖分類並訓練好分類器,將query用分類器分類。判斷意圖
2、提取實體
1、匹配法
預先定義好需要抽取的實體的型別和字典,通過正則匹配的方法類提取實體。
優點:在小規模特定資料集上效率和準確行都比較高
缺點:1、在大規模資料集上需要準備的類別和字典都需要人工校驗,工作量大。有些實體,如地名、人名幾乎無法窮盡,或者窮盡的成本太大。
2、命名實體識別
能夠解決實體無法窮盡的情況,但是精度是有限的,目前在特定領域的精度還不能超過匹配法。
2、資訊處理
當系統理解了自然語言的資訊以後,系統會根據指定或者提取的意圖來分析問句的資訊,得到結果。
例如:姚明的老婆是誰?
intent=“who”
entity1=“姚明”
entity2=“老婆”或者“妻子”
根據意圖,我們判斷問句問的是人,我們可以在任務關係的知識圖譜中進行查詢,然後查詢的實體是“姚明”,關係是“夫妻”。就可以查到對應的人名了。
資訊處理的方式有很多種,需要根據實際需要選擇一種或者多種。
1、資訊檢索
2、知識圖譜
知識圖譜可以儲存關係型的資料,儲存複雜的資訊。
查詢知識圖譜用sparql語句就可以了。
3、nlg(自然語言生成)
模板法:
通過意圖選擇固定的模板生成答案
例如:姚明,老婆,是,{{人名}}