吳潔明 劉雁昆 段建勇
(北方工業(yè)大學計算機學院 北京 100144)
?
基于維基百科的領(lǐng)域本體自動構(gòu)建方法研究
吳潔明劉雁昆段建勇
(北方工業(yè)大學計算機學院北京 100144)
摘要隨著互聯(lián)網(wǎng)的發(fā)展,本體被廣泛應(yīng)用于知識工程、信息檢索等領(lǐng)域。傳統(tǒng)的本體構(gòu)建方法無法滿足日益增長的需求,提出一種基于維基百科的領(lǐng)域本體構(gòu)建方法。通過提取維基百科的知識體系和知識屬性,實現(xiàn)原始領(lǐng)域本體的自動化構(gòu)建。提出的一種與路徑無關(guān)的矢量方差方法,通過計算領(lǐng)域中每一個分類和條目的所屬度,選擇所屬度大于閾值的分類和條目作為領(lǐng)域本體的內(nèi)容,然后挖掘每個信息盒的內(nèi)容來獲取實體的屬性。最后通過人工識別的方式驗證提取的分類和條目的有效性,以及所構(gòu)建的本體的準確性。
關(guān)鍵詞本體維基百科有效性自動構(gòu)建
0引言
本體一詞源自西方哲學,在計算機領(lǐng)域中由Gruber定義:“本體是概念模型的明確規(guī)范說明”[1]。本體將現(xiàn)實中某個知識領(lǐng)域抽象成一組概念及概念之間的關(guān)系,并以計算機可認知的形式化語言來描述,目的是解決人與機器以及異構(gòu)知識之間信息交流的障礙。隨著互聯(lián)網(wǎng)發(fā)展,本體被廣泛用于知識工程、語言工程、信息檢索以及數(shù)字圖書館等領(lǐng)域。
目前本體的構(gòu)建主要依靠人工手動構(gòu)建,雖然某些領(lǐng)域?qū)崿F(xiàn)了半自動化構(gòu)建,其面向領(lǐng)域?qū)I(yè)性較強,如:醫(yī)學、軍事工業(yè)等,需要耗費大量的人力,且需要領(lǐng)域?qū)<覅⑴c[2]。隨著各領(lǐng)域信息化的推進,通用的本體自動構(gòu)建方法成為當前的研究熱點。Maedche等提出了需要人工參與的半自動化本體構(gòu)建框架[3],將穩(wěn)定協(xié)作模型的范例用于構(gòu)建本體。文獻[4]提供了一種mashup服務(wù)描述本體構(gòu)建方法,這種方法利用開發(fā)者為mashup服務(wù)提供的標簽構(gòu)建本體,以WordNet作為知識庫。但是,這種方法的前提是預(yù)定足夠豐富且明確的領(lǐng)域知識分類結(jié)構(gòu),通過概念學習來實現(xiàn)本體構(gòu)建。Zhong等提出了面向特定領(lǐng)域的本體構(gòu)建過程[5],運用知識挖掘技術(shù)分階段實現(xiàn)本體構(gòu)建。在文獻[6]中,提出了以面向Web內(nèi)容的本體自動化構(gòu)建,通過挖掘網(wǎng)頁中的概念,運用貝葉斯分類器來構(gòu)建本體。然而這種方法并不能準確定義概念群的所屬類別名稱,另外網(wǎng)頁中的知識準確率不夠高,其構(gòu)建的專業(yè)領(lǐng)域本體利用價值不大。
本體構(gòu)建自動化,首先需要一個涉及各個領(lǐng)域的信息庫作為本體的知識源。維基百科作為當前最大的網(wǎng)絡(luò)知識庫,其擁有知識量巨大且不斷增長、知識內(nèi)容能夠自我修正和完善等特點,引起了研究者的廣泛關(guān)注。維基百科具有面向普通用戶編輯的知識構(gòu)建模式,包含了各領(lǐng)域?qū)I(yè)知識??梢酝ㄟ^充分挖掘維基百科中分類、詞條之間的語義關(guān)系、以及詞條內(nèi)容來構(gòu)建某一領(lǐng)域的原始本體,為其后的本體學習和應(yīng)用提供一個基本架構(gòu)。在文獻[7]中提出了基于維基百科知識庫的構(gòu)建方法,但是并沒有認識到維基百科知識分類系統(tǒng)主要是為便于用戶查詢而做的知識導(dǎo)航,其分類結(jié)構(gòu)與學術(shù)定義存在偏差,另外這種方法并沒實現(xiàn)本體屬性提取。
本文研究內(nèi)容與現(xiàn)有自動構(gòu)建方法不同之處主要包括以下兩點:
1) 基于維基百科分類和詞條的鏈接關(guān)系,通過改進的VVG(Variance-based Vector Generation)方法提取有效的領(lǐng)域本體知識結(jié)構(gòu);
2) 通過挖掘維基百科詞條內(nèi)容,獲取領(lǐng)域本體的實體屬性和概念屬性,使領(lǐng)域本體的描述更為完整。
1數(shù)據(jù)分析
維基百科是一個數(shù)據(jù)開放的網(wǎng)絡(luò)知識庫,它的所有分類和條目都是由普通網(wǎng)絡(luò)用戶自由編輯的,并且以MySql數(shù)據(jù)表和XML文件形式提供給用戶。通過研究維基百科數(shù)據(jù)的表結(jié)構(gòu),發(fā)現(xiàn)在’page’、’redirect’與’categoryLinks’三張表中包含了知識的分類和頁面的重定向。
1) page表存儲了維基百科的頁面信息。本研究使用其中id(頁面編號)、title(頁面標題)、namespace(命名空間)字段,并且提取命名空間為0(表示為知識條目頁面)和14(表示為分類頁面)的數(shù)據(jù)。
2) redirect表存儲了維基百科頁面的重定向信息。本研究使用其中re_from(重定向頁面id)、rd_title(目標頁面title)、rd_namespace(重定向頁面的命名空間)字段。
3) categorylinks表存儲了維基百科知識的分類結(jié)構(gòu)。本研究使用其中cl_from(子分類或條目的頁面id)、cl_to(父分類頁面id)字段。
維基百科條目頁面中通常包含實體的基本概念解析、組成元素或?qū)傩缘葍?nèi)容,這些可以構(gòu)成本體的中的概念、屬性和實例。維基百科詞條可以通過內(nèi)部鏈接與其他實體相關(guān)聯(lián),通過這些超鏈接可以挖掘本體中概念與概念、概念與屬性之間的關(guān)系。
在本體存儲形式上可選用OWL(Ontology Web Language)文檔來表示構(gòu)建的本體。網(wǎng)絡(luò)本體語言O(shè)WL是由W3C制定的一種本體形式化語言,旨在促進由XML、RDF(S)支持的網(wǎng)絡(luò)資源的互操作性[8]。因此,基于維基百科的本體構(gòu)建可以轉(zhuǎn)換為構(gòu)建OWL文檔,其實質(zhì)就是通過挖掘維基百科中實體之間的關(guān)系,用OWL語言描述。OWL通過以下內(nèi)容描述類和個體之間的關(guān)系。
1) subClassOf表示類之間的上下層關(guān)系,即父類與子類關(guān)系;
2) sameAs表示等價的分類或者實體;
3) ObjectProperty對象屬性定義;
4) DatatypeProperty值屬性定義。
通過處理維基百科提供的結(jié)構(gòu)化數(shù)據(jù),提取可由OWL描述的語義關(guān)系,轉(zhuǎn)化為上段所示OWL關(guān)系定義。
2方法概述
通過提取維基百科數(shù)據(jù),挖掘數(shù)據(jù)中的語義關(guān)系構(gòu)建領(lǐng)域本體的架構(gòu),具體方法是:① 根據(jù)領(lǐng)域名稱通過分類關(guān)系抽取所有的維基百科分類和知識條目;② 使用與祖先路徑無關(guān)的矢量方差方法計算抽取數(shù)據(jù)中所有分類和條目的領(lǐng)域所屬度l,提取那些所屬度l大于一定閾值的分類和條目作為本體的分類和概念;③ 通過識別每個條目中的信息盒(Infobox)這種特殊結(jié)構(gòu)抽取知識的屬性;④ 將分類、概念和屬性轉(zhuǎn)換為OWL文檔。其過程如圖1所示。
圖1 基于維基百科的領(lǐng)域本體自動構(gòu)建過程
2.1維基百科中有效分類結(jié)構(gòu)的提取
在維基百科的分類結(jié)構(gòu)中包含了導(dǎo)航、主題索引、科學目錄分類等內(nèi)容,以方便用戶查找、編輯和閱讀,所以該分類結(jié)構(gòu)并不是完整的科學分類結(jié)構(gòu)。在維基百科中很多類別和條目都屬于多個父類別,如圖2所示(C表示一個分類,T表示一個條目)。為了提高領(lǐng)域本體準確性,需要消除無效的、與指定領(lǐng)域關(guān)聯(lián)性較小的分類和條目。在此引入Masumi Shirakawa等提出的基于矢量方差方法VVG[9]。該方法通過計算某個條目或者概念對于某個類別的所屬度來判斷該概念是否屬于這個類別。
圖2 維基百科知識結(jié)構(gòu)示例
我們定義V表示條目(概念)和分類的集合,E表示一個分類結(jié)構(gòu)中的鏈接。整個維基百科知識結(jié)構(gòu)可以表示為一個有向無環(huán)圖G={V,E},V表示點的集合,E表示邊的集合,E的方向是從子類別或者條目指向父類別。假設(shè)節(jié)點vm是我們需要建立本體的領(lǐng)域節(jié)點,節(jié)點vi表示根據(jù)維基百科分類結(jié)構(gòu)中vm下的一個子分類,定義P={p1,p2,…,pn}表示從節(jié)點vi到節(jié)點vM所有路徑的集合;定義節(jié)點vi的出度等于其父節(jié)點的個數(shù),用n表示。在一個維基百科分類結(jié)構(gòu)圖G中一個條目或者分類vi對于vM的所屬度I(vivM)由以下公式求得:
I(vi,vM)=∑pl∈Pc(pl)
(1)
c(pl)=∏eh∈plb(eh)
(2)
(3)
式中,b(eh)表示一個有向邊eh的權(quán)重,其值取起始點出度n的倒數(shù);c(pi)表示一條由節(jié)點vi通往節(jié)點vM的路徑pl的權(quán)重,其值等于這條路徑上所有e權(quán)值的乘積;那么一個vi對于vM的所屬度I(vi,vM)即為所有連通這兩個節(jié)點路徑權(quán)重的和。
在上述基于矢量方差方法(VVG)中,計算每一個節(jié)點的所屬度需要向上回溯整個路徑。這就需要先抽取出領(lǐng)域的整個結(jié)構(gòu)圖,然后計算各節(jié)點的所屬度。在知識點較多的知識領(lǐng)域中,該方法的計算量會非常大。為了便于計算I(vi,vM),可將式(1)-式(3)作出如下改進:
(4)
(5)
式(4)中Vfather表示與vM存在路徑的vi父節(jié)點集合;n表示vi出度,即它的所有父節(jié)點個數(shù);eh表示vi指向vk的邊。設(shè)定當k=M時I(vk,vM)=1,即起始節(jié)點的所屬度為1。式(5)表明一個節(jié)點的所屬度等于其所有父節(jié)點所屬度之和乘以出度的倒數(shù),與路徑無關(guān)。例如,圖2中各個節(jié)點的所屬度如表1所示。
表1 圖2中各節(jié)點所屬度
由式(5)可知,求取每個節(jié)點的所屬度是一個對維基百科分類結(jié)構(gòu)逐層遞歸的過程,在抽取知識結(jié)構(gòu)的同時計算出每個節(jié)點的所屬度。這不同于VVG方法需要抽取出整個領(lǐng)域的知識結(jié)構(gòu),才能計算各節(jié)點所屬度,用這種方法降低了計算的復(fù)雜度。與路徑無關(guān)的矢量方差方法可以由如下算法表示:
名稱:從維基百科中提取領(lǐng)域知識結(jié)構(gòu)提取遞歸算法。
輸入:分類節(jié)點vfather以及它的所屬度Ifather。
輸出:指定領(lǐng)域的知識結(jié)構(gòu)以及每個節(jié)點的所屬度I。
起始輸入:要研究的領(lǐng)域vM以及它的所屬度IM=1。
結(jié)束條件:每個分支遇到條目節(jié)點結(jié)束遞歸,直至遍歷領(lǐng)域M下的所有節(jié)點。
1查詢出節(jié)點vfather的所有子節(jié)點,存入sonList;
2foreach sonList do
3獲取子節(jié)點vson的所有父節(jié)點數(shù)n;
4if vson已被訪問 then
6else
8end
9存儲Ison;
10if vson是一個分類(category) then
11遞歸;
12end
依據(jù)上述算法,訓練數(shù)據(jù)集可以獲得一個閾值a,將所屬度小于a的節(jié)點及其所在的邊從圖中刪除,得到一個簡化過的圖G′∈G,在G′中所有分類和條目均被認為是有效的。
2.2屬性挖掘
在OWL中,ObjectProperty表示對象屬性,表示兩個類的實體之間的非分類關(guān)系;datatypeproperties表示數(shù)據(jù)類型屬性,表示個體與數(shù)據(jù)類型的關(guān)聯(lián)。如:“程序員從事程序開發(fā)”,其中“程序員”和“程序”為兩個不同類別的實體;程序員有一個“年齡”屬性,年齡的類型為整數(shù)型數(shù)據(jù)。用OWL可以表示為:
在維基百科知識條目中,有很多包含信息盒這種特殊結(jié)構(gòu),以半結(jié)構(gòu)化形式出現(xiàn)在條目的XML文檔中[10]。利用信息盒的這種結(jié)構(gòu)關(guān)系可以非常準確地識別維基百科概念的屬性,可轉(zhuǎn)換為本體中的實體屬性。如圖3所示條目“Python”的信息盒,我們非常容易識別,每一個‘|’后面的字段表示一個屬性,‘=’號后面表示這個屬性的值,雙括號‘[[’、‘]]’之間的詞是一個維基百科內(nèi)部詞條。由此可通過正則表達式獲取屬性的名稱和屬性的值,從而創(chuàng)建實體屬性(ObjectProperty)和數(shù)據(jù)類型屬性(DatatypeProperty)。
圖3 信息盒實例
2.3本體的自動構(gòu)建
根據(jù)上述論述,可將維基百科知識快速構(gòu)建由OWL文檔表示的領(lǐng)域本體,構(gòu)建過程如下:
1) 從維基百科網(wǎng)站中下載上文所需數(shù)據(jù);
2) 根據(jù)維基百科知識分類結(jié)構(gòu),求取出指定領(lǐng)域VM下的所有分類和條目,構(gòu)成知識結(jié)構(gòu)圖G,同時計算出這些分類對于的所屬度;
3) 根據(jù)閾值對2)所形成的知識結(jié)構(gòu)圖G簡化,刪除無效的分類和條目,形成圖G′;
4) 將圖G′描述的知識之間的關(guān)系轉(zhuǎn)換成OWL文本,轉(zhuǎn)換關(guān)系如表2所示;
表2 維基百科知識結(jié)構(gòu)到OWL的映射表
5) 對于包含信息盒的條目,構(gòu)建對應(yīng)的實體屬性和值屬性。
3實驗與評估
3.1實驗參數(shù)
實驗使用的數(shù)據(jù)是維基百科2014年8月23日提供的中文數(shù)據(jù),包括categorylinks、page、redirect三張數(shù)據(jù)表和zhwiki-20140826-pages-meta-current.xml.bz2文件包。實驗選擇“軟件工程”為目標本體領(lǐng)域,抽取其下的所有分類(category)、條目(title)、重定向頁面(redirect)。實驗使用protégé-owl工具將抽取的知識轉(zhuǎn)換成OWL文檔。
3.2實驗結(jié)果
根據(jù)維基百科的分類結(jié)構(gòu),實驗中提取出屬于軟件工程領(lǐng)域分類186個、條目1396個,這其中包括很多編程語言、代碼庫和游戲等不屬于軟件工程的知識分類和條目。通過計算這些條目對于軟件工程領(lǐng)域的所屬度I提取軟件工程領(lǐng)域的分類和條目,如表3所示。
表3 所屬度計算結(jié)果
分別選取閾值為 0.5、0.1、0.08,通過人工識別方式統(tǒng)計其對應(yīng)的準確率(precision)和召回率(recall),如表4所示。
表4 所屬度算法結(jié)果評價
通過綜合比較看到當選取a=0.1為閾值,所有I<0.1的分類和條目可認為不屬于軟件工程領(lǐng)域的知識。
將上面提取的知識結(jié)構(gòu)轉(zhuǎn)換成OWL文檔,并提取條目中的屬性,就構(gòu)建出了一個軟件工程領(lǐng)域原始本體。為檢驗本體構(gòu)建的正確性,將上述形成的OWL文檔導(dǎo)入protégé中,可以看到軟件工程本體結(jié)構(gòu)與真實軟件工程領(lǐng)域的知識結(jié)構(gòu)基本相符,如圖4所示為軟件工程領(lǐng)域本體部分結(jié)構(gòu)圖。
圖4 軟件工程領(lǐng)域本體部分結(jié)構(gòu)圖
4結(jié)語
本文提出了一種基于維基百科本體構(gòu)建方法,通過挖掘維基百科中條目分類結(jié)構(gòu)和條目內(nèi)容獲取本體的基本要素,并將其轉(zhuǎn)換成OWL文檔,實現(xiàn)領(lǐng)域本體的自動化構(gòu)建。通過改進的矢量方差方法(VVG)識別有效分類和條目,這種方法提高了條目所屬度的計算效率。本文還提出了基于信息盒的本體屬性提取方法,這一方法簡單有效且正確率高。
本體的構(gòu)建是一個不斷更新、學習、進化的循環(huán)過程,本文所提方法可以構(gòu)造的是一個原始本體,其包含了一個領(lǐng)域主要的知識點和知識結(jié)構(gòu),可以作為本體學習和本體進化的原始數(shù)據(jù)。另外本文所提本體屬性挖掘方法仍然有一定的局限性,隨著中文自然語言處理技術(shù)的不斷提高,我們能夠從文本中提取出更加準確的屬性模板,那么本體屬性提取的數(shù)據(jù)源將不再局限于信息盒。
參考文獻
[1] 胡兆芹.本體與知識組織[M].中國文史出版社,2014.
[2] 王磊,周寬久,仇鵬.領(lǐng)域本體自動構(gòu)建研究[J].情報學報,2010,29(1):45-52.
[3] Maeduche A,Staab S.Ontology Learning for the Semantic Web[J].IEEE Intelligent Systems,2011,16(2):72-79.
[4] Li S,Li B,Pan W,et al.Approach for building mashup service description ontology automatically[J].Journal of Chinese Computer Systems,2011,32(9):1747-1752.
[5] Zhong N,Yao Y,Kakenoto Y.Automatic Construction of ontology from Text Databases[J].Data Mining,2011(2):173-180.
[6] 金鑫.面向Web信息資源的領(lǐng)域本體模型自動構(gòu)建機制的研究[J].計算機科學,2012(6):213-216.
[7] 王磊,顧大權(quán),侯太平,等.基于維基百科的氣象本體的自動構(gòu)建[J].計算機與現(xiàn)代化,2014(6):129-131.
[8] Allemang D,Hendler J.Semantic Web for the Working Ontologist-Effective Modeling in RDFS and OWL[M].Elsevier (Singapore) Pte Ltd,2009.
[9] Shirakawa M,Nakayama K,Hara K,et al.Concept vector extraction from Wikipedia category network[C]//Proceedings of the 3rdInternational Conference on ubiquitous Information Management and Communication (2009).New York,USA:ACM,2009:71-79.
[10] 余傳明,張小青.從Wikipedia中獲取本體:原理與方法研究[J].情報學報,2011(3):244-252.
收稿日期:2015-01-19。國家自然科學基金項目(61103112);國家科技支撐計劃項目(2012BA H04F01,2012BAH04F03);北京市科技創(chuàng)新平臺基金項目(PXM2013_014212_000011);北京市屬高等學校創(chuàng)新團隊建設(shè)與教師職業(yè)發(fā)展計劃項目(IDHT20130502)。吳潔明,教授,主研領(lǐng)域:軟件工程,面向?qū)ο蠹夹g(shù)。劉雁昆,碩士生。段建勇,教授。
中圖分類號TP391.1
文獻標識碼A
DOI:10.3969/j.issn.1000-386x.2016.07.017
ON WIKIPEDIA-BASED AUTOMATIC DOMAIN ONTOLOGY CONSTRUCTION METHOD
Wu JiemingLiu YankunDuan Jianyong
(SchoolofComputerScience,NorthChinaUniversityofTechnology,Beijing100144,China)
AbstractWith the development of the Internet, ontology has been widely used in knowledge engineering, information retrieval and other fields. Traditional ontology construction method can’t satisfy the growing demand. This paper proposes a Wikipedia-based domain ontology construction method. By extracting the knowledge systems and knowledge attributes of Wikipedia, it realises the automated construction of original domain ontology. In this paper we introduces a path-independent vector variance method, by calculating the belongingness degree of each classification and entry in the field, it chooses those classifications and entries with the belongingness degrees greater than the threshold as the contents of domain ontology, and then mines the contents of each message box to get the attributes of the entity. In end of the paper, through artificial identification way we verify the effectiveness of the extracted classifications and entries and the accuracy of the constructed ontology.
KeywordsOntologyWikipediaEffectivenessAutomated construction