王志華,魏 斌,李占波,趙 偉
(鄭州大學 軟件技術學院,河南 鄭州450002)
信息抽取是指將無結構或半結構化的文本轉化為結構化的信息,并以一定的形式進行存儲,供用戶查詢以及進一步分析利用的過程[1]。Web信息抽取則是從 Web頁面中抽取用戶感興趣的信息并過濾掉不相關的信息,將分散在半結構化Web頁面中的信息提取出來,并以結構化、語義更為清晰的模式表示[2]。它為用戶在Web中查詢數據、應用程序直接利用Web數據提供了便利,是實現信息檢索、機器翻譯、自動問答、自動推薦的關鍵,是國內外的研究熱點。
已有的Web信息抽取系統有的基于Web頁面的特殊結構進行信息抽取,比如抽取表格中的數據[3-6],還有的利用包裝器歸納方式進行信息抽取[7-10]。以上方法針對特定結構,不具有重用性,抽取規則的建立是手工的,不同的結構需要設置不同的抽取規則;而且只能抽取數據信息,但Web中還含有豐富的語義信息,比如關系、斷言等。本體[11]具有良好的概念層次結構和對邏輯推理的支持,通過本體構建規則,使得基于本體的信息抽取不僅能找到特定類型的待抽取實體,還能通過在本體中的概念把它鏈接到其語義描述上來識別它。
本文針對特定主題,提出了一種基于本體的Web信息抽取框架,對本體在信息抽取系統中的作用作了詳細介紹并實現所提出的相關算法。實驗證明,該抽取系統能夠得到性能較高的抽取結果。
本體是一種知識表示方式,能在語義和知識層次上對描述信息系統的概念模型進行建模,能夠用于知識表達、知識共享及知識重用。領域本體是用于描述特定領域知識的一種專門本體,給出了領域實體概念、領域屬性概念、領域屬性值及相互關系、斷言,以及該領域所具有的特性和規律的一種形式化描述。
基于本體的Web信息抽取就是以所構建的本體為核心,利用本體中已定義的概念、分類層次、關系、函數、公理和實例及一些必需的外部資料對Web頁面進行信息提取,得到結構化的知識并保存的過程。圖1給出了基于本體的Web信息抽取框架。

圖1 基于本體的Web信息抽取框架
1.2.1 系統構成
整個系統包括文件采集及預處理、文本轉換、知識抽取3個部分。
在信息抽取過程中需要一些外部資料,包括:①領域本體;②網站地圖文件;③單詞、短語、特殊字符詞典和通用詞典;④停用詞、虛詞、高頻詞詞表;⑤分句規則;⑥詞性集合及詞性標注規則;⑦實體識別及標注規則;⑧知識抽取規則。
信息抽取用到的算法包括:①爬網算法;②文件預處理算法;③文件存儲算法;④分詞和詞表查詢算法;⑤停用詞、虛詞、高頻詞去除算法;⑥分句算法;⑦詞性標注算法;⑧命名實體識別及標注算法;⑨知識抽取算法。
1.2.2 本體在Web信息抽取中的作用
(1)本體構建:領域本體的合理構建是獲得較高性能信息抽取結果的關鍵。首先領域專家構建領域本體庫,主要包括類、對象屬性、數據屬性和斷言;然后根據領域內的概念和術語添加實例。本文對于本體中的實例,領域專家給出一部分,從相關網頁中通過統計獲取一部分,還根據通用詞典 (英文用 WordNet,中文用 HowNet)使用相似性比較的方法得到一部分。本文采用文獻 [12]中的方法構建 《數據結構》課程知識點的領域本體。本體內各類之間的關系用Protégé描述如圖2所示。
(2)本體解析:在信息抽取的過程中,為了利用本體中的知識,需要對領域本體進行解析,得到概念、實例、關系、關系的定義域和值域等,使之為語義標注及知識抽取過程服務。本文進行領域本體解析,得到如下結果:
1)概念、關系、實例詞典;
2)概念、關系模式庫;

