王旭仁,楊 碩,何發(fā)鎂,王彥麗,張為群
(1.首都師范大學(xué) 信息工程學(xué)院,北京100048;2.北京理工大學(xué) 圖書(shū)館,北京100081;3.西南大學(xué) 計(jì)算機(jī)與信息科學(xué)學(xué)院,重慶400715)
Web數(shù)據(jù)挖掘[1]重要的基礎(chǔ)研究?jī)?nèi)容之一是Web頁(yè)面數(shù)據(jù)抽取,目前已經(jīng)有一些Web數(shù)據(jù)自動(dòng)抽取方法[2-4]和系統(tǒng)[4-7]如Omini,RoadRunner,IEPAD,MDR,DEPAT等[5]。文獻(xiàn) [6]提出了一種基于隱馬爾可夫模型的中文科研論文頭部信息和引文信息抽取算法,僅在局部進(jìn)行歸一化處理。文獻(xiàn) [7]采用條件隨機(jī)場(chǎng) (conditional random fields,CRF)模型統(tǒng)計(jì)了全局概率,考慮了數(shù)據(jù)在全局的分布。文獻(xiàn) [8]提出一種Web評(píng)論自動(dòng)抽取方法,但這些系統(tǒng)[7,8]只能區(qū)分Web頁(yè)面中的記錄或者抽取到記錄的內(nèi)容,沒(méi)有對(duì)記錄 (records)包含內(nèi)容中更小信息單位——字段/數(shù)據(jù)項(xiàng) (items)作進(jìn)一步分析,抽取的信息粒度比較粗,不能適應(yīng)對(duì)字段分析要求較高的領(lǐng)域應(yīng)用需要,例如機(jī)票搜索、房產(chǎn)信息查詢等廣泛行業(yè)應(yīng)用。
以當(dāng)下熱門(mén)的房產(chǎn)數(shù)據(jù)搜索為研究對(duì)象,抽取Web字段級(jí)的數(shù)據(jù),實(shí)現(xiàn)細(xì)粒度、穩(wěn)定性好的Web 數(shù)據(jù)抽取方法。對(duì)來(lái)自不同房產(chǎn)網(wǎng)站的大量頁(yè)面進(jìn)行觀察分析后發(fā)現(xiàn):幾乎所有網(wǎng)站的頁(yè)面都可以概括為兩類:①列表頁(yè) (record pages),列表頁(yè)包含了多個(gè)記錄,由于每個(gè)記錄都是由同一模板生成,所以其格式幾乎相同,在每個(gè)記錄中包含了對(duì)于該記錄的概要信息。通常還包含通往下一頁(yè),上一頁(yè)的鏈接。②詳情頁(yè) (content pages),描述了某個(gè)記錄的所有詳細(xì)信息,其中有部分信息和列表頁(yè)中該記錄的信息重合。如圖1所示。抽取器的目的就是要把這兩類網(wǎng)頁(yè)中信息結(jié)構(gòu)化地提取出來(lái)。
圖1 房產(chǎn)Web頁(yè)面分類
本文提出了一整套用于結(jié)構(gòu)化數(shù)據(jù)抽取的解決方案,包括瀏覽器的半自動(dòng)化模板標(biāo)注插件,訓(xùn)練模板庫(kù)的建設(shè),模板自動(dòng)關(guān)聯(lián)模塊,以及可視化的驗(yàn)證模塊等。對(duì)包裝器生成時(shí)所依賴的信息進(jìn)行了基于穩(wěn)定性的分類,并且按照信息穩(wěn)定性的高低為每個(gè)字段生成多個(gè)抽取規(guī)則,在抽取時(shí)根據(jù)多個(gè)抽取規(guī)則進(jìn)行抽取,只有在所有規(guī)則失效時(shí)才會(huì)導(dǎo)致抽取失敗,提高了抽取模板的穩(wěn)定性。
本文主要抽取以下房產(chǎn)信息屬性:標(biāo)題、面積、總價(jià)、幾室、幾廳、幾衛(wèi)、小區(qū)、朝向、樓層、建造年代、聯(lián)系電話等。根據(jù)頁(yè)面提供內(nèi)容的差異,規(guī)定詳情頁(yè)只有至少抽取出標(biāo)題,面積,價(jià)格3 個(gè)字段和屬性才算抽取成功,列表頁(yè)要抽取出詳情頁(yè)鏈接才算抽取成功。完整的抽取器系統(tǒng)框架如圖2所示,包括兩個(gè)過(guò)程:頁(yè)面模板訓(xùn)練過(guò)程和Web信息抽取過(guò)程。
圖2 Web抽取的整體框架
訓(xùn)練過(guò)程描述如下:
使用JQuery 在網(wǎng)頁(yè)的頂部生成模板標(biāo)注工具的操作界面。
根據(jù)用戶的操作,生成字段抽取規(guī)則或模板 (Item Templets)。
輸出字段的<路徑,正則表達(dá)式>到后臺(tái)服務(wù)器 (Data Base)。
Web抽取過(guò)程描述如下:
對(duì)數(shù)據(jù)進(jìn)行預(yù)處理(Preprocessing),例如歸一化處理等。
根據(jù)頁(yè)面的特征選擇包裝器Wrapper。
輸出提取的字段信息,進(jìn)行整合提交給用戶,包括對(duì)信息的校驗(yàn)。
在訓(xùn)練過(guò)程中半自動(dòng)化模板抽取插件通過(guò)交互式的方法,生成每個(gè)字段的抽取規(guī)則,然后提交到后臺(tái)的候選模板庫(kù)中。后臺(tái)檢測(cè)到有新的字段抽取規(guī)則加入后,會(huì)自動(dòng)將其與同一站點(diǎn)的每一個(gè)種子的訓(xùn)練網(wǎng)頁(yè)庫(kù)中的網(wǎng)頁(yè)進(jìn)行匹配,如果匹配上,則將該字段匹配規(guī)則加入到該種子的模板中。最后,可以通過(guò)可視化模板驗(yàn)證工具對(duì)模板的抽取正確性進(jìn)行驗(yàn)證。
本系統(tǒng)開(kāi)發(fā)了一個(gè)半自動(dòng)化的工具來(lái)生成模版,大大降低了模版配置的工作量。頁(yè)面模板庫(kù)的生成由4個(gè)子過(guò)程來(lái)完成:①半自動(dòng)化模板標(biāo)注 (annotating)插件;②訓(xùn)練模板;③模板自動(dòng)關(guān)聯(lián)種子頁(yè)面;④可視化驗(yàn)證。
通過(guò)GreaseMonkey 實(shí)現(xiàn)一個(gè)網(wǎng)頁(yè)模板標(biāo)注工具。GreaseMonkeysw 優(yōu)點(diǎn)是實(shí)現(xiàn)跨瀏覽器平臺(tái)操作。
具體算法如下所示。
圖3是加上標(biāo)注后的頁(yè)面。
圖3 在頁(yè)面上生成模板標(biāo)注工具
無(wú)論是記錄頁(yè)面還是詳情頁(yè)面,對(duì)記錄或者字段進(jìn)行路徑標(biāo)注都非常關(guān)鍵。記錄塊的路徑定位最好的情況是不需要人工參與,文獻(xiàn) [8]根據(jù)視覺(jué)信息對(duì)記錄進(jìn)行定位。定位準(zhǔn)確率有待進(jìn)一步提高,文獻(xiàn) [9]讓用戶先選擇一個(gè)記錄塊,然后利用記錄結(jié)構(gòu)的重復(fù)特征尋找其它的記錄塊,文獻(xiàn)[10]首先對(duì)主要數(shù)據(jù)區(qū)進(jìn)行定位,進(jìn)而應(yīng)用樹(shù)匹配的方法獲得各個(gè)記錄塊的DOM 子樹(shù),無(wú)需用戶的干涉。
在上述算法中,Locate()函數(shù)用來(lái)定位標(biāo)簽節(jié)點(diǎn),在實(shí)現(xiàn)上有多種定位依據(jù):根據(jù)標(biāo)簽位置信息,標(biāo)簽的位置信息在網(wǎng)頁(yè)上經(jīng)常變化,獲取路徑不夠準(zhǔn)確;根據(jù)標(biāo)簽的類別 (class)屬性獲取路徑,一般說(shuō)來(lái),類別屬性可以對(duì)應(yīng)到某一類節(jié)點(diǎn);根據(jù)標(biāo)簽的標(biāo)號(hào) (id)屬性,某些節(jié)點(diǎn)擁有id屬性,而且id屬性在某一頁(yè)面中一般是唯一存在的,定位較準(zhǔn);使用頁(yè)面中的固定文本,這類文本一般穩(wěn)定性較好,很少在改版中發(fā)生變化,這些文本通??梢宰鳛榻Y(jié)構(gòu)化數(shù)據(jù)的提示文本,用于定位精確度較高。
本文提出一種用戶交互式的方法來(lái)定位記錄塊。由于部分網(wǎng)頁(yè)的記錄塊嵌套很多層,有的時(shí)候通過(guò)手工很難選擇到正確的記錄塊節(jié)點(diǎn)。所以本文采用兩次點(diǎn)擊記錄塊內(nèi)的節(jié)點(diǎn),取其路徑的公共部分作為記錄塊的路徑,解決了節(jié)點(diǎn)錯(cuò)選的問(wèn)題,提高了準(zhǔn)確率。算法省略。
由于詳情頁(yè)的內(nèi)容較豐富、格式復(fù)雜,字段路徑的定位要分情況討論,算法流程如圖4所示。
根據(jù)用戶的操作生成模板。在生成模板后,把標(biāo)注到的路徑(Xpath),正則表達(dá)式 (regular expression),字段等信息提交到后臺(tái)服務(wù)器。因?yàn)橛袃煞N類型頁(yè)面,需要生成兩個(gè)頁(yè)面包裝器(wrapper),分別是記錄頁(yè)面包裝器(record page wrapper)和詳情頁(yè)面包裝器(content page wrapper)。
對(duì)于詳情頁(yè),匹配模板結(jié)構(gòu)是:<Item XPath:Item Regular Expression>。
其中Item XPath是定位到某一字段節(jié)點(diǎn)的路徑,Item Regular Expression是用于抽取出字段內(nèi)容的正則表達(dá)式。
對(duì)于列表頁(yè),需要先定位到記錄(record),然后再對(duì)其中的具體字段定位,模板結(jié)構(gòu)為:
圖4 詳情頁(yè)字段路徑生成算法
記錄頁(yè)面或者詳情頁(yè)的模板向數(shù)據(jù)庫(kù)提交時(shí),并不是直接將種子與模板直接關(guān)聯(lián)起來(lái),因?yàn)橐粋€(gè)種子可以有多個(gè)模板,一個(gè)模板可以對(duì)應(yīng)多個(gè)種子。所以在提交模板的時(shí)候,只是把標(biāo)注的模板提交進(jìn)候選模板庫(kù),具體的關(guān)聯(lián)操作在監(jiān)控程序檢測(cè)到新模板加入時(shí)才會(huì)進(jìn)行。
本文提出模板和種子的一種自動(dòng)關(guān)聯(lián)算法。系統(tǒng)為每個(gè)種子維護(hù)了50個(gè)最新的網(wǎng)頁(yè)作為訓(xùn)練集,10個(gè)列表頁(yè),40個(gè)詳情頁(yè),這些網(wǎng)頁(yè)是在下載器在下載時(shí)自動(dòng)更新到數(shù)據(jù)庫(kù)中的,從而可以保證是最新的網(wǎng)頁(yè)。
2.4.1 新加入模板自動(dòng)關(guān)聯(lián)種子算法
該算法的關(guān)鍵是,遍歷每一個(gè)種子的所有訓(xùn)練集網(wǎng)頁(yè),對(duì)網(wǎng)頁(yè)嘗試抽取,如果抽取成功,則說(shuō)明該模板與該種子匹配,將模板與種子關(guān)聯(lián)上,一個(gè)模板可能匹配多個(gè)種子。
2.4.2 新加入種子自動(dòng)關(guān)聯(lián)模板算法
由于一個(gè)站點(diǎn)可能會(huì)包含很多種子,而種子間的模板大都可以共享,所以當(dāng)加入一個(gè)新種子的時(shí)候,首先對(duì)候選模板庫(kù)中的模板進(jìn)行嘗試匹配。
在抽取器進(jìn)行抽取時(shí),如果被抽取的網(wǎng)頁(yè)是記錄網(wǎng)頁(yè),①通過(guò)記錄塊的路徑XPath定位記錄;②通過(guò)字段的路徑XPath定位到具體某個(gè)字段節(jié)點(diǎn);③經(jīng)過(guò)正則表達(dá)式對(duì)內(nèi)容進(jìn)行過(guò)濾后,提取出最終的文本。如果抽取的網(wǎng)頁(yè)是詳情網(wǎng)頁(yè),則跳過(guò)步驟①。
抽取成功是指從目標(biāo)網(wǎng)頁(yè)中抽取出了所有的必需字段,必需字段是所有抽取字段的一個(gè)子集,由具體的產(chǎn)品要求而定。抽取成功率是指在下載到的目標(biāo)網(wǎng)頁(yè)中,成功提取出必需字段的比例。
計(jì)算公式:Psuccess=網(wǎng)頁(yè)抽取成功數(shù)/下載網(wǎng)頁(yè)數(shù)
抽取準(zhǔn)確率 (Precision)評(píng)價(jià)指標(biāo)主要適用于字段,用于評(píng)估每個(gè)字段的抽取正確率。計(jì)算公式:Precision=Pcorrect/Ptotal。
Pcorrect是指抽取結(jié)果包含某屬性并且該屬性抽取正確的頁(yè)面數(shù);Ptotal是抽取結(jié)果中包含該屬性的頁(yè)面數(shù)。
系統(tǒng)進(jìn)行為期1個(gè)月的測(cè)試運(yùn)行,涉及房產(chǎn)行業(yè)內(nèi)網(wǎng)站12家,種子39個(gè)。
(1)抽取成功率
對(duì)于抽取器,本系統(tǒng)規(guī)定詳情頁(yè)只有至少抽取出標(biāo)題,面積,價(jià)格才算抽取成功,列表頁(yè)要抽取出詳情頁(yè)鏈接才算抽取成功。抽取成功率統(tǒng)計(jì)見(jiàn)表1。
表1 抽取成功率統(tǒng)計(jì)
抽取失敗主要由于網(wǎng)站改版而使得模板失效導(dǎo)致,在監(jiān)控器進(jìn)行報(bào)警后,模板失效問(wèn)題平均可以在半小時(shí)內(nèi)解決。
(2)抽取準(zhǔn)確率
對(duì)于標(biāo)題,面積,價(jià)格,小區(qū)4 個(gè)字段抽取了500 個(gè)記錄進(jìn)行檢查,統(tǒng)計(jì)結(jié)果見(jiàn)表2。
表2 抽取正確率統(tǒng)計(jì)
小區(qū)的抽取錯(cuò)誤主要是因?yàn)樵斍轫?yè)面的小區(qū)字段有兩種形式,一種帶鏈接,一種不帶鏈接,在配置模板階段,只配置了帶鏈接的情況,導(dǎo)致部分頁(yè)面無(wú)法抽取出小區(qū)。
這是本系統(tǒng)抽取生成的列表頁(yè),可以看到抓取了搜房網(wǎng),易居網(wǎng),趕集網(wǎng)等站點(diǎn)的信息,展示出了價(jià)格,小區(qū),居室,地址等信息。如圖5所示。
圖5 系統(tǒng)效果
在現(xiàn)有交互式模板生成機(jī)制的基礎(chǔ)上,根據(jù)統(tǒng)計(jì)數(shù)據(jù)分析了網(wǎng)頁(yè)改版的特點(diǎn),給出了一整套抽取的解決方案,包括半自動(dòng)的模板生成工具,后臺(tái)的模板和種子的雙向自動(dòng)關(guān)聯(lián)等模塊。在系統(tǒng)實(shí)際運(yùn)行中,抽取成功率達(dá)到了列表頁(yè)99%,詳情頁(yè)96%的效果,以及多數(shù)字段抽取準(zhǔn)確率100%,部分字段抽取準(zhǔn)確率91%的效果。在將來(lái)的研究中,還需要對(duì)生成模板信息進(jìn)行穩(wěn)定性分析和優(yōu)先級(jí)排序、對(duì)動(dòng)態(tài)網(wǎng)頁(yè)的抽取處理等問(wèn)題進(jìn)行深入研究。
[1]Soumen Chakrabarti.Mining the Web:Discovering knowledge from hypertext data [M].Beijing:Posts & Telecom Press,2009 (in Chinese). [Soumen Chakrabarti.Web 數(shù) 據(jù) 挖 掘[M].北京:人民郵電出版社,2009.]
[2]Liu Hong,Ma Yinxiao.Web data extraction research based on wrapper and XPath technology [J].Advanced Materials Research,2011,271-273:706-712.
[3]Chang Chiahui,Kayed Mohammed,Girgis Moheb Ramzy,et al.A survey of Web information extraction systems[J].IEEE Transactions on Knowledge and Data Engineering,2006,18(10):1411-1428.
[4]TIAN Jianwei,LI Shijun.Retrieving Deep Web data based on hierarchy tree model[J].Journal of Computer Research and Development,2011,48 (1):94-102 (in Chinese).[田建偉,李石君.基于層次樹(shù)模型的Deep Web數(shù)據(jù)提取方法 [J].計(jì)算機(jī)研究與發(fā)展,2011,48 (1):94-102.]
[5]JI Chun,JIANG Qin, WU Zhengyue.Survey of vertical search engine key technology [J].Information Research,2012(10):91-93 (in Chinese).[季春,姜琴,吳錚悅.垂直搜索引擎關(guān)鍵技術(shù)研究綜述 [J].情報(bào)探索,2012 (10):91-93.]
[6]YU Jiangde,F(xiàn)AN Xiaozhong,YIN Jihao,et al.Information extraction from Chinese research papers based on hidden markov model[J].Computer Engineering,2007,33(19):190-192(in Chinese).[于江德,樊孝忠,尹繼豪,等.基于隱馬爾可夫模型的中文科研論文信息抽?。跩].計(jì)算機(jī)工程,2007,33(19):190-192.]
[7]LIU Wei,YAN Hualiang.Unified and automatic Web news object extraction approach [J].Computer Engineering,2012,38 (11):167-169(in Chinese).[劉偉,嚴(yán)華梁.一種統(tǒng)一的Web新聞對(duì)象自動(dòng)抽取方法[J].計(jì)算機(jī)工程,2012,38(11):167-169.]
[8]LIU Wei,YAN Hualiang,XIAO Jianguo,et al.Solution for automatic Web review extraction [J].Journal of Software,2010,21 (12):3220-3236 (in Chinese).[劉偉,嚴(yán)華梁,肖建國(guó),等.一種Web 評(píng)論自動(dòng)抽取方法 [J].軟件學(xué)報(bào),2010,21 (12):3220-3236.]
[9]GUAN Mian.Research on structured data extraction from Web forums [D].Jinan:Shandong University,2010 (in Chinese).[關(guān)冕.Web論壇結(jié)構(gòu)化數(shù)據(jù)抽取技術(shù)研究 [D].濟(jì)南:山東大學(xué),2010.]
[10]ZHANG Huiying.QU Zhuwei.Approach for interactive Web data extraction based on sub-tree matching [J].Computer Engineering,2006,32 (9):78-80 (in Chinese). [張慧穎,曲著偉.基于子樹(shù)匹配的交互式Web數(shù)據(jù)抽取方法 [J].計(jì)算機(jī)工程,2006,32 (9):78-80.]