王向前,桂冬冬,李慧宗
(1.安徽理工大學(xué)經(jīng)濟與管理學(xué)院;2.復(fù)旦大學(xué)管理科學(xué)與工程博士后流動站)
目前,本體已越來越被人們所重視,特別是在知識工程、信息檢索與獲取、知識表示等領(lǐng)域。最早提出的本體的概念屬于哲學(xué)領(lǐng)域,[1]后來越來越多的學(xué)者開始對本體進行研究,現(xiàn)在被廣泛認可的本體的定義是Studer提出的“本體是對共享概念模型的一種明確的、形式化的、規(guī)范的說明”。[2]
本體構(gòu)建就是構(gòu)建本體的過程,目前采用較多的兩個方法一種是依靠領(lǐng)域?qū)<疫M行手工構(gòu)建,另一種是由人工參與機器輔助實現(xiàn)的半自動構(gòu)建。手工構(gòu)建的本體,其知識及關(guān)系完全由領(lǐng)域?qū)<掖_定,目前,最大、最完整的本體是大型知識庫系統(tǒng)CYC,該本體含有約50,000個概念,概念間的約束和關(guān)系高達4,000,000以上。[3]盡管通過手工構(gòu)建的本體內(nèi)容控制嚴格、質(zhì)量較高,但傳統(tǒng)手工構(gòu)建的方法缺乏靈活性、構(gòu)建成本高、效率低下。目前,不同領(lǐng)域的專家對一些概念的認知仍未統(tǒng)一,一定程度上影響本體的擴展性。使用人工參與機器輔助的半自動方法構(gòu)建本體,可以更全面、更快速地提取本體概念知識及其關(guān)系。田偉等[4]利用實例和屬性集構(gòu)造概念格發(fā)現(xiàn)了隱含的概念及其之間的關(guān)系,并通過映射得到本體主干;他們利用Java的一個API——Jena及OWL本體語言對本體原型進行編碼,最終完成本體的構(gòu)建。半自動構(gòu)建方式雖然可以通過機器輔助來減少工作量,但是在概念提取及其關(guān)系的提取上仍舊依賴于人工,所構(gòu)建的本體具有主觀性和局限性。
可見,以上兩種構(gòu)建方式仍然存在缺點和不足,因此,越來越多的學(xué)者開始研究通過何種方法可以更好地實現(xiàn)本體的自動構(gòu)建。[5]本體的自動構(gòu)建就是由機器通過學(xué)習(xí)、自然語言處理技術(shù)及人工智能等方法,自動地從大量自由文本、機器可以識別的詞典、敘詞表、數(shù)據(jù)庫等數(shù)據(jù)源中獲取概念及概念間關(guān)系,從而完成本體的構(gòu)建。此方法不僅可以從已有的數(shù)據(jù)源中發(fā)現(xiàn)知識,還可以挖掘出更多的潛在知識。Microsoft公司的商業(yè)產(chǎn)品MindNet就是基于自動構(gòu)建方式構(gòu)建的,其知識來源于詞典和百科全書。[6]但在國內(nèi),由于中文語言的復(fù)雜性,在面向文本的本體自動構(gòu)建方面一般都是只提出一些指導(dǎo)性的方針,具體的實現(xiàn)方法很少。因此,本文針對本體自動構(gòu)建過程中的相關(guān)技術(shù)和方法進行綜述,旨在為研究出具體的面向文本的本體自動構(gòu)建方法提供思路。
解崢等對1999-2010年的本體自動構(gòu)建方法進行了綜述,主要分為以下幾類方法:① 從局部到全體的方法;② 中間擴展法;③ 直接抽取文檔構(gòu)建本體。作者對這些本體自動構(gòu)建方法中普遍存在的問題進行了總結(jié):① 大多數(shù)方法還需要由領(lǐng)域?qū)<覅f(xié)助完成初始本體的構(gòu)建以及領(lǐng)域間關(guān)系的擴展,沒有真正實現(xiàn)“自動”;② 對本體自動構(gòu)建方法的研究大多只是理論過程的討論和簡單的驗證,沒有具體、系統(tǒng)的方法;③ 大多數(shù)處理語義間概念關(guān)系的方法都要借助原有的語言分析軟件,新的語言分析軟件較少;④ 部分方法得以實現(xiàn)的前提是必須有一些可用的本體資源,但在實際情況中,這一條件很難被滿足。[7]劉萍等基于語言學(xué)和統(tǒng)計的方法對本體自動構(gòu)建中的概念抽取和概念關(guān)系識別進行綜述分析,并對本體自動構(gòu)建方面需加以改善的地方進行了總結(jié):① 增強對抽取概念的語義理解;② 多類型數(shù)據(jù)源的結(jié)合;③ 本體的自動進化(本體自身進化和本體的對外進化)。[8]Gomez-Pere等研究了從文本中進行本體構(gòu)建的36個方法,對不同數(shù)據(jù)源進行了分析:① 缺乏一個通用的、具體的從文本中進行本體構(gòu)建的方法體系;② 大多數(shù)從文本中進行本體構(gòu)建的過程主要基于自然語言分析技術(shù),具體的構(gòu)建過程由作為數(shù)據(jù)源的語料庫決定;③ 幾乎沒有完全自動化的面向文本的本體構(gòu)建系統(tǒng),多數(shù)方法在本體概念提取及概念間關(guān)系提取階段都需要人工參與。[9]Ying Ding等通過12個研究項目對從文本中進行本體構(gòu)建的方法進行綜述分析,得出以下結(jié)論。① 一些以半結(jié)構(gòu)化的數(shù)據(jù)為數(shù)據(jù)源的本體構(gòu)建過程,需要事先由領(lǐng)域?qū)<姨峁┓N子概念集合,利用這些種子概念收集數(shù)據(jù)資源或者完成目標本體的基本框架的構(gòu)建,但以非結(jié)構(gòu)化文本作為數(shù)據(jù)源的本體構(gòu)建的方法還不能應(yīng)用于實踐;②已經(jīng)出現(xiàn)了一些比較成熟的詞性標注、詞義消歧、模式匹配等本體構(gòu)建過程中的概念抽取技術(shù);③ 中文復(fù)雜的語法結(jié)構(gòu)使得概念間關(guān)系的抽取變得更加復(fù)雜,解決難度也更大。有學(xué)者指出,采用自動、半自動化的本體構(gòu)建技術(shù)是未來面向文本的本體構(gòu)建的主要研究方向。[10-11]任飛亮等從以文本作為數(shù)據(jù)源的本體構(gòu)建過程中的術(shù)語抽取、概念抽取、概念間關(guān)系抽取角度出發(fā),對這三個方面的技術(shù)進行了綜述,對本體構(gòu)建中的本體形成、本體評價的方法進行了綜述,同時還介紹了一些目前比較常見的本體構(gòu)建系統(tǒng)。作者發(fā)現(xiàn):① 在本體構(gòu)建過程中,人工的概念獲取方式已經(jīng)無法應(yīng)用于大規(guī)模的文本;② 對于概念有時會存在歧義這一問題,在目前的本體構(gòu)建研究中還未得到足夠的重視;③ 利用人工構(gòu)建方式和半自動構(gòu)建方式所得到的本體的移植性較差。作者認為,在未來幾年利用自然語言處理和機器學(xué)習(xí)等技術(shù)來進行本體構(gòu)建是未來以文本作為數(shù)據(jù)源的本體構(gòu)建研究的重點研究方向。[12]
綜上,可以得出以下結(jié)論:① 如何實現(xiàn)概念的自動抽取及其關(guān)系的自動提取是本體自動構(gòu)建的核心;② 從大量的文本數(shù)據(jù)中構(gòu)建本體是未來的研究熱點;③ 未來在研究本體自動構(gòu)建方面,應(yīng)主要研究如何實現(xiàn)真正的“自動”,或者僅需少量的人工參與。
當下,信息網(wǎng)絡(luò)迅速發(fā)展,數(shù)據(jù)呈爆炸式增長,大量數(shù)據(jù)以非結(jié)構(gòu)化的形式存在,并且其增長的速度遠高于結(jié)構(gòu)化數(shù)據(jù)的增長速度,通過分析非結(jié)構(gòu)化數(shù)據(jù)可以發(fā)現(xiàn)之前很難或無法確定的重要相互關(guān)系。在非結(jié)構(gòu)化數(shù)據(jù)中,存在著大量的數(shù)據(jù)純文本,這種純文本獲取便捷并且內(nèi)容豐富,因此越來越多的研究者開始關(guān)注如何從文本中進行本體的自動構(gòu)建。面向文本的本體自動構(gòu)建就是以文本作為數(shù)據(jù)輸入,即從文本中挖掘本體知識。也有部分學(xué)者以本體為基礎(chǔ),研究如何將已有的多個本體進行合并或者通過不斷擴展新的概念和新的關(guān)系來形成目標本體。[13-15]而使用后一種方法的前提條件是要有一些可用的本體資源,但是在實際操作中,這個條件基本很難被滿足。面向文本的本體自動構(gòu)建流程通常涉及文本預(yù)處理、術(shù)語自動抽取、關(guān)系自動抽取(層次關(guān)系和非層次關(guān)系)等關(guān)鍵技術(shù)(見下圖),本節(jié)主要對從文本數(shù)據(jù)中自動構(gòu)建本體的各個步驟的相關(guān)技術(shù)進行介紹。
圖 面向文本的本體自動構(gòu)建技術(shù)線路
為了使構(gòu)建的本體更加全面,我們需要獲取大量的文本數(shù)據(jù),而從Web中獲取的文本數(shù)據(jù)都是沒有經(jīng)過任何處理的非結(jié)構(gòu)化數(shù)據(jù),其中包含大量的冗余數(shù)據(jù)。因此,為了獲取領(lǐng)域概念,需要通過一些自然語言處理技術(shù)對文本進行噪音數(shù)據(jù)清洗、標記化、分詞、詞性標注等,為概念自動提取做準備。段煉[16]利用Java語言的JNI技術(shù),將中國科學(xué)院分詞器ICTCLAS集成到自然語言處理開源軟件GATE中,對文本數(shù)據(jù)進行分詞、詞性標注、位置標注等。馮曉宜[17]在進行文本預(yù)處理時,通過盤古分詞對文本進行分詞,并綜合哈爾濱工業(yè)大學(xué)停用詞表對分詞過后的文本進行停用詞的過濾。由于文本預(yù)處理大多都包含在概念抽取的任務(wù)中,所以在這里不進行著重介紹。
在本體構(gòu)建過程中,概念抽取是一項必不可少的任務(wù),無論是關(guān)系的獲取還是實例的獲取都離不開本體概念的自動抽取。但是,并不是所有的本體構(gòu)建方法都會明確地進行概念的提取,一些特定專業(yè)領(lǐng)域會將術(shù)語直接看作概念,[18-19]也有一些研究者通過對所提取到的術(shù)語進行過濾然后選擇一些重要的術(shù)語作為概念。[20]國外關(guān)于術(shù)語自動提取的研究相對較早,國內(nèi)則是近十年才開始大量研究的,其中大多數(shù)都結(jié)合了中文的語言特點,目前比較常用的方法有三種:基于語言學(xué)規(guī)則、基于統(tǒng)計以及兩者相混合的方法。
(1)基于語言學(xué)規(guī)則的方法。基于語言學(xué)知識的方法主要是根據(jù)術(shù)語的模式、特征、語義信息等從語料庫中進行術(shù)語的抽?。ㄒ姳?)。段國成提出,將普通詞典和種子擴展法相結(jié)合來進行單詞術(shù)語的自動識別,實驗結(jié)果表明該方法是有效的,但是召回率較低。[21]Sui Z等通過早期的語法過濾器進行術(shù)語的自動提取,該過濾器的語法規(guī)則比較寬松,可以匹配更多語言結(jié)構(gòu)的術(shù)語。[22]雖然這種方法可以提高術(shù)語抽取的召回率,但卻降低了準確率。LRJones等基于詞語的語言學(xué)原理,利用語法結(jié)構(gòu)識別的方法來識別術(shù)語,進而完成術(shù)語的自動提取。[23]B Daille等通過事先構(gòu)造語模板來進行術(shù)語的自動抽取。[24]表1比較了以上幾種基于語言學(xué)規(guī)則的方法。利用語言學(xué)規(guī)則進行術(shù)語的自動提取的結(jié)果準確度較高,而且處理過程簡單并且能夠提取低頻術(shù)語。但由于語言學(xué)規(guī)則本身難以掌握,尤其對于開放性語料,故語言學(xué)的規(guī)則難以準確應(yīng)用。
表1 基于語言學(xué)規(guī)則方法的比較
(2)基于統(tǒng)計的方法?;诮y(tǒng)計的方法就是通過對比領(lǐng)域相關(guān)術(shù)語與普通詞匯的統(tǒng)計特征來進行術(shù)語的自動提取。Justeson等統(tǒng)計了計算詞在語料庫出現(xiàn)的頻率,通過詞性過濾器篩來選擇候選術(shù)語。[25]Benabdallah等在準備好語料庫后,用重復(fù)分段法提取所有不同的術(shù)語,并用“加權(quán)過濾器”(TF-IDF)去除一些不被認為是領(lǐng)域術(shù)語的詞。[26]Pantel等通過結(jié)合互信息和對數(shù)似然兩個參數(shù)來進行術(shù)語提取,采用互信息的方法來度量文本中兩個相鄰詞之間的相互依賴程度,并計算出這兩個相鄰的詞能夠組成術(shù)語的可能性,從而完成術(shù)語的自動提取。[27]王強軍提出基于連續(xù)指數(shù)的術(shù)語抽取,同時結(jié)合TF-IDF以及依據(jù)領(lǐng)域相關(guān)性考察候選術(shù)語的術(shù)語度方法來進行術(shù)語的自動提取。[28]表2比較了以上幾種基于統(tǒng)計的方法?;诮y(tǒng)計方法來自動提取術(shù)語可以有效識別域術(shù)語,并且此方法不需要語法和語義上的信息,不限于特定的專業(yè)領(lǐng)域,具有良好的可移植性,但基于統(tǒng)計的方法必須對整個語料庫進行計算,計算量大,且在處理低頻項時效果不佳。
表2 基于統(tǒng)計方法的比較
(3)語言學(xué)規(guī)則與統(tǒng)計相結(jié)合的方法?;谡Z言學(xué)規(guī)則和基于統(tǒng)計的方法都存在一定的缺陷,因此大量研究者將兩種方法相結(jié)合,綜合兩種方法的優(yōu)勢來進行術(shù)語的自動抽取。Missikof等憑借淺層解析技術(shù)從文本中提取出候選術(shù)語,利用統(tǒng)計的方法來對所提取的候選術(shù)語進行過濾,通過對比能夠成為術(shù)語的相關(guān)指標來確定術(shù)語,完成本體的術(shù)語提取。[29]C Enguehard等計算各個詞語在文本中出現(xiàn)的頻率,抽取頻率較高的簡單術(shù)語并將其與語言啟發(fā)式結(jié)合起來,抽取其他的術(shù)語候選詞。[30]Yang等提出一種新的基于自舉的術(shù)語自動獲取算法,根據(jù)互信息和信息熵的組合條件提取復(fù)合詞并引入語義因子來避免遺漏頻域術(shù)語或與其他領(lǐng)域術(shù)語語義相似的術(shù)語。[31]張華楠等根據(jù)中文文本結(jié)構(gòu)的特點,利用規(guī)則學(xué)習(xí)來獲取候選術(shù)語,結(jié)合改進后的DR&DC、TF-IDF和NC-Value三種策略對候選術(shù)語進行篩選從而獲得最終的術(shù)語。[32]劉豹等提出使用條件隨機場模型標記和識別文本,再基于語言學(xué)規(guī)則對識別的結(jié)果進行過濾,從而完成術(shù)語的自動提取。[33]表3比較了以上幾種語言學(xué)規(guī)則與統(tǒng)計相結(jié)合的方法。
表3 基于語言學(xué)規(guī)則和統(tǒng)計相結(jié)合方法的比較
本體自動構(gòu)建中的另一個關(guān)鍵任務(wù)是概念間關(guān)系自動抽取,概念間的關(guān)系決定著本體的最終結(jié)構(gòu),概念間關(guān)系的具體程度直接影響所構(gòu)建本體的最終質(zhì)量,本體概念間的關(guān)系主要分為層次關(guān)系和非層次關(guān)系。對于概念間層次關(guān)系的自動提取,Mari-Sanna Paukkeri等[34]通過特征抽取與層次聚相結(jié)合類的方法,對數(shù)據(jù)源中概念間的層次關(guān)系進行自動獲取。Shih C W等利用crystallizing方法進行迭代聚類,并采用置信度和TF-IDF算法來度量兩個概念間的緊密度,從而提取概念間的層次關(guān)系。[35]溫春等采用層次聚類和FCA聚類相結(jié)合的方法來完成概念間層次關(guān)系的自動提取。[36]湯青等基于“是一個”模式,通過將句法分析和規(guī)則匹配結(jié)合的方法來進行概念間上下位關(guān)系的自動抽取。[37]
概念間的非層次關(guān)系是指層次關(guān)系以外的關(guān)系,相對于概念間的層次關(guān)系,非層次關(guān)系的類別更難以確定并且更具有隱蔽性,因而概念間的非層次關(guān)系的提取要比層次關(guān)系的提取更為困難和復(fù)雜。Maedche等首次研究了如何在文本中對非層次關(guān)系進行自動提取的問題,提出利用淺文本處理技術(shù)進行非層次關(guān)系挖掘,基于關(guān)聯(lián)規(guī)則提取關(guān)系并確定其抽象層次。[38]David Sanchez等通過形式概念分析(FCA)和自然語言處理(NLP)的方法對文本中概念間的非層次關(guān)系進行自動提取。[39]王紅等結(jié)合關(guān)聯(lián)規(guī)則和自然語言處理技術(shù),提出了一種基于NNV關(guān)聯(lián)規(guī)則的非層次關(guān)系的自動提取方法。[40]李林等通過模式匹配(詞匯—句法)和關(guān)聯(lián)規(guī)則相結(jié)合的方法進行非層次關(guān)系的抽取。[41]非層次關(guān)系具有多樣性和復(fù)雜性的特點,國內(nèi)外關(guān)于非層次關(guān)系自動提取方面的研究相對較少,尤其是從中文文本中進行非層次關(guān)系的自動獲取的研究就更少了。非層次關(guān)系使本體中知識表達的復(fù)雜性和完備性成倍增長,所以研究如何從中文文本中進行非層次關(guān)系的自動獲取將是未來本體研究的重中之重。
通過上述分析可以看出,如何進行本體的自動構(gòu)建已成為目前本體研究的主流方向和熱點課題,研究者們對于面向文本的本體自動構(gòu)建過程中各個任務(wù)的相關(guān)技術(shù)也進行了較為深入的研究,但仍存在一些問題。
(1)對于本體術(shù)語的自動提取。① 術(shù)語的提取精度取決于對文本進行分詞和語義標注的準確度。在分詞過程中,可能會由于領(lǐng)域?qū)I(yè)詞匯量的缺乏導(dǎo)致領(lǐng)域術(shù)語被錯誤地分成多個單詞或者是單詞片段,進而影響對術(shù)語的提取。② 目前,大多數(shù)術(shù)語自動抽取的方法都是使用準確率、召回率和F值等統(tǒng)計學(xué)指標衡量術(shù)語提取精度,而對于提取到的術(shù)語的語義上的考量(如是否存在歧義、近義詞等)還相對缺乏。③ 一些術(shù)語自動提取的方法在不同領(lǐng)域有不同的適用性,換句話說,某個術(shù)語自動提取方法在某個領(lǐng)域的語料中表現(xiàn)出很好的效果,但并不代表其在其他領(lǐng)域的表現(xiàn)依舊良好。
(2)對于關(guān)系的自動提取,由于概念間非層次關(guān)系的復(fù)雜性導(dǎo)致其提取難度較大,并且已有的非層次間關(guān)系自動提取的方法只能判斷出兩個概念之間是否存在關(guān)系、無法判斷出兩個概念之間存在的關(guān)系到底為哪種關(guān)系,即所得到的非層次關(guān)系都為“匿名”關(guān)系。通過對概念間非層次關(guān)系進行系統(tǒng)研究,可以使構(gòu)建的本體更加全面,且能夠為實際應(yīng)用提供幫助。
在未來的研究中,還需對以下幾個方面進行深入研究。① 近幾年,針對面向文本的本體自動(半自動)構(gòu)建,一些研究者提出本體學(xué)習(xí)的概念,但由于中文文本具有較大的靈活性且中文的表達結(jié)構(gòu)相對于英文而言更為復(fù)雜,面向中文文本的本體學(xué)習(xí)有待更深入地研究。② 目前,對于本體構(gòu)建過程中的概念自動提取及其關(guān)系的自動提取的研究成果較為豐富,但在銜接這些步驟來完成整體的本體構(gòu)建時還需要人工來參與銜接。另外,在利用本體編輯器構(gòu)建本體時,仍需要人工進行概念及其關(guān)系的添加??梢?,構(gòu)建一個本體自動構(gòu)建系統(tǒng)是解決這個問題的有效途徑。③ 構(gòu)建本體的目的在于實現(xiàn)知識系統(tǒng)的自動推理,如何有效地將本體自動構(gòu)建技術(shù)和自動推理技術(shù)結(jié)合起來,從而開發(fā)人工智能系統(tǒng)并將其運用到實際應(yīng)用中也是一個值得研究的問題。④ 本體中的概念不是一成不變的,隨著文本知識的不斷擴充,領(lǐng)域概念也會不斷更新,如何實現(xiàn)本體自動更新為本體的自動構(gòu)建帶來了更大的挑戰(zhàn)。