圖2 《數據結構》課程知識點本體
3)概念、關系規則表示,包括命名實體識別規則和知識抽取規則。
(3)本體使用:本體解析后的結果在信息抽取過程中主要用在了分詞及詞表查詢、命名實體識別及標注和知識抽取算法中。
(4)知識存儲:根據抽取后信息存儲方式的要求,信息抽取的結果主要有以下兩種結果表示:帶有語義的XML文件和帶有語義的三元組或二元組表示。
文件采集用于發現文檔,并且使這些文檔能夠被搜索到。預處理對采集到的文檔進行處理,得到格式化文檔。
2.1.1 源文檔及信息采集
源文檔可能來自于本地、局域網、特定主題或互聯網,其類 型 可 以 是 HTML、XML、EMAIL、PDF、RDF、WORD、TXT、RSS等多種。本文對Web頁面進行信息抽取,并將頁面分為目錄型頁面、內容型頁面和結構型頁面,采集的源文檔是針對某一領域主題的文檔。
信息采集用于發現文檔,可使用爬蟲來發現和抓取文檔。本文使用主題爬蟲爬取網頁。主題采集常使用工具進行分類,需要用到分類器進行選定特定頁面、特定結構的采集,一種結構使用一種規則進行采集。本文使用爬網算法對 《數據結構》課程相關主題知識點進行信息采集。
2.1.2 文檔預處理
信息采集后得到的原始文檔格式不統一,編碼方式也不統一,需要對文檔進行預處理,將各種文檔轉變為格式化文檔,主要是XHTML或XML等。文件預處理后的文檔包括文件的格式化內容、超鏈接、數據格式、元數據等信息:
(1)格式化內容:主要是Web的文本內容,它是實現內容型頁面信息抽取的關鍵;
(2)超鏈接:Web中的超鏈接信息,它是實現目錄型頁面信息抽取的關鍵;
(3)數據格式信息:Web中的圖片、圖表、代碼、表格等,這部分信息對于基于HTML結構的信息抽取至關重要;
(4)元數據信息:格式化信息之外的文檔信息,用于解析文檔的結構,可以將網頁表示成文檔對象模型 (document object modal,DOM),包括文檔屬性,比如日期、作者等,還有其它標簽,這些可用于識別文檔組成部分。
本文使用文件預處理算法將各種格式的文檔轉換為XML文檔,包括了文檔的內容和格式信息;將各種編碼轉換為Unicode。
2.1.3 文檔存儲及文檔數據庫
文檔存儲實現格式化文檔的存儲。文檔一般不存儲在關系數據庫中,而存儲在特定數據庫中。本文為了信息抽取的方便,使用文件存儲算法把格式化文檔信息存儲在XML文件中,而原文檔保存為原文件格式并保存其路徑信息。
文本轉換是對格式化文檔進行詞和句子或結構的處理,為知識抽取做準備。本文的文本轉換算法首先根據網頁的結構信息判斷Web頁面的類型,即目錄型、結構型或內容型,然后再根據不同的類型采用不同的信息抽取方法:
(1)目錄型頁面通過文件預處理后超鏈接信息及查詢要求的文本內容和url地址找到需要重新定位的查詢地址,對新地址的內容進行信息抽取;
(2)結構性頁面根據預處理后的數據格式信息和元數據信息得到原Web頁面中的結構標記,根據結構進行信息抽取;
(3)內容型頁面主要根據本文預處理后的格式化內容,構建網頁的內容正文,然后進行信息抽取。
本文主要研究內容型頁面的信息抽取。
2.2.1 分詞及詞表查詢
中文分詞可使用工具,如中科院計算所漢語詞法分析系統ICTCLAS、斯坦福大學的漢語分詞系統stanford-parser等。但是,這些分詞方法沒有考慮特定主題及特定領域的概念,分詞會出現一定的誤差,本文提出一種基于本體解析信息進行分詞及查詢的算法,更能體現主題及領域特征。
中文分詞及詞表查詢重要的是使用詞典,為了以后處理統一,文檔分詞詞典和查詢分詞詞典應該統一。分詞結果用空格分割開來。另外,在分詞過程中還要考慮如何解決同義詞的問題,本文提出兩種解決方案:
(1)設置同義詞表;
(2)利用通用詞典,通過相似性計算得到最相近的詞。
依據本體解析信息進行中文分詞及查詢算法如下所示:
算法1:中文分詞及詞表查詢
輸入:格式化文檔,本體解析后的概念、關系、實例詞典,同義詞、近義詞的通用詞典,單詞、短語、特殊字符詞典
輸出:與本體概念、關系、實例對應的詞和短語,依據詞典分詞得到的詞、短語、特殊字符,原文檔中未去除的結構信息
步驟:
(1)for(格式化文檔中每個標簽)
使用標記語言解析器對文檔結構信息進行解析構建DOM;
(2)去除文檔無用標簽,如<br>、<p>、<h1>和<div>等,構建網頁的文本內容;
(3)根據本體解析后的概念、關系、實例詞典進行詞表查詢并利用最大匹配算法進行分詞,然后對分詞后的結果進行標記,得到基于本體的詞的信息;
(4)根據同義詞、近義詞的通用詞典對剩余內容進行分詞,然后進行標記;
(5)根據單詞、短語、特殊字符詞典對剩余內容進行分詞,然后進行標記。
算法中先使用概念、關系、實例詞典來分,使得分詞結果更加傾向于領域。另外,根據實際應用,可對文檔中的特殊結構部分添加特殊切分規則進行切分,得到如圖片、圖表、代碼、表格等信息。對于短語也可使用相關的ngram算法進行切分。
如對圖3所示的信息分詞后如圖4所示。使用基于本體解析信息進行分詞的方法可以分詞出 “數據結構”、“非線性結構”、“前驅結點”等領域概念。

