第四章 系統實作與分析
4.1 系統實作
4.1.1 DOM Tree 轉換模組
此模組 Input 是一個 URL 或下載到主機的 HTML 檔案;Output 則是一棵 DOM Tree,
實際上就是一份 XML 文件。
取得 URL 或 HTML 檔案之後,開始進行 GRAB 演算法步驟 1,首先會利用 Tidy 套件,將原始 HTML 轉換成符合 XML 格式的 XHTML,並修復遺漏的標籤,解決標籤 冗贅或錯置的情形。接著,再從 BODY 標籤開始,替每一個標籤加入 ccmID 及 nodeType 屬性,重新輸出成一個 XML/XHTML 檔案。模組運作程式如圖 44 所示。
GRAB 步驟 1
GRAB 步驟 2
GRAB 步驟 3
圖 44、DOM Tree 轉換模組流程 4.1.2 主題區塊樹轉換模組
此模組的 Input 是一份 XML/XHTML 文件,也就是一棵 DOM Tree;Output 則是一 個主題區塊樹(Theme-based Tree),每個節點的內容記載著要獨立成主題區塊的節點之 ccmID 值。
圖 45 描述了此模組的流程。取得 DOM Tree 的 XML/XHTML 內容之後,開始執行 GRAB 演算法步驟 2,以 DFS 巡覽方式,以由下而上的方式,逐一計算每個節點的資訊 含量,接著進行賽局決策。計算資訊含量則是呼叫另一個『資訊含量計算模組』所傳回 的結果,賽局決策則是呼叫『賽局決策模組』所傳回的結果。
整棵 DOM Tree 跑完一遍之後,所有決定要獨立的節點就反向建置成一棵主題區塊 樹,樹中節點就記錄著 ccmID。最後輸出的主題區塊樹也是一份 XML 文件。
圖 45、主題區塊樹轉換模組流程
4.1.3 資訊含量計算模組
此模組的 Input 是一棵以節點 A 為樹根的一棵子樹,Output 則是節點 A 的資訊含量。
取得一棵子樹之後,會開始判斷樹根節點、以及判斷下面包含著哪些子節點,來計 算資訊含量,最後傳回介於 0 到 1 之間的資訊含量結果。模組流程如圖 46 所示。
值得注意的是,在計算區塊位置權重(PW)值的時候,可能會遇到網頁不只一頁,需 要用滑鼠下拉的情形。在此本論文就假設一進入網頁所看到的第一頁,是最重要的部 份,其餘要往下拉才能瀏覽的部份,就較不重要。因此針對這種多頁網頁,本論文只處 理進入網頁的第一頁,也就是不須用滑鼠滾動,就可以瀏覽的部份。
圖 46、資訊含量計算模組流程
4.1.4 賽局決策模組
此模組的 Input 是一棵標有資訊含量的子樹,即玩家 i 與玩家-i 兩層子樹。Output 則是一個均衡的結果,傳回自訂的物件,包含兩個值,例如(0.75 , 0.635)。
此模組流程如圖 47 所示,取得標有資訊含量的子樹後,開始分別計算四種情況下,
每個玩家的報酬為何,並將報酬矩陣用二維陣列來表示,陣列中放的是自訂的物件。接 著試著找尋均衡點。若找不到唯一均衡點,就找報酬平均最大值。若出現多個最大值,
則進行最後的決策,玩家 i 以獨立為第一優先選擇,玩家-i 以不獨立為第一優先選擇。
圖 47、賽局決策模組流程
4.1.5 主題區塊樹調整模組
此模組的 Input 是一棵主題區塊樹,實作上以 XML 文件表示;Output 則是一棵調 整過的主題區塊樹,同樣是以 XML 文件表示。
這個模組會執行 GRAB 演算法步驟 3,逐一判斷每個主題區塊是否符合門檻值,若 未符合的,就把該主題區塊 b1(實際上也只是一段 XML 碼)再丟入『主題區塊轉換模組』, 做更細部的切割,傳回一棵更細緻的主題區塊樹 b1 後,再加入原本的主題區塊樹。
若資訊含量介於 H 和 L 之間,就執行 TSTM 演算法,針對主題區塊樹做兩兩子樹 比較,計算相似度之後,相似的主題區塊組合成一個一般化節點。
處理過的主題區塊樹,也是一份 XML 文件。系統接著依照上面的 ccmID,在原始 網頁上畫方框,代表一個主題區塊。此模組流程圖 48 所示。
圖 48、主題區塊樹調整模組流程
4.1.6 主題區塊樹擷取模組
模組的 Input 是使用者欲擷取的區塊 ccmID,Output 則是該主題區塊的 HTML 碼。
在系統中,使用者可以看到網頁畫上了許多方框,當使用者決定要擷取某個方框 時,就傳入該塊區塊的 ccmID。接著再用這個 ccmID 找到 DOM Tree 中相對應的 HTML 碼,傳回給使用者。模組流程如圖 49 所示。
圖 49、主題區塊樹擷取模組流程
4.2 實驗結果與討論
4.2.1 實驗環境與限制
為 了 驗 證 GRAB 演 算 法 的 正 確 性 , 本 論 文 實 際 以 Complete-planet 網 站 (www.completeplanet.com)的資料來進行實驗。Complete-planet 是目前最大的深網庫(deep web),收集了超過 7 萬個網頁資料及搜尋引擎,其中包括 43 個領域,涵蓋真實世界所 JavaScript 或 CSS(超過網頁原始碼 60%)。
為了更進一步驗證 GRAB 演算法對於結構化與非結構化網頁的擷取效果,每個領域 所挑選的網站,皆包含了:(1)結構化區塊佔多數的網頁、(2)非結構化區塊佔多數的網 頁。以下各別用符號○表示結構化的網頁;符號△來表示非結構化的網頁。
表 12、實驗網頁資料集
領域 網頁URL
(1) Business
http://www.commerce.gov/
http://www.thestreet.com/
http://www.cognos.com/
○
△
△ (2) Education
http://www.ed.gov/index.jhtml http://cimc.education.wisc.edu/
http://www.thegateway.org/
○
△
△ (3) Finance &
Economics
http://www.investorlinks.com/
http://www.nationalbank.co.nz/
http://www.quickmba.com/
△
△
○ (4) Health
http://www.pubmedcentral.nih.gov/
http://www.medem.com/
http://www.familydoctor.org/
○
△
△ (5) Jobs &
Careers
http://www.museumjobs.com/
http://www.jobspan.com/
http://www.technojobs.co.uk/
○
△
△
4.2.2 實驗設定
在實驗中,本論文所設定的門檻值 t 為 0.6、H 為 0.8 以及 L 為 0.3。這些門檻值的 設定是經過測試,選擇對於各個領域、各種屬性中最適當的值,作為本實驗的設定。接 下來將要做兩個實驗:
第一個實驗,我們利用 10 個領域的資料(Business、Education、Finance&Economics、
Health、Jobs&Careers、News、Politics、Science、Sports、Travel),來觀察本論文的演算 法對於處理這些不同領域的效果。
第二個實驗,將本論文的演算法與現有三大類方法做比較,驗證 GRAB 演算法擷取 主題區塊的效能(正確性),並針對處理結構化與非結構化網頁的效能來做驗證。
為了達到較精準的結果,實驗二的資料集,是從實驗一效果最好的 3 個領域而來。
4.2.3 實驗評估方式
本研究的兩個實驗,都是要驗證所有擷取出來的主題區塊,是否具有足夠的主題 性、符合使用者想看到的區塊。為了驗證這點,本論文以手動的方式,先標註出每個網 頁的主題區塊,製作成一棵主題區塊樹,接著將網頁經由 GRAB 演算法產出一棵主題區 塊樹,再將這兩樹主題區塊樹做比對。兩者的相似程度,就是 GRAB 演算法的正確性。
驗證正確性的公式,是採用一般常見的 Precision 與 Recall。如圖 50 所示,CorrectTB (6) News
http://www.usatoday.com/
http://www.foxnews.com/
http://www.cnn.com/
○
△
△ (7) Politics
http://www.ruthsforum.com/
http://www.nrc.gov/
http://www.bbk.ac.uk/polsoc/
○
△
△ (8) Science
http://www.ciesin.org/
http://www.labinternet.com/
http://www.forfas.ie/
△
○
△ (9) Sports
http://www.makeithappen.com/wis/
http://www.iis-sports.com/trivia/
http://www.mext.go.jp/english/
○
△
△ (10) Travel
http://www.abercrombiekent.com/
http://www.scubatimes.com/
http://www.hotelstravel.com/
△
△
○
代表所有正確的主題區塊數目,即實線圓形的區域;GRAB 代表 GRAB 演算法找出來 的主題區塊數目,即虛線圓形的區塊;而中間的交集部份,就是 GRAB 找出來且正確的 主題區塊數目。
此外,本論文也使用 F-Measure 來做為實驗結果的評估方式。F-Measure 是一種平 均準確率和召回率的評估方法,當 Precision 及 Recall 愈高時,F-Measure 的品質也就愈 好。以下就用兩個小節來說明這兩個實驗的結果。
GRAB GRAB CorrectTB
precision= = I
找到的主題區塊個數 個數 找到且正確的主題區塊
CorrectTB GRAB CorrectTB
recall= = I
所有主題區塊個數 個數 找到且正確的主題區塊
recall precision
recall precision
Measure
F +
×
= ×
⋅ 2
圖 50、precision、recall 及 F-Measure 計算公式
4.2.4 針對各領域的效能(實驗一) 實驗定義:
第一項實驗要驗證 GRAB 演算法對 10 種不同領域的擷取效能。每一種領域皆挑選 出 1 個結構化 HTML 網頁、2 個非結構化 HTML 網頁。計算出 precision、recall、以及 F-Measure 之後,再從中挑選出三個領域,做為實驗二的資料。
實驗結果分析:
演算法效能的實驗結果如表 13 所示。將這 10 個領域的 Precision、Recall、及 F-Measure 平均之後,可以得到如圖 51 的實驗結果。從圖表中可以發現,GRAB 演算法 在這 10 種領域有很好的效能,平均值皆在 70%到 90%之間。其中又以 Jobs&Careers、
CorrectTB GRAB
CorrectTB
∩ GRAB
News、與 Politics 這 3 個領域的效能最好,Precision 都將近 90%,Recall 也都接近 80%。
因此,接下來將用這 3 個領域的網頁做為實驗二的資料集,以達到更精準的結果。
表 13、主題區塊效能實驗數據(實驗一) Theme Web Site CorrectTB GRAB CorrectTB
∩ GRAB
Precision Recall F-Measure
Business WebSite 1 WebSite 2 Education WebSite 1
WebSite 2 Finance &
Economics
WebSite 1
Careers
WebSite 1 Politics WebSite 1
WebSite 2 Science WebSite 1
WebSite 2
0.000 0.100 0.200 0.300 0.400 0.500 0.600 0.700 0.800 0.900 1.000
1 2 3 4 5 6 7 8 9 10
Precision Recall F-Measure
圖 51、主題區塊正確性實驗數據圖(實驗一)
4.2.5 與現有擷取方法比較(實驗二) 實驗定義:
第二個實驗要驗證 GRAB 演算法與現有三種網頁區塊擷取方法的效能比較。資料集 是採用 Jobs&Careers、News、與 Politics 這 3 個領域的網頁,接著逐一實作這三類方法,
計算每個方法在 3 個領域的 Precision、Recall、F-Measure 平均值。此外,並各別針對結 構化網頁、非結構化網頁來做比較,驗證 GRAB 在處理結構化/非結構化網頁的效能。
實驗結果分析:
首先,在準確率(Precision)方面,如圖 52 與表 14 所示,GRAB 演算法在這三個領 域的表現都遠比現有的三類擷取方法優秀,也就是說,GRAB 所有挑選出來的區塊裡 面,有 90%以上都是正確的。而其中又以新聞網頁(News)與現有方法的效能差距最大,
主要的原因是本演算法的第二步驟,有運用到「第三次眼球追蹤」的新聞網頁眼球移動 模式,因此對於新聞網頁的效果特別好。
GRAB 有較好準確率的第二個原因,是因為有經由賽局做進一步分析,挑選出最適 策略,其中大部份的均衡點是落在(獨立,不獨立)的位置。因此一些資訊含量較小的區 塊就會被併掉,最後產生的主題區塊樹也更精簡準確,也能減少最後產生出來的主題區 塊數量。
0.000 0.100 0.200 0.300 0.400 0.500 0.600 0.700 0.800 0.900 1.000
Jobs&Careers News Politics
GRAB Machine Learning Automatic Rule-based
圖 52、與現有三類方法 Precision 比較圖(實驗二) 表 14、與現有三類方法 Precision 比較(實驗二)
方法 Jobs&Careers News Politics GRAB 0.897 0.907 0.886 Machine Learning 0.780 0.734 0.883 Automatic 0.797 0.728 0.681 Rule-based 0.699 0.737 0.825
在召回率(Recall)方面,如圖 53 與表 15 所示,GRAB 演算法在這三個領域的表現,
除了在 Jobs&Careers 領域效能較低之外,其他兩個領域的效能也都優於其他三類擷取方 法。這樣的結果可以說明,在所有應該要被挑選出來的區塊中,GRAB 演算法能挑出 70%~80%的正確區塊。這樣的效果跟現有三類方法差不多,且在 News 及 Politics 領域 的效果比其他三類都要好。
0.000 0.100 0.200 0.300 0.400 0.500 0.600 0.700 0.800 0.900
Jobs&Careers News Politics
GRAB Machine Learning Automatic Rule-based
圖 53、與現有三類方法 Recall 比較圖(實驗二)
表 15、與現有三類方法 Recall 比較(實驗二)
方法 Jobs&Careers News Politics
方法 Jobs&Careers News Politics