張克亮,李偉剛,王慧蘭
(1. 解放軍外國語學院,河南 洛陽 471003;2. 空軍指揮學院, 北京 100097)
?
基于本體的航空領域問答系統(tǒng)
張克亮1,李偉剛2,王慧蘭2
(1. 解放軍外國語學院,河南 洛陽 471003;2. 空軍指揮學院, 北京 100097)
該文設計并實現(xiàn)了基于本體的航空領域問答系統(tǒng),該問答系統(tǒng)采用面向領域本體的問題分類方法和結構化語義信息提取方法,將自然語言問題轉(zhuǎn)換為SPARQL查詢語句,在本體知識庫中檢索答案。實驗結果表明,該系統(tǒng)能夠處理該領域內(nèi)的大部分常見問題,取得了82.97%的平均準確率。
問答系統(tǒng);本體知識庫;問題類型;結構化語義
互聯(lián)網(wǎng)是人類歷史上的一項偉大發(fā)明,它大大加速了人類文明的進程,人們借助搜索引擎可以便捷地獲取互聯(lián)網(wǎng)上的信息。然而,隨著信息的爆炸式增長,搜索引擎也越來越不能滿足用戶快速、準確獲取信息的需求。尤其在特定領域,例如,醫(yī)療、金融、旅游、教育、軍事等,用戶迫切需要更加智能、準確的信息檢索工具。
在這種背景下,問答系統(tǒng)逐漸成為國內(nèi)外研究的重要課題。問答系統(tǒng)允許用戶以自然語言方式進行提問,系統(tǒng)返回準確、簡潔的答案。因此問答系統(tǒng)比搜索引擎更方便、高效,將是下一代搜索引擎發(fā)展的方向。
近年來,隨著語義網(wǎng)的快速發(fā)展,傳統(tǒng)的Web頁面中引入了語義知識,即不僅局限于展示頁面內(nèi)容,而且增加語義信息,使得Web上的信息能夠被機器自動處理。谷歌的研究表明當前互聯(lián)網(wǎng)上有5%的網(wǎng)頁經(jīng)過了語義標注,而標注網(wǎng)頁的數(shù)量預計很快會達到50%*Google Semantic Technologies invited talk, San Francisco, 2010:http:www.readwriteweb.com/archives/google_semantci_web_push_rich_snippets_usage_grow.php。網(wǎng)絡上語義資源的極大豐富,為我們開發(fā)更加智能、新一代知識檢索工具提供了可能。國外研究機構已經(jīng)發(fā)布了多個基于本體的問答系統(tǒng),例如,QuestIO、QACID、PowerAqua、Pythia等,這些問答系統(tǒng)的成功也為基于本體問答系統(tǒng)的研究指出了新的方向。
目前國內(nèi)外眾多研究人員將領域本體運用到問答系統(tǒng)中,希望利用本體的語義描述信息和推理能力來提高問答系統(tǒng)的性能。
PowerAqua[1]是面向整個語義網(wǎng)上語義資源的問答系統(tǒng)。該系統(tǒng)首先將用戶問題轉(zhuǎn)換為查詢?nèi)M,其次借助PowerMap模塊將查詢關鍵詞映射為各種可能的語義資源,并排除不合理的映射;再次利用三元組映射模塊將前兩個階段的結果映射到本體知識庫中對應的成分;最后系統(tǒng)將各個知識庫中查詢的答案進行整合,經(jīng)過排序后返回給用戶。該系統(tǒng)能夠?qū)Υ笮?、異構的語義資源庫進行查詢,但是缺乏處理復雜問題的能力。
Pythia[2]問答系統(tǒng)使用基于本體的語法對用戶問題進行深層分析,該部分利用LTAG進行句法分析、DUDEs進行語義分析,將問題轉(zhuǎn)換為FLogic形式查詢語言,最后在DBpedia本體知識庫中查找問題答案。由于該系統(tǒng)采用了深層句法分析,因此能夠回答各類復雜的問題,例如,“最高”、“最大”等最值問題,以及“超過”、“小于”等比較類問題,并取得了67%的準確率和82%的召回率。
而在國內(nèi),李茹等人[3]設計了旅游信息問答系統(tǒng),在TREC定義的問題類型基礎上,利用本體思想,對旅游領域問題進行分類,具體分為人物、地點、時間、數(shù)字、實體、描述和其他等七種問題類型。
張巍[4]在其設計的醫(yī)院領域問答系統(tǒng)中,采用本體技術構建醫(yī)院領域本體知識庫,對用戶查詢進行淺層語義分析,借助預先定義的語義塊和語義塊判定規(guī)則,生成問句向量。最后將生成的問句向量轉(zhuǎn)換成形式化查詢語言SPARQL,并在本體知識庫中查詢問題答案,系統(tǒng)取得了較高的查準率和查全率。
已有的研究成果為本研究奠定了堅實的基礎,本研究不僅將本體知識庫作為答案獲取的知識源,還將其充分運用在問題分析的整個過程中,研究基于本體的問題分類方法以及結合問題類型獲取問題結構化語義的方法,從而提高問題理解的能力,改善基于本體問答系統(tǒng)的性能。
常見的問答系統(tǒng)通常由三部分組成: 問題分析、信息檢索和答案處理。基于本體問答系統(tǒng)的體系結構與常見的問答系統(tǒng)有所不同,它的知識源不是非結構化的文檔集合,而是結構化并且具有明確語義的知識庫,所以檢索到的就是準確的答案,不需要再進行答案抽取。該類問答系統(tǒng)通常包括問題分析和本體知識庫查詢兩部分。因此需要針對本體知識庫的特點,運用一系列與之相適應的處理技術,才能有效提高問答系統(tǒng)的性能。本研究構建的問答系統(tǒng)的流程如圖1所示。
圖1 問答系統(tǒng)流程圖
問答系統(tǒng)首先進行分詞、詞性標注以及停用詞處理等形態(tài)分析;其次,采用基于本體的問題分類方法對問題進行分類;然后,根據(jù)問題類型提取句子的結構化語義信息,并對每種類型問題編寫相應的SPARQL查詢模板;最后將問題的結構化語義結合SPARQL查詢模板生成問題對應的SPARQL查詢語句,在本體知識庫中查找問題的答案,并生成最終的答案。
4.1 形態(tài)分析
在形態(tài)分析階段,我們采用中國科學院計算技術研究所的漢語詞法分析系統(tǒng)ICTCLAS,該系統(tǒng)是目前最優(yōu)秀的中文詞法分析系統(tǒng)之一。但是處理特定領域文本時,因為大量的專業(yè)術語沒有被收錄到系統(tǒng)詞庫中,造成分詞的結果不準確,甚至是錯誤。例如,“F-22戰(zhàn)斗機掛載的空空導彈有哪些”的分詞和詞性標注結果為:
F/x-22/m 戰(zhàn)斗機/n 掛載/v 的/u 空空導彈/n 有/v 哪些/r
專有術語“F-22戰(zhàn)斗機”被切分成多個詞語的碎片“F/x-22/m 戰(zhàn)斗機/n”,這些詞語在軍用飛機領域中表示獨立的概念,如果作為一個專業(yè)術語來處理對后續(xù)的問題理解和檢索則會更加準確、方便。利用之前研究構建的軍用飛機和艦船本體知識庫[5],將本體知識庫中的類名、實例名、屬性名作為領域?qū)I(yè)術語,構建了規(guī)模為2 100詞的領域?qū)I(yè)詞庫,這樣系統(tǒng)進行分詞時就會優(yōu)先按照用戶自定義詞典中的詞條進行分詞,從而將領域?qū)I(yè)術語正確的識別出來。
問題分析階段的一個重要任務就是將問題中的關鍵詞映射為本體中對應的元素,這樣才能從語義層次上對問題進行理解。為了方便關鍵詞向本體元素的映射,我們結合本體知識表達的方式,定義了幾個本體標示符,它們分別是TYPE、OP、DP、ST。其中TYPE代表本體中的類,例如,“戰(zhàn)斗機”就是一個類。OP代表對象屬性,它將本體中的兩個類或者實例關聯(lián)起來,例如,“掛載”就是一個OP,<戰(zhàn)斗機,掛載,空空導彈>就是它的一個例子。DP代表數(shù)據(jù)屬性,它用來描述類的內(nèi)在屬性,它將一個實例和字符串或數(shù)值關聯(lián)起來,例如,“作戰(zhàn)半徑”就是一個DP。ST代表本體中的具體實例,例如,“F-22戰(zhàn)斗機”就是一個實例。
本體通過若干個相互關聯(lián)的三元組來描述領域知識,其中每個三元組可以表示為<主語,謂語,賓語>的形式。其中主語通常表示某個類或?qū)嵗簿褪潜倔w標示符TYPE或ST,賓語可以是某個個體或者字符串,也就是本體標示符ST,而三元組中的謂語則由OP或DP充當。
按照類似的方法,我們將軍用飛機和艦船領域?qū)I(yè)詞庫進行本體標注,也就是將領域內(nèi)的專業(yè)術語賦予明確的語義類別。添加領域詞表后,ICTCLAS就能直接識別問題中和本體元素直接對應的關鍵詞,并將它們的語義類別標示出來?!癋-22戰(zhàn)斗機掛載的空空導彈有哪些”進行詞性標注、本體映射以及停用詞處理后的結果為:
F-22戰(zhàn)斗機[ST] 掛載[OP] 空空導彈[TYPE] 有/v 哪些/r
問答系統(tǒng)就能理解“F-22戰(zhàn)斗機”是戰(zhàn)斗機的具體型號,“中程空空導彈”表示的是一種機載武器,“掛載”則是“F-22戰(zhàn)斗機”和“中程空空導彈”之間的語義關系。此時,這些關鍵詞不再是孤立的、毫無關系的,而是賦予了計算機可以理解的語義,并且建立起了語義關聯(lián)。
4.2 基于本體的問題分類
通過對領域內(nèi)大量問題的分析,我們發(fā)現(xiàn)一個問題往往包含一個或者多個已知條件,一個或者多個未知條件,不存在沒有已知或未知條件的問題。問題中的未知條件即是該問句所對應的答案類型,已知條件作為對未知條件的約束條件而存在。因此,只要分析出問題中所有的已知條件和未知條件,并利用本體對這些條件進行標注,提取問題的結構化語義信息,便可以說理解了這個問題。
當前,無論基于統(tǒng)計還是基于規(guī)則的問題分類方法中,缺乏語義理解的問題一直沒有得到解決。這是因為要解決語義問題,必須建立一個通用的語義詞典,在開放領域中困難是很大的。而在特定領域中,由于詞匯較少、詞匯的歧義也相對較少,我們才有可能借助領域本體對問題進行分類,并對關鍵詞進行語義解釋,挖掘關鍵詞之間的語義關系,這樣才能準確理解問題。
通過對本體的相關介紹我們得知,本體對領域知識描述的基礎是類、屬性和實例這三個本體描述元語。利用本體描述元語可以將用戶的查詢需求拆解,進行問題分類,類似的研究參見戴維民[6]、劉杰[7]等,這些研究的不足在于它們的問題分類種類較少,不能很好覆蓋用戶查詢需求。
假設1 用戶查詢問題的語義可以用一個或者多個三元組近似地表示,三元組表示形式為<主語,謂語,賓語>。“F-22戰(zhàn)斗機掛載了哪些空空導彈”的三元組表示為:
假設2 本體標示符TYPE和ST可以對應三元組中的主語或賓語,而DP和OP則對應謂語;
本研究分析了大量軍用飛機和艦船領域用戶查詢問題,將用戶的查詢需求拆解為以下幾種基本類型:
① 查詢某一類事物,例如,“什么是電子偵察機”;
② 查詢某一類事物的分類,例如,“轟炸機 包括哪些類型”;
③ 查詢某一類事物的某一方面屬性,例如,“什么是戰(zhàn)斗機的轉(zhuǎn)場航程”;
④ 查詢某一類事物中實例的最值,例如,“世界上排水量 最大的航空母艦是哪個”;
⑤ 查詢某一實例某一方面的屬性值,例如,“F-35戰(zhàn)斗機的作戰(zhàn)半徑 是多少千米”;
⑥ 查詢某一實例與其他實例之間的關系,例如,“金剛級驅(qū)逐艦的制造商是誰”;
⑦ 比較兩個實例的某一方面的屬性,例如,“B-2轟炸機和B-52轟炸機的載彈量誰的大”;
⑧ 查詢某一實例與某一類事物實例的關系,例如,“蘇27戰(zhàn)斗機 掛載的空空導彈有哪些”;
⑨ 查詢屬性值為某一給定值的一類事物,例如,“作戰(zhàn)半徑 大于1500千米的戰(zhàn)斗機有哪些”;
⑩ 查詢兩個實例是否存在特定關系,例如,“小鷹號航母 部署在橫須賀海軍基地嗎”;
除了上述幾種基本問題類型外,還包括由這些基本問題類型組合而成的復雜問題類型,例如,
假設3 用本體標示符表示問題中已知信息,用“?”或者“?+本體標示符”表示待查詢對象,就是答案類型。用符號m表示數(shù)值,Max表示最值類型問題,Comp表示比較類型問題。
基于上述三條假設,將問題類型形式化表示,結果如表1所示。
表1 問題類型形式化表示
4.3 問題類型識別
借助形式化的問題類型,問答系統(tǒng)對問題形態(tài)分析后,就能初步判斷它的問題類型,提取問題的結構化語義,獲取問題的已知和未知信息?!癋-22戰(zhàn)斗機掛載的空空導彈有哪些”形態(tài)分析后的結果為:
F-22戰(zhàn)斗機[ST] 掛載[OP] 空空導彈[TYPE] 有/v
問答系統(tǒng)根據(jù)問題中的標記符號的組合與問題類型匹配,如果能夠直接匹配,就確定問題類型,而問題中的動詞“有/v”此時將忽略,不做處理。該問題類型形式化表示為“ST+OP+TYPE”,對應的問題類型為⑧,即查詢實例“F-22戰(zhàn)斗機”和“空空導彈”類中的哪些實例存在“掛載”關系。如果沒有對應的問題類型,則需要判斷問題中其他關鍵詞能否映射為本體中的對應元素,映射之后再次匹配問題類型。
再比如問題“排水量大于50 000噸的航空母艦有哪些”,形態(tài)分析后結果為:
排水量[DP] 大于/v 50 000/m 噸/q 航母[TYPE] 有/v
根據(jù)問題的標記符號組合,該問題類型為⑨,但是還需要進一步判斷問題中的動詞“大于/v”,才能最終確定問題的語義。因為用戶也可能會查詢“排水量小于50 000噸的航空母艦有哪些”、“排水量大于50 000而小于90 000噸的航空母艦有哪些”之類的問題,而這幾種問題雖然屬于同一個問題類型,但是查詢策略和查詢結果是完全不同的,需要根據(jù)問題中的動詞做具體的區(qū)分。
4.4 結構化語義獲取
要想進一步提高問答系統(tǒng)的性能,單純依靠詞法、句法的分析是遠遠不夠的,必須要進行語義甚至語用方面的分析。所謂語義分析,指的是根據(jù)句子的句法結構和句中每個實詞的語義推導出能夠反映這個句子意思(即語義)的某種形式化表示。語義分析的目的在于獲取問題的結構化語義,分析問題的已知和未知信息。
用戶問題經(jīng)過形態(tài)分析和問題分類之后,大部分問題就能獲取對應的問題類型,實現(xiàn)初步的語義理解。由于我們使用本體進行知識表示,這就要求在問題處理中要進行深層次的語義挖掘?!癋-22戰(zhàn)斗機掛載的空空導彈有哪些”的問題類型是“ST + OP + TYPE”,本體三元組表達式為
< F-22戰(zhàn)斗機[ST],掛載[OP],?空空導}
其中?空空導彈是問題的答案,它的語義類別是空空導彈,是問題的未知信息。將問題的三元組表達轉(zhuǎn)換為本體三元組的目的在于獲取問題的結構化語義,明確答案的語義類型,提高問答系統(tǒng)的準確率。如果只是利用“F-22戰(zhàn)斗機”、“掛載”這兩個關鍵詞在本體知識庫中查詢問題答案,會返回許多不相關的答案。因為在本體知識庫中定義了<戰(zhàn)斗機,掛載,空空導彈/空地導彈/空艦導彈>,不對問題答案做任何的語義限制,就返回“F-22戰(zhàn)斗機”掛載空地導彈和空艦導彈的信息,而這些內(nèi)容不是用戶需要的。
問答系統(tǒng)提取問題的結構化語義后,就可以將其方便地轉(zhuǎn)換成本體查詢語句,在本體知識庫中查找答案。在本研究中,我們采用Jena*http://jena.apache.org/對本體進行解析、操作,使用SPARQL*http://www.w3.org/TR/rdf-sparql-query/語言進行本體知識庫查詢,最終返回問題答案。
對每種問題類型編寫相應的SPARQL查詢模板,從而解決自然語言問題向SPARQL查詢語句轉(zhuǎn)換的難題。SPARQL查詢模板中的內(nèi)容都是本體標示符,要想在本體知識庫中查詢問題的答案,還必須將問題的本體三元組和對應的SPARQL查詢模板結合起來,將SPARQL查詢模板中的本體標示符替換為問題中的關鍵詞,這樣才能最終生成問題的SPARQL查詢語句。“F-22戰(zhàn)斗機掛載了哪些空空導彈”的本體三元組結合該問題的SPARQL查詢模板,生成SPARQL查詢語句為:
@prefix mil:
@prefix rdf:
SELECT ?空空導彈
WHERE { mil:F-22戰(zhàn)斗機 mil:掛載 ?空空導彈. ?空空導彈 rdf: type mil:空空導彈.}
在生成SPARQL查詢表達式的過程中,還需要對問題中的一些特殊詞進行處理。比如,問題類型④中,需要對問題中諸如“最大”、“最小”、“最重”、“最多”、“最少”等詞語進行識別,這樣才能夠?qū)栴}正確的理解,并借助FILTER、LIMIT、ORDER BY等限定詞生成準確的SPARQL查詢語句。問答系統(tǒng)最終返回的答案為: AIM-120先進中距空空導彈和AIM-9響尾蛇空空導彈。
本實驗主要是檢測基于本體知識庫問答系統(tǒng)的問題分析及答案查找能力,采用以下方法評測: 對于每一個問題人工預先給出正確的結構化語義和問題答案,然后讓問答系統(tǒng)對問題進行分析并查找問題答案,如果返回結果與人工給出的結果一致或相似,則認為回答正確,否則錯誤。該實驗主要采用問題分析、答案查找準確率來衡量問答系統(tǒng)的性能。
問題分析準確率是指問答系統(tǒng)正確識別結構化語義的問題數(shù)量與所有識別問題所占的比率,其計算公式為式(1)。
(1)
答案查找準確率是指問答系統(tǒng)返回正確的答案占所有返回答案的比率,其計算公式為式(2)。
(2)
為了檢驗該問答系統(tǒng)的效果,分別從百度知道的艦船、戰(zhàn)斗機版塊、愛問知識人的艦船飛機版塊以及搜搜問問的軍事武器版塊中各搜集了200個問題。這些版塊中包含各種不同內(nèi)容和形式的領域問題,而且來自不同的提問者和出處,該測試集具有一定的普遍性,領域本體則采用本研究構建的軍用飛機和艦船本體知識庫。
實驗檢驗了問答系統(tǒng)的問題分析及答案查詢能力,實驗結果顯示,平均問題分析準確率為88.32%,平均答案查找準確率為82.97%,實驗結果如表2所示。
表2 問題分析及答案查找實驗結果
通過對實驗結果分析發(fā)現(xiàn),導致問題分析、答案查找錯誤的主要原因在于:
第一,問題類型判斷錯誤。一類錯誤是因為本文提出的問題類型無法覆蓋用戶輸入的問題,在后續(xù)研究中,還需要繼續(xù)豐富、完善基本問題類型,盡可能全面的滿足領域問題的查詢需求;另一類錯誤是因為問題的結構過于復雜, 從而導致問題分析模
塊無法識別或者誤解其問題類型,例如,“蘇-35戰(zhàn)斗機和F-22戰(zhàn)斗機的作戰(zhàn)能力相比怎么樣?”。因此,在問題分析過程中引入句法分析技術也是很有必要的,從而提高問答系統(tǒng)對不符合規(guī)范、結構復雜問題的處理能力。
第二,本體知識庫缺乏回答問題的知識。大多數(shù)錯誤是因為本體知識庫中缺乏回答這些問題的知識,問答系統(tǒng)要么回答不知道,要么返回一個不相關的答案。在進一步的研究中,還需要不斷完善、擴充本體知識庫的質(zhì)量和容量。
本文采用面向領域本體的問題分類方法和結構化的語義信息提取方法,借助SPARQL語句在本體知識庫中查詢問題答案,在一定程度上提高了用戶問題理解和問題分類的準確性,改善了領域問答系統(tǒng)的性能。
[1] Lopez V, Fernandez M, Motta E, Stieler N. PowerAqua: Supporting users in querying and exploring the Semantic Web[J]. Sematic Web Journal, 2011,3(3):249-265.
[2] Unger C, Cimiano P. Pythia: Compositional meaning construction for ontology-based question answering on the Semantic Web[C]//Proceedings of the 16th International Conference on Applications of Natural Language to Information Systems, 2011:153-160.
[3] 李茹,王文晶,梁吉業(yè),等. 基于漢語框架網(wǎng)的旅游信息問答系統(tǒng)設計[J]. 中文信息學報, 2009,23(2): 34-40.
[4] 張巍. 融合FAQ、本體和Jena推理機技術的問答系統(tǒng)研究[D]. 太原理工大學博士學位論文,2011:153-160.
[5] 李偉剛,張克亮,王慧蘭. 基于航空領域本體知識庫的語義檢索研究[C]//第十一屆全國計算語言學年會,2011.
[6] 戴維民. 語義網(wǎng)信息組織技術與方法[M]. 上海: 學林出版社,2008.
[7] 劉杰,樊孝忠,王濤. 基于本體的受限領域問答系統(tǒng)研究[J]. 廣西師范大學學報,2009, 3(1):169-173.
Ontology-based Question Answering System for Aviation Domain
ZHANG Keliang1, LI Weigang2, WANG Huilan2
(1. University of Foreign Language, Luoyang, Henan 471003, China;2. Air Force Command College, Beijing 100097, China)
We design and implement an ontology-based QA system for aviation domain, It adopts the approach of classifying questions with the help of domain-specific ontology and obtains structural semantic information for the question. Then the question is converted into SPARQL query for answer extraction. The experimental result shows that the system can understand most of the questions with a precision rate of 82.97%.
Question answering system; ontology knowledge base; question type; structural semantic
張克亮(1964—),博士,教授,主要研究領域為計算語言學、機器翻譯、知識工程。E-mail:kliang99@sina.com李偉剛(1985—),博士研究生,講師,主要研究領域為知識工程,領域本體構建。E-mail:a611z@163.com王慧蘭(1982—),博士,講師,主要研究領域為計算語言學,現(xiàn)代漢語語法。E-mail:hlwang9@sina.com
1003-0077(2015)04-0192-07
2013-04-08 定稿日期: 2013-07-27
TP391
A