2.2.2 去除虛詞
對分詞后的結果去除停用詞、虛詞和無用的高頻詞時,需要手動設置和手動維護詞表。本文為了避免影響檢索效果,只對文檔中的特定部分設定詞表,并且采用很小的詞表。
2.2.3 分句
信息抽取的粒度包括詞、句子、段落、章節和篇。為了保證信息抽取的粒度,還需要對文檔結構進行句子和結構的劃分。句子的劃分可以在檢索時返回句子信息;結構的劃分對結構性頁面的信息抽取及檢索結果的返回至關重要。本文設置分句規則,對以上處理后的信息進行分句,并進行標記。另外,還對分句后的文檔去除不含有任何本體詞匯 (概念、關系、屬性)的句子 (或結構),確保信息抽取的粒度是句子。
2.2.4 詞性標注
詞性標注是對分詞后的結果標注詞性信息,是命名實體識別的關鍵。詞性標注時,對每個單詞和短語根據詞性標注集使用詞性標注算法進行詞性標注,詞性標注器根據上下文信息對文本中的每個詞賦予一個詞性標記。本文進行詞性標注后,內容文檔中的每個詞帶有詞性信息。
2.2.5 命名實體識別
命名實體識別是對詞性標注后的單詞識別實體,并對每一個實體信息進行標記,經常使用的方法包括:基于統計的方法、基于規則的方法、基于自然語言處理的方法。傳統的命名實體識別模塊僅提供人名、地名、機構名、時間、日期等信息的識別,得不到基于領域的實體信息,知識抽取效率比較低。本文提出一種基于本體解析信息進行命名實體識別算法,除了常規信息之外,還可以識別相關領域的信息。
命名實體識別的關鍵是設計識別規則,本文對于 《數據結構》邏輯結構的識別規則用GATE[13]中的Jape規則表示如下語句所示。
Phase:logicalStructure
Input:Token Lookup
Options:control=appelt
Rule:structure
({Lookup.minorType=="線性結構"}| {Lookup.minorType = ="非 線 性 結 構"} |{Lookup.minorType = = " 線 性 表"} | {Lookup.minorType=="鏈表"}| {Lookup.minorType=="棧"} | {Lookup.minorType= =" 隊 列"} | {Lookup.minorType= ="串"}| {Lookup.minorType= ="廣義表"}| {Lookup.minorType=="數組"}| {Lookup.minorType=="矩陣"}| {Lookup.minorType=="二叉樹"}| {Lookup.minorType=="樹"}| {Lookup.minorType= ="圖"}| {Lookup.minorType= ="邏輯結構"}):data-->:data.structure= {kind="邏輯結構",rule="logicalStructure"}
依據本體解析信息進行命名實體識別及標注算法如下所示:
算法2:命名實體識別及標注
輸入:詞表查詢及詞性標注后的單詞,概念、關系規則,一般實體識別規則
輸出:本體中的實體識別及標注結果,一般信息及特殊字符的識別及標注結果
步驟:
(1)對本體中的信息進行識別,并標注類型;
(2)應用規則,對句子中的一般信息進行識別,得到數字、金錢、日期等實體,并標注類型;
(3)根據規則,可利用N元組技術,對本體標注類型和一般標注類型進行相似匹配,并重新進行類型標注;
(4)根據 (3),調整分詞結果和通用標注類型實體的表示形式規范化。
以下標注為圖3部分信息命名實體識別及標注后的結果。
<數據元素id="1"type="datastructure Token Lookup"kind="數據結構"majorType="本體實例"minorType="線性表"begin="1"end="4"sentenceid="1"/>
<相互之間id="2"type="Token"kind=""majorType=""minorType=""begin="5"end="8"sentenceid="1"/>
<關系id="3"type="Token"kind=""major Type=""minor Type=""begin="10"end="11"sen tenceid="1"/>
<稱為id="4"type="Token"kind=""major Type=""minorType=""begin="12"end="13"sen tenceid="1"/>
<數據結構id="5"type="datastructure Token Lookup"kind="數據結構"majorType="本體類"minorType="數據結構"begin="14"end="15"sentenceid="1"/>
每個實體由標記包含,表示為一個元素。標注類型包括本體標注類型和通用標注類型,本體標注類型需要說明詞是類、實例或屬性。詞表查詢可找到本體標注類型,使用詞匯列表標注具體本體標注類型,使用規則標注通用類型。另外,還標注詞所在的句子信息。算法執行結果識別出了與領域相關的 “數據元素”、 “數據結構”等領域信息。
知識抽取就是對語義標注后的文檔進行分析,進行實體及關系的抽取得到知識。針對語義標注后的信息,本文在命名實體識別及標注后,利用領域詞匯表進行嚴格匹配,找到類、屬性和實例,并對實例進行轉換成類。對找到的類和實例,利用本體中定義的屬性的定義域和值域,找到類之間的關系。然后根據實例和屬性構建三元組。
本文利用Jena插件[14]及基于領域設計的Jape規則,使用MyEclipse 9.0在GATE6.0平臺上進行二次開發實現了基于本體的Web信息抽取系統,并實現了語義網檢索,如圖5所示。

