孫全紅,張貞貞
(華北水利水電學(xué)院,河南鄭州450011)
隨著信息技術(shù)的發(fā)展和Web資源的極度膨脹,網(wǎng)絡(luò)資源傳統(tǒng)的信息獲取方式已不能滿足用戶的需求.因此現(xiàn)在面臨急需解決的問(wèn)題是怎樣從海量的網(wǎng)絡(luò)資源中挖掘出有價(jià)值的和感興趣的信息.網(wǎng)絡(luò)信息挖掘是一個(gè)極其復(fù)雜的過(guò)程,它不同于傳統(tǒng)的數(shù)據(jù)倉(cāng)庫(kù)技術(shù)和簡(jiǎn)單的知識(shí)發(fā)現(xiàn),它面對(duì)的海量信息不是簡(jiǎn)單的結(jié)構(gòu)化數(shù)據(jù),而常常為半結(jié)構(gòu)化數(shù)據(jù),甚至是異構(gòu)型數(shù)據(jù)[1].筆者從Web表格信息抽取方法的研究及實(shí)現(xiàn)方面來(lái)研究基于樹(shù)結(jié)構(gòu)的Web表格信息抽取的建模理論,簡(jiǎn)化建模的過(guò)程,縮短實(shí)現(xiàn)周期,為Web信息抽取建模提供新的思考方法.
Web表格信息抽取系統(tǒng)是以Web表格中的數(shù)據(jù)為信息抽取對(duì)象開(kāi)發(fā)的工具,具有較高的通用性.主要有以下2個(gè)工具構(gòu)成[2]:
a.二叉樹(shù)構(gòu)建工具.此工具也是Html文檔分析工具,實(shí)現(xiàn)對(duì)文檔結(jié)構(gòu)的重建,包括Html解析和二叉樹(shù)構(gòu)建,即將一個(gè)Html文檔轉(zhuǎn)化成一顆含有文本信息的二叉樹(shù),供信息抽取使用.
b.信息抽取工具.利用全文二叉樹(shù)進(jìn)行查找、信息抽取,并具有選項(xiàng)抽取等功能,即從一篇 Web文檔的表格中提取出與用戶感興趣的關(guān)鍵詞相關(guān)的表格信息.
二叉樹(shù)構(gòu)建工具以Html文檔作為輸入數(shù)據(jù),將Html文檔解析成DOM樹(shù),再將用戶感興趣的標(biāo)記及其中的內(nèi)容重新構(gòu)建成一棵含有文本信息的二叉樹(shù).在此以表格為例進(jìn)行信息抽取,設(shè)定“title(文檔標(biāo)題)、table(表)、td(列)、tr(行)”為感興趣標(biāo)記.圖書(shū)信息見(jiàn)表1.
表1 圖書(shū)信息表
表1對(duì)應(yīng)的Html代碼如下:
值得注意的是,這是一段純凈的Html代碼,省去了屬性值的設(shè)置,其所對(duì)應(yīng)的DOM樹(shù)形式如圖1所示.
圖1 DOM樹(shù)示例
此DOM樹(shù)轉(zhuǎn)化成二叉樹(shù)的格式如圖2所示.在用樹(shù)自動(dòng)機(jī)時(shí)經(jīng)常將DOM轉(zhuǎn)轉(zhuǎn)化為二叉樹(shù),具體見(jiàn)文獻(xiàn)[3].這里為了提高操作效率,并不將DOM樹(shù)所有結(jié)點(diǎn)轉(zhuǎn)化成二叉樹(shù)的結(jié)點(diǎn),而只是將用戶感興趣的結(jié)點(diǎn)轉(zhuǎn)化成二叉樹(shù).由于通常情況下一個(gè)文檔只有一個(gè)Title,在信息抽取時(shí)可將Title進(jìn)行單獨(dú)處理,而不必放入到二叉樹(shù)中.二叉樹(shù)的左結(jié)點(diǎn)為DOM樹(shù)中此結(jié)點(diǎn)的第一個(gè)孩子結(jié)點(diǎn),右結(jié)點(diǎn)為此結(jié)點(diǎn)的兄弟結(jié)點(diǎn),若有多個(gè)兄弟結(jié)點(diǎn)依次連線為右結(jié)點(diǎn).
圖2 文檔二叉樹(shù)
當(dāng)Html文檔轉(zhuǎn)化成一棵二叉樹(shù)后,信息抽取工具通過(guò)遍歷二叉樹(shù)查找用戶感興趣的關(guān)鍵詞,然后將該關(guān)鍵詞結(jié)點(diǎn)所在的行、列或所在的子表格中的所有內(nèi)容作為信息抽取結(jié)果進(jìn)行輸出.
信息抽取時(shí)可使用較復(fù)雜關(guān)鍵字,用來(lái)表示信息抽取時(shí)的結(jié)合條件以支持多種信息抽取方式.如可使用參數(shù)and或or指定信息抽取關(guān)鍵字之間的關(guān)系.當(dāng)只有一個(gè)信息關(guān)鍵字時(shí),忽略該參數(shù).信息抽取時(shí),用信息抽取關(guān)鍵字和二叉樹(shù)中所有結(jié)點(diǎn)的文本段進(jìn)行匹配,有一個(gè)匹配成功時(shí),認(rèn)為該結(jié)點(diǎn)滿足信息抽取條件.當(dāng)有多個(gè)信息抽取關(guān)鍵字時(shí),可使用該參數(shù).信息抽取時(shí),用所有的信息抽取關(guān)鍵字和二叉樹(shù)結(jié)點(diǎn)的文本進(jìn)行交叉匹配或重復(fù)匹配.關(guān)鍵詞“and”表示所有的信息抽取關(guān)鍵字都可以和任意一個(gè)結(jié)點(diǎn)的文本相匹配時(shí),認(rèn)為該結(jié)點(diǎn)滿足信息抽取條件.關(guān)鍵詞“or”表示任意一個(gè)信息抽取關(guān)鍵字可以和任意一個(gè)結(jié)點(diǎn)的文本相匹配時(shí),認(rèn)為該結(jié)點(diǎn)滿足信息抽取條件.
開(kāi)發(fā)工具采用JAVA語(yǔ)言,關(guān)鍵技術(shù)為構(gòu)建二叉樹(shù)構(gòu)建和信息抽取2個(gè)工具時(shí)相關(guān)的類(lèi)、方法及函數(shù)的構(gòu)造及編程.在實(shí)現(xiàn)過(guò)程中,二叉樹(shù)構(gòu)建工具可包括 BinNode類(lèi)、BinTagNode類(lèi)、HtmlUtil類(lèi)、FileUtil類(lèi)、FileDownLoadUtil類(lèi)和 HtmlParser類(lèi).
二叉樹(shù)構(gòu)建工具的功能是將獲取到的Html文檔轉(zhuǎn)化為一棵含有文本信息的二叉樹(shù),供信息取用.圖3為二叉樹(shù)構(gòu)建工具功能模型圖.
圖3 二叉樹(shù)構(gòu)建工具功能模型圖
Html獲取工具由FileUtil類(lèi)和FileDownLoadUtil類(lèi)實(shí)現(xiàn).Html解析工具由HtmlParser包實(shí)現(xiàn).Html-Parser是一個(gè)純JAVA寫(xiě)的Html解析庫(kù),它不依賴(lài)于其它的JAVA庫(kù)文件,主要用于改造或提取Html.在實(shí)際的項(xiàng)目中只需要將HtmlParser.jar導(dǎo)入classpath中,就可以使用HtmlParser提供的API.
信息的抽取功能由類(lèi)BinTagTree實(shí)現(xiàn).主要是遍歷二叉樹(shù),查找符合條件的結(jié)點(diǎn),將信息提取到結(jié)果變量中.此方法用于遍歷二叉樹(shù),找到滿足條件的結(jié)點(diǎn)后,開(kāi)始回溯到指定的抽取范圍結(jié)點(diǎn),提取信息放到結(jié)果列表中.有局部布爾變量isSuccess,表示是否匹配成功,初值為 true[4].
該方法解決了在Html文檔中的表格信息抽取問(wèn)題.以抽取 http://www.265.com/weather/中的如圖4所示的表格信息為例,闡述整個(gè)信息抽取過(guò)程.
圖4 網(wǎng)頁(yè)用例
a.根據(jù)給出的URL抽取信息.
以“河北”這個(gè)關(guān)鍵字為例,進(jìn)行以下測(cè)試.當(dāng)抽取范圍為table時(shí),輸出所有河北省的天氣信息.
當(dāng)抽取范圍為tr時(shí),只輸出河北保定的天氣信息.輸入關(guān)鍵字為“河,北”.測(cè)試結(jié)果:當(dāng)抽取范圍為table且抽取條件為and時(shí),輸出河北省的所有天氣信息;當(dāng)抽取范圍為table且抽取條件為or時(shí),輸出所有包含“河”字或“北”字的省市的天氣信息.本例中將輸出河北省和北京市的所有天氣信息;當(dāng)抽取范圍為tr且抽取條件為and時(shí),輸出河北保定的天氣信息;當(dāng)抽取范圍為tr且抽取條件為or時(shí),輸出河北保定和北京市的天氣信息.
b.從本地文件夾中選取指定文件,同時(shí)還支持多個(gè)相似網(wǎng)頁(yè)的抽取.
這里選擇2個(gè)文件,分別是華北地區(qū)和港澳臺(tái)地區(qū)的天氣信息.輸入關(guān)鍵字“河,北”,抽取條件為or且抽取范圍是tr,結(jié)果是輸出河北保定、北京市和臺(tái)北地區(qū)的天氣信息.
網(wǎng)絡(luò)信息挖掘是數(shù)據(jù)挖掘技術(shù)中的一個(gè)新的分支,它涉及到網(wǎng)絡(luò)技術(shù)、數(shù)據(jù)挖掘技術(shù)、多媒體技術(shù)、文本處理技術(shù)、人工智能技術(shù)等多個(gè)領(lǐng)域.參考WWW文本信息挖掘當(dāng)前的流行技術(shù),在以往研究的基礎(chǔ)上,利用二叉樹(shù)模型實(shí)現(xiàn)了針對(duì)表格的信息抽取引擎的開(kāi)發(fā),解決了表格的信息抽取問(wèn)題,協(xié)助用戶進(jìn)行信息過(guò)濾,具有較強(qiáng)的通用性.
[1]蒲筱哥.基于Web的信息抽取技術(shù)研究綜述[J].現(xiàn)代情報(bào),2007,10(10):216 -217.
[2]王治和.表格信息抽取引擎的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)科學(xué),2006,33(10):126 -127.
[3]莊重.Web信息抽取的研究[D].武漢:湖北工業(yè)大學(xué),2009.
[4]鄒濤,黃源,張福炎.基于WWW的文本信息挖掘[J].情報(bào)學(xué)報(bào),1999,18(4):291 -295.