本發(fā)明涉及自動問答技術,尤其涉及一種知識問答方法及裝置。
背景技術:
隨著國內(nèi)外越來越多的機構投入到問答系統(tǒng)的研究,目前自動問答技術已經(jīng)取得了一定的成績,出現(xiàn)了許多優(yōu)秀的問答系統(tǒng),根據(jù)不同的答案獲取方式,現(xiàn)有的問答系統(tǒng)類型主要有:聊天機器人、問答式檢索系統(tǒng)以及基于知識庫的問答系統(tǒng)等。
聊天機器人幾乎是全部采用模式匹配的方法來尋找問題最合適的答案,它們沒有經(jīng)過嚴格證明的定理、晦澀的數(shù)學公式,甚至沒有復雜的算法。它們的共同特點是:在與用戶的交談過程中,都是基于談話技巧和程序技巧,而不是根據(jù)常識來回答問題。目前的聊天機器人,由于其知識庫規(guī)模有限、甚至沒有知識庫,所以面對用戶提出的許多專業(yè)性問題,通常是用轉(zhuǎn)移話題的辦法來回避。知識的缺乏使得聊天機器人目前還不能解決太多的實際問題,而僅僅只是和用戶“聊天”,許多情況下,它更像是玩具而不是工具。
問答式檢索系統(tǒng)是根據(jù)以自然語言方式提交的用戶查詢,從系統(tǒng)文檔集合或Web中,檢索出相關文本或網(wǎng)頁并將其返還給用戶。從技術上來說,在處理用戶查詢方面,問答式檢索系統(tǒng)主要是抽取用戶查詢中的關鍵詞,并利用語義詞典對關鍵詞進行擴展,從而得到一組描述用戶需求的關鍵詞。然而,最清楚用戶需求的是用戶自己而不是系統(tǒng),用戶自己給出的關鍵詞往往要比系統(tǒng)分析得出的關鍵詞準確得多。因此,與現(xiàn)有搜索引擎相比,問答式檢索系統(tǒng)的優(yōu)勢并不明顯。一系列測試結果表明,無論是速度還是準確性,谷歌(Google)都要比現(xiàn)有大多數(shù)問答式檢索系統(tǒng)高出許多。并且,問答式檢索系統(tǒng)返還給用戶 的只是和用戶查詢相關的文本或網(wǎng)頁,而不是短小精悍的答案,所以嚴格說來,問答式檢索系統(tǒng)還不算是一個真正的問答系統(tǒng),只是一個信息檢索系統(tǒng)。
基于知識庫的問答系統(tǒng)一般是受限領域問答系統(tǒng),它包含自然語言界面的專家系統(tǒng)、基于受限語言的數(shù)據(jù)庫查詢系統(tǒng)、基于經(jīng)常問到的問題(Frequently Asked Questions,F(xiàn)AQ)的問答系統(tǒng)、基于本體的問答系統(tǒng)?;贔AQ的問答系統(tǒng)和聊天機器人不同的是,基于FAQ的問答系統(tǒng)擅長于知識問答,對于不能回答的問題就回答“不知道”,而不是故意轉(zhuǎn)移話題。基于FAQ的問答系統(tǒng)和問答式檢索系統(tǒng)相比,基于FAQ的問答系統(tǒng)不會給出一些列參考的網(wǎng)頁,給出的答案會更加準確。而目前的基于知識庫的問答系統(tǒng)也存在著很多不足,自然語言界面的專家系統(tǒng)一般采用各種專家系統(tǒng)語言如邏輯程序設計(Programming in Logic,PROLOG)語言、ALLTALK語言、計算機程序設計(LISP)語言等來分析回答用戶的疑問,給出問答,現(xiàn)有的專家系統(tǒng)一般知識庫和推理、回答機制不分離,它們按知識在專家系統(tǒng)語言基礎上開發(fā)程序,使用范圍小,可移植性不高?;谑芟拚Z言的數(shù)據(jù)庫查詢系統(tǒng)將問句轉(zhuǎn)換為數(shù)據(jù)庫的結構化查詢語言(Structured Query Language,SQL)語句,通過SQL語句在系統(tǒng)數(shù)據(jù)庫中查詢答案,這需要一個大數(shù)據(jù)庫的支持,數(shù)據(jù)庫的構建標準很難確定,而且用數(shù)據(jù)庫方式不太適合組織領域知識庫?;贔AQ的問答系統(tǒng)先計算用戶問句和FAQ知識庫中問句的相似度,從而找到FAQ知識庫中與用戶查詢最為相似的問句,然后把相關答案直接提交給用戶。基于FAQ的問答系統(tǒng)回答范圍有限,它能回答的內(nèi)容基本上是問答對所包含的內(nèi)容,不具備推理的能力?;诒倔w的問答系統(tǒng),需要構建本體知識庫、建立查詢語句、推理規(guī)則,通過推理引擎返回給用戶相應的推理結果。目前,針對本體知識庫的構建還無法實現(xiàn)自動化,所以相對于FAQ知識庫的構建要耗費很多的人力和精力。
現(xiàn)有技術的缺點在于:1)目前FAQ問答系統(tǒng),只能回答一些常規(guī)問題,遇到一些復雜的問題回答不了時,就會轉(zhuǎn)移話題或者將問題轉(zhuǎn)交給人工專家進行回答,存在滯后性并耗費人力。2))FAQ問答系統(tǒng)中,傳統(tǒng)的問句相似度計算主要借鑒普通陳述句的相似度計算方法,因為僅考慮問句間的相似因素而忽 略了答案句之間的相似因素,存在相似度計算準確欠佳的問題。3)本體問答系統(tǒng)中,還無法解決動態(tài)的將用戶的問題轉(zhuǎn)化成語義查詢語句,對于用戶的每一個問題都要拼寫一個靜態(tài)的語義查詢語句,效率非常低。4)本體問答系統(tǒng)中,可以通過設定的推理規(guī)則根據(jù)本體中已經(jīng)建立的關系推理出隱含的關系,但對于這種隱含的關系,目前的本體問答系統(tǒng)無法自動在本體中擴充創(chuàng)建,需要人工來完成。
技術實現(xiàn)要素:
有鑒于此,本發(fā)明實施例為解決現(xiàn)有技術中存在的至少一個問題而提供一種知識問答方法及裝置,能夠提高計算相似性的準確率。
本發(fā)明實施例的技術方案是這樣實現(xiàn)的:
第一方面,本發(fā)明實施例提供一種知識問答方法,所述方法包括:
獲取待回答的問題;
判斷所述問題是否滿足預設的第一條件,得到第一判斷結果;
當所述第一判斷結果表明所述問題不滿足預設的第一條件時,判斷所述問題是肯定型還是否定型,得到第二判斷結果;
根據(jù)所述第二判斷結果計算FAQ庫中的問句與所述問題的相似度;
將相似度滿足預設的第二條件的問句所對應的答案輸出;
所述判斷所述問題是肯定型還是否定型,包括:
判斷所述問題是否滿足第三條件,其中所述第三條件包括第一子條件和第二子條件,其中第一子條件為分詞后的所述問題含有奇數(shù)個否定詞,所述第二子條件為所述否定詞前后須不同;當所述問題滿足所述第一子條件和所述第二子條件時,確定所述問題屬于否定型,當所述問題不能同時滿足所述第一子條件和第二子條件時,所述問題屬于肯定型。
第二方面,本發(fā)明實施例提供一種知識問答裝置,所述裝置包括第一獲取單元、第一判斷單元、第二判斷單元、計算單元和輸出單元,其中:
所述第一獲取單元,用于獲取待回答的問題;
所述第一判斷單元,用于判斷所述問題是否滿足預設的第一條件,得到第一判斷結果;
所述第二判斷單元,用于當所述第一判斷結果表明所述問題不滿足預設的第一條件時,判斷所述問題是肯定型還是否定型,得到第二判斷結果;
所述計算單元,用于根據(jù)所述第二判斷結果計算FAQ庫中的問句與所述問題的相似度;
所述輸出單元,用于將相似度滿足預設的第二條件的問句所對應的答案輸出;
所述第二判斷單元,用于判斷所述問題是否滿足第三條件,其中所述第三條件包括第一子條件和第二子條件,其中第一子條件為分詞后的所述問題含有奇數(shù)個否定詞,所述第二子條件為所述否定詞前后兩個詞須不同;當所述問題滿足所述第一子條件和所述第二子條件時,確定所述問題屬于否定型,當所述問題不能同時滿足所述第一子條件和第二子條件時,所述問題屬于肯定型。
本發(fā)明實施例知識問答方法及裝置,其中,獲取待回答的問題;判斷所述問題是否滿足預設的第一條件,得到第一判斷結果;當所述第一判斷結果表明所述問題不滿足預設的第一條件時,判斷所述問題是肯定型還是否定型,得到第二判斷結果;根據(jù)所述第二判斷結果計算FAQ庫中的問句與所述問題的相似度;將相似度滿足預設的第二條件的問句所對應的答案輸出;如此,能夠提高計算相似性的準確率。
附圖說明
圖1為本發(fā)明實施例一知識問答方法的實現(xiàn)流程示意圖;
圖2為本發(fā)明實施例步驟S105的實現(xiàn)流程示意圖;
圖3-1為本發(fā)明實施例三自動問答裝置的組成結構示意圖;
圖3-2為本發(fā)明實施例三自動問答方法的實現(xiàn)流程示意圖;
圖4為本發(fā)明實施例四知識問答裝置的實現(xiàn)流程示意圖;
圖5為本發(fā)明實施例五知識問答裝置的實現(xiàn)流程示意圖。
具體實施方式
針對現(xiàn)有技術中存在的問題或缺點,本發(fā)明實施例將至少解決以下之一的問題,1)如何盡可能的減少問答系統(tǒng)的人工成本尤其是專家成本,即讓機器具有代替專家解決問題的能力;2)如何在FAQ查詢中提高問句相似度計算的準確性;3)如何在進行本體推理時動態(tài)的將用戶的問題準確、快速的轉(zhuǎn)化成語義查詢語句;4)如何提高知識庫的自學習能力。針對于第一個問題,對于一些常規(guī)問題可以直接通過FAQ庫來獲取,對于復雜的問題,可以通過本體推理來代替專家解答。在限定領域問答系統(tǒng)中采用本體知識庫,可以更好地表示知識之間的內(nèi)在關系,知識的組織更加合理,減少冗余存儲。針對第二個問題,本發(fā)明實施例提出了針對答案特征信息的問句相似度計算方法,該計算方法引入問題分類的相關研究成果,利用問題分類的結果,如問題類別、中心詞等信息,來間接刻畫答案句的特征信息,從而豐富問句相似性計算時的考慮因素。在此基礎上與傳統(tǒng)的問句相似度計算方法所考量因素如語法和語義等相結合,使得問句相似度計算更加準確。針對第三個問題,在進行本體推理時,一個關鍵的問題是如何將用戶的問題轉(zhuǎn)化成推理機可以理解的語義查詢語句。本實施例解決了兩個方面的問題:一個是解決了用戶問題關鍵詞集與本體的映射;二是利用句模與語義查詢語句的映射關系,提高了用戶的問題轉(zhuǎn)化成語義查詢語句的效率。最后針對第四個問題,本發(fā)明實施例實現(xiàn)了FAQ庫和本體庫自動擴充的問題,提高了知識庫的自學習能力。
下面結合附圖和具體實施例對本發(fā)明的技術方案進一步詳細闡述。
實施例一
為了解決前述的技術問題,本發(fā)明實施例提供一種知識問答方法,該方法應用于計算設備,該方法所實現(xiàn)的功能可以通過計算設備中的處理器調(diào)用程序代碼來實現(xiàn),當然程序代碼可以保存在計算機存儲介質(zhì)中,可見,該計算設備至少包括處理器和存儲介質(zhì)。
圖1為本發(fā)明實施例一知識問答方法的實現(xiàn)流程示意圖,如圖1所示,該 方法包括:
步驟S101,獲取待回答的問題;
步驟S102,判斷所述問題是否滿足預設的第一條件,得到第一判斷結果;
這里,在具體實施的過程中,所述第一條件可以為所述問題為FAQ庫中的問題,因此所述第一判斷結果用于表明所述問題是否為所述FAQ庫中的問句。當所述第一判斷結果表明所述問題為所述FAQ庫中的問句時,將所述FAQ庫中的問句所對應的答案輸出。換句話說,當?shù)谝慌袛嘟Y果表明能夠從FAQ庫中直接匹配到問句,這樣就可以直接查詢到答案,則直接返回答案;如果不能從FAQ庫中直接匹配到問句,那么進入步驟S103。
步驟S103,當所述第一判斷結果表明所述問題不滿足預設的第一條件時,判斷所述問題是肯定型還是否定型,得到第二判斷結果;
這里,所述判斷所述問題是肯定型還是否定型,包括:判斷所述問題是否滿足第三條件,其中所述第三條件包括第一子條件和第二子條件,其中第一子條件為分詞后的所述問題含有奇數(shù)個否定詞,所述第二子條件為所述否定詞前后兩個詞不能一樣(須不同);當所述問題滿足所述第一子條件和所述第二子條件時,確定所述問題屬于否定型,當所述問題不能同時滿足所述第一子條件和第二子條件時,所述問題屬于肯定型。
步驟S104,根據(jù)所述第二判斷結果計算FAQ庫中的問句與所述問題的相似度;
這里,所述根據(jù)所述第二判斷結果計算FAQ庫中的問句與所述問題的相似度,包括:當所述問題屬于肯定型時,從所述FAQ庫中獲取第一問句集合,所述第一問句集合為所述問題的陳述句相對應的問句;計算FAQ庫中的第一問句集合與所述問題的相似度。當所述問題屬于否定型時,從所述FAQ庫中獲取第二問句集合,所述第二問句集合為所述問題的陳述句相反的問句;計算FAQ庫中的第二問句集合與所述問題的相似度。
步驟S105,將相似度滿足預設的第二條件的問句所對應的答案輸出。
本發(fā)明實施例中,所述第二問句集合中至少包括一個問句,對應地,計算 FAQ庫中的第二問句集合與所述問題的相似度包括:計算所述第二問句集合中每一個問句與所述問題的相似度。
這里,計算所述第二問句集合中每一個問句與所述問題的相似度,包括:
步驟S11,對所述問題進行關鍵詞提取,得到所述問題對應的關鍵詞;
步驟S12,將所述問題對應的關鍵詞與本體庫中的概念屬性集合中關鍵詞進行相似度對比,得到對比結果;
步驟S13,根據(jù)所述對比結果將問題對應的關鍵詞中的關鍵詞替換成本體庫中的關鍵詞。
步驟S14,計算第二問句集合中每一個問句Q2與問題Q1的詞序相似度、詞形相似度、句長相似度、距離相似度,通過給各個相似度進行加權求和,得到所述問句Q2和問題Q1的相似度;
這里,對問題和問句進行分詞等預處理,并利用同義詞詞庫進行關鍵詞擴展,得到各個問題和問句的關鍵詞集。計算詞序相似度、詞形相似度、句長相似度、距離相似度。通過給各個相似度進行加權求和,得到兩個問題Q1和問句Q2的相似度。
實施例二
為了解決前述的技術問題,本發(fā)明實施例提供一種知識問答方法,該方法應用于計算設備,該方法所實現(xiàn)的功能可以通過計算設備中的處理器調(diào)用程序代碼來實現(xiàn),當然程序代碼可以保存在計算機存儲介質(zhì)中,可見,該計算設備至少包括處理器和存儲介質(zhì)。
本發(fā)明實施例二知識問答方法的實現(xiàn)流程包括:
步驟S101,獲取待回答的問題;
步驟S102,判斷所述問題是否滿足預設的第一條件,得到第一判斷結果;
這里,在具體實施的過程中,所述第一條件可以為所述問題為FAQ庫中的問題,因此所述第一判斷結果用于表明所述問題是否為所述FAQ庫中的問句。當所述第一判斷結果表明所述問題為所述FAQ庫中的問句時,將所述FAQ庫 中的問句所對應的答案輸出。換句話說,當?shù)谝慌袛嘟Y果表明能夠從FAQ庫中直接匹配到問句,這樣就可以直接查詢到答案,則直接返回答案;如果不能從FAQ庫中直接匹配到問句,那么進入步驟S103。
步驟S103,當所述第一判斷結果表明所述問題不滿足預設的第一條件時,判斷所述問題是肯定型還是否定型,得到第二判斷結果;
這里,所述判斷所述問題是肯定型還是否定型,包括:判斷所述問題是否滿足第三條件,其中所述第三條件包括第一子條件和第二子條件,其中第一子條件為分詞后的所述問題含有奇數(shù)個否定詞,所述第二子條件為所述否定詞前后兩個詞不能一樣;當所述問題滿足所述第一子條件和所述第二子條件時,確定所述問題屬于否定型,當所述問題不能同時滿足所述第一子條件和第二子條件時,所述問題屬于肯定型。
步驟S104,根據(jù)所述第二判斷結果計算FAQ庫中的問句與所述問題的相似度;
這里,所述根據(jù)所述第二判斷結果計算FAQ庫中的問句與所述問題的相似度,包括:當所述問題屬于肯定型時,從所述FAQ庫中獲取第一問句集合,所述第一問句集合為所述問題的陳述句相對應的問句;計算FAQ庫中的第一問句集合與所述問題的相似度。當所述問題屬于否定型時,從所述FAQ庫中獲取第二問句集合,所述第二問句集合為所述問題的陳述句相反的問句;計算FAQ庫中的第二問句集合與所述問題的相似度。
步驟S105,將相似度滿足預設的第二條件的問句所對應的答案輸出。
這里,如圖2所示,步驟S105,所述將相似度滿足預設的第二條件的問句所對應的答案輸出,包括:
步驟S151,對所述相似度進行排序,得到排序結果;
步驟S152,判斷所述排序結果中是否有滿足所述第二條件的相似度,得到第三判斷結果;
步驟S153,當所述第三判斷結果表明所述排序結果中有滿足所述第二條件的相似度時,獲取相似度滿足第二條件的問句所對應的答案,輸出所述答案。
對應地,所述方法還包括:
步驟S206,當所述第三判斷結果表明所述排序結果中沒有滿足所述第二條件的相似度時,確定所述問題的句子模式;
這里,所述句子模式至少包括以下任意一種:對概念的查詢、對概念間的關系的查詢、對概念的屬性的查詢、對同一概念內(nèi)屬性之間的關系的查詢和對多個概念屬性之間的關系的查詢,其中所述概念間的關系包括上下位關系、同位關系和自定義關系。
步驟S207,根據(jù)所述句子模式確定SPARQL語句的動態(tài)參數(shù);
步驟S208,根據(jù)所述SPARQL語句的動態(tài)參數(shù)和預設的推理規(guī)則獲取所述問題的答案;
步驟S209,輸出所述問題的答案。
本發(fā)明實施例中,所述方法還包括:將所述問題和所述問題的答案擴充到FAQ庫中。
本發(fā)明實施例中,步驟S154,所述確定所述問題的句子模式,包括:
步驟S1541,對所述問題進行關鍵詞提取,得到所述問題對應的關鍵詞;
這里,對所述問題進進行關鍵詞提取,得到所述問題對應的關鍵詞,包括:對所述問題進行分詞,對分詞后的問題進行關鍵詞提取,得到第一關鍵詞集合;對所述第一關鍵詞集合中的關鍵詞進行同義詞擴展,得到擴展后的第二關鍵詞集合,將所述第二關鍵詞集合確定為所述問題對應的關鍵詞。
步驟S1541,將所述問題對應的關鍵詞與本體庫中的概念屬性集合中關鍵詞進行相似度對比,得到對比結果;
步驟S1542,根據(jù)對比結果將第二關鍵詞集合中的關鍵詞替換成本體庫中的關鍵詞;
步驟S1543,根據(jù)所述本體庫中各關鍵詞之間關系確定所述問題的句子模式。
實施例三
本發(fā)明實施例提供一種自動問答方法,在介紹自動問題方法之前,先提供一種自動問答裝置,圖3-1為本發(fā)明實施例三自動問答裝置的組成結構示意圖,圖3-2為本發(fā)明實施例三自動問答方法的實現(xiàn)流程示意圖,如圖3-1所示,該裝置包括FAQ答案獲取模塊31、本體答案獲取模塊32、知識庫擴充學習模塊33,其中關于理解各模塊的功能以及各模塊所包括的單元,以及各單元所包括對的子單元的功能可以參見圖3-2,具體地:
FAQ答案獲取模塊31包括FAQ庫311和問題理解單元312,其中:
FAQ庫311,用于提高答案的獲取效率。當問題到達時,系統(tǒng)首先從FAQ庫中尋找是否包括用戶問題,如果包含問句,則直接返回問句對應的答案給用戶,從而省去后面一系列的步驟;否則,就得進行問題理解。
問題理解單元312,用于讓計算機理解用戶的問題,確定問題的關鍵詞和問題類型進而與FAQ庫中問句進行相似度對比,系統(tǒng)會設定一個評分閾值,如果高于這個閾值存在相應的問句,則選擇相似度評分最高的問句,將其對應的答案返回給用戶。反之,則代表FAQ庫中沒有對應的答案,就要從本體庫中尋找答案。該問題理解單元312一般包括問題分類子單元3121、關鍵詞提取子單元3122、關鍵詞擴展子單元3123和句子級相似度計算子單元3124。其中關鍵詞提取子單元、關鍵詞擴展子單元可以通過分詞、同義詞詞典等技術來實現(xiàn)。關于句子級相似度計算子單元,本實施例在傳統(tǒng)問句相似度計算的基礎上提出了針對答案特征信息的問句相似度計算方法。具體描述如下:FAQ問答系統(tǒng)中的問句相似度計算主要借鑒普通陳述句的相似度計算方法,因為僅考慮問句間的相似因素而忽略了答案句之間的相似因素,存在相似度計算準確欠佳的問題。本實施例提出了一種綜合考慮問句及答案信息的問句相似度計算方法,該方法不僅利用問句之間的語義和語法特征考察問句之間的匹配程度,還利用問句的問題類型信息來間接考察答案句之間的相似程度,以提高問句相似度計算的準確性。
在實際問答中,問句間相似度的細微差別常會導致答案的大相徑庭。比如,問句是否含有否定詞,可能相似度計算結果是很接近的,但是結果卻是截然相 反的。例如:用戶問句為“什么上網(wǎng)套餐最不便宜?”,如果FAQ問句中,包含有“什么上網(wǎng)套餐最便宜”。用語義計算的結果為0.9,用語義結合語法的結果為0.918,都是比較高的相似度。很有可能就把“什么上網(wǎng)套餐最便宜”的結果返回給用戶,而達不到用戶的滿意。如果把問句的肯定性與否定性考慮到問句的相似度計算中,就有可能得到正確的結果。
但是,結果答案句的特征信息來協(xié)助獲取問句的深層語義信息,困難在于,在FAQ的問句匹配階段,可能不存在可以獲知的答案句。為此,本實施例引入問題分類的相關研究成果,利用問題分類的結果,如問題類別、中心詞等信息,來間接刻畫答案句的特征信息,從而豐富問句相似性計算時的考慮因素。在此基礎上與傳統(tǒng)的問句相似度計算方法所考量因素如語法和語義等相結合,設計了一種新的問句相似度計算方法。該方法雖然考慮了問句信息但并未增加多少額外的計算開銷,這是因為在問答系統(tǒng)中,問題分類工作本身是需要首先完成的。
本實施例采用了兩級分類體系:第一級為肯定型與否定型分類;第二級采用了如下問題分類體系,其中包括7大類和65個小類,但不知道(UNKNOWN)在問題集中的數(shù)量非常少,對分類結果幾乎沒有影響,因此本實施例的分類體系中是不包含該類的,即采用6大類和64個小類。具體的分類體系如下:
對于肯定型、否定型中文問題,本實施例的處理方式如下:漢語中常用的否定詞有不、非、否、無、沒、莫、勿、和毋等。有些問句就是因為多了一個否定詞,導致答案的截然相反。本文識別否定型中文問題的方法要滿足兩個條件:問句分詞后含有奇數(shù)個否定詞;否定詞前后兩個詞不能一樣。兩個條件都不能滿足,認為屬于肯定型問題。
本實施例計算問句相似度的輸入為需要計算相似度的兩個問句Q1和Q2,而輸出Q1和Q2的相似度,計算過程包括:a)對兩個問句進行分詞等預處理,并利用同義詞詞庫進行關鍵詞擴展,得到各個問句的關鍵詞集。b)計算詞序相似度、詞形相似度、句長相似度、距離相似度,因為已經(jīng)存在比較成熟的計算方法,本實施例不再贅述;c)通過給各個相似度進行加權求和,得到兩個問句Q1和Q2的相似度。
本體答案獲取模塊32包括本體庫321、語義預處理單元322、語義理解單元323和知識推理單元324,其中:
本體庫321是由概念、屬性和關系構成的,以OWL文件格式進行存儲。OWL對RDF Schema進行了擴展,OWL相對XML、RDF和RDFSchema擁有更多的機制來表達語義。
語義預處理單元322,主要作用就是將用戶的問題進行分詞和同義詞擴展,得到問句關鍵詞集,然后將關鍵詞集與本體庫中的概念屬性集合進行相似度對比,最終將關鍵詞集中的詞替換成本體中的詞。因為本體OWL文件中會用特定的規(guī)則來描述詞的性質(zhì),比如<owl:Class>是用來描述概念,<owl:NamedIndividual>是用來描述實例,<owl:ObjectProperty>是用來描述對象屬性,<owl:DatatypeProperty>是用來描述數(shù)據(jù)屬性。根據(jù)這些特有的描述規(guī)則, 就可以將關鍵詞集中的詞按照本體的規(guī)則進行分類劃分了。
語義預處理單元322包括關鍵詞提取子單元3221、關鍵詞擴展子單元3222、詞級相似度計算子單元3223和映射到本體子單元3224,其中關鍵詞提取子單元3221,用于對用戶的問題進行分詞,然后對分詞后的問題進行關鍵詞提取,得到第一關鍵詞集合。關鍵詞擴展子單元3222,用于對鍵詞提取子單元3221提取的第一關鍵詞集合中的關鍵詞進行同義詞擴展,得到擴展后的第二關鍵詞集合;詞級相似度計算子單元3223,用于將第二關鍵詞集合中關鍵詞與本體庫中的概念屬性集合中關鍵詞進行相似度對比,得到對比結果;映射到本體子單元3224,用于根據(jù)對比結果將第二關鍵詞集合中的關鍵詞替換成本體庫中的關鍵詞。
語義理解單元323,包括句模選擇字單元3231和語義查詢匹配子單元3232。語義理解單元323用于進行本體推理查詢,一個關鍵的問題是如何自動的將用戶的問題轉(zhuǎn)化成語義查詢語句,即SPARQL語句。和傳統(tǒng)的數(shù)據(jù)庫查詢不同,數(shù)據(jù)庫查詢是已經(jīng)限定了用戶的查詢方向和目標,并針對其功能和目標設定好SQL語句,用戶的查詢輸入作為動態(tài)參數(shù)傳入即可得到結果。而在本體推理時,系統(tǒng)是無法預測和限定用戶的查詢目標的,并且用戶的輸入是以自然語言而非關鍵詞的形式,所以能夠準確的識別用戶的查詢意圖,并動態(tài)的創(chuàng)建SPARQL語句是需要解決的關鍵問題。
在問答系統(tǒng)中,用戶的查詢具有不少的相似性,例如在移動客服領域,用戶可能提問“動感地帶的套餐包含幾種?”,這里的“動感地帶”可以換成其他品牌的名稱(如全球通),于是可以把“@的套餐包含幾種?”當作一個問句模板。從本體的構成可以知道,本體模型的基礎是概念(類)、屬性、關系這三個元語,所以本實施例利用這三個元語,將人們的知識需求拆解成以下五種基本類別:a)對概念進行查詢;b)對概念間的關系(上下位、同位、自定義關系)進行查詢;c)對概念的屬性進行查詢;d)對同一概念內(nèi)屬性之間的關系進行查詢;e)對多個概念屬性之間的關系進行查詢。這樣每一個類別可以定義為一個句模,SPARQL語句會以動態(tài)參數(shù)設定的方式與每一個句模相對應。因為在 上一步的語義預處理模塊中,已經(jīng)確定了關鍵詞集中各個關鍵詞在本體中的是屬于概念或者屬性,進而就可以確認用戶的問題屬于哪個句模,最終就可以確定了語義SPARQL語句。
知識推理單元324,用于根據(jù)已有事實和規(guī)則產(chǎn)生新的結論。通過自定義推理規(guī)則,系統(tǒng)可以幫助用戶推理出本體庫中隱含的邏輯關系。本體推理規(guī)則由主體(body)和頭(head)組成,一條規(guī)則可以有一個主體和一個頭,例如規(guī)則:[rule1:(?x rdfs:subClassOf?y)(?z rdf:type?x)->(?z rdf:type?y)],其中規(guī)則的主體為:(?x rdfs:subClassOf?y)(?z rdf:type?x),頭為:(?z rdf:type?y),也就是說有所有的主體可以推出頭。上面的規(guī)則說明:概念x的上位概念是y,實例z屬于概念x,那么可以推理出實例z也屬于概念y。
知識庫擴充學習模塊33包括FAQ庫擴充單元331和本體庫擴充332,其中:FAQ庫擴充單元331,用于根據(jù)本體推理的答案,實現(xiàn)自動問句與答案對的生成并擴充到FAQ庫中,這樣下次用戶提問就不需要進行本體推理了,通過FAQ庫即可快速的尋找到答案。本體庫擴充單元332,用于根據(jù)本體推理的答案,尋找出新的關系,該關系是本體庫沒有建立的隱含關系,通過該模塊實現(xiàn)自動擴充后,隱含的關系就變成了顯性的關系了。通過上述擴充學習,知識庫會變得越來越智能。
參見圖3-2,整個裝置的一次完整答案獲取流程包括:
步驟S301,當問題到達時,問答系統(tǒng)首先從FAQ庫中查詢答案,如果能直接匹配到問句,則直接返回答案;如果沒有則進行問題理解。
步驟S302,問題理解主要是進行用戶問題與FAQ庫中的問句相似度打分評比,如果評分結果高于系統(tǒng)設定的閾值,則選擇評分最高的FAQ問句結果,返回與其對應的答案給用戶;如果沒有則進行本體推理。
步驟S303,本體推理要經(jīng)過語義預處理把用戶的問題轉(zhuǎn)化成與本體相對應的關鍵詞集,并確定各個關鍵詞在本體中的性質(zhì)(概念or屬性);通過語義理解確定用戶的問題屬于哪一個句模,進而確定語義查詢語句。最后通過推理機完成本體模型和推理規(guī)則的加載完成本體的推理查詢,生成答案。
步驟S304,答案生成后,會將本次用戶提問的問題答案對擴充到FAQ庫中;如果答案推理出來新的關系,則自動完成新生成關系在本體中的創(chuàng)建。
本發(fā)明實施例提供的方法實現(xiàn)了常規(guī)問題FAQ解決,復雜問題本體推理解決。1)針對FAQ查詢,本實施例提出了利用問題分類的結果,如問題類別、中心詞等信息,來間接刻畫答案句的特征信息,從而豐富問句相似性計算時的考慮因素。本實施例采用了兩級分類體系:第一級為肯定型與否定型分類;第二級采用了如下的問題分類體系,其中包括6大類和64個小類。最終結合傳統(tǒng)的問句相似度算法即詞序相似度、詞形相似度、句長相似度、距離相似度加權求和計算形成一種新的針對答案特征信息的問句相似度計算方法。2)針對本體推理,為了避免復雜的詞法分析、句法分析和語義分析,本實施例提出了如何將用戶問題關鍵詞集與本體進行映射的方法;為了降低語義查詢語句創(chuàng)建的工作量和難度,本實施例利用本體模型中概念(類)、屬性、關系這三個元語,將用戶問題進行類別劃分形成問句模板,進而基于問句模板與語義查詢語句的映射關系,選擇對應的語義查詢語句去處理用戶的問題。3)本實施例解決了知識庫(FAQ和本體庫)的自動擴充學習問題,針對本體庫可以實現(xiàn)推理出的邏輯關系的自動創(chuàng)建,通過本體推理的結果可以自動創(chuàng)建成問題答案對擴充到FAQ庫中。與現(xiàn)有技術相比,本發(fā)明實施例具有以下優(yōu)點:1)相對于目前FAQ問答系統(tǒng)使用的問句相似度計算方法,本實施例提出的針對答案特征信息的問句相似度計算方法考慮的因素更加全面。2)相對于目前的本體推理問答系統(tǒng),本實施例提出利用本體模型的概念、屬性、關系這三個元語對用戶問題進行知識分解,并依此動態(tài)創(chuàng)建語義查詢語句,該方法的特點是不需要窮舉大量的句型模板和SPARQL語句,效率更高。3)相對于目前知識庫問答系統(tǒng)中的知識庫自學習能力,本實施例解決了FAQ和本體庫的自動擴充問題,從而提高了知識庫的自學習能力。
實施例四
基于前述的實施例,本發(fā)明實施例四提供一種知識問答裝置,該裝置所包括的各單元,以及各單元所包括的各模塊,都可以通過計算設備中的處理器來實現(xiàn),當然也可通過具體的邏輯電路實現(xiàn);在具體實施例的過程中,處理器可以為中央處理器(CPU)、微處理器(MPU)、數(shù)字信號處理器(DSP)或現(xiàn)場可編程門陣列(FPGA)等。需要說明的是,所述計算設備可以指任何具有計算能夠的電子設備,例如個人計算機、筆記本電腦等。
圖4為本發(fā)明實施例四知識問答裝置的組成結構示意圖,如圖4所示,該裝置400包括第一獲取單元401、第一判斷單元402、第二判斷單元403、計算單元404和輸出單元405,其中:
所述第一獲取單元401,用于獲取待回答的問題;
所述第一判斷單元402,用于判斷所述問題是否滿足預設的第一條件,得到第一判斷結果;
所述第二判斷單元403,用于當所述第一判斷結果表明所述問題不滿足預設的第一條件時,判斷所述問題是肯定型還是否定型,得到第二判斷結果;
這里,所述第二判斷單元,用于判斷所述問題是否滿足第三條件,其中所述第三條件包括第一子條件和第二子條件,其中第一子條件為分詞后的所述問題含有奇數(shù)個否定詞,所述第二子條件為所述否定詞前后兩個詞不能一樣;當所述問題滿足所述第一子條件和所述第二子條件時,確定所述問題屬于否定型,當所述問題不能同時滿足所述第一子條件和第二子條件時,所述問題屬于肯定型。
所述計算單元404,用于根據(jù)所述第二判斷結果計算FAQ庫中的問句與所述問題的相似度;
這里,所述計算單元,包括第二獲取模塊和計算模塊,其中:所述第二獲取模塊,用于當所述問題屬于肯定型時,從所述FAQ庫中獲取第一問句集合,所述第一問句集合為所述問題的陳述句相對應的問句;所述計算模塊,用于計算FAQ庫中的第一問句集合與所述問題的相似度。所述第二獲取模塊,還用于當所述問題屬于否定型時,從所述FAQ庫中獲取第二問句集合,所述第二問句 集合為所述問題的陳述句相反的問句;所述計算模塊,還用于計算FAQ庫中的第二問句集合與所述問題的相似度。
所述輸出單元405,用于將相似度滿足預設的第二條件的問句所對應的答案輸出。
本發(fā)明實施例中,所述輸出單元包括排序模塊、判斷模塊、第一獲取模塊和輸出模塊,其中:
所述排序模塊,用于對所述相似度進行排序,得到排序結果;
所述判斷模塊,用于判斷所述排序結果中是否有滿足所述第二條件的相似度,得到第三判斷結果;
所述第一獲取模塊,用于當所述第三判斷結果表明所述排序結果中有滿足所述第二條件的相似度時,獲取相似度滿足第二條件的問句所對應的答案;
所述輸出模塊,用于輸出所述答案。
這里需要指出的是:以上裝置實施例的描述,與上述方法實施例的描述是類似的,具有同方法實施例相似的有益效果,因此不做贅述。對于本發(fā)明裝置實施例中未披露的技術細節(jié),請參照本發(fā)明方法實施例的描述而理解,為節(jié)約篇幅,因此不再贅述。
實施例五
基于前述的實施例,本發(fā)明實施例四提供一種知識問答裝置,該裝置所包括的各單元,以及各單元所包括的各模塊,都可以通過計算設備中的處理器來實現(xiàn),當然也可通過具體的邏輯電路實現(xiàn);在具體實施例的過程中,處理器可以為中央處理器(CPU)、微處理器(MPU)、數(shù)字信號處理器(DSP)或現(xiàn)場可編程門陣列(FPGA)等。需要說明的是,所述計算設備可以指任何具有計算能夠的電子設備,例如個人計算機、筆記本電腦等。
圖5為本發(fā)明實施例五知識問答裝置的組成結構示意圖,如圖5所示,該裝置400包括第一獲取單元401、第一判斷單元402、第二判斷單元403、計算單元404、輸出單元405、第一確定單元406、第二確定單元407和第二獲取單 元408,其中所述輸出單元405包括排序模塊451、判斷模塊452、第一獲取模塊453和輸出模塊454,其中:
所述第一獲取單元401,用于獲取待回答的問題;
所述第一判斷單元402,用于判斷所述問題是否滿足預設的第一條件,得到第一判斷結果;
所述第二判斷單元403,用于當所述第一判斷結果表明所述問題不滿足預設的第一條件時,判斷所述問題是肯定型還是否定型,得到第二判斷結果;
這里,所述第二判斷單元,用于判斷所述問題是否滿足第三條件,其中所述第三條件包括第一子條件和第二子條件,其中第一子條件為分詞后的所述問題含有奇數(shù)個否定詞,所述第二子條件為所述否定詞前后兩個詞不能一樣;當所述問題滿足所述第一子條件和所述第二子條件時,確定所述問題屬于否定型,當所述問題不能同時滿足所述第一子條件和第二子條件時,所述問題屬于肯定型。
所述計算單元404,用于根據(jù)所述第二判斷結果計算FAQ庫中的問句與所述問題的相似度;
這里,所述計算單元,包括第二獲取模塊和計算模塊,其中:所述第二獲取模塊,用于當所述問題屬于肯定型時,從所述FAQ庫中獲取第一問句集合,所述第一問句集合為所述問題的陳述句相對應的問句;所述計算模塊,用于計算FAQ庫中的第一問句集合與所述問題的相似度。所述第二獲取模塊,還用于當所述問題屬于否定型時,從所述FAQ庫中獲取第二問句集合,所述第二問句集合為所述問題的陳述句相反的問句;所述計算模塊,還用于計算FAQ庫中的第二問句集合與所述問題的相似度。
所述排序模塊451,用于對所述相似度進行排序,得到排序結果;
所述判斷模塊452,用于判斷所述排序結果中是否有滿足所述第二條件的相似度,得到第三判斷結果;
所述第一獲取模塊453,用于當所述第三判斷結果表明所述排序結果中有滿足所述第二條件的相似度時,獲取相似度滿足第二條件的問句所對應的答案;
所述輸出模塊454,用于輸出所述答案。
所述第一確定單元406,用于當所述第三判斷結果表明所述排序結果中沒有滿足所述第二條件的相似度時,確定所述問題的句子模式;
所述第二確定單元407,用于根據(jù)所述句子模式確定SPARQL語句的動態(tài)參數(shù);
所述第二獲取單元408,用于根據(jù)所述SPARQL語句的動態(tài)參數(shù)和預設的推理規(guī)則獲取所述問題的答案;
對應地,所述輸出模塊454,用于輸出所述問題的答案。
這里,所述句子模式至少包括以下任意一種:對概念的查詢、對概念間的關系的查詢、對概念的屬性的查詢、對同一概念內(nèi)屬性之間的關系的查詢和對多個概念屬性之間的關系的查詢,其中所述概念間的關系包括上下位關系、同位關系和自定義關系。
本發(fā)明實施例中,所述方法還包括:將所述問題和所述問題的答案擴充到FAQ庫中。
本發(fā)明實施例中,所述第一確定單元包括提取模塊、對比模塊、替換模塊和確定模塊,其中:
所述提取模塊,用于對所述問題進行關鍵詞提取,得到所述問題對應的關鍵詞;
所述對比模塊,用于將所述問題對應的關鍵詞與本體庫中的概念屬性集合中關鍵詞進行相似度對比,得到對比結果;
所述替換模塊,用于根據(jù)對比結果將所述問題對應的關鍵詞替換成本體庫中的關鍵詞;
所述確定模塊,用于根據(jù)所述本體庫中各關鍵詞之間關系確定所述問題的句子模式。
這里需要指出的是:以上裝置實施例的描述,與上述方法實施例的描述是類似的,具有同方法實施例相似的有益效果,因此不做贅述。對于本發(fā)明裝置實施例中未披露的技術細節(jié),請參照本發(fā)明方法實施例的描述而理解,為節(jié)約 篇幅,因此不再贅述。
應理解,說明書通篇中提到的“一個實施例”或“一實施例”意味著與實施例有關的特定特征、結構或特性包括在本發(fā)明的至少一個實施例中。因此,在整個說明書各處出現(xiàn)的“在一個實施例中”或“在一實施例中”未必一定指相同的實施例。此外,這些特定的特征、結構或特性可以任意適合的方式結合在一個或多個實施例中。應理解,在本發(fā)明的各種實施例中,上述各過程的序號的大小并不意味著執(zhí)行順序的先后,各過程的執(zhí)行順序應以其功能和內(nèi)在邏輯確定,而不應對本發(fā)明實施例的實施過程構成任何限定。上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
需要說明的是,在本文中,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。
在本申請所提供的幾個實施例中,應該理解到,所揭露的設備和方法,可以通過其它的方式實現(xiàn)。以上所描述的設備實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,如:多個單元或組件可以結合,或可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另外,所顯示或討論的各組成部分相互之間的耦合、或直接耦合、或通信連接可以是通過一些接口,設備或單元的間接耦合或通信連接,可以是電性的、機械的或其它形式的。
上述作為分離部件說明的單元可以是、或也可以不是物理上分開的,作為單元顯示的部件可以是、或也可以不是物理單元;既可以位于一個地方,也可以分布到多個網(wǎng)絡單元上;可以根據(jù)實際的需要選擇其中的部分或全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各實施例中的各功能單元可以全部集成在一個處理單元中, 也可以是各單元分別單獨作為一個單元,也可以兩個或兩個以上單元集成在一個單元中;上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用硬件加軟件功能單元的形式實現(xiàn)。
本領域普通技術人員可以理解:實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲于計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括:移動存儲設備、只讀存儲器(Read Only Memory,ROM)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
或者,本發(fā)明上述集成的單元如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明實施例的技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設備(可以是個人計算機、服務器、或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分。而前述的存儲介質(zhì)包括:移動存儲設備、ROM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內(nèi),可輕易想到變化或替換,都應涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應以所述權利要求的保護范圍為準。