1. 程式人生 > >KBQA問答系統流程

KBQA問答系統流程

目錄

1、nlu(自然語言理解)

1、意圖識別

2、提取實體

2、資訊處理

1、資訊檢索

2、知識圖譜

3、nlg(自然語言生成)


簡介

KBQA()基於知識圖譜的問答系統,大體流程是根據問句查詢知識譜曲,然後根據知識圖譜的資訊生成一句答案返回給使用者。

1、nlu(自然語言理解)

對於問答系統來說,自然語言理解就是要從自然語言當中提取query所提問的資訊。

1、意圖識別

匹配法:

預先定義好一些意圖類別,根據正則匹配出指定的意圖,從而判斷出query的意圖。

分類法:

預先將意圖分類並訓練好分類器,將query用分類器分類。判斷意圖

2、提取實體

1、匹配法

預先定義好需要抽取的實體的型別和字典,通過正則匹配的方法類提取實體。

優點:在小規模特定資料集上效率和準確行都比較高

缺點:1、在大規模資料集上需要準備的類別和字典都需要人工校驗,工作量大。有些實體,如地名、人名幾乎無法窮盡,或者窮盡的成本太大。

2、命名實體識別

能夠解決實體無法窮盡的情況,但是精度是有限的,目前在特定領域的精度還不能超過匹配法。

2、資訊處理

當系統理解了自然語言的資訊以後,系統會根據指定或者提取的意圖來分析問句的資訊,得到結果。

例如:姚明的老婆是誰?

intent=“who”

entity1=“姚明”

entity2=“老婆”或者“妻子”

根據意圖,我們判斷問句問的是人,我們可以在任務關係的知識圖譜中進行查詢,然後查詢的實體是“姚明”,關係是“夫妻”。就可以查到對應的人名了。

資訊處理的方式有很多種,需要根據實際需要選擇一種或者多種。

1、資訊檢索

2、知識圖譜

知識圖譜可以儲存關係型的資料,儲存複雜的資訊。

查詢知識圖譜用sparql語句就可以了。

3、nlg(自然語言生成)

模板法:

通過意圖選擇固定的模板生成答案

例如:姚明,老婆,是,{{人名}}