圖5 基于Web信息抽取的語義網檢索
使用主題網絡爬蟲爬取 《數據結構》主題多篇網頁作為測試數據,使用信息抽取系統主要的評測指標準確率P、召回率R和F測度值進行評測,其定義如下

此處取β=1,稱為F1值。
表1為信息抽取的評測結果,F1指數都在70%~80%之間,與ACE[15]的評測結果相比,本文提出的基于本體的Web信息抽取方法有較高性能。另外,可以通過增加本體實例、識別更多的同義詞、設計更多的Jape規則及設計更加高效的知識抽取方法得到性能更高的信息抽取結果。

表1 信息抽取的評測結果
針對已有Web信息抽取系統中抽取結果缺乏語義信息及抽取方法不可重用的問題,本文提出了一種面向主題的基于本體的Web信息抽取模型。該模型通過本體解析結果在分詞及詞表查詢、命名實體識別和知識抽取中的應用,使得分詞和命名實體識別結果更加傾向于領域,抽取方法對于各種領域也可以重用并可以得到語義信息。通過實驗驗證,該系統能得到滿意的信息抽取結果。后續工作中,將進一步完善系統,重點是分詞、命名實體識別和知識抽取算法。
[1]LIU Qian,JIAO Hui,JIA Huibo.Research on approaches of information extraction system [J].Application Research ofComputers,2007,24 (7):6-9 (in Chinese). [劉遷,焦慧,賈惠波.信息抽取技術的發展現狀及構建方法的研究 [J].計算機應用研究,2007,24 (7):6-9.]
[2]Kwan Hee Han,Jun Woo Park.Process-centered knowledge model and enterprise ontology for the development of knowledge management system [J].Expert Systems with Applications,2009,36 (4):7441-7447.
[3]LIAO Tao,LIU Zongtian,SUN Rong.Research and implementation of web table positioning technology [J].Computer Science,2009,36 (9):227-230 (in Chinese). [廖濤,劉宗田,孫榮.Web表格定位技術的研究與實現 [J].計算機科學,2009,36 (9):227-230.]
[4]BI Lei,SHEN Jie,XU Fayan,et al.Extracting web business information using domain-specific ontology [J].Computer Engi-neering and Design,2008,29 (24):6393-6396 (in Chinese).[畢蕾,沈潔,徐法艷,等.領域本體指導的Web商品信息 抽 取 [J]. 計 算 機 工 程 與 設 計,2008,29 (24):6393-6396.]
[5]LIU Jiagang,CHEN Shan,HUANG Ying.Improved ontologybased web information extraction [J].Computer Engineering,2010,36 (4):39-41 (in Chinese). [柳佳剛,陳山,黃櫻.一種改進的基于本體的 Web信息抽取 [J].計算機工程,2010,36 (4):39-41.]
[6]CHEN Li’na,ZHANG Hong,MA Li,et al.Ontology-based tourism information extraction [J].Computer Applications and Software,2010,27 (4):146-148 (in Chinese). [陳立娜,張紅,馬莉,等.基于本體的旅游信息抽取 [J].計算機應用與軟件,2010,27 (4):146-148.]
[7]HUANG Ji,JIANG Liqun,YIN Zhaolin.A new technology on information retrieval based on samples [J].Microcomputer Information,2009,25 (1):238-239 (in Chinese). [黃驥,姜利群,殷兆麟.一種新型的基于樣本的Web信息檢索技術[J].微計算機信息,2009,25 (1):238-239.]
[8]LIU Pengbo,CHE Haiyan,CHEN Wei.Survey of knowledge extraction technologies [J].Application Research of Computers,2010,27 (9):3222-3226.
[9]Kosala R,Blockeel H,Bruynooghe M,et al.Information extraction from structured documents using k-testable tree automaton inference [J].Data& Knowledge Engineering,2006,58 (2):129-158.
[10]Tenier S,Toussaint Y,Napoli A,et al.Instantiation of relations for semantic annotation [C].Proc of IEEE/WIC/ACM International Conference on Web Intelligence.Washington,DC:IEEE Computer Society,2006:463-472.
[11]DU Xiaoyong,LI Man,WANG Shan.A survey on ontology learning research [J].Journal of Software,2006,17 (9):1837-1847(in Chinese).[杜小勇,李曼,王珊.本體學習研究綜述 [J].軟件學報,2006,17 (9):1837-1847.]
[12]WANG Zhihua,ZHAO Wei.Research on semantic web retrieval model based on ontology and key technologies [J].Computer Engineering and Design,2011,32 (1):145-148(in Chinese).[王志華,趙偉.基于本體的語義網檢索模型及關鍵技術研究 [J].計算機工程與設計,2011,32 (1):145-148.]
[13]The university of sheffield.GATE,A general architecture for text engineering [EB/OL].[2011-08-05].http://gate.ac.uk/.
[14]HP Labs.Jena [EB/OL] .[2011-08-05].http://www.hpl.hp.com/semweb/.
[15]Automatic Content Extraction(ACE)Evaluation [EB/OL].[2011-08-05].http://www.itl.nist.gov/iad/mig//tests/ace/.