國 立 成 功 大 學 資 訊 管 理 研 究 所
碩 士 論 文
以內容為基礎之
XML 文件分類方法之研究
研究生:王常威
指導教授:王泰裕 博士
中 華 民 國 九 十 三 年 六 月
摘要
在資訊爆炸的現在,人類所需要處理的資訊已經遠超越我們可以負荷 的程度。因此對於許多工作的自動化需求也越加重要,尤其是在包含大量 資訊的文件當中更是如此。而隨著 XML(eXtensible Markup Language)的問 世,這套共通的標準與其使用上的便利性,使得其文件數量呈現驚人的快 速成長。因此結合上述這兩項觀點,本研究將嘗試提出一套有別於以關鍵 字為基礎(keyword-based)的文件分類方法,試圖以內容為基礎
(content-based)來架構出一套自動化 XML 文件的分類方法,並針對大量的 未知 XML 文件作分類。本研究方法首先將在事前對用來訓練之 XML 文件 作處理,找出代表該分類的特徵項集合,並試圖加入各種領域所獨有的知 識字彙,以此來作分類的動作。如此以 XML 特殊的架構來找出適合它的 分類方法,再結合各領域獨有知識,發展成一套擁有足夠正確率的分類程 序。而經過實例驗證之後,將本研究方法與改良後之 VSM 分類方法作比 較,結果發現,本研究方法較 VSM 分類方法,在針對 XML 文件的分類上,
具有較高的分類正確率。
關鍵字: 延伸標記語言、以內容為基礎、文件分類、領域知識
誌 謝
本論文之付梓,承蒙恩師王泰裕老師這兩年來的悉心指導與協助,激 發學生獨立思考以及認真踏實的研究精神,在研究過程中,從研究方向的 選擇、題目的擬定、觀念的啟發、研究架構的確定,直到整篇論文的完成,
老師無不費心思給予指引及教誨。老師的叮嚀:『研究過程的學習比結果 還重要』,學生銘記在心。感謝老師不僅在指導論文寫作上的苦心,更感 謝老師對於學生生活上、及待人處事上的諄諄教誨,使常威在這兩年所學 匪淺,受益良多,在此向恩師致上最高的謝意。
論文口試期間承蒙口試委員陳梁軒教授、陳飛龍教授、林君維教授於 百忙之中對本論文細心審閱,並在口試期間提出許多寶貴的意見與斧正,
使本論文得以更加完整與豐富,對於師長的提攜,在此深表感謝。
在研究所兩年當中,感謝同門易俊、政達、志宏、俊縈,總是在我最 困難的時候給予幫助以及鼓勵;除此之外,工管所與資管所的許多位學長 姐、同學以及學弟妹,也謝謝你們的關心與支持。當然還有我的許多好友,
謝謝你們給我在精神上和生活上的勉勵和鼓舞。
最後,僅將此文獻以及碩士學業的榮耀與喜悅,獻給我最親愛的父母 與家人,感謝家人們的鼓勵與支持,讓我能順利完成研究所的學業,藉此 機會表達最真摯的感謝之心。
王常威 謹誌於 國立成功大學 工業管理研究所 中華民國九十三年六月
目 錄
摘 要………i
誌 謝………...ii
目 錄………..iii
圖 目 錄………...v
表 目 錄………....vi
第一章 緒論………...1
第一節 研究動機………1
第二節 研究目的………2
第三節 研究範圍及限制………2
第四節 研究方法與架構………3
第五節 研究大綱………5
第二章 文獻探討………...6
第一節 文件分類方法………....6
2.1.1 機率模式……….7
2.1.2 向量模式……….8
2.1.3 漢米爾(Hamill)方法………..………….8
2.1.4 倒傳遞類神經網路……….9
第二節 以內容為基礎的文件分類方法.………….……….…...11
第三節 網頁文件分類與延伸標記語言(XML).……….14
2.3.1 網頁文件分類……….………...15
2.3.2 延伸標記語言……….………...15
第四節 小結………..17
第三章 以內容為基礎之 XML 文件分類方法………...18
第一節 訓練文件產生特徵項目陣列………..18
3.1.1 XML 文件基本內容………20
3.1.2 斷字處理..………22
3.1.3 一般特徵項目陣列..………24
3.1.4 階級特徵項目陣列..………26
第二節 由知識來源取得知識特徵項目陣列..………28
3.2.1 知識來源……….…………...28
3.2.2 書籍與文件之 metadata………..……….………..29
3.2.3 知識特徵項目陣列………31
第三節 分類得分計算………..32
3.3.1 比較一般、階層與知識特徵項目陣列……….…………32
3.3.2 總分計算與分類………...……….………33
第四節 小結………..34
第四章 實例驗證……….35
第一節 XML 文件蒐集………35
第二節 XML 文件處理………36
第三節 由訓練文件及 metadata 產生特徵陣列……….38
第四節 改良後的 VSM 方法………...42
第五節 測試結果……….44
第六節 小結……….48
第五章 結論與建議……….49
第一節 研究結論……….………49
第二節 建議與後續研究方向…….………51
參考文獻………...52
中文部分………52
英文部分………52
附錄 A 本研究原始收集之 XML 文件來源………..56
附錄 B 各分類項目 metadata 之來源……….57
附錄 C 多重分類功能……….58
圖目錄
圖 1-1 本研究進行之流程與架構……….……..4
圖 2-1 倒傳遞網路架構.………..……….………...10
圖 2-2 網路運作圖……….………....11
圖 2-3 一個簡單的 XML 範例文件及它的結構樹……….………….16
圖 3-1 本研究架構圖……….………19
圖 3-2 一份 XML 文件內容之樣本……….……..21
圖 3-3 本研究中 XML 文件的兩大部分圖………27
圖 3-4 一個書本目錄內含之 metadata 範例……….30
圖 3-5 本研究分類未知文件的流程圖……….34
圖 4-1 將 XML 檔案拆解成兩部分之程式碼………..37
圖 4-2 將 XML 文件分解成兩部分之範例………..38
圖 4-3 本研究方法之程式執行畫面……….39
圖 4-4 產生一般特徵項目陣列之程式碼……….40
圖 4-5 產生階層特徵項目陣列之程式碼……….41
圖 4-6 VSM 方法之程式執行畫面………...44
圖 4-7 VSM 各分類權重值之文字檔………...45
圖 4-8 VSM 方法分類未知文件畫面………...45
圖 4-9 本方法分類未知文件畫面……….46
圖 C-1 未知文件於各分類的相似度……….58
表目錄
表 2-1 常見的文件及圖片特徵項目………...12
表 3-1 本研究所使用的斷字表格………...……..23
表 3-2 本研究所使用的斷字表格(續)………...………24
表 3-3 存放一般特徵項目的陣列……….25
表 3-4 存放階級特徵項目的陣列……….28
表 3-5 存放知識特徵項目的陣列……….31
表 3-6 一般測試與階層測試的陣列……….32
表 3-7 一份測試文件的分類陣列……….33
表 4-1 本實驗之各分類項目名稱及 XML 文件數目………..36
表 4-2 各分類項目使用之 metadata 來源………42
表 4-3 本方法與改良之 VSM 方法測試結果之比較………..…46
表 4-4 本研究方法加入與未加入知識特徵項目之分類結果比較……...47
表 A-1 本研究原始收集之 XML 文件來源………...56
第一章 序論
在接近資訊爆炸的現在,人類所需要處理的資訊已經遠超過我們可以 負荷的程度,因此自動化的工作也就越來越重要。許多事情不再只能單純 倚賴人工來處理,那只會變成沒有效率與浪費時間。而在各種自動化的應 用上面,文件自動化分類可以說是一個相當重要的領域與議題,因為在任 何組織裡面,都一定會有著不等數量的文件,而在大量且繁雜的文件之 中,唯有利用各種演算法及方法,進一步輔助人類快速地將文件作分類的 動作,才可以節省大量的時間。
而各式各樣的文件種類中,XML(eXtensible Markup Language)文件已 經成為未來文件的主要標準之一。現今不少企業及各種機構,對於 XML 文件的使用上有增無減,越來越多的公司與單位,都準備採用 XML 作為 電子商務的解決方案,而且許多新的電腦技術也紛紛將 XML 列為內部運 作核心(如微軟的.Net 技術),這股不可抗拒的趨勢導致了 XML 相關軟體及 資料庫也如雨後春筍般快速地增加,由這些種種的跡象都可以看到 XML 的未來性及重要性。
第一節 研究動機
面對日益增加的 XML 文件,在管理上將會變成一個重要的議題,因 此找出一個有效的分類方法是有必要的。因為隨著 XML 的普及化,未來 遇到需要處理大量的 XML 文件的情況勢必增加,此時如果沒有一個自動 化的分類方法,那麼將會造成人力上的浪費,這是本研究第一個主要的動 機。此外由於 XML 文件具有其特殊格式,現今已經存在的許多文件分類 方法對其並不適用,同時也會錯失可以利用 XML 獨有特性的機會,因此 找出一套專屬於 XML 的文件分類方法,也成了本研究的另一個重要動機。
此外,有別於傳統關鍵字基礎(keyword-based)的分類方法,本研究希
望從以內容為基礎(content-based)的分類方法著手,找出一個可以使用一份 文件的內在涵義,依此來代表該份文件之方法,而不只是單純去比較關鍵 字是否相似而已。因此本研究所討論的 XML 文件分類,都將以內容為基 礎作為分類的重心。
第二節 研究目的
本研究旨在找出一套可行的分類方法,用於面對大量的 XML 文件時,
可以正確的執行分類的動作。具體而言,本研究之目的有二:
1. 提出一套以內容為基礎的 XML 文件的分類方法,藉此來針對未知的 XML 文件作分類。
2. 在分類過程中加入特定領域的字彙,亦即將知識(knowledge)加入分類的 過程,以此提昇分類的效果。
因此,本研究乃是希望建立一套可以有效分類大量 XML 文件的模式,
並以內容為基礎作為分類核心,加入不同領域的特定知識,以提昇分類的 效率。
第三節 研究範圍及限制
基於上述的理由,本研究將提出一套以內容為基礎的文件分類方法,
而針對的文件種類為 XML 文件。由於 XML 文件為 W3C(World Wide Web Consortium)所制定之一種特別文件標準,所以本研究的範圍也將侷限於 XML 文件的討論上,並不包含其他各種樣式的文件種類。此外,由於語 言的不同,如中文 XML 文件還包含了二字詞、三字詞等連字問題(例:”他 們”在中文是由兩個字所組成,而在英文中只是一個字”they”),或其他語言 也存在著類似問題,所以在本研究中將只針對英文 XML 文件來作處理,
並沒有探討其他語言的 XML 文件之分類。以上為本研究的範圍及其限制。
第四節 研究方法與架構
本研究的操作主要可以分成下列幾個主要步驟,並如圖 1.1 所示:
1. 事前對訓練之 XML 文件作處理,找出代表該分類的特徵項目集合。
2. 加入該分類領域所可以取得之特殊知識字彙(來源可以是專家、知識庫 或百科全書……等不同知識來源)。
3. 以此類別特徵字集合來針對測試文件作分類的動作。
具體而言,本研究會先隨機抽出包含各個類別的訓練文件作處理,配 合 XML 的特性,產生兩組分類用的特徵項陣列:
1. 使用 XML 文件中的純文字部分及註解文字部分,配合 tf-idf(term frequency-inverse document frequency)方法產生第一組主要的分類項目 陣列。
2. 根據 XML 獨有的結構性,使用文件中項目及屬性的標籤部分來產生第 二組主要的分類項目陣列。
最後再依照各個分類項的領域不同而加入相對應的知識陣列,一共使 用這三種特徵項目的集合來進行分類的動作。因此當訓練完成後,將可置 入新的測試文件到整個分類器中測試,它會逐一比對各個分類項的特徵項 目集合,並計算此份文件在各個分類項目的得分,藉此來將此文件歸類到 某一分類之中。本研究方法的完整流程及步驟也將在第三章中作更詳細的 說明。
決定研究主題
文獻探討
處理訓練用 XML 文件,產生各類別
關鍵字集合
否
問題確定?
是
加入該領域所屬之 知識字彙至關鍵字
集合內
將測試文件放入本 模式下測試
評估結果
結論與建議
圖 1-1 本研究進行的流程與架構
希望透過這樣一個流程,可以針對不同領域的 XML 文件,找出其對 應的特徵項集合,以此作為分類的依據。並且配合 XML 文件所特有的結 構性與特色,來構成一套適合它的分類方法。
第五節 研究大綱
本論文全文將分為五章,茲分述如下:
第一章:概述本研究之研究動機、研究目的、研究範圍與限制、研究方法 與架構及論文大綱等。
第二章:探討相關文獻,包括(1)針對現今「文件分類方法」作一基本 介紹;(2)進一步說明「以內容為基礎的文件分類方法」;(3)
再對於網頁文件分類與 XML 文件作探討;。
第三章:詳述本論文之研究方法,建構一個以內容為基礎的 XML 文件分 類方法。
第四章:以實際之 XML 文件來作訓練及測試的動作,藉此來評估實驗結 果。
第五章:提出本論文之結論與建議。
第二章 文獻探討
隨著時代進步,人類所需要處理的文件數目也呈現爆炸性的成長,如 果持續以人工來進行分類及整理的動作,只會浪費大量的人力及時間成 本。基於這個理由,本研究將提出一套以內容為基礎的 XML 文件分類方 法。而對於相關於此議題的文獻與研究,都將在下面作一個概括性的探討。
本章的整體安排將會從首節開始,由資訊檢索(Information Retrieval, IR) 的角度切入主題,以此對於過去與現在的幾種分類方法作一說明,並且列 出部分常見的文件分類方法再加以詳述。接著會比較兩種不同的文件分類 方法(以關鍵字為基礎和以內容為基礎),詳細說明以內容為基礎的文件分 類方法。最後並整理了相關網頁文件的分類研究現況,藉此導出本研究的 另一個主要重點---XML,並介紹 XML 文件的發展及特性。
第一節 文件分類方法
在面對大量雜亂無章的資料時,一個可以幫助人類快速取得其所需要 資訊的方式,就是資訊檢索。資訊檢索是一門探討如何結構、分析、組織、
儲存、搜尋資訊的學科,由 1960 年代一路發展至今,資訊檢索現在的重 心都已經放在如何對於文件作檢索 (Allan and Croft, 2002)。它的目的在於 找出文件中使用者真正所需要的資訊,通常會從資訊的擷取開始,先把大 量的文字作處理,找出使用者需要的資訊,並且預先儲存於暫存區或資料 庫中,接著再進行資訊過濾的動作,過濾使用者不需要的資訊,最後就從 這些整理完畢的資訊當中,使用分類的方法來完成整個檢索的過程(Salton and Buckley, 1991; Belkin and Croft, 1992)。
整個資訊檢索過程中,一個重要的部分就是分類動作(classification)。
經過了許多學者不停的研究,應用在資訊檢索方面的分類方法及演算法, 至今有許多已經被廣泛使用,例如向量空間模式(Vector Space Model, VSM) (Salton et al., 1975),線性分類(linear classifier)( Lewis et al., 1996),基因演 算法(Genetic Algorithm, GA),決策樹(decision tree)……等各種不同的方
法。這些方法除了可以使用在文件分類上面,對於許多分類的問題也可以 利用它們來解決。我們在此列出了一般最常使用在文件分類系統中的方 式,其中包含了機率模式(Jacobes, 1993),向量模式(Borko and Bernick, 1963),漢米爾(Hamill)方法(Heaps, 1973),以及類神經網路(neural network)
(Chen and Chu, 1995; Jain et al., 1999; Mostafa and Lam, 2000)等方法。
2.1.1 機率模式
若文件
D
i的描述中出現了r
各關鍵詞K
1,K
2,K
3,...,K
r,則此文件屬於 類別C
j的機率為) ,..., ,
,
|
(
C
jK
1K
2K
3K
rP
(2-1) 根據貝氏定理(Bayesian theorem))
| ,...
, , (
* ) (
*
) ,..., ,
, (
)
| ,..., ,
, (
* ) (
) ,..., ,
,
| (
3 2 1
3 2 1
3 2 1
3 2 1
j r j
r j r j
r j
C K K K K P C P c
K K
K K P
C K K
K K P C P
K K
K K C P
=
=
(2-2)
其中 ( , , ... ) 1
3 2
1
K K K
rK
c
=P
為一常數假設關鍵詞
K
1,K
2,K
3,...,K
r彼此兩兩相互獨立(mutually independent)則上式可化簡為
)
| (
* ...
* )
| (
* )
| (
* ) (
* ) ,..., ,
,
|
(
C
jK
1K
2K
3K
rc P C
jP K
1C
jP K
2C
jP K
rC
jP
=(2-3)
因此,求出文件
D
i在各類別C
j的條件機率,取其最大值即是該類別。2.1.2 向量模式
在此模式中,類別
C
j可用向量 ) , ,...,
( j1 j2 jm
j
x x x
X
= (2-4)來表示,而文件
D
i的描述可用向量 )..., ,
( i1 i2, im
i
y y y
Y
= (2-5)來表示。在計算類別時可以將文件
D
i的向量Y
i分別與個別類別C
j的向 量X
j做內積運算:jm im j
i j i j
i
X y x y x y x
Y
= 1 1+ 2 2+...+ (2-6)亦即求出向量
Y
i在向量X
j的投影量,取最大值即其類別。在此模式中,類別向量
C
j採用原始分類比重,其定義如下:若關鍵詞K
k在類別C
j中的分類比重為x
jk,則 ) ) / ( /() / (
1
∑
1=
= n
i lk j
jk
jk
d t d t
x
(2-7)d
jk 為關鍵詞K
k在類別C
j中出現的次數,t
j為訓練資料中屬於類別C
j的文件總數。而代表文件D
i的為一二元向量,其中y
ik =1假如關鍵字出 現在文件D
i中,否則為 0。2.1.3 漢米爾 (Hamill) 方法
因為在許多不同自動分類系統中,假設關鍵詞的獨立性難以得到合理 的結論。所以,有人提出利用主題相關性的預測。
文件
D
i對類別C
j的相關值r
ij可用下面公式形成表示 })({ ik
ij
fj K
r
= (2-8)其中{
K
ik}為文件D
i描述中出現的關鍵詞所組成的集合。假設在訓練文件
D
i是由人工的方式給定每一各類別C
j的相關值S
ij,那麼我們可以得到 下面的公式:}) { }, { },
({ ik ij
ij
fj K Di S
r
=(2-9)
使得
r
ij的值最為接近S
ij的值。如此,這公式便可用來對測試文件作分 類用。並且可以參考如下的線性函數:
r
ij =∑
ka
jkw
k(2-10)
a
jk為線性處理的參數,w
k 的值為 1 或 0 ,則視關鍵詞K
jk是否出現 於文件D
i中而定;來使得r
ij和S
ij的平方平均差最小。其中,漢米爾使用條件機率P(Cj Kk)當作
a
jkw
k的值,因為P(Cj Kk)可 用來當作w
k假設w
k=0 。對於測試文件的 n 個類別C
1,C
2,C
3,...,C
r條件機 率P(Cj Kk)可由下式計算而得。∑
== n
i ik jk
K
d d
K Cj P
1
/ )
|
( (2-11)
若文件
D
i的描素中包含了 r 個關鍵詞K
1,K
2,K
3,...,K
r,其中,d
jk為 關鍵詞K
k在類別C
j中出現的次數。則計算文件D
i對於每一類別C
j的相關 值。∑
== r
i
k j
ij
r P C K
r
1
)
| ( ) / 1 (
(2-12)
選取其中最高的相關值
r
ij,則文件D
i應屬於類別C
j。2.1.4 倒傳遞類神經網路
倒傳遞類神經網路模式是目前類神經網路學習模式中最具代表性,應 用最普遍的模式。倒傳遞網路屬於監督式學習,它必須要有學習範例以供 訓練之用,在整個網路架構上如圖 2-1 所示:共分成三個部分─輸入層
(input layer)、隱藏層(hidden layer)、輸出層(output layer),每層均 有多個不等的神經元(neuron)執行處理運算的功能,在層與層之間有許 多連結加權值(weights)相互連接(connection),每個神經元均與一偏 移值(bias)相連結,該偏移值具有類似門檻值的功效。決定最適當的連 結加權值組合的過程稱之為學習(learning)或訓練(training),訓練完成 後的網路,將外界所輸入的訊息,在神經元間利用連結加權值的運算而得 到輸出值,此過程稱之回想(recalling)。透過訓練及回想,逆傳遞網路 即能解決許多問題,尤其是應用於分類與預測問題上面(葉怡成,2000)。
Bias
輸入層 隱藏層 輸出層
輸 入 向 量 輸 出 向 量 ...
. . . .
. . . .
圖 2-1 倒傳遞網路架構 (葉怡成,2000)
就數學上的意義而言(請參考圖 2-2),在倒傳遞網路中,第 n 層的第
j 個神經元的輸出值Anj 為第 n-1 層神經元輸出值的非線性函數:
( )
nj nj f net
A =
(2-13)
=
∑
− −i
j n i ji n
j
w A
net
1 θ (2-14)f
:轉換函數(Transfer function)w
ji :第n-1層第i個與第n層第j個神經元間連結加權值θj
:神經元的門檻值(Threshold)
A1 A2
A3
netj f ..
.
第j個 神經元輸出 wj1
wj2 wj3
Bias
n-1層 n層
f(netj)
θj
−
圖 2-2 網路運作圖 (葉怡成,2000)
倒傳遞類神經網路模式應用在文件分類上,輸入層為關鍵詞,輸出層 代表類別,而隱藏層則表關鍵詞和類別的互相影響關係。在學習過程中,
可將輸出層的錯誤值逐層倒傳回來(feedback),用以修正各層間的網路 加權值。然後,經過不斷的訓練,最後可以找出一個使誤差最小的分類結 果。
第二節 以內容為基礎的文件分類方法
由上述的整理可以發現,現今已經有許多文件分類方法被提出來,且 廣泛地應用在許多領域,在這林林總總的文件分類方法中,再作進一步的 分析時,可以發現,文件分類主要可以分成兩種不同的應用模式,第一種 就是所謂的關鍵字方法,就是單純以事先定義好的關鍵字彙來對文件作比 對,藉此來完成分類的動作。而另一種方式就是考慮較多層面(包括文件語 意及邏輯等其他項目皆可加入分類)及以較複雜的程序來作分類的動作 (Salton and Buckley, 1991)。一般來說,照傳統只有使用關鍵字的方法在文 件分類上是不足夠的,必須配合另一種方式的使用,才可以有較精確的結 果。
有別於單純的關鍵字方法,上述另外一種的分類方法概括來說,可以 稱之為以內容為基礎或以特徵為基礎的分類方法(NietoSanchez et al., 2002),這種方法的特色就是找出一份文件裡面,可以顯示出代表這份文件
A
1A
2A
3的特徵項目,以此來作分類的動作。而特徵項目的決定可以包含文件中的 任何一個地方,所以文字出現頻率、圖片大小位置或者文件本身的結構,
都可以拿來作為分類的依據。表 2-1 為個人由一些文章中,所整理出來的 一些可以作為分類用之特徵項目(Ruge, 1997; Zhu et al., 2002; Aiello et al., 2002; Tai et al., 2002a)。
表 2-1 常見的文件及圖片特徵項目
A. 文件特徵項目
特徵項目 說明
1 關鍵字資訊
意指所有關鍵字語詞(字、詞或片語)所表現出的資 訊,包含了它的語意、位置、單一文件出現頻率、
全部文件出現總頻率、詞性……等可以表現出各 個關鍵字不同重要性或意義的特性。
2 文件結構
各種不同的文件(如 XML 文件、Word 文件等),
都各自擁有自己專屬的結構,因此如果是一些格 式較特別的文件,例如 E-mail,就可以擷取它的 標題是否含 Re、Fw 或者總長度、收件人數、附 加檔的內容……等項目來作為該文件的特徵項 目。
3 外觀比例 整篇文件或該文件內的某個區塊之長度與寬度所 構成的邊界比例。
4 區域比例 一份文件內的區塊大小佔整份文件大小之比例。
5 字體大小比例
一份文件中某個區塊大小所使用的字體大小與整 份文件最常用的字體大小之比例(通常字體越大 代表該區塊其重要性越高)。
6 字體格式
文 件 中 的 文 字 可 能 擁 有 一 般 (regular) 、 粗 體 (bold)、斜體(italic)、加底線(underline)等不同的格 式。
7 內容大小 為一份文件的總字數。
8 線條數量 一份文件中線條(line)的總數。
9 鄰近圖表 文件中可以作為分類依據的圖片或表格。
10 其他相關項目
可以作為文件分類用的其他相關特徵項目,例如 網頁文件中超連結的網頁也可以一同納入分類的 過程。
B. 圖片特徵項目
特徵項目 說明
1 顏色 包含分佈、密度、背景色、關鍵區塊(keyblock)出 現的頻率等與顏色(color)相關的屬性。
2 形狀 包含圖片中形狀的離心率、彎曲能量等幾何相關 的屬性。
現今以內容為基礎的文件分類方法,最常見的就是使用 Salton 等學者 所提出來的 tf-idf 方式(Salton et al., 1975),它是先計算出現在個別文件中 字彙的頻率(term frequency),以及該字彙在所有訓練文件中所出現的頻率 (inverse document frequency),前者數值越高代表該字彙越能代表該份文 件,而後者數值越低則代表該字彙在整個分類過程中越有代表性(因為它不 會是太過平常的字彙,如 computer)。將兩者相乘之後(D=tf*idf),則可以 得到該字彙的重要性排名,再透過一個門檻值的設定,便產生出足以代表 該份文件的字彙集合。以此配合各種分類方法作分類的動作(如向量空間模 型方法),便達到了上述以內容為基礎的目的。
除了上述使用關鍵字資訊來作分類外,另一個重要的分類依據就是根 據不同文件所各自擁有的結構性,作為分類時一個重要的指標。一般文件 結構分析可分成兩個主要的部分(Lee et al., 2002)。
1.幾何結構(geometric structure):
包括如圖片、文字或表格等明顯的物件,這些特徵項目通常在文件中都 是可見的。
2.邏輯結構(logical structure):
著重於物件的邏輯意義以及物件彼此間的關係,通常可以藉由幾何分析 得到(如物件的位置、大小、種類……)。
經由上述的整理,可以發現在以內容為基礎的文件特徵項選取上,除 了文字本身的一些特徵及結構性之外,其實整份文件的其他部分,如插 圖、表格、彼此位置,或者字體大小、格式,或文件本身大小,甚至文件 裡面可能擁有的任何東西,都可以列入特徵項目的考量之中。因此分類前 必須先決定欲分類的文件種類(因為各種文件種類有其各自的特性,例如有 的文件可能有圖表、有的沒有),再根據它所表現出來的一些特性來決定該 使用哪些特徵項目,接著才方便進行分類的動作。
第三節 網頁文件分類與延伸標記語言(XML)
由於本研究主要著重於 XML 文件的分類上面,而它是屬於網頁文件 的 一 種 , 相 似 的 格 式 還 有 如 HTML(Hyper Text Markup Language) 、 SGML(Standard Generalized Markup Language)等不同的網頁文件,因為這 些文件都有別於一般文件,它們通常擁有特殊的結構,所以本小節的第一 部份將會針對這個領域的發展現況作一探討,接著才會對於 XML 文件加 以說明。
2.3.1 網頁文件分類
網頁文件和一般文件主要的差別在於,由於它們都需要透過瀏覽器的 解譯,所以一般都是採用標記語言(markup language)的方式與架構來寫 成,而這樣的特性,剛好適合於以內容為基礎的方法(Yi and Sundaresan, 2000)。因此在近幾年來,網頁文件分類除了也可以採用傳統的關鍵字分類 方法外,以內容為基礎的分類方式在此類文件中發揮了更大的功效。
此外,除了可以藉由在訓練文件本身中找出特徵項目,再透過不同演 算法的分類器來分類外,嵌在網頁裡面的超連結(hyperlink)資訊,也可以 當成是一項重要的特徵項來幫助分類。另外配合各種不同的標記語言格 式,也可以決定出不同的分類特徵項,如 HTML 語言就可以從<H1>、<H2>
等標籤內的文字,決定不同的權重(weight),藉此產生該份文件的特徵項出 來( Jenkins and Inman, 2000; Tai et al., 2002),因此,根據不同的網頁文件 其各自不同的特性,來找出適合代表它的特徵項目也就變成一個重要的課 題了。
相對於已經非常普遍的 HTML 文件,才出現沒幾年的 XML 文件相形 之下,就更需要一套適合它的分類方法,因此本研究也將朝這個研究目的 而提出一套建議的分類方法。無庸置疑地,XML 在本篇研究中佔了相當 重要的地位,所探討的分類方法也是以此為對象,所以下面將討論 XML 的發展現況與其特性。首先將由 XML 的發展演進談起,再介紹它的基本 特性和一些值得注意的地方。以便可以在下一個章節來進一步架構出一套 以內容為基礎的 XML 的分類方法。
2.3.2 延伸標記語言
XML 是 由 W3C 在 1998 年 所 制 定 出 來 的 一 套 文 件 呈 現 標 準 (http://www.w3.org/TR/REC-xml),它是一套資料的描述語言,可以視為 SGML 的精簡集合,主要是用設計來在 Web 中攜帶結構化的資訊,並且允
許使用者可以自行定義和它們文件相關的標籤,同時還可以透過文件格式 定義(Document Type Definition, DTD),來對文件進行驗證的工作(Zisman, 2000)。
藉由定義各種標籤,XML 可以將資料存放成巢狀的格式。這也是一種 半結構化(semi-structured)的文件規格,這樣的特性有利於 XML 在網路中 作文件的交換與方便使用者作整理。而和傳統的文件比較,XML 文件具 有下列的三種特色(Yi and Sundaresan, 2000):
1. XML 的每一個項目都是由標籤產生的。
2.這些標籤通常都是巢狀的,它們是 XML 文件的本質架構
3.一份 XML 文件的任何項目都可以再需要的時候指向另一個項目 形成一個指向的圖形,而不是樹的結構,如圖 2-3 所示。
a) 一份 XML 文件 b) 文件結構樹 圖 2-3:一個簡單的 XML 範例文件及它的結構樹
(修改自 Yi and Sundaresan, 2000)
除了這些基礎的特性外,XML 同時具有了幾項重要的附加特性,如用 來定義和規範特定 XML 文件內容架構的 DTD、可以對 XML 文件進行驗 證的 XML schema,或塑造了 XML 文件為節點樹模型的 Xpath,現今也有
<Employee>
<Name>
<Contact_info>
<Email>Morgan@mor.com</Email>
<Cellphone>0952964166</Cellphone>
</Contact_info>
</Name>
</Employee>
Name Contact_info
Morgan
Employee
Email Cellphone
Morgan@mor.com 0952964166
一些學者針對 XML 的這些特色提出了各種研究(Bertino et al., 2002; 2003)。
總結來說,XML 在現今資訊應用的地位有增無減,將它作為資料交換 的標準也形成了一種新的趨勢,因為它可以廣泛地被運用在各種領域。雖 然它的版本可能不斷地被更新(如 W3C 在 2000 年十月又提出了 XML 的第 二版),但它的基本架構與使用方法都不會有太大的變動,這套標準將會持 續的被使用一段時間,因此找出一個適合它的文件分類方法是相當有助益 的。
第四節 小結
在本章中一開始探討了幾種不同的文件分類方法,接著再細分成兩種 主要的模式,第一種就是傳統關鍵字的分類方法,第二種也是本研究所使 用的模式,屬於以內容為基礎的分類方法我們也將討論的重心放在後者。
此外因為本研究的主題鎖定在 XML 文件,所以在第三小節我們繼續整理 了網頁文件分類的現況,並且在該節後半段,開始針對 XML 加以介紹。
承續本章所作的一些文獻探討,在下一個章節將提出一套以內容為基 礎,並且針對 XML 文件來作分類的方法,希望可以利用 XML 的一些獨有 的特徵項目,來代表出該份文件的主要真正涵義,並透過我們所制定的程 序,來進行分類的動作,藉此作到自動分類 XML 文件的目的。此外,也 將加入知識字彙的觀念在整個分類過程裡面,進一步再提昇整體分類的正 確率。
第三章 以內容為基礎之 XML 文件分類方法
本研究的目的是想建立一套以內容為基礎的 XML 文件分類方法,因 此首先針對事前訓練用之 XML 文件作處理,配合 XML 文件的特色,找出 代表該分類的特徵項目集合。接著再根據 XML 文件所屬的各個分類領域 (例:電腦類、管理類……),加入該領域可以取得之專門的知識字彙(來源 可以是專家、知識庫或百科全書等)。結合兩者之後便可以得到該領域之完 整的分類特徵項目集合,本研究將使用三個陣列來存放這些特徵項目的內 容,以作為針對未知測試文件作分類的依據。
本章節將就整個研究方法的流程逐步說明,詳細的整個分類流程可以 參考圖 3-1,本研究方法一共分成了幾個步驟,首先會先收集各個分類的 XML 訓練文件,在經過亂字處理以及本方法的拆解過程之後,分別會產 生一般及階層特徵項目陣列,加上由外部所取得的知識特徵項目陣列,便 可以利用此三個特徵項目陣列,來對未知文件進行分類的動作。這些步驟 也將在本章後面的幾個小節分別加以說明之,並在下個章節開始依據此方 法來實際對 XML 文件進行測試的工作,藉此評估本分類方法的正確性。
第一節 訓練文件產生特徵項陣列
以內容為基礎的分類方法,最重要的一個步驟就是要找出某個分類的 特徵項目,由於我們所追求的是一個自動化的方法,而非由人工直接決定 該特徵項目的內容,因此需要先由訓練文件中發掘可以代表該分類的特徵 項目。換言之,就是必須先對訓練文件作處理,使用事先準備好的 XML 訓練文件置入以下設計的程序,藉此找出可以代表該分類的特徵項目。
1. 收集訓練文件
3.1 各分類之一般特徵項目陣列
2.斷字處理
3.3 加入各分類之知識特徵項目陣列
5.評估結果與結論 4.測試階段
3.2 各分類之階層特徵項目陣列 3.取得特徵項目陣列(一般、階層、知識)
圖 3-1 本研究架構圖 字彙 Seminar Journal ……
……
C 類 XML 文件 B 類
XML 文件 A 類
XML 文件
a, the, how, where, therefore……
字彙 Thesis Paper ……
重要性 2.37 2.23
字彙 Title Year ……
權重 8 4
未知 XML
文件
一般特徵陣列 階層特徵陣列 知識特徵陣列
比較 分類
B 類 XML
文件
事先整理各個 類別的 XML 訓練文件,由 此分別產生每 一個分類的特 徵項目集合
使用此三個陣 列針對未知文 件計算各分類 得分並分類
3.1.1 XML 文件基本內容
由於本研究著重於以內容為基礎的特性,所以首先必須先簡短地介紹 一份基本的 XML 文件所具有的內容(Zisman, 2000)。同時可以參考圖 3-2,
將可以有更清楚的 XML 輪廓:
1. XML 基本宣告(XML declaration)
一份 XML 文件在最上頭的地方通常會說明該份文件的版本資訊。例如:
<?xml version=’1.0’?>。
2. 註解 (comment)
使用者可以視需求而加入註解,幫助了解本份文件的用途所在。例如:
<!-- This file represents a fragment of a book store inventory database -->。
3. 項目(element)
項目是指由前後兩個標籤(tag)包圍內含物所建構出來的一個單位,在前 後中括號內的即為項目名稱,如前章所述,一個項目可以包含子項目。
例如:<book></book>這樣一組標籤則代表了一個 book 項目。
4. 屬性(attribute)
屬性指的是一個項目中所附加說明的一些特性,例如:
<book genre="novel" publication-date="1967" ISBN="0-201-63361-2">
5. 內容文字(text)
在一個項目之中所存放的文字則為其內容文字,它就如同資料庫內的例 示(instance),存放該項目的實際資料。
圖 3-2 一份 XML 文件內容之樣本
以上為一份 XML 文件的主要內容,基本上這些元件的定義都相當自 由,都是開放給使用者自行定義。但有時候為了在使用上可以統一,XML 也提供了兩種驗證文件是否遵循某種標準的功能。如下所列:
1. DTD
DTD 的作用便是在定義 XML 表單應如何撰寫安排,它就類似於文章的 寫作文法和語意表達方式。DTD 能夠幫助 XML 剖析器來解譯驗證 XML 文件的內容是否符合它的規範,因此在統一文件標準時頗為重要。
2. XML Schema
DTD 雖然可以定義 XML 標籤和架構,不過使用的語法不同,而且缺乏 擴充性,所以一些軟體廠商如 Microsoft 等就提出了一種不同的檢查系 統,也就是 XML Schema。XML Schema 語法檢查擁有擴充性,可以直 接擴充別人現成定義的 XML Schema,此外 XML 文件的標籤內容都是 文字字串,但是 XML Schema 可以定義標籤的資料型態(data types),
雖然在撰寫上仍然為文字內容,不過在撰寫程式讀取 XML 元素時,可
<?xml version="1.0" ?>
- <!--
This file represents a fragment of a book store inventory database
-->- <bookstore>
- <book genre="autobiography" publication date="1981"
ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
- <author size="25">
<first-name age="25">Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
</bookstore>
以取得元素的資料型態。
除了上述兩點之外,XML 還包含了許多額外的功能可以使用,例如 XSLT、XLINK 等內容,但這些額外的內容並非相當普遍且在使用上並不 具有必要性,亦即一份 XML 文件不用遵循這些內容便可以存在。所以在 本研究中不將這些非基本的內容作為文字的特徵項目。讓本方法可以適用 於大部分的 XML 文件處理。基於這個理由,在文字的特徵項目選取方面,
主要使用上述註解、項目、屬性及內容文字等四點,作為分類的依據。
3.1.2 斷字處理
一份英文文件的組成通常包含了冠詞、介係詞、連接詞、動詞、形容 詞等許多不同詞性的字彙,而這些字彙裡面,如果出現頻率過於頻繁,那 麼代表的不僅是它的重要性不高,而且對於整個分類過程只是多餘的冗字 (如 a、the、and 等),這類的文字統稱為斷字(stop word)。在文件分類的過 程中,對於這類的字彙,往往就是建立一個斷字的表格(stop word list),來 事先處理訓練文件,將這類的字預先過濾掉,以增加分類的效率。隨著使 用者定義不同,斷字表格也會有所差異,本研究參考甲骨文公司(Oracle) 所出版的一套文字處理軟體 TextServer3,以其中使用的斷字表格
(http://otn.oracle.co.kr/docs/oracle78/txtsvr30/tsad/ch15.htm)為基礎進行修改,整 理過後將本研究所使用的斷字表格列於下面的表 3-1。
表 3-1 本研究所使用的斷字表格
a about above across after afterwards again against all almost
alone already also among an and another any anyone anything anywhere are around as at
be because become been before behind besides between beyond both
but by can could down
during each either else enough etc even ever every everyone everything everywhere few first for
from further had has have
he her here him his
how however last latter least less many may me might more most must my next neither never no nor not nothing now of off other otherwise our out over own
per perhaps same seem several she should since so some someone something sometimes somewhere still
such to together too towards
表 3-2 本研究所使用的斷字表格(續)
而除了斷字需作處理外,在文件分類的領域中,同義字處理也是一個 重要的議題,本研究在此部分並不會多加探討,但關於同義字的問題,於 本研究方法中,可採用加入一同義字字典(synonym dictionary)的方式來做 對照,藉此將同義的字彙歸納在一起。在此處僅稍加說明,並不對此問題 多加探討之。
3.1.3 一般特徵項目陣列
由於本研究著重於以內容為基礎的分類方法,因此針對 XML 文件的 特性,本研究設計將其分成兩個部分,可以參考圖 3-2,本研究將一份 XML 文件分割成兩個重心,這樣做的目的將在第三節得分計算時作更進一步的 說明,而第一個部分包含了文件中的
1. 項目文字部分(如 Franklin) 2. 屬性文字部分(如 autobiography) 3. 註解文字部分(如 the file represents 等)
than then that the their them therefore this those though through thus under until up
us very via was we well were what whatever when whole whose why will with without would where
這些文字的部分由於較為單純,所以一般特徵項目陣列將由這三個項 目所產生。當所有訓練用的 XML 文件陸續被讀入時,上述三個部分的所 有字彙將被預先存放於一個陣列裡面,並且紀錄它們的一些屬性,如表 3-3 所示,這個程序也必須同時去比對表 3-1 及表 3-2 的斷字內容,如果該字 彙為該表格中的字彙,那麼就需要剔除掉不列入分類的計算。
表 3-3 存放一般特徵項目的陣列內容
陣列內容 資料型態
字彙名稱 字元(char) 在該分類所有訓練文件
中出現次數
整數(integer)
在總訓練文件(所有分類) 中出現在多少文件次數
整數(integer)
在所有訓練文件都被讀完之後,產生出來上述的一般特徵項目陣列還 要再經過一次運算,基本上這個部分就是利用上一章節所提過的 tf-idf 方 法之精神,透過下列的運算:
Dpq=Tfpq*IDFq (3-1) 其中 Dpq代表某一字彙 Tq在文件 p 中的重要性,而 Tfpq代表 Tq在文件
p 中出現的頻率;IDFq為字彙 Tq的反文件頻率,其計算方式為
IDFq =log (N/Dq) (3-2) Dq代表了在所有文件集合中,含有字彙 Tq的文件篇數,而 N 則是此 文件集合的所有文件數目,透過重要性 Dpq的排名,就可以找出代表該分 類文件的一般特徵項目陣列內容。在此也必須定義一個門檻值θ ,設定在 第一個特徵項目陣列裡面,要取出前面多少個字彙以作為分類使用(越前面
的字彙代表其重要性越高),而這個值應該視訓練及測試文件的多寡及規模 而訂定適合的數值,例如在訓練完成後,共產生了包含 150 個字彙的陣列,
此時可以設定θ =100,只使用前 100 個字彙作為該陣列的內容,這樣做的 目的是只使用重要性較高的字彙作為分類用,而捨棄後面較無法代表該分 類的字彙。經過了這樣的一個流程,一般特徵項目陣列也會隨之產生。
3.1.4 階層特徵項目陣列
承上面小節所言,本研究將 XML 文件切割成了兩個部分,第一個部 分包含了文件中所有純文字的部分,這個部分使用了 tf-idf 的基本觀念來 作處理,藉由字彙的重要性排名,找出適合的特徵字彙陣列。而第二個部 分就是將 XML 特有的結構性給加入進來。如圖 3-2 所示,一份 XML 文件 除了文字部分,它還包含了項目及屬性兩個重要的標籤。因此第二個部份 將包含了:
1. 項目標籤部分(如 Bookstore) 2. 屬性標籤部分(如 genre)
如圖 3-3 所示,正常字體部分就是上一小節所提及的項目文字及屬性 文字,加上註解文字就是一般特徵項目陣列的來源,而斜體加粗體這個部 分的文字,就是本小節所要擷取的階層特徵項目陣列的來源。它們不單純 只是一般的文字,因為隨著 XML 特有的結構性,它們將隨著層級不同而 呈現不同的重要性。
圖 3-3 本研究中 XML 文件的兩大部分(一般字體與特殊字體)
一樣由圖 3-3 可以得知,一份 XML 文件由具有唯一性的根節點(root node)(如 Bookstore),採用分支的方式一路向下成長,扣除最底端項目文字 部分的葉節點(leaf node)(如 Franklin),每個項目及屬性標籤(如 Book 及 genre)的位置都有它的階層性。本研究也根據它這項特色制定了不同階層 所各自擁有的重要性權重(weight),計算的方式如下:
Wlevel=N(5-evel) level=1.2.3.4 (3-3)
另外在本研究中為求計算的公平性,所以只計算到每份 XML 文件前 四層的內容,由根節點算起由上到下分別為第 1、2、3、4 層;Wlevel為各 個階層所擁有的權重值,而 N 為一個整數變數,可以讓使用者自行設定,
如果認為項目及屬性標籤的內容是相當重要的分類依據,將可以提高 N 的 值,本研究建議使用 N=2 作為權重值的評分標準。例如圖 3-3 的 Author 項目標籤,它位於第三層的位置,因此它所擁有的權重值為 22=4。
在產生出上小節的一般特徵項目陣列之後,下一個步驟就是建立階層 特徵項目陣列,如表 3-4 所示。這個陣列不同於上一個陣列的處理方式,
它不僅會紀錄所有該分類的訓練文件中,項目標籤及屬性標籤的字彙內
Book
Author Ttitle
first name last name
The Autobiography of Benjamin Franklin8.99
Price
Benjamin Franklin
genre="autobiography" publication date="1981" ISBN="1-861003-11-0"
size="25"
Bookstore
容,並且也會填入各自所屬的權重值,如果在處理過程中遇到相同的字 彙,將保留最大的權重值。(如果某字彙在第一份訓練文件中權重為 2,在 另一份訓練文件中權重為 4,那麼該字彙的權重將是較大的 4)。
表 3-4 存放階層特徵項目的陣列內容
陣列內容 資料型態
字彙名稱 字元(char) 所擁有的權重值 整數(integer)
經過上述的處理後,會產生階層特徵字彙陣列,該陣列的特色是隨著 字彙出現的位置不同,而具有不同的權重值。因此在稍後的測試階段,越 上層的字彙如果被比對成功,將會獲得較大的得分,這也代表了該份文件 越屬於這個分類。
第二節 由知識來源取得知識特徵項目陣列
本節將討論本研究另一個重點所在,就是如何導入”知識”的部分在整 個分類過程中。首先會先介紹一些可以取得知識的地方(知識來源),接著 會針對本研究採用的知識來源加以說明,最後則是說明如何利用擷取出來 的知識字彙產生知識特徵項目陣列,以加入本研究的方法中作為分類使 用。
3.2.1 知識來源
一般來說,知識可以由下面幾個地方取得:
1. 專家(expert)
2. 各類相關書籍或文件之 metadata
3. 知識庫(knowledge bank)
4. 字典(dictionary)或百科全書(encyclopedia) 5. 常見問答(FAQ)
6. 新聞討論群組(newsgroup)或電子佈告欄(BBS) 7. 實體論(ontology)
8. 資料庫(database)中的知識
以上為本研究整理出來的一些常見知識來源,為了增加分類的效果,
使用者可以從上述的知識來源找尋各種分類的知識字彙加入分類過程 中,配合上一小節所提及之一般特徵項目陣列與階層特徵項目陣列,成為 第三組知識特徵項目陣列。
3.2.2 書籍與文件之 metadata
在眾多知識來源中,本研究將採用書籍與文件之 metadata,metadata 就是以資料來解釋資料(data about data),其實書或文件中各種的標題部分 (書本的目錄就是該書完整的 metadata 集合)就是 metadata,每個 metadata 以簡短的文字就描繪出了這個章節或段落的主要內容,而從每個領域的書 籍或文件,就可以獲得該領域的知識字彙。為何選擇其作為分類過程的一 部份,原因如下:
1. 因為在各種知識來源中,各類書籍以及文件是最容易被取得的一 個方式,在書店、圖書館、甚至網際網路中就存在著大量的書籍 與文件,而且包括紙本以及電子檔,為數相當的龐大。
2. 它包含了各種領域的所有知識,不會像有些知識來源可能只有某 些領域的知識在內(例如知識庫與實體論等知識來源,現今可能 只有某些領域才有建立之)。所以它是相當完整的。
3. metadata 本身就具有以內容為基礎之概念存在,單純使用它來作 為某個分類項目的特徵項目是可行的,此外,本研究方法正是著 重於以內容為基礎之特性,因此將其納入分類過程是相當適合 的。
綜合以上的幾個理由,本研究建議採用這部分的知識來源作為分類依 據,圖 3-4 為一個由書本目錄所展示出來的 metadata 範例,由圖 3-4 可以 知道,由一本書中的目錄中的 metadata 便可以展示出各個分類所擁有的知 識字彙(例如 Whiskey 就是屬於蒸餾酒類(distilled liquors),而 Rose Wine 就 會被歸類到釀造酒類(fermentative liquors)),因此下面一個小節也將針對本 研究如何將此知識來源納入分類的過程,加以說明之。
圖 3-4 一個書本目錄內含之 metadata 範例
Content
Ch1 Distilled Liquors Whiskey
Brandy Gin Tequila Vodka Rum
Ch2 Fermentative Liquors Wine
Cooler Still
Wine-Red Wine White Wine Rose Wine Fortified Wine Malt Beer
Draft Beer Stout
.
.
.
3.2.3 知識特徵項目陣列
本研究嘗試加入知識字彙到分類的過程中,並預期會幫助提升分類正 確率,因為在每個分類項目的領域中,都一定會存在與其相關性高的字 彙,而這些字彙也代表了該分類的一些知識,舉例來說,與 MS Office 該 軟體分類相關的字彙,就可能包含了如 Word、Excel、Powerpoint 等字彙,
如果可以在未知文件中比對到這些字彙,那該份文件就應該越屬於該分 類。
因此本研究提出的方法,首先必須根據所要分類的領域,收集相關的 書籍以及文件,從中擷取出屬於 metadata 的部分,最容易取得的地方也就 是每篇文章的標題部分,包括所有子標題的部分。因為這些 metadata 同時 具有階層性(子標題下面可能還有更小的子標題,以此類推),所以在本研 究也特別針對它的這個特性,加入了權重的設計。另外為了公平性,不管 從任何一個知識來源取得知識字彙,一律只取前四層,由主標題一直延伸 分別為第 1、2、3、4 層。權重的給分方式如同上一小節的階層特徵項目 陣列一樣,列於下面的式子 3-4:
Wk_level=N(5-k_level) k_level=1.2.3.4 (3-4)
Wk_level為各個階層所擁有的權重值,而 N 為一個整數變數,可以讓使
用者自行設定。由上面的做法可以建立出如表 3-5 的陣列,同階層特徵項 目的做法,如果在處理過程中遇到相同的字彙,將保留最大的權重值。
表 3-5 存放知識特徵項目的陣列內容
陣列內容 資料型態
字彙名稱 字元(char) 所擁有的權重值 整數(integer)
至於知識陣列的大小將由使用者自行決定,如果參照的知識來源越 多,相對的該陣列也會越龐大。透過這樣一個流程,將可以為各個類別建 立起各自所屬的知識特徵項目陣列,並加入到本研究分類的過程之中。
第三節 分類得分計算
本小節旨在說明當上述的三個特徵項目陣列產生之後,置入一份未知 文件到本分類器中,實際的計算過程與分類的依據。本研究方法之所以將 一份 XML 文件拆解成兩個部分來各別比較,主要的思考出發點在於一套 以內容為基礎的分類方法,應該著重於文件本身特殊的結構,而 XML 文 件階層式的標籤,正是它的一個重要特色,因此本研究將該部分抽出,並 在計算得分時給予較高的重要性,以便和文件的其他部分有所區別。至於 知識特徵項目的部分,則是希望藉由外加的知識字彙,來幫助分類時可以 進一步提升其正確率,此部分也將在下一章節實驗並且討論其結果。
3.3.1 比較一般、階層與知識特徵項目陣列
當一份未知的 XML 文件被讀入時,可以參考圖 3-3,依照本研究所設 計的方式,會先將 XML 文件拆成兩個部分,第一個部分包含了註解文字、
項目文字、屬性文字等純文字的部分;而第二個部分則包括了項目標籤與 屬性標籤兩個具有階層性及代表性的內容,而這兩個部分也會分別被存放 成陣列的形式,如表 3-6 所示,以下稱作一般測試陣列與階層測試陣列。
表 3-6 一般測試與階層測試的陣列內容
陣列內容 資料型態
字彙名稱 字元(char)
而為了得分計算的需要,同時也需要準備一個該文件在各個類別得分 的陣列以便整個分類過程中使用,如表 3-7 所示。
表 3-7 一份測試文件的分類陣列內容
陣列內容 資料型態
類別編號或名稱 字元(char) 得分 整數(integer)
接著便開始整個得分的計算,首先將一般測試陣列的內容逐一比較每 個類別的一般特徵項目陣列內容,如果有相同的字彙被比對到時,則在分 類陣列該類別的得分加 1;至於階層測試陣列同樣用於比較每個類別的階 層特徵項目陣列內容,如果有相同的字彙被比對到時,則在分類陣列該類 別的得分值,根據該字彙擁有的權重值累加上去(如該字彙的權重為 4,則 得分值便加 4)。
這樣出來的結果並非最終結果,一般測試陣列與階層測試陣列還需要 繼續比較知識特徵項目陣列,這個部分的做法是依序置入兩個測試陣列,
逐一比對各類別所有存放於知識特徵項目陣列的內容,如果有相同的字彙 被比對到,則在該類別的得分值累加上該知識字彙所擁有的權重值。
3.3.2 總分計算與分類
經過上一個小節的計算,一份未知的 XML 文件將會獲得它在每一個 分類項目的得分值,由下面的圖 3-5 可以了解到本研究整個分類階段的過 程。依照本研究方法的設計,此份 XML 文件將被分類至得分最高的那個 類別。
圖 3-5 本研究分類未知文件的流程圖
本研究將在下一個章節,以實際足夠數量的 XML 文件進行訓練與測 試,藉此驗證本方法的可行性與正確率。
第四節 小結
以內容為基礎的文件分類方法,是根據分類文件總類的不同,配合每 種文件的特性當作特徵項目,藉此提升分類效果的一種方法。在本章節中 說明了本研究針對 XML 文件所提出的一套分類程序與方法,利用 XML 文件本身所擁有的獨特屬性,透過本研究所提出的拆解方法,將 XML 文 件分成兩個部分,並且透過訓練的過程建立出兩組不同的特徵陣列藉此代 表某一個分類項目。而除了由 XML 文件自身所取得的特徵項目外,在本 研究中還額外加入知識字彙,作為第三組特徵陣列的內容,藉此來輔助整 個分類的過程,進而提升整體分類的效果。依照本章節所提出的方法與架 構,在下一個章節,將會實際以一定數量的 XML 文件進行測試,以便驗 證本研究方法的可行性及正確率。
未知 XML
文件
一般測試陣列
階層測試陣列
知識特徵陣列
拆解 分類 B 類
XML 文件 一般特徵陣列
比對
比對
比對
比對
階層特徵陣列
分類陣列 得分
得分 得分
第四章 實例驗證
根據上一章所提出的研究架構,本章節將決定一個實際分類的領域。
並根據此領域。收集相關的 XML 文件以進行測試,藉此得知本研究方法 之可行性與實用性,同時會將本方法,與另一個著名的文件分類方法來做 比較,以驗證本研究方法,在針對 XML 文件的分類問題下,是否具有一 定程度的功效與分類正確率。
第一節 XML 文件收集
本研究原始從 9 套不同的軟體下面,全部收集了 468 份的 XML 文件,
詳細資料如附錄 A 所示。接著依照每份文件的實際內容,由一群專家透過 討論及表決的方式,將每份文件各自歸類到不同的分類項目之下,並刪除 他們認為沒有意義而無法分類的檔案,最後共留下其中 276 份文件作為訓 練及測試之用。而各個分類項目主題名稱之決定,乃根據著名入口網站 Yahoo!(http://www.yahoo.com)之下的 Computers & Internet 作為主分類項 目,根據各份 XML 文件內容,將其分類到之下的子分類項目。依本範例 所取得之所有文件,共可分到其中的 7 個子項目之下,各分類詳細名稱如 表 4-1 所列,表 4-1 同時為每一個分類項目編號,以作為分類過程中之識 別用。
表 4-1 本實驗之各分類項目名稱及 XML 文件數目 分類編號 分類項目名稱 XML 文件數目
1 Servers 16 2 Office suites 20 3 Web programming 48 4 Mathematics software 24 5 Media player 60 6 HTML editors 42 7 XML 66
276
而下一小節將以這些總數 276 份的文件進行訓練與測試的過程。
第二節 XML 文件處理
由於本研究方法提出需將 XML 文件拆解成兩個部分,因此必須先對 收集到的文件作處理,在這部分,本研究實證程式使用 Visual Basic.NET 所撰寫而成,經刪減後節錄關鍵程式碼如圖 4-1 所示。