• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于XML的WEB數(shù)據(jù)抽取模型研究

      2012-01-11 07:03:06黃淑芹
      通化師范學院學報 2012年2期
      關鍵詞:結構化文檔數(shù)據(jù)庫

      黃淑芹

      (安徽財經(jīng)大學 管理科學與工程學院,安徽 蚌埠 233030)

      當前互聯(lián)網(wǎng)已經(jīng)成為最流行的信息發(fā)布媒體和最具潛力的資源,但目前Web上的數(shù)據(jù)大都以HTML形式出現(xiàn),HTML通常是一個很難用程序手段處理的媒體.由于Web頁面中的很多內(nèi)容的格式編排不合理,使得現(xiàn)在的Web瀏覽器在進行HTML語法分析時非常不嚴謹,另外,現(xiàn)有的WEB數(shù)據(jù)主要目的是為了顯示,用于瀏覽器瀏覽,缺乏對數(shù)據(jù)本身的描述,不含清晰的語義信息,模式也不太明確,這使得應用程序無法直接解析并利用Web上海量的信息,造成資源極大的浪費[1],如何充分應用web數(shù)據(jù)成為數(shù)據(jù)庫技術研究的熱點.

      本文針對Web上半結構化的數(shù)據(jù),構建一個半結構化的數(shù)據(jù)模型;然后研究一種半結構化模型抽取技術,它能自動地從現(xiàn)有數(shù)據(jù)中抽取半結構化模型的數(shù)據(jù).

      1 XML技術的優(yōu)點

      W3C開發(fā)的XML[2]是一種半結構化的數(shù)據(jù)模型,能使不同結構的數(shù)據(jù)很容易結合在一起[3],其數(shù)據(jù)內(nèi)容和顯示數(shù)據(jù)的格式是分離的,并且容易將XML的文檔描述與關系數(shù)據(jù)庫中的屬性一一對應起來,實施精確地查詢與模型抽取[4].XML提供了一個直接處理Web數(shù)據(jù)的通用方法,從根本上解決了Web文檔和其他資源描述所面臨的問題.基于XML從Web文檔中抽取有用信息,以更為結構化的方式顯示出來,為應用程序利用Web中的數(shù)據(jù)提供了可能.

      2 基于XML的WEB數(shù)據(jù)抽取原理

      從XML文檔中提取信息的技術已經(jīng)比較成熟,這里將信息接口和組織形式各不相同的非結構化的Web數(shù)據(jù)進行結構化處理.先將HTML轉(zhuǎn)化成XHTML,然后根據(jù)抽取規(guī)則對XHTML文檔進行處理,根據(jù)用戶需求抽取有用信息形成XML文檔.具體實現(xiàn)步驟如下:

      ①給定URL地址,獲取HTML文檔對象.

      ②使用HTML解析器解析獲得的HTML文檔對象,獲得XHTML文檔.

      ③根據(jù)用戶需求,分析XHTML文檔,構造XSL文件.

      ④根據(jù)XSL文件將XHTML文檔映射成XML文件.

      ⑤將XML數(shù)據(jù)寫入數(shù)據(jù)庫.

      在HTML向XHTML的轉(zhuǎn)化過程中,借助于Tidy工具實現(xiàn).Tidy[5]是一個免費使用的產(chǎn)品,可用于改正HTML文檔中的常見錯誤并生成格式編排良好的XHTML文檔.Tidy對文檔進行數(shù)據(jù)清洗[6]后,采用基于樹路徑的抽取規(guī)則,用XSL確定數(shù)據(jù)內(nèi)的引用點,并處理清洗過的XHTML文檔,根據(jù)用戶需求,抽取出信息,形成XML結構化文檔.

      3 基于XML的WEB數(shù)據(jù)抽取模型

      3.1 基于XML的WEB數(shù)據(jù)抽取模型

      基于XML的WEB數(shù)據(jù)抽取模型分成三個層次:用戶接口層,數(shù)據(jù)抽取層,數(shù)據(jù)存儲層.如圖1所示.用戶接口層負責將用戶提交的查詢命令提交給數(shù)據(jù)抽取層,并返回查詢結果.數(shù)據(jù)抽取層完成數(shù)據(jù)的清洗、轉(zhuǎn)換和抽取,將HTML文檔進行規(guī)范化處理;把規(guī)范化后的HTML文檔轉(zhuǎn)化為XML文檔,得到結構良好的數(shù)據(jù).并將抽取結果返回用戶界面或存入數(shù)據(jù)庫.數(shù)據(jù)存儲層保存上一層抽取的結構化數(shù)據(jù),以結構化數(shù)據(jù)庫形式進行存儲.由于XML強調(diào)數(shù)據(jù)語義與元素之間的關系,因此可以很容易將XML的文檔描述與關系數(shù)據(jù)庫中的屬性對應起來.在數(shù)據(jù)存儲層建立多層次Web數(shù)據(jù)庫,提供Web的多維分析與層次化視圖[7].

      3.2 基于XML的數(shù)據(jù)抽取的系統(tǒng)實現(xiàn)

      用戶界面用Java類來實現(xiàn),因為Java的基本類提供了一套全面的圖形用戶界面類庫.

      數(shù)據(jù)庫的連接用Java的JDBC實現(xiàn),JDBC是一種用于執(zhí)行SQL語句的Java API,可以為多種關系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成.

      XML文檔寫入數(shù)據(jù)庫時,先是建立與XML文檔相對應的表結構,然后把數(shù)據(jù)寫入DataTable,通過sqldataadapter直接把DataTable中的數(shù)據(jù)Update到數(shù)據(jù)庫.

      圖1 基于XML的WEB數(shù)據(jù)抽取模型

      4 基于XML的WEB數(shù)據(jù)抽取的實例

      4.1 獲取Web頁并映射成XHTML

      這里以天氣預報信息抽取為例.天氣的變化使每天的預報信息都有所更新,及時分析和抽取各網(wǎng)頁的天氣預報信息,對做好惡劣天氣防范工作、減少經(jīng)濟損失有重要意義.由于各個網(wǎng)站頁面風格不同,這給用戶獲取信息造成不便.圖2顯示了2011年6月5日yahoo網(wǎng)站發(fā)布的蚌埠天氣預報信息的屏幕快照.現(xiàn)在想抽取天氣的溫度、氣壓、濕度、可見度、露點、風力等信息.

      圖2 Yahoo發(fā)布的蚌埠天氣預報信息網(wǎng)頁

      信息的抽取通過一個Java類ParseHTMLToXML實現(xiàn).抽取的第一步首先將HTML數(shù)據(jù)轉(zhuǎn)換成XHTML.通過Tidy庫提供的函數(shù)在ParseHTMLToXML.tidyHTML()方法中轉(zhuǎn)換.tidyHTML()方法接收一個由URL指定的Web地址作為參數(shù),并將其轉(zhuǎn)化為輸入流(InputStream)對象,然后利用tidy的Parse方法清洗輸入流,格式化后生成XHTML文檔流(OutputStream)對象.outputXMLToFile()方法用于將XHTML文檔流對象輸出到一個指定路徑的文件中.實現(xiàn)HTML轉(zhuǎn)換成XHTML(XML的子集)的代碼如下.

      public static void main(String args[]) {

      try {

      Document doc = ParseXHTMLToXML.tidyHTML(“http://weather.yahoo.com/china/anhui/bengbu-2127869/”);

      ParseXHTMLToXML.outputXMLToFile(doc, “XML” + File.separator + “FORECASTS.xml”);

      } catch (ParseXHTMLToXMLException xmle) {

      ... }

      }

      轉(zhuǎn)化成XHTML文檔的界面如圖3所示.

      圖3 文檔清洗后形成XHTML的部分關鍵區(qū)域

      4.2 查找數(shù)據(jù)內(nèi)的引用點

      Tidy清洗與格式化后文檔中大多數(shù)信息依然與最終數(shù)據(jù)表現(xiàn)形式無關,因此需要在XML文檔中找出特定區(qū)域,從該區(qū)域中抽取數(shù)據(jù),而無需過多關心其他冗余數(shù)據(jù)[8].根據(jù)XHTML文檔可以知道要抽取的信息在一個

      標記內(nèi).設置該
      為錨點,然后用Xpath[9]路徑表達式確定錨.XPath是一種專門用來在XML文檔中查找信息的語言,我們用XPath路徑來確定表達式.錨點table在全文檔中的絕對路徑表示為:

      /html/body/div/div/div/div/div/div

      這個表達式指定了從根 元素到錨div的路徑.絕對路徑表達式的方法會導致頁面布局發(fā)生改變時查找失效.所以采用僅與內(nèi)容相關而與格式無關的相對路徑指定錨.這時XPath表達式改為:

      //div[starts-with(normalize-space(.), 'Feels Like')]

      4.3 將數(shù)據(jù)映射成 XML

      XSL是由XML派生的語言,使用XSLT通過模式與模板相結合來轉(zhuǎn)換XML文檔[10],主要用于設置數(shù)據(jù)的格式,實現(xiàn)了信息內(nèi)容和顯示格式分離.這里建立一個XSL文件,用來標識錨,指定如何從錨獲取查找的數(shù)據(jù),以我們所需的格式構造一個XML輸出文件顯示查找的數(shù)據(jù).

      XSL文件部分代碼如下:

      應用XSL文件把前面得到的XHTML文檔轉(zhuǎn)化為XML文檔,實現(xiàn)該轉(zhuǎn)化的代碼如下:

      public static void main(String args[]) {

      try {

      Document xhtml = ParseHTMLToXML.parseXMLFromURLString(“file://FORECASTS.xml”);

      Document xsl= ParseHTMLToXML.parseXMLFromURLString(“file://XSL/FORECASTS.xsl”);

      Document xml = ParseHTMLToXML.transformXML(xhtml, xsl);

      ParseXHTMLToXML.outputXMLToFile(“XML” + File.separator + “result.xml”);

      } catch (ParseXHTMLToXMLException xmle) {

      // ... Do Something ...

      }

      }

      其中parseXMLFromURLString()和transformXML()方法實現(xiàn)對抽取的XHTML文檔在指定的XSL的映射下進行變換,并調(diào)用outputXMLToFile()方法將其輸出到一個xml文件中.

      4.4 合并結果并處理數(shù)據(jù)

      如果僅抽取一次,建立一個XML輸出文件就完成了.如果執(zhí)行多次抽取,則可以通過建立的MergeXML方法,把當前抽取中獲得的數(shù)據(jù)合并到以前抽取數(shù)據(jù)的XML文件中,并可以通過該文件觀察數(shù)據(jù)抽取的正確性.

      4.5 抽取結果入庫保存

      抽取的數(shù)據(jù)可以直接作為結果輔助決策,也可以存入數(shù)據(jù)庫直接保存.直接存入數(shù)據(jù)庫的代碼如下:

      DriverManager.registerDriver(new oracle jdbc driver OracleDriver());

      Connection conn=DriverManager. getConnection(“jdbc oracle oci8@”, “username”, “password”);

      Oracle.xml.sql.dml.OracleXMLSave Sav=new OracleXMLSave(conn,“tblname”);

      Sav.insertXML(xmlOut);

      Sav.close();

      5 結束語

      隨著網(wǎng)絡的迅猛發(fā)展,WEB信息抽取會變得越來越重要.本系統(tǒng)移植性較好,大部分代碼可以重復使用,通過選擇與內(nèi)容相關但與格式無關的錨,可以方便、快捷地抽取所需的信息.

      參考文獻:

      [1]陳佳,胡燕,軒艷艷.一種基于XML的Web信息抽取方法[J].計算機數(shù)字與工程,2007,38(6):101~103.

      [2]范立峰.XML實用教程[M].北京:人民郵電出版社,2009:1~13.

      [3]周曉梅,王潛平,蘇琳.基于XML的Web數(shù)據(jù)挖掘模型的設計[J].計算機工程與設計,2007,28(2):272~274,277.

      [4]李姍,黃水源.基于XML的WEB信息抽取模型設計[J].微計算機信息,2009,25(3-3):207~208,211.

      [5]HTML Tidy[EB/OL].http://www.w3.org/MarkUp/

      [6]毛國君,段立娟,等.數(shù)據(jù)挖掘原理與算法[M].北京:清華大學出版社,2007:39~43.

      [7]周翔.基于XML的web內(nèi)容挖掘研究[D].重慶:重慶大學,2007.

      [8]蓋磊,王海軍,劉俊民.一種基于XML的Web地震信息抽取的實現(xiàn)[J].計算機應用與軟件,2007,24(8):103~105.

      [9]陳佳.基于XML的Web信息抽取技術的應用研究[D].湖北:武漢理工大學,2007.

      [10]陳景霞,張鵬偉.基于XML的Web數(shù)據(jù)挖掘模型的研究[J].情報雜志,2006(11):100~102.

      猜你喜歡
      結構化文檔數(shù)據(jù)庫
      有人一聲不吭向你扔了個文檔
      促進知識結構化的主題式復習初探
      結構化面試方法在研究生復試中的應用
      計算機教育(2020年5期)2020-07-24 08:53:00
      數(shù)據(jù)庫
      財經(jīng)(2017年2期)2017-03-10 14:35:35
      基于RI碼計算的Word復制文檔鑒別
      數(shù)據(jù)庫
      財經(jīng)(2016年15期)2016-06-03 07:38:02
      數(shù)據(jù)庫
      財經(jīng)(2016年3期)2016-03-07 07:44:46
      數(shù)據(jù)庫
      財經(jīng)(2016年6期)2016-02-24 07:41:51
      Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
      基于圖模型的通用半結構化數(shù)據(jù)檢索
      計算機工程(2015年8期)2015-07-03 12:20:35
      武汉市| 广昌县| 慈溪市| 海城市| 唐河县| 延边| 读书| 增城市| 株洲市| 伊吾县| 庆阳市| 于都县| 高唐县| 清涧县| 洛扎县| 河西区| 富源县| 百色市| 赤壁市| 怀来县| 明溪县| 河曲县| 遵化市| 从江县| 安远县| 北票市| 山西省| 彭山县| 泸定县| 九龙县| 嘉黎县| 图木舒克市| 栾川县| 武穴市| 始兴县| 凤台县| 瑞丽市| 布拖县| 囊谦县| 泽州县| 宜城市|