2.1 文本分類概述
2.1.1 單標籤和多標籤文本分類
根據不同的應用,我們可以給予文本一個或多個類別標籤。舉例來說,在電影評
論中可能包含多種錯綜複雜的情緒面向,像是快樂、驚訝…等等。我們可以給此
評論多個類別標籤,這種類型的分類我們稱之多標籤的文本分類。 然而在某些
應用中,我們只能給予文本一個專屬的類別標籤,像在惡意郵件的偵測中,我們
只能給予郵件單一的類別標記,我們必須明確的判定郵件屬於合法或非法,這種
類型的分類即為單標籤的文本分類,即給予文件集 D 中的每份文件 𝑑𝑖 一個屬於
標籤集 C 中的類別標記 𝑐𝑗。在本論文中,我們僅討論於單一標籤的文本任務,即
單標籤的自動文本分類任務。
2.1.2 文件導向和類別導向文本分類
對於文本的分類器我們有兩種不同的使用方式,我們能以文件或是類別為核心來
建構分類器。給定一份屬於文件集 D 的文件 𝑑𝑖,我們希望從類別標籤集 C 中尋
找對於該份文件為合適的類別 𝑐𝑗,這種類型我們稱之為文件導向的文本分類
(Document-Pivoted Text Categorization, DPC),我們亦可以從類別標籤集中給定一 個類別𝑐𝑗,從文件集 D 中找尋所有符合該類別的文件,此種類型即為
(Category-Pivoted Text Categorization, CPC)。
8
當文件集或類別標籤集在訓練初始時是未知時,兩種導向的概念和應用的地
方不盡相同,文件導向的文本分類適合用於一次分類一個文件的任務,例如惡意
郵件的分類應用,而類別導向文本分類則適合用於增加新類別的應用,例如專利
的應用分類。在本論文中我們探討主要應用基於文件導向的文本分類任務。
2.1.3 硬性和軟性文本分類
硬性的文本分類模型必需將每一個文件給予類別標籤集中的一個類別,而軟性文
本分類模型,則是給予每一個文件一個標籤相關的高低次序,或者給予一個類別,
讓模型去排序所有文件對於該類別的一個相關次序。這樣的排序名單對於負責決
策的分類專家有很大的幫助,領域專家可以去限制位於高次序的項目,而非檢驗
整個訓練集。在本論文中,我們對文本採用硬性的分類原則。
2.2 文本特徵選擇方法
特徵選擇 (Feature Selection),又稱作子集選取 (Subset Selection) 的目標是為了
增進分類效能、減少複雜度,從原始特徵空間中移除未含有分類資訊或者包含較
少資訊的特徵項,進而挑選出具有鑑別力特徵的過程。
9
使用特徵選擇技術的關鍵在於訓練資料中包含了許多無關或冗餘的特徵項,
因此移除這些特徵不會導致學習的演算法失去重要的資訊。傳統上我們會選擇文
本中的詞來當作該文本的特徵項,其中特徵項的粒度可以從一個單詞、詞彙或是
片語,在中文裡,由於中文的單詞對文本的理解區分度並不明顯,所以通常採用
詞彙或是片語來當作文本的特徵項,英文則無此限制。在本小節中,我們將介紹
在文本特徵選擇上常使用的方法。
2.2.1 資訊增益 (Information Gain, IG)
資訊增益 (Information Gain) [8] 在機器學習領域中被廣泛使用,其衡量標準在於
特徵能夠為分類系統帶來多少增益,給予系統的資訊越多,則表示該特徵對於系
統就越為重要。在文本分類的系統中,我們常採用詞作為特徵項,對於特徵詞 t
和文本類別 C, 資訊增益觀察類別中是否出現特徵詞來衡量增益效果,其式子如
下:
𝐼𝐺(𝑡) = 𝐻(𝐶)- 𝐻(𝐶|𝑡)
= − ∑𝑛𝑖=1𝑝(𝐶𝑖) ∗ log2𝑝(𝐶𝑖) +
𝑝(𝑡) ∑𝑛𝑖=1𝑝(𝐶𝑖|𝑡) ∗ log2𝑝(𝐶𝑖|𝑡) + 𝑝(𝑡′) ∑𝑛𝑖=1𝑝(𝐶𝑖|𝑡′) ∗ log2𝑝(𝐶𝑖|𝑡′) (2.1)
10
其中 𝑝(𝐶𝑖)表示某類別出現的機率, 𝑝(𝑡)表示語料中包含特徵詞 t 的文件的機率,
𝑝(𝑡′)表示語料中不包含特徵詞 t 的文件的機率,𝑝(𝐶𝑖|𝑡)表示文件包含特徵詞 t 時
屬於類別 𝐶𝑖 的條件機率,𝑝(𝐶𝑖|𝑡′) 表示文件不包含特徵詞 t 時屬於類別 𝐶𝑖 的條
件機率, n 表示類別數目。
資訊增益是一種基於熵 (Entropy) 的評估方法,定義為某特徵詞為整個分類
所能提供的資訊量,根據訓練資料,計算每個特徵詞的資訊增益量,刪除資訊增
益量較小的特徵詞。資訊增益是資訊理論中的一個重要概念,它表示了一個特徵
詞存在與否對於類別預測的影響,而在類別不平衡的情況下,使用資訊增益會使
得其結果偏向那些具有更多數值的特徵,這也使使用資訊增益的一大缺點。
2.2.2 相互資訊 (Mutual Information, MI)
相互資訊 (Mutual Information) [9] 是分析語言模型的常見方法,相互資訊衡量的
是兩個隨機變數的相互依賴的程度,相互資訊並不局限於實質的隨機變數,更著
重於聯合機率分布和邊緣分布之間的相似程度。
一般而言,兩個離散隨機變數𝑋和𝑌的相互資訊可以由下列式子表示:
𝐼(𝑋; 𝑌) = ∑𝑦∈𝑌∑𝑥∈𝑋𝑃(𝑥; 𝑦) log𝑃(𝑥)𝑃(𝑦)𝑃(𝑥,𝑦) (2.2)
在連續隨機變數的情形,式子如下:
11
𝐼(𝑋; 𝑌) = ∫ ∫ 𝑃(𝑥; 𝑦)𝑌 𝑋 log𝑃(𝑥)𝑃(𝑦)𝑃(𝑥,𝑦) dx 𝑑𝑦 (2.3)
其中𝑃(𝑥; 𝑦)指的是𝑋和𝑌的聯合機率分布,𝑃(𝑥) 和 𝑃(𝑦)分別是𝑋和𝑌的邊緣分布函
數。在文本分類的特徵選擇中,我們探討的是某個詞與類別之間互相依賴的程度,
對於每一個類別,特徵詞 t 對於其相互資訊量越大,則表示它對於該類別的貢獻
程度越大。
2.2.3 卡方檢驗 (Chi-square, CHI)
卡方檢驗 (Chi-square) [10] 最基本的思想是透過觀測實際值和理想值的差異來
決定理論是否正確。假設兩個變數值為獨立,如果實際值和理想值得差異夠小,
表示假設成立,如果實際值和理想值誤差很大,則表示兩個隨機變數是相關的。
在文本分類的特徵選擇階段中,我們先假設特徵詞與類別不相關,如果計算
出的開方檢驗值越小,即假設成立,否則即表示特徵詞和類別具有關聯性。
然而卡方檢驗的缺點在於它只統計文件是否出現特徵詞,而不考慮詞頻,這使得
某些低頻詞的效益增加,這就是在卡方檢驗的低頻詞缺陷問題,因此卡方檢驗在
使用時也常加入詞頻來避免這個問題。卡方檢驗的式子如下:
𝑥2(𝑡, 𝑐) = (𝐴+𝐶)∗(𝐵+𝐷)∗(𝐴+𝐵∗(𝑐+𝐷))𝑁∗(𝐴𝐷−𝐶𝐵)2 (2.4)
12
N 為訓練集文件的總數,A 為包含特徵詞且屬於類別 c 的文件數目,B 為包含特
徵詞且不屬於類別 c 的文件數目,C 為屬於類別 c 且不包含特徵詞 t 的文件的數
目,D 為不屬於類別 c 且不包含特徵詞 t 的文件數目。因此卡方檢驗的目標在於
判斷特徵詞 t 和類別 c 是否獨立,如果獨立則表示特徵詞 t 對於類別 c 沒有什麼
關聯,如果不獨立,即表示特徵詞 t 對於類別 c 具有關聯性。
2.2.4 文件頻率方法 (Document Frequency, DF)
在文件頻率方法 (Document Frequency) 中,使用特徵詞在一個類別中出現的文件
數來表示這個特徵詞與類別的相關程度,特徵詞若在某類別的文件中出現頻率越
高,則表示對於該類別的重要程度也越大,式子如下:
DF (t,c) = log 𝐷𝐹𝑡
log 𝑁𝑐 (2.5)
其中,𝐷𝐹𝑡 為特徵詞 t 在類別 c 中出現的文件數目,𝑁𝑐為類別 c 中的文件數目。
通常會設定一個邊界值,如果計算得到的文件頻率值小於該邊界值,則認為該特
徵詞在這個類別的文件中出現次數太少,對於辨識此類別的貢獻度較低,或是該
特徵詞在其他類別的文件頻率值也很高,那麼表示這些特徵詞也不能很好的反映
類別資訊,需將其刪除。
13
2.2.5 基尼指數 (Gini coefficient, Gini)
基尼指數 (Gini coefficient) [11] 是一種非純度的特徵分裂方法,由 Breiman 等人
於 1984 年所提出的,此特徵選擇方法被廣泛應用於 CART、SLIQ、SPRINT 等決
策樹演算法中。在分類問題中,假設有 K 個類別,則待定文本 D 屬於第 K 個類
別的機率𝐷𝑘,其基尼指數定義如下:
Gini(D) = ∑𝑘𝑘=1𝐷𝑘(1 − 𝐷𝑘) = 1 - ∑𝑘𝑘=1𝐷𝑘2 (2.6)
其中𝐷𝑘表示樣本屬於第 K 類的機率,基尼指數代表文件的不確定性,當基尼指數
值最小時, 表示文本為該類別的可能性高,相反地,基尼指數值越大,則表示
該文本對於類別的不確定性也越大。
2.2.6 期望交叉熵 (Expected Cross Entropy, ECE)
期望交叉熵 (Expected Cross Entropy) [12] 反映了文本類別的機率分布和含有某
個特徵詞的文本類別的機率分布之間的距離。特徵詞 t 的期望交叉熵越大,表示
該特徵詞對於文本類別的影響也越大,期望交叉熵定義如下:
ECE (t,C) = p(t) * ∑𝑖𝑝(𝐶𝑖|𝑡) * log𝑝(𝐶𝑝(𝐶𝑖|𝑡)
𝑖) (2.7)
14
2.3 文本分類方法
自動文本分類的其中一個關鍵問題在於如何建立分類模型,並應用此分類模型將
待定文本分配到相對應的類別空間中。目前有多種不同的分類模型,在本小節,
我們將介紹一些經典的文本分類模型。
2.3.1 Rocchio 演算法
Rocchio 演算法 [13] 源自於資訊檢索領域,最早由 Hull 等人在 1994 年應用於自
動文本分類領域,Rocchio 演算法屬於人們思考文本分類問題時最為直覺的解決
方法,基本的思路是將一個類別中的所有文件的向量取平均值,得到一個代表該
類別的平均向量,稱作質心向量 (Centroid)。當我們要預測一個待定文件的類別
時,比較該待定文件和質心向量的相似度,就可以決定該文件是否屬於該類別。
具體作法如下:
𝑠𝑖𝑚(𝑑𝑖|𝑑𝑗) = ∑𝑛𝑘=1𝑤𝑖𝑘∗𝑤𝑗𝑘
√(∑𝑛𝑘=1𝑤𝑖𝑘2)∗√(∑𝑛𝑘=1𝑤𝑗𝑘2) (2.8)
其中,𝑑𝑖為待定文本的特徵向量,𝑑𝑗為第 j 類別的質心,n 為特徵的維度,k 表示
向量的第 k 維,比較待定文本和每一個類別質心的相似度,將該待定文本分類到
相似度最大的類別中。
15
然而 Rocchio 演算法有兩個過於強烈的假設,第一個是它假設一個類別的文
件僅聚集在一個質心的周圍,但對於某些線性不可分的空間來說,第二是它過於
相信訓練資料,因為它沒有任何衡量樣本是否含有噪音的機制,對於錯誤的數據
毫無抵抗力。
2.3.2 樸素貝葉斯( Naïve Bayes, NB)
基於機率的方法是最早應用於文本分類的演算法,該方法在 1998 年由 Lewis [14]
等人廣泛應用於自動文本分類任務中。他們使用詞和類別的聯合機率來估測待定
文件的類別機率。
給定一個文件集的向量 D = {𝑑⃑⃑⃑⃑ , 𝑑1 ⃑⃑⃑⃑ ,…, 𝑑2 ⃑⃑⃑⃑ },類別集的 C = {𝑐𝑛 1, 𝑐2, … , 𝑐𝑚},
樸素貝葉斯分類器評估給定一個文件𝑑⃑⃑⃑ 屬於每個類別𝑐𝑖 ⃑⃑ 的機率,式子如下: 𝑗
𝑝(𝑐𝑗|𝑑⃑⃑⃑ ) = 𝑖 𝑝(𝑐𝑗𝑝(𝑑)𝑝(𝑑⃑⃑⃑⃑ |𝑐𝑖 𝑗)
⃑⃑⃑⃑ )𝑖 (2.9) 𝑝 (𝑑⃑⃑⃑ )為文件 i 發生的機率, 𝑝(𝑐𝑖 𝑗)為類別 j 發生機率,如果類別的先驗機率未知,
則這些假設類別發生機率相同,類別的先驗機率可以將該類別的文件數除以所有
文件數求得。
16
在一個類別多樣性較為豐富的資料集中,計算 𝑝(𝑑⃑⃑⃑ |𝑐𝑖 𝑗) 的花費太大,為了降
低其計算量,我們假設各類別之間互相獨立,即類別之間沒有任何依賴關係。
對於一個待定文件 𝑑𝑖,和所有類別 C,我們計算 𝑝(𝑐𝑗)𝑝(𝑑⃑⃑⃑ |𝑐𝑖 𝑗),也就是該待定文
件被指派到某類別的最大機率。
利用樸素貝葉斯分類器對文本進行分類,其根本思想是利用詞語類別的聯合
機率來估測待定文件的類別機率,其假設詞有獨立性,一個詞在給定類別的條件
機率來估測待定文件的類別機率,其假設詞有獨立性,一個詞在給定類別的條件