本發(fā)明涉及人工智能中語義網(wǎng)領(lǐng)域,特別是一種基于多數(shù)據(jù)源的本體學(xué)習(xí)方法。
背景技術(shù):
在語義網(wǎng)中,本體(ontologies)作為形式化的知識表示扮演著重要的角色。本體為不同領(lǐng)域提供共享的詞匯,給計算機處理web信息提供了方便。按照gruber的定義,本體是感興趣領(lǐng)域的共享的概念化的顯式規(guī)約。作為規(guī)約,本體需要通過某種語言表達,例如使用rdfs或者owl。隨著owl成為w3c推薦的本體語言標準,越來越多的本體用owl語言來表達。owldl是比較常用的子語言,它在語義上等價于某種描述邏輯(descriptionlogics,dl)語言,并對應(yīng)著一階謂詞邏輯中可判定的子語言,為語義網(wǎng)提供了堅實的邏輯基礎(chǔ)。由于owldl是可判定的(decidable),即擁有在有限時間內(nèi)可終止的推理機制,而owlfull沒有可判定性,一個owldl本體通常是有abox和tbox組成,abox是由一組描述實例之間關(guān)系的公理組成,tbox是由一組描述概念和屬性間的公理組成,比如包含關(guān)系和不交關(guān)系。從實體的角度來說,一個owldl本體是由概念、屬性和實例組成,其中概念是現(xiàn)實世界中概念的抽象,屬性是描述概念之間的關(guān)系,而實例則是現(xiàn)實世界中的個體。
本體學(xué)習(xí)是信息提取的子任務(wù)之一,其目標是自動或半自動地從給定的語料庫或數(shù)據(jù)源中提取概念、關(guān)系或公理,用來構(gòu)建本體。本體學(xué)習(xí)的數(shù)據(jù)源可以是像數(shù)據(jù)庫之類的結(jié)構(gòu)化數(shù)據(jù),像xml之類的半結(jié)構(gòu)化數(shù)據(jù),或者像文本之類的非結(jié)構(gòu)化數(shù)據(jù)。針對不同類型的數(shù)據(jù)源,人們提出了各種各樣的本體學(xué)習(xí)方法。
隨著語義網(wǎng)的不斷發(fā)展,特別是鏈接開放數(shù)據(jù)(linkingopendata,lod)項目的提出,大量的語義數(shù)據(jù)可供使用。例如,dbpedia的最新版本dbpedia2015-04(英文版)包含了7.37億個rdf三元組。在此基礎(chǔ)上,為了提高搜索質(zhì)量,谷歌、百度和搜狗等著名搜索引擎公司紛紛構(gòu)建了各自的知識圖譜(knowledgegraph)。另外,還有一些知識庫構(gòu)建工具在源源不斷地從web頁面中抽取大量的事實,使得語義數(shù)據(jù)的規(guī)模越來越龐大,其中事實就是本體中的斷言(assertions)或?qū)嵗龑拥男畔ⅰ@?,nell從2010年1月開始,每天24小時不間斷地迭代學(xué)習(xí)信念(即事實),截止到2015年已經(jīng)收集了8千多萬個信念。
大量的語義數(shù)據(jù)極大地推動了語義網(wǎng)的實現(xiàn),使得語義網(wǎng)技術(shù)能夠得到更為實際的應(yīng)用。這些語義數(shù)據(jù)雖然包含了眾多的rdf三元組,但往往缺少豐富的模式層信息。拿lod的核心數(shù)據(jù)集dbpedia為例,雖然它包含了非常多斷言,而其本體主要定義了概念(或?qū)傩裕┲g的層次關(guān)系以及屬性的值域和定義域,缺少了存在量詞約束、全稱量詞約束和數(shù)量約束等公理。這些公理的缺失,給語義數(shù)據(jù)的整合、查詢和維護等關(guān)鍵語義網(wǎng)任務(wù)帶來了不便。
研究者們提出各種方法從語義數(shù)據(jù)中學(xué)習(xí)模式層信息,大致可分為基于歸納邏輯編程(inductivelogicprogramming,ilp)的方法、基于關(guān)聯(lián)規(guī)則挖掘(associationrulemining,arm)的方法和啟發(fā)式方法。ilp結(jié)合了機器學(xué)習(xí)和邏輯編程技術(shù),使得人們可以從實例和背景知識中獲得邏輯結(jié)論。jenslehmann等提出用向下精化算子學(xué)習(xí)alc的概念定義公理的方法。johannav?lker等人介紹了從rdf數(shù)據(jù)中生成本體的統(tǒng)計方法,該方法通過sparql查詢來獲取信息,用以構(gòu)建事務(wù)表。在他們的后續(xù)工作中,使用負關(guān)聯(lián)規(guī)則挖掘技術(shù)學(xué)習(xí)不交公理。為了提高本體學(xué)習(xí)的伸縮性(scalability),lorenzbühmann等人針對可以通過sparql查詢終端進行查詢的知識庫提出一種輕量級的模式構(gòu)建方法,該方法需要對每種公理類型(例如不交公理和描述屬性的值域的公理)構(gòu)建相應(yīng)的sparql查詢語句,然后使用統(tǒng)計的方法為每個學(xué)到的公理賦予一個分值(score),用來篩選公理。
目前的本體學(xué)習(xí)方法往往只局限于從單數(shù)據(jù)源進行本體學(xué)習(xí),而忽略了從日益豐富的現(xiàn)有本體庫和知識圖譜資源中獲取相關(guān)信息,對單數(shù)據(jù)源進行擴充。
技術(shù)實現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是克服現(xiàn)有技術(shù)的不足而提供一種基于多數(shù)據(jù)源的本體學(xué)習(xí)方法,通過在學(xué)習(xí)前挖掘多數(shù)據(jù)源中實體之間的關(guān)系,將多個松散的數(shù)據(jù)源結(jié)合起來,變成一個有機的整體,為學(xué)習(xí)更多有意義的結(jié)果提供便利。
本發(fā)明為解決上述技術(shù)問題采用以下技術(shù)方案:
根據(jù)本發(fā)明提出的一種基于多數(shù)據(jù)源的本體學(xué)習(xí)方法,包括以下步驟:
步驟1、從已有本體庫和知識圖譜中,通過人工選擇或本體間相似度計算工具,選擇與輸入數(shù)據(jù)源s領(lǐng)域相關(guān)的數(shù)據(jù)源t;
步驟2、使用本體匹配技術(shù)計算數(shù)據(jù)源s與步驟1選擇出的數(shù)據(jù)源t之間的關(guān)系,并根據(jù)這些關(guān)系對數(shù)據(jù)源s的信息進行擴展;具體如下:
步驟2-1、根據(jù)本體匹配技術(shù)中的模式匹配技術(shù),獲得數(shù)據(jù)源s與數(shù)據(jù)源t中概念和屬性之間的對應(yīng)關(guān)系;
步驟2-2、如果數(shù)據(jù)源s中的概念c1對應(yīng)到數(shù)據(jù)源t中的概念c2,則在數(shù)據(jù)源s中聲明概念c1等價于概念c2;如果數(shù)據(jù)源t中概念c2包含某個實例,則在數(shù)據(jù)源s中聲明該實例是概念c1的實例;
步驟2-3、如果數(shù)據(jù)源s中的屬性p1對應(yīng)到數(shù)據(jù)源t中的屬性p2,則在數(shù)據(jù)源s中聲明屬性p1等價于屬性p2;如果數(shù)據(jù)源t中屬性p2包含某個實例,則在數(shù)據(jù)源s中聲明該實例是屬性p1的實例;
步驟2-4、根據(jù)本體匹配技術(shù)中的實例匹配技術(shù),獲得數(shù)據(jù)源s與數(shù)據(jù)源t中實例之間的對應(yīng)關(guān)系;如果數(shù)據(jù)源s中的實例i1對應(yīng)到數(shù)據(jù)源t中實例i2上,則在數(shù)據(jù)源s中聲明實例i1等于實例i2;
步驟3、對擴充后的數(shù)據(jù)源s的不一致性進行處理,使得數(shù)據(jù)源s的不一致度低于預(yù)設(shè)的閾值;
步驟4、挑選一個公理學(xué)習(xí)工具,將經(jīng)步驟3處理過的數(shù)據(jù)源s作為其輸入,展開公理學(xué)習(xí);
步驟5、對公理學(xué)習(xí)的結(jié)果進行過濾,具體如下:
步驟5-1、根據(jù)預(yù)設(shè)的閾值,刪除學(xué)習(xí)結(jié)果中權(quán)重小于閾值的公理;
步驟5-2、刪除掉包含owl、rdf和rdfs本體語言中專用詞匯的公理;
步驟6、根據(jù)步驟5中過濾后的結(jié)果構(gòu)建本體,并通過本體調(diào)試和修補策略達到本體的一致。
作為本發(fā)明所述的一種基于多數(shù)據(jù)源的本體學(xué)習(xí)方法進一步優(yōu)化方案,步驟5中根據(jù)預(yù)設(shè)的閾值,過濾權(quán)重小于閾值的學(xué)習(xí)結(jié)果。
作為本發(fā)明所述的一種基于多數(shù)據(jù)源的本體學(xué)習(xí)方法進一步優(yōu)化方案,步驟5中根據(jù)實體名稱的前綴,過濾專用詞匯。
作為本發(fā)明所述的一種基于多數(shù)據(jù)源的本體學(xué)習(xí)方法進一步優(yōu)化方案,實體名稱的前綴為以rdf、rdfs和owl開頭。
作為本發(fā)明所述的一種基于多數(shù)據(jù)源的本體學(xué)習(xí)方法進一步優(yōu)化方案,步驟3中采用本體調(diào)試和修補策略對擴充后的數(shù)據(jù)源進行不一致性處理。
作為本發(fā)明所述的一種基于多數(shù)據(jù)源的本體學(xué)習(xí)方法進一步優(yōu)化方案,步驟6中采用本體調(diào)試和修補策略對本體進行不一致性處理。
本發(fā)明采用以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)效果:
(1)本發(fā)明更有效地利用數(shù)據(jù)源中的信息來提高學(xué)習(xí)的效果,改變傳統(tǒng)的針對單個數(shù)據(jù)源進行逐個學(xué)習(xí)而忽略數(shù)據(jù)源之間潛在的關(guān)系;
(2)本發(fā)明是對已有本體學(xué)習(xí)方法的一個有意義的擴展,通過挖掘多數(shù)據(jù)源中概念、屬性和實例之間的關(guān)系,為本體學(xué)習(xí)提供更多有用的信息,從而達到提高本體學(xué)習(xí)召回率的效果。
附圖說明
圖1是基于多數(shù)據(jù)源的本體學(xué)習(xí)過程;
圖2是從ntn子本體中獲取術(shù)語的示例;
圖3是從ntn子本體中學(xué)習(xí)到的不交公理的示例。
具體實施方式
下面結(jié)合附圖對本發(fā)明的技術(shù)方案做進一步的詳細說明:
本發(fā)明主要考慮從目前比較熱門的語義數(shù)據(jù)進行本體學(xué)習(xí),該數(shù)據(jù)屬于半結(jié)構(gòu)化數(shù)據(jù),本發(fā)明提出的本體學(xué)習(xí)方法可以很容易地擴展到其他數(shù)據(jù)源之上的本體學(xué)習(xí)。
如圖1所示,基于多數(shù)據(jù)源的本體學(xué)習(xí)過程主要分為數(shù)據(jù)源的處理、公理的學(xué)習(xí)和本體的構(gòu)建三大步。下面具體介紹:
1.數(shù)據(jù)源的處理
隨著語義網(wǎng)的發(fā)展,越來越多的本體和知識圖譜可以從網(wǎng)上免費下載,涵蓋了眾多的領(lǐng)域,例如生物、醫(yī)學(xué)、地理和常識知識等。例如,lod的核心數(shù)據(jù)集dbpedia,該數(shù)據(jù)集是從維基百科中自動抽取出來的,涵蓋了各行各業(yè)的數(shù)據(jù),并構(gòu)建了包含概念的層次關(guān)系、屬性的值域和定義域定義等信息的本體,為其實例層數(shù)據(jù)的使用提供了約束。從這些現(xiàn)有數(shù)據(jù)集中,首先需要人工的挑選出同用于學(xué)習(xí)的單個數(shù)據(jù)源相關(guān)的數(shù)據(jù)集,然后采用自動的方法尋找多數(shù)據(jù)源之間的相關(guān)性。
在計算多數(shù)據(jù)源之間相關(guān)性時,本方法使用本體匹配技術(shù)。該技術(shù)旨在通過計算本體中相關(guān)實體間的對應(yīng)關(guān)系來解決語義異構(gòu)問題,大體上可以分為模式層匹配技術(shù)和實例層匹配技術(shù),一般是通過字符串匹配、字典、上下文結(jié)構(gòu)等信息計算概念、屬性和實例之間的相似度。通過本體匹配技術(shù)計算好實體間的對應(yīng)關(guān)系后,本方法利用本體調(diào)試和修補技術(shù)對得到的本體映射進行不一致性處理。最終得到的合并后的數(shù)據(jù)源,便是可以用于本體學(xué)習(xí)的數(shù)據(jù)集。
為了便于解釋,本發(fā)明將一個用于學(xué)習(xí)的數(shù)據(jù)源根據(jù)其abox拆分成若干個子本體,由此將原本有可能關(guān)聯(lián)的信息給刪除掉了。在這種情況下,無需使用本體匹配技術(shù)來計算多數(shù)據(jù)源實體間的關(guān)系。在本發(fā)明中,選擇一個比較著名的ntn本體作為用于學(xué)習(xí)的數(shù)據(jù)源,該本體包含了195個tbox公理和3107個abox公理,其實體包含了49個概念、38個屬性和724個實例。在共享tbox的情況下,將abox的公理平分成四份,每個子本體包含了原來的tbox和一份分好后的abox公理集。由此,得到了四個新的本體,它們之間互相關(guān)聯(lián),合并后即得到了最原始的ntn本體。
2.公理的學(xué)習(xí)
給定一個數(shù)據(jù)源之后,便可進入公理的學(xué)習(xí)步驟。在該步驟中,可以使用任意適合該類數(shù)據(jù)源的本體學(xué)習(xí)工具,本發(fā)明使用基于關(guān)聯(lián)規(guī)則挖掘方法的本體學(xué)習(xí)工具goldminer。該工具是由德國曼海姆大學(xué)的知識表示和知識管理研究組研究與開發(fā)的,可以處理大規(guī)模數(shù)據(jù),用于學(xué)習(xí)各種類型的tbox公理,例如不交公理、概念和屬性的層次關(guān)系以及屬性的值域與定義域。
goldminer首先從數(shù)據(jù)源中獲取術(shù)語,這些術(shù)語指跟最終要學(xué)習(xí)的公理類型相關(guān)的術(shù)語,例如數(shù)據(jù)源中的概念、屬性、實例和實例對等,并為這些術(shù)語賦予唯一的標識,保存到數(shù)據(jù)庫中,以備后用。圖2給出了goldminer從ntn的一個子本體中獲取到的實例的部分例子,并為每個實例賦予一個用整數(shù)表示的標識。例如,實例jesus的標識為1。
獲取到術(shù)語后,goldminer建立事務(wù)表,然后調(diào)用傳統(tǒng)的關(guān)聯(lián)規(guī)則挖掘算法apriori從每個構(gòu)建好的事務(wù)表中挖掘規(guī)則。其中,事務(wù)表中每個實體都使用其對應(yīng)的唯一標識來表示,每個挖掘出的規(guī)則都附帶了對應(yīng)的置信度(confidence)和支持度(support)。學(xué)習(xí)到的規(guī)則經(jīng)過一些策略進行過濾,候選的規(guī)則直接轉(zhuǎn)換成公理。圖3給出了學(xué)習(xí)到的部分不交公理。
將ntn的四個子本體分別作為單一數(shù)據(jù)源時,通過goldminer分別學(xué)習(xí)得到378、253、171和300個不交公理,將這四個公理集合合并后,得到572個不同的不交公理。而將原本的ntn作為單一數(shù)據(jù)源進行學(xué)習(xí)時,得到了666個不交公理。在這多出的94個公理中,70個以上都是正確的。由此可見,本體的拆分而導(dǎo)致信息的丟失使得許多正確的公理不再能學(xué)習(xí)到,從而影響了學(xué)習(xí)的效果。同時,也說明了在本體學(xué)習(xí)前考慮多數(shù)據(jù)源之間的關(guān)系,為單一數(shù)據(jù)源增添有用的信息,可以提升本體學(xué)習(xí)的效果。
3.本體的構(gòu)建
通過公理的學(xué)習(xí)得到了一個公理集,由此公理集構(gòu)建本體時,往往會出現(xiàn)本體的不一致性問題。通常情況下,人們會根據(jù)公理的權(quán)重按照從高到低進行排序,然后逐個將公理添加一個初始為空集的本體里,每次添加如果導(dǎo)致本體出現(xiàn)不一致,則刪除該公理。該方法簡單直觀,效率較高。但是,這類方法往往刪除較多的公理,不能保證某種條件下的最小刪除原則。為了達到最小刪除,可以將學(xué)習(xí)到的公理集作為一個本體,然后通過本體調(diào)試獲得最小的不一致公理集,再通過碰集樹計算碰集,從碰集里面挑選出權(quán)重最小的公理進行刪除。
以上內(nèi)容是結(jié)合具體的優(yōu)選實施方式對本發(fā)明所作的進一步詳細說明,不能認定本發(fā)明的具體實施只局限于這些說明。對于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡單推演或替代,都應(yīng)當視為屬于本發(fā)明的保護范圍。