摘要:根據(jù)用戶的“興趣”,從網(wǎng)頁(yè)中提取相關(guān)的知識(shí),并生成動(dòng)態(tài)的知識(shí)庫(kù)是一個(gè)有趣而且不簡(jiǎn)單的問題。 主要有兩個(gè)技術(shù)問題:1)如何從網(wǎng)頁(yè)中提取用戶感興趣的內(nèi)容;2)如何動(dòng)態(tài)地維護(hù)知識(shí)庫(kù)。要解決這些問題,首先用OWL手工構(gòu)造用戶“感興趣內(nèi)容”的知識(shí)庫(kù),通過(guò)信息提取和本體映射技術(shù)識(shí)別網(wǎng)頁(yè)中相關(guān)的內(nèi)容。這一過(guò)程同時(shí)也將學(xué)習(xí)和原來(lái)知識(shí)庫(kù)相關(guān)的內(nèi)容,成新的知識(shí),修改舊的知識(shí)庫(kù),最后通過(guò)生成的本體對(duì)網(wǎng)頁(yè)進(jìn)行標(biāo)注。實(shí)驗(yàn)表明這是個(gè)有效而且實(shí)用的方法。
關(guān)鍵詞:動(dòng)態(tài)知識(shí)庫(kù);本體;語(yǔ)義標(biāo)注;信息提取;OWL
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2009)05-1131-03
Research and Implementation of Dynamic Knowledge Based on Ontology
LV Lv
(School of Mathematics Computational Science GuangDong University of Business Studies, Guangzhou 510320, China)
Abstract: Based on users' interested things to extract the related knowledge in web pages, and generate a dynamic knowledge base is an interesting, non-trivial problem. Two problems are involved: 1) extract users' interested things from web pages; 2) dynamic knowledge base maintenance. To solve these problems, firstly, use OWL to construct knowledge base which contains users' interested content, and then identify the related things in web pages using information extraction and ontology mapping method. In this process, new knowledge is also learned and is used to update the knowledge base. Finally, the knowledge base is used to annotate web pages. Experiment shows this method is effective and pragmatic.
Key words: dynamic knowledge base; ontology;semantic annotation;information extraction;OWL
1 引言
根據(jù)用戶感興趣的內(nèi)容,從網(wǎng)頁(yè)中得到相關(guān)的信息,并生成動(dòng)態(tài)知識(shí)庫(kù)是一個(gè)有趣的而且不簡(jiǎn)單的問題。開始時(shí),用戶只是對(duì)感興趣的內(nèi)容有一個(gè)初步的認(rèn)識(shí),通過(guò)查找相關(guān)的網(wǎng)頁(yè),用戶將更新,完善舊有的知識(shí)庫(kù)。這里有兩個(gè)主要的技術(shù)問題:(1)如何從網(wǎng)頁(yè)中提取用戶感興趣的內(nèi)容,(2)如何動(dòng)態(tài)地維護(hù)知識(shí)庫(kù)。和這些問題相關(guān)的研究主要有以下3個(gè)方面:1) 實(shí)體識(shí)別(Entity Recognition),這個(gè)問題在自然語(yǔ)言處理領(lǐng)域已經(jīng)被廣泛地研究[1]。2) 語(yǔ)義網(wǎng),KIM[2]是其中一個(gè)著名的項(xiàng)目,其目的是從文本中自動(dòng)的生成本體。3) 本體映射,由一個(gè)已知的概念(concept)找到跟它相似的概念[3]。本文在現(xiàn)有技術(shù)的基礎(chǔ)上, 提出一種從網(wǎng)頁(yè)中獲取相關(guān)知識(shí),并動(dòng)態(tài)維護(hù)知識(shí)庫(kù)的方法。利用本文方法還能對(duì)網(wǎng)頁(yè)進(jìn)行標(biāo)注,這種被標(biāo)注了的網(wǎng)頁(yè)能有助于語(yǔ)義搜索等語(yǔ)義網(wǎng)的應(yīng)用[4]。最后我們通過(guò)實(shí)驗(yàn)驗(yàn)證本文所提出的方法。
2 問題的描述
本文假設(shè)用戶準(zhǔn)備收集關(guān)于車的資料,于是他們開始查找和車相關(guān)的網(wǎng)頁(yè)。在開始查找之前,用戶應(yīng)該對(duì)車有一個(gè)初步的了解,并且清楚車的哪些性能是自己所關(guān)心的。接下來(lái)用戶將進(jìn)行以下的步驟:1) 查找跟車相關(guān)的網(wǎng)頁(yè),2) 從感興趣的網(wǎng)頁(yè)中識(shí)別出哪些是他們已經(jīng)了解的內(nèi)容,哪些是新的知識(shí),3) 學(xué)習(xí)新的知識(shí),并更新已有的知識(shí)庫(kù)。4)回到1),直至結(jié)束整個(gè)過(guò)程。
圖1是本文方法的框架圖。輸入是和車相關(guān)的網(wǎng)頁(yè),在信息提取模塊中,我們通過(guò)自然語(yǔ)言處理技術(shù)和WordNet[5]來(lái)提取實(shí)體關(guān)系。這些的實(shí)體關(guān)系和領(lǐng)域知識(shí)(通過(guò)OWL建立的用戶對(duì)車的初始的知識(shí))經(jīng)過(guò)本體生成模塊,產(chǎn)生新的本體實(shí)例(instance)。這些實(shí)例通過(guò)本體修改模塊,更新領(lǐng)域知識(shí)。同時(shí)這些新生成的本體實(shí)例也將被標(biāo)注生成模塊對(duì)輸入的網(wǎng)頁(yè)進(jìn)行注釋。這種被標(biāo)注了的網(wǎng)頁(yè)能有助于語(yǔ)義搜索等語(yǔ)義網(wǎng)的應(yīng)用。
3 主要模塊的實(shí)現(xiàn)
在介紹主要的模塊之前,我們先講一下領(lǐng)域知識(shí)。本文的領(lǐng)域知識(shí)是關(guān)于車的,為了實(shí)體識(shí)別(Entity Recognition)和去除實(shí)體的歧義(Entity Disambiguation),我們?yōu)槊恳粋€(gè)實(shí)體建立URI(表示本體的出處),并用”owl:sameAs”表示不同的URI對(duì)應(yīng)相同的實(shí)體。本文中初始的領(lǐng)域本體由OWL中的概念(concept) 和屬性(Property)組成。概念包括:Car, Make, Model, Engine, Width, Weight, Length, Width, Height。屬性包括:HasXXX, owl:sameAs。這里概念和屬性都是用英文表示(本文只討論英文本體和英文網(wǎng)頁(yè))。屬性中HasXXX中的XXX來(lái)自概念(比如HasWeight)。
3.1 信息提取
本文中信息提取模塊主要用于提取網(wǎng)頁(yè)中實(shí)體之間的關(guān)系。在車領(lǐng)域主要有3種網(wǎng)頁(yè):1) 車的屬性被用表格的形式表示,而且這些的屬性都是被HTML標(biāo)簽標(biāo)記;2)整個(gè)網(wǎng)頁(yè)只有文字,所以關(guān)于車的信息都是有文字表示;3) 介于1)和2)之間,和2)的最大區(qū)別就是關(guān)于不同的車的描述有HTML標(biāo)簽可以加以區(qū)別,而2)的難點(diǎn)在于只有文字,當(dāng)描述多種車的時(shí)候,現(xiàn)有的自然語(yǔ)言處理技術(shù)很難進(jìn)行區(qū)別。
實(shí)驗(yàn)中我們發(fā)現(xiàn)大部分的車領(lǐng)域的網(wǎng)頁(yè)是1)3)。對(duì)于1)本文采用HTML Parser[6]提取表格中的內(nèi)容,對(duì)于3)本文先中[6]提取文字內(nèi)容,然后用Link Grammar Parser[7]進(jìn)行自然語(yǔ)言分析。最好通過(guò)支持向量機(jī)(SVM)和WordNet進(jìn)行概念中關(guān)系的提取,本文提取的關(guān)系主要是”is a”和”has”關(guān)系。通過(guò)經(jīng)過(guò)訓(xùn)練的提取這兩種關(guān)系的數(shù)據(jù),在用支持向量機(jī)的方法對(duì)新的數(shù)據(jù)中的這兩種關(guān)系進(jìn)行提取。本文主要處理1)3), 對(duì)于2)只處理一種特殊的情況,即整個(gè)網(wǎng)頁(yè)只描述一種車。3)中雖然也包含文字,但是有HTML的標(biāo)簽區(qū)分不同的車。
3.2 本體生成
輸入的網(wǎng)頁(yè)在通過(guò)信息提取模塊后將產(chǎn)生一對(duì)對(duì)形式如(概念, 值)的集合(本文稱之為關(guān)系對(duì)), 例如(make, Honda)。這些的值作為本體生成(Ontology Population)模塊的輸入。我們定義P(i).c是概念,P(i).v是值,所以P(i).c=”make”, P(i).v=”Honda”。這個(gè)模塊的實(shí)際是利用本體映射技術(shù)將關(guān)系對(duì)映射到領(lǐng)域本體中已有的知識(shí),利用跟領(lǐng)域本體已有知識(shí)相關(guān)的內(nèi)容標(biāo)注網(wǎng)頁(yè),而關(guān)系對(duì)中跟領(lǐng)域本體中已有知識(shí)無(wú)關(guān)的本體將進(jìn)入本體修改模塊,提取新的知識(shí),更新領(lǐng)域本體。我們定義領(lǐng)域本體概念為D(i).c, 其對(duì)應(yīng)的值為D(i).v。這里主要討論D(i).c P(i).c, 例如(brand, Honda)。在車的領(lǐng)域,brand和make是同義的。由WordNet, 我們可以得到brand的解釋如下: brand, make -- (a recognizable kind; \"there's a new brand of hero in the movies now\"; \"what make of car is that?\")。
這里我們利用文獻(xiàn)[8]中的方法,根據(jù)本文的需求,修改如下: Simc(i,j)=1-distance(P(i).c, D(j).c); distance(P(i).c, D(j).c)=dc(P(i).c, cpp)+dc(D(j).c, cpp)),其中cpp是P(i).c和D(j).c的最近的公共父親。dc(P(i).c, cpp)=milestone(cpp) – milestone(P(i).c),dc(D(i).c,cpp)=milestone(cpp)– milestone(D(i).c), 其中milestone(n)=(1/2)s, s是概念n到WordNet中”entity”的距離. D(i).s=Simc(i)。關(guān)于本體生成的算法見圖2。這個(gè)算法主要思想是計(jì)算兩個(gè)概念的相似度,當(dāng)相似度的值大于一個(gè)閾值T的時(shí)候,記錄相關(guān)的本體。這些與領(lǐng)域本體相關(guān)的本體將用于標(biāo)注輸入的網(wǎng)頁(yè)。
3.3 本體修改
本體生成模塊,從信息提取模塊所生成的關(guān)系對(duì)中找出跟領(lǐng)域本體相關(guān)的概念。本體修改模塊,則是從關(guān)系對(duì)中剩下的跟領(lǐng)域本體不相關(guān)的概念中找出出現(xiàn)的頻率較高的概念,然后把這些頻率高的概念加入領(lǐng)域本體中,以更新領(lǐng)域本體。其主要思想是計(jì)算這些新的概念出現(xiàn)的頻率。例如A,B,C是3個(gè)網(wǎng)頁(yè),c1,c2,c3是領(lǐng)域知識(shí)中的概念,c4,c5,c6,c7,c8是領(lǐng)域知識(shí)所不包含的知識(shí),c4和c5同時(shí)在2個(gè)網(wǎng)頁(yè)中出現(xiàn),而c6,c7,c8只在一個(gè)網(wǎng)頁(yè)中出現(xiàn)。那么c4和c5將擁有更高的排名。下面我們介紹3個(gè)計(jì)算排名時(shí)所考慮的因素:1)內(nèi)容的相關(guān)度。實(shí)驗(yàn)中我們發(fā)現(xiàn),如果一個(gè)網(wǎng)頁(yè)中領(lǐng)域知識(shí)中的概念出現(xiàn)的次數(shù)越多,這個(gè)網(wǎng)頁(yè)就越相關(guān)。所以當(dāng)一個(gè)新的概念在這種更相關(guān)的網(wǎng)頁(yè)中出現(xiàn)的時(shí)候,應(yīng)該擁有更大的權(quán)重。Wcr=(n/N), 其中n是一個(gè)網(wǎng)頁(yè)中領(lǐng)域本體的概念數(shù)目,N是領(lǐng)域本體的總數(shù)目。2)可信度。由于網(wǎng)頁(yè)來(lái)自不用的網(wǎng)站,所以他們的可信度也不同。例如關(guān)于Honda車的信息,如果來(lái)自Honda官方的網(wǎng)站,其可信度要大于其他的網(wǎng)站。本文我們用網(wǎng)站的域名是否包含車的制造商的名字來(lái)進(jìn)行區(qū)分。實(shí)驗(yàn)中,當(dāng)網(wǎng)頁(yè)來(lái)自車的制造商的網(wǎng)頁(yè)是,其權(quán)重Wtw=1。其他情況Wtw=0.7。3)分組。通常同一個(gè)域名下的網(wǎng)頁(yè),在描述車的信息時(shí)所用的概念是相類似的,不同的網(wǎng)站的用詞可能完全不同。所以排名算法,每變換一次域名,對(duì)給域名下的網(wǎng)頁(yè)進(jìn)行計(jì)算,公式如下Rc(i)=ΣW(i),W(i) = Wcr (i)* Wtw (i), 這里i表示第i個(gè)概念(這里概念包含了領(lǐng)域本體和新的概念),求和將計(jì)算同一個(gè)域名下第i個(gè)概念出現(xiàn)的次數(shù)。最后將得到領(lǐng)域本體和其相關(guān)的概念,以及和已有的領(lǐng)域本體不相關(guān)的概念。為了避免過(guò)多的概念被加入到領(lǐng)域本體,實(shí)驗(yàn)中我們?cè)O(shè)置概念最大的數(shù)目是30,排名30之后的概念將不被加入到領(lǐng)域本體。
3.4 標(biāo)注生成
前面的模塊已經(jīng)提取了網(wǎng)頁(yè)中跟領(lǐng)域本體相關(guān)的本體,標(biāo)注生成模塊就是根據(jù)提取的本體對(duì)網(wǎng)頁(yè)進(jìn)行標(biāo)注。例如一個(gè)網(wǎng)頁(yè)的URI為uri1,其中車的”make”是”Honda”,則在網(wǎng)頁(yè)中”Honda”加入以下的標(biāo)簽,Honda。其中car.owl是領(lǐng)域本體。例子見圖3。
4 實(shí)驗(yàn)分析
這一節(jié)將通過(guò)實(shí)驗(yàn)檢驗(yàn)本體提出的方法。本文的方法用JAVA實(shí)現(xiàn),由于[7]是用C++實(shí)現(xiàn)的,調(diào)用文獻(xiàn)[7]中模塊時(shí)采用JNI。圖3是基于本文方法的對(duì)網(wǎng)頁(yè)自動(dòng)進(jìn)行語(yǔ)義標(biāo)簽的軟件。先按”1,初始的本體”,選擇最初的領(lǐng)域知識(shí)。再按“2,選擇包含網(wǎng)頁(yè)的目錄”這里我們手工的從7個(gè)不同的關(guān)于車的網(wǎng)站下載了相關(guān)的網(wǎng)頁(yè)。最后點(diǎn)擊“3,網(wǎng)頁(yè)標(biāo)注”,則自動(dòng)更新知識(shí)庫(kù),并生存被標(biāo)注的網(wǎng)頁(yè)。圖(3)現(xiàn)在的網(wǎng)頁(yè)是3.1節(jié)介紹的第(3)種網(wǎng)頁(yè),其中車的內(nèi)容由自然語(yǔ)言表示,但是不同的車由HTML標(biāo)簽進(jìn)行區(qū)別。圖中我們可以看到,當(dāng)我們把鼠標(biāo)移到相關(guān)本體時(shí),本體下端會(huì)出現(xiàn)黑色的本文框顯示該本體的標(biāo)注。圖3還顯示了部分標(biāo)注的結(jié)果,見圖3右下角。
實(shí)驗(yàn)表明本方法的準(zhǔn)確率好是很高的,所以最后生成的領(lǐng)域本體,不包含錯(cuò)誤的本體。最終生成的30個(gè)本體如下:address, air conditioning, airbag, car, CD player, clearance, color, engine capacity, front brake, front suspension, fuel type, height, length, max power, max torque, mileage, model, phone number, price, rear brake, rear suspension, seat belt, serial, transmission, turning circle, tyre size, weight, wheel size, width, year.
5結(jié)論
本文提出一種根據(jù)用戶的“興趣”,從網(wǎng)頁(yè)中提取相關(guān)的知識(shí),并生成動(dòng)態(tài)的知識(shí)庫(kù)的方法。雖然本文討論的本體是關(guān)于車的,但是從圖3可以看出,初始的領(lǐng)域知識(shí)可以替換成任意方面的本體。實(shí)驗(yàn)表明本文方法能較有效的動(dòng)態(tài)的更新知識(shí)庫(kù),而且所生成的被標(biāo)注的網(wǎng)頁(yè)能被用于語(yǔ)義搜索等的語(yǔ)義網(wǎng)應(yīng)用。
參考文獻(xiàn):
[1] Han H, Giles L, Zha H, et al. Two Supervised Learning Approaches for Name Disambiguation in Author Citations[C].Proc.ACM/IEEE Joint Conf on Digital Libraries,2004.
[2] Popov B, Kiryakov A, Kirilov A, et al. KIM - Semantic Annotation Platform[C].Proc. of the 2nd International SemanticWeb Conference, Sanibel Island, 2003.
[3] MELNIK S, Molina-Garcia H, Rahm E. Similarity Flooding: A Versatile Graph Matching Algorithm[C].ICDE 2002.
[4] Berners-Lee T,Hendler J,Lassila O.The semantic web[J].Scientific American,2001,284(5):34-43.
[5] WordNet.[EB/OL].http://wordnet.princeton.edu.
[6] HTML PARSER[EB/OL].http://htmlparser.sourceforge.net/.
[7] LINK GRAMMAR[EB/OL].http://www.link.cs.cmu.edu/link/.
[8] BUDANITSKY,A.AND HIRST,G.Semantic distance in WordNet:An experimental,application-oriented evaluation of five measures[A].In:Workshop on WordNet and Other Lexical Resources,Second meeting of the North American Chapter of the Association for Computational Linguistics[C].2001.
[9] Manuel Montes-y-Gmez, Aurelio Lpez-Lpez, and Alexander Gelbukh. Information Retrieval with Conceptual Graph Matching[C]. 2000, Proc. DEXA-2000, 11th International Conference and Workshop on Database and Expert Systems Applications, Greenwich, England.