NLP之文字分類
文字自動分類簡稱文字分類(text categorization),是模式識別與自然語言處理密切結合的研究課題。傳統的文字分類是基於文字內容的,研究如何將文字自動劃分成政治的、經濟的、軍事的、體育的、娛樂的等各種型別。
目錄
文字分類是在預定義的分類體系下,根據文字的特徵(內容或屬性),將給定文字與一個或多個類別相關聯的過程。因此,文字分類研究涉及文字內容理解和模式分類等若干自然語言理解和模式識別問題。
文字分類任務的最終目的是要找到一個有效的對映函式,準確地實現域D×C到值T或F的對映,這個對映函式實際上就是我們通常所說的分類器。因此,文字分類中有兩個關鍵問題:一個是文字的表示,另一個就是分類器設計。
根據分類知識獲取方法的不同,文字自動分類系統大致可分為兩種型別:基於知識工程(knowledge engineering, KE)的分類系統和基於機器學習(machine learning, ML)的分類系統。90年代以後,基於統計機器學習的文字分類方法日益受到重視,這種方法在準確率和穩定性方面具有明顯的優勢。系統使用訓練樣本進行特徵選擇和分類器引數訓練,根據選擇的特徵對待分類的輸入樣本進行形式化,然後輸入到分類器進行類別判定,最終得到輸入樣本的類別。
文字表示
文字向量化
一個文字表現為一個由文字和標點符號組成的字串,由字或字元組成詞,由片語成短語,進而形成句、段、節、章、篇的結構。要使計算機能夠高效地處理真實文字,就必須找到一種理想的形式化表示方法,這種表示一方面要能夠真實地反映文件的內容(主題、領域或結構等),另一方面,要有對不同文件的區分能力。
目前文字表示通常採用向量空間模型(vecto rspace model,VSM)。
下面首先給出VSM涉及的一些基本概念。
文件(document):通常是文章中具有一定規模的片段,如句子、句群、段落、段落組直至整篇文章。
項/特徵項(term/feature term):特徵項是VSM中最小的不可分的語言單元,可以是字、詞、片語或短語等。一個文件的內容被看成是它含有的特徵項所組成的集合。
項的權重(term weight):對於含有n個特徵項的文件,每一特徵項tk都依據一定的原則被賦予一個權重wk,表示它們在文件中的重要程度。
這樣一個文件D可用它含有的特徵項及其特徵項所對應的權重所表示。
一個文件在上述約定下可以看成是n維空間中的一個向量,這就是向量空間模型的由來。
因此採用向量空間模型進行文字表示時,需要經過以下兩個主要步驟:
①根據訓練樣本集生成文字表示所需要的特徵項序列D={t1,t2,…,td};
②依據文字特徵項序列,對訓練文字集和測試樣本集中的各個文件進行權重賦值、規範化等處理,將其轉化為機器學習演算法所需的特徵向量。
向量的相似性度量(similarity)
任意兩個文件D1和D2之間的相似係數Sim(D1,D2)指兩個文件內容的相關程度(degree of relevance)。設文件D1和D2表示VSM中的兩個向量:
D1=D1(w11,w12,…,w1n)
D2=D2(w21,w22,…,w2n)
那麼,可以藉助於n維空間中兩個向量之間的某種距離來表示文件間的相似係數,常用的方法是使用向量之間的內積來計算。
如果考慮向量的歸一化,則可使用兩個向量夾角的餘弦值來表示相似係數:
文字特徵選擇方法
在向量空間模型中,表示文字的特徵項可以選擇字、詞、短語,甚至“概念”等多種元素。但是,如何選取特徵,各種特徵應該賦予多大的權重,選取不同的特徵對文字分類系統的效能有什麼影響等,很多問題都值得深入研究。目前已有的特徵選取方法比較多,常用的方法有:基於文件頻率(document frequency, DF)的特徵提取法、資訊增益(information gain, IG)法、χ2統計量(CHI)法和互資訊(mutual information, MI)方法等。
1.基於文件頻率的特徵提取法
文件頻率(DF)是指出現某個特徵項的文件的頻率。基於文件頻率的特徵提取法通常的做法是:從訓練語料中統計出包含某個特徵的文件的頻率(個數),然後根據設定的閾值,當該特徵項的DF值小於某個閾值時,從特徵空間中去掉該特徵項,因為該特徵項使文件出現的頻率太低,沒有代表性;當該特徵項的DF值大於另外一個閾值時,從特徵空間中也去掉該特徵項,因為該特徵項使文件出現的頻率太高,沒有區分度。
基於文件頻率的特徵選擇方法可以降低向量計算的複雜度,並可能提高分類的準確率,因為按這種選擇方法可以去掉一部分噪聲特徵。這種方法簡單、易行。但嚴格地講,這種方法只是一種借用演算法,其理論根據不足。根據資訊理論我們知道,某些特徵雖然出現頻率低,但往往包含較多的資訊,對於分類的重要性很大。對於這類特徵就不應該使用DF方法將其直接排除在向量特徵之外。
2.資訊增益法
資訊增益(IG)法依據某特徵項ti為整個分類所能提供的資訊量多少來衡量該特徵項的重要程度,從而決定對該特徵項的取捨。某個特徵項ti的資訊增益是指有該特徵或沒有該特徵時,為整個分類所能提供的資訊量的差別,其中,資訊量的多少由熵來衡量。因此,資訊增益即不考慮任何特徵時文件的熵和考慮該特徵後文檔的熵的差值
從資訊增益的定義可知,一個特徵的資訊增益實際上描述的是它包含的能夠幫助預測類別屬性的資訊量。從理論上講,資訊增益應該是最好的特徵選取方法,但實際上由於許多資訊增益比較高的特徵出現頻率往往較低,所以,當使用資訊增益選擇的特徵數目比較少時,往往會存在資料稀疏問題,此時分類效果也比較差。因此,有些系統實現時,首先對訓練語料中出現的每個詞(以詞為特徵)計算其資訊增益,然後指定一個閾值,從特徵空間中移除那些資訊增益低於此閾值的詞條,或者指定要選擇的特徵個數,按照增益值從高到低的順序選擇特徵組成特徵向量。
3.χ2統計量
χ2統計量(CHI)衡量的是特徵項ti和類別Cj之間的相關聯程度,並假設ti和Cj之間符合具有一階自由度的χ2分佈。特徵對
於某類的χ2統計值越高,它與該類之間的相關性越大,攜帶的類別資訊也較多,反之則越少。
4.互資訊法
互資訊(MI)法的基本思想是:互資訊越大,特徵ti和類別Cj共現的程度越大。
以上是文字分類中比較經典的一些特徵選取方法,實際上還有很多其他文字特徵選取方法,例如,DTP(distance to transition point)方法,期望交叉熵法、文字證據權法、優勢率方法,以及國內學者提出的“類別區分詞”的特徵提取方法,組合特徵提取方法,基於粗糙集(rough set)的特徵提取方法TFACQ,以及利用自然語言文字所隱含規律等多種資訊的強類資訊詞(strong information class word, SCIW)的特徵選取方法等等。
另外需要指出的是,無論選擇什麼作為特徵項,特徵空間的維數都是非常高的,在漢語文字分類中問題表現得更為突出。這樣的高維特徵向量對後面的分類器存在不利的影響,很容易出現模式識別中的“維數災難”現象。而且,並不是所有的特徵項對分類都是有利的,很多提取出來的特徵可能是噪聲。因此,如何降低特徵向量的維數,並儘量減少噪聲,仍然是文字特徵提取中的兩個關鍵問題。
特徵權重計算方法
特徵權重用於衡量某個特徵項在文件表示中的重要程度或者區分能力的強弱。權重計算的一般方法是利用文字的統計資訊,主要是詞頻,給特徵項賦予一定的權重。
我們將一些常用的權重計算方法歸納為表13-2所示的形式。表中各變數的說明如下:wij表示特徵項ti在文字Dj中的權重,tfij表示特徵項ti在訓練文字Dj中出現的頻度;ni是訓練集中出現特徵項ti的文件數,N是訓練集中總的文件數;M為特徵項的個數,nti為特徵項ti在訓練語料中出現的次數。
倒排文件頻度(inverse document frequency, IDF)法是1972年Spark Jones提出的計算詞與文獻相關權重的經典計算方法,其在資訊檢索中佔有重要地位。該方法在實際使用中,常用公式L+log ((N-ni)/ni)替代,其中,常數L為經驗值,一般取為1。IDF方法的權重值隨著包含 某個特徵的文件數量ni的變化呈反向變化,在極端情況下,只在一篇文件中出現的特徵含有最高的IDF值。TF-IDF方法中公式有多種表達形式,TFC方法和ITC方法都是TF-IDF方法的變種。
TF-IWF(inverse word frequency)權重演算法也是在TF-IDF演算法的基礎上由Basili et al.(1999)提出來的。TF-IWF與TF-IDF的不同主要體現在兩個方面:①TF-IWF演算法中用特徵頻率倒數的對數值IWF代替IDF; ②TF-IWF演算法中採用了IWF的平方,而不像IDF中採用的是一次方。R.Basili等認為IDF的一次方給了特徵頻率太多的倚重,所以用IWF的平方來平衡權重值對於特徵頻率的倚重。
除了上面介紹的這些比較常用的方法以外,還有很多其他權重計算方法。例如:Dagan et al.(1997)提出的基於錯誤驅動的(mistake-driven)特徵權重演算法,這種演算法的類權重向量不是通過一個表示式直接計算出來的,而是首先為每個類指定一個初始權重向量,不斷輸入訓練文字,並根據對訓練文字的分類結果調整類權重向量的值,直到類權重向量的值大致不再改變為止。
方法。例如:Dagan et al.(1997)提出的基於錯誤驅動的(mistake-driven)特徵權重演算法,這種演算法的類權重向量不是通過一個表示式直接計算出來的,而是首先為每個類指定一個初始權重向量,不斷輸入訓練文字,並根據對訓練文字的分類結果調整類權重向量的值,直到類權重向量的值大致不再改變為止。
分類器設計
文字分類本身是一個分類問題,因此,一般的模式分類方法都可用於文字分類研究。常用的分類演算法包括:樸素的貝葉斯分類法
(naΪve Bayesian classifier)、基於支援向量機(support vector machines, SVM)的分類器、k-最近鄰法(k-nearest neighbor, kNN)、神經網路法(neural network, NNet)、決策樹(decision tree)分類法、模糊分類法(fuzzy classifier)、Rocchio分類方法和Boosting演算法等。
1.樸素貝葉斯分類器
樸素貝葉斯分類器的基本思想是利用特徵項和類別的聯合概率來估計給定文件的類別概率。
假設文字是基於詞的一元模型,即文字中當前詞的出現依賴於文字類別,但不依賴於其他詞及文字的長度,也就是說,詞與詞之間是獨立的。根據貝葉斯公式,文件Doc屬於Ci類的概率為
在具體實現時,通常又分為兩種情況:
(1)文件Doc採用DF向量表示法,即文件向量V的分量為一個布林值,0表示相應的特徵在該文件中未出現,1表示特徵在文件中出現。
(2)若文件Doc採用TF向量表示法,即文件向量V的分量為相應特徵在該文件中出現的頻度。
2.基於支援向量機的分類器
基於支援向量機(support vector machine, SVM)的分類方法主要用於解決二元模式分類問題。
SVM的基本思想是在向量空間中找到一個決策平面(decision surface),這個平面能“最好”地分割兩個分類中的資料點。支援向量機分類法就是要在訓練集中找到具有最大類間界限(margin)的決策平面。
由於支援向量機演算法是基於兩類模式識別問題的,因而,對於多類模式識別問題通常需要建立多個兩類分類器。與線性判別函式一樣,它的結果強烈地依賴於已知模式樣本集的構造,當樣本容量不大時,這種依賴性尤其明顯。此外,將分介面定在最大類間隔的中間,對於許多情況來說也不是最優的。對於線性不可分問題也可以採用類似於廣義線性判別函式的方法,通過事先選擇好的非線性對映將輸入模式向量對映到一個高維空間,然後在這個高維空間中構造最優分界超平面。
根據Yang and Liu (1999)的實驗結果,SVM的分類效果要好於NNet、貝葉斯分類器、Rocchio和LLSF(linear least-square fit)分類器的效果,與kNN方法的效果相當。
3.k-最近鄰法
kNN方法的基本思想是:給定一個測試文件,系統在訓練集中查詢離它最近的k個鄰近文件,並根據這些鄰近文件的分類來給該文件的候選類別評分。把鄰近文件和測試文件的相似度作為鄰近文件所在類別的權重,如果這k個鄰近文件中的部分文件屬於同一個類別,則將該類別中每個鄰近文件的權重求和,並作為該類別和測試文件的相似度。然後,通過對候選分類評分的排序,給出一個閾值。
4.基於神經網路的分類器
神經網路(NNet)是人工智慧中比較成熟的技術之一,基於該技術的分類器的基本思想是:給每一類文件建立一個神經網路,輸入通常是單詞或者是更為複雜的特徵向量,通過機器學習獲得從輸入到分類的非線性對映。
根據Yang and Liu (1999)的實驗結果,NNet分類器的效果要比kNN分類器和SVM分類器的效果差,而且訓練NNet的時間開銷遠遠超過其他分類方法,所以,實際應用並不廣泛。
5.線性最小平方擬合法
線性最小平方擬合(linear least-squares fit, LLSF)是一種對映方法其出發點是從訓練集和分類文件中學習得到多元迴歸模型
(multivariate regression model)。其中訓練資料用輸入/輸出向量表示,輸入向量是用傳統向量空間模型表示的文件
(詞和對應的權重),輸出向量則是文件對應的分類(帶有0-1權重)。通過在向量的訓練對上求解線性最小平方擬合,得到一個“單詞-分類”的迴歸係數矩陣。
根據Yang and Liu (1999)的實驗結果,LLSF演算法的分類效果稍遜於kNN和SVM演算法的效果。
6.決策樹分類器
決策樹分類器也是模式識別研究的基本方法之一,其出發點是:大量複雜系統的組成普遍存在著等級分層現象,或者說複雜任務是可以通過等級分層分解完成的,文字處理過程也不例外。
決策樹是一棵樹,樹的根結點是整個資料集合空間,每個分結點是對一個單一變數的測試,該測試將資料集合空間分割成兩個或更多個類別,即決策樹可以是二叉樹也可以是多叉樹。每個葉結點是屬於單一類別的記錄。構造決策樹分類器時,首先要通過訓練生成決策樹,然後再通過測試集對決策樹進行修剪。一般可通過遞迴分割的過程構建決策樹,其生成過程通常是自上而下的,選擇分割的方法有多種,但是目標都是一致的,就是對目標文件進行最佳分割。從根結點到葉結點都有一條路徑,這條路徑就是一條決策“規則”。
在決定哪個屬性域(field)作為目前最佳的分類屬性時,一般的做法是窮盡所有的屬性域,對每個屬性域分裂的好壞進行量化,從而計算出最佳分裂。資訊增益是決策樹訓練中常用的衡量給定屬性區分訓練樣本能力的定量標準。
7.模糊分類器
按照模糊分類方法的觀點,任何一個文字或文字類都可以通過其特徵關鍵詞來描述其內容特徵,因此,可以用一個定義在特徵關鍵詞類上的模糊集來描述它們。
判定分類文字T所屬的類別可以通過計算文字T的模糊集FT分別與其他每個文字類的模糊集Fk的關聯度SR實現,兩個類的關聯度越大說明這兩個類越貼近。
8.Rocchio分類器
Rocchio分類器是情報檢索領域經典的演算法,其基本思想是,首先為每一個訓練文字C建立一個特徵向量,然後使用訓練文字的特徵向量為每個類建立一個原型向量(類向量)。當給定一個待分類文字時,計算待分類文字與各個類別的原型向量(類向量)之間的距離,其距離可以是向量點積、向量之間夾角的餘弦值或者其他相似度計算函式,根據計算出來的距離值決定待分類文字屬於哪一類別。
Rocchio分類方法的特點是計算簡單、易行,其分類效果僅次於kNN方法和SVM方法。
9.基於投票的分類方法
基於投票的分類方法是在研究多分類器組合時提出的,其核心思想是:k個專家判斷的有效組合應該優於某個專家個人的判斷結果。
投票演算法主要有兩種:Bagging演算法和Boosting演算法。
Bagging演算法
訓練R個分類器fi(i=1,2,…,R),其中,fi是利用從訓練集(N篇文件)中隨機抽取(取出後再放回)N次文件構成的訓練集訓練得到的。對於新文件D,用這R個分類器分別對D劃分類別,得到的最多的那個類別作為D的最終判別類別。
Boosting演算法
與Bagging演算法類似,該演算法需要訓練多個分類器,但訓練每個分量分類器的訓練樣本不再是隨機抽取,每個分類器的訓練集由其他各個分類器所給出的“最富資訊”的樣本點組成。基於Boosting方法有許多不同的變形,其中最流行的一種就是AdaBoost方法,該方法在文字分類領域中有著非常廣泛的應用。
文字分類評測指標
針對不同的目的,人們提出了多種文字分類器效能評價方法,包括召回率、正確率、F-測度值、微平均和巨集平均、平衡點(break-even point)、11點平均正確率(11-point average precision)等。
一般地講,正確率和召回率是一對相互矛盾的物理量,提高正確率往往要犧牲一定的召回率,反之亦然。在很多情況下,單獨考慮正確率或者召回率來對分類器進行評價都是不全面的。因此,1999提出了通過調整分類器的閾值,調整正確率和召回率的值,使其達到一個平衡點的評測方法。
Taghva et al.(2004)為了更加全面地評價一個分類器在不同召回率情況下的分類效果,調整閾值使得分類器的召回率分別為:0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1,然後計算出對應的11個正確率,取其平均值,這個平均值即為11點平均正確率,用這個平均正確率衡量分類器的效能。