1. 程式人生 > >文字資料的機器學習自動分類方法

文字資料的機器學習自動分類方法

來源:http://blog.csdn.net/jdbc/article/details/50586042

本文為第一部分,著重介紹文字預處理以及特徵抽取的方法。

隨著網際網路技術的迅速發展與普及,如何對浩如煙海的資料進行分類、組織和管理,已經成為一個具有重要用途的研究課題。而在這些資料中,文字資料又是數量最大的一類。“文字分類是指在給定分類體系下,根據文字內容自動確定文字類別的過程”。文字分類有著廣泛的應用場景,例如:

  • 新聞網站包含大量報道文章,基於文章內容,需要將這些文章按題材進行自動分類(例如自動劃分成政治、經濟、軍事、體育、娛樂等。
  • 在電子商務網站,使用者進行了交易行為後對商品進行評價分類,商家需要對使用者的評價劃分為正面評價和負面評價,來獲取各個商品的使用者反饋統計情況。
  • 電子郵箱頻繁接收到垃圾廣告資訊,通過文字分類技術從眾多的郵件中識別垃圾郵件並過濾,提高了郵箱使用者的使用效率。
  • 媒體每日有大量投稿,依靠文字分類技術能夠對文章進行自動稽核,標記投稿中的色情、暴力、政治、垃圾廣告等違規內容。

20世紀90年代以前,占主導地位的文字分類方法一直是基於知識工程的方法:藉助專業人員的幫助,為每個類別定義大量的推理規則,如果一篇文件能滿足這些推理規則,則可以判定屬於該類別。但是這種方法有明顯的缺點:分類的質量依賴於規則的好壞;需要大量的專業人員進行規則的制定;不具備可推廣性,不同的領域需要構建完全不同的分類系統,造成開發資源和資金資源的巨大浪費。

而機器學習技術能很好地解決上述問題,以統計理論為基礎,利用演算法讓機器具有類似人類般的自動“學習”能力——對已知的訓練資料做統計分析從而獲得規律,再運用規律對未知資料做預測分析。機器學習方法運用在文字分類上的基本過程就是:標註

——利用人工對一批文件進行了準確分類,以作為訓練集(進行機器學習的材料);訓練——計算機從這些文件中挖掘出一些能夠有效分類的規則,生成分類器(總結出的規則集合);分類——將生成的分類器應用在有待分類的文件集合中,獲取文件的分類結果。由於機器學習方法在文字分類領域有著良好的實際表現,已經成為了該領域的主流。

達觀資料團隊在處理海量資料方面具有豐富的經驗,在文字分類技術方面有深入的實踐,並將文字分類技術成功運用到了線上服務中,取得了良好的效果。本文整理了文字分類的基本方法和處理流程,進行了綜述性介紹。

(一):文字預處理

1.文字分類流程

文字分類的流程如圖 1所示,包括訓練、特徵抽取、訓練模型、分類預測等幾個主要環節。


圖 1 文字分類流程圖
2.文字預處理
2.1文件建模
機器學習方法讓計算機自己去學習已經分類好的訓練集,然而計算機是很難按人類理解文章那樣來學習文章,因此,要使計算機能夠高效地處理真實文字,就必須找到一種理想的形式化表示方法,這個過程就是文件建模。文件建模一方面要能夠真實地反映文件的內容,另一方面又要對不同文件具有區分能力。文件建模比較通用的方法包括布林模型、向量空間模型(VSM)和概率模型。其中最為廣泛使用的是向量空間模型。
經典的向量空間模型(VSM: Vector Space Model)由Salton等人於60年代提出,併成功地應用於著名的SMART文字檢索系統。VSM概念非常直觀——把對文字內容的處理簡化為向量空間中的向量運算,並且它以空間上的相似度表達語義的相似度,直觀易懂。當文件被表示為文件空間的向量時,就可以通過計算向量之間的相似性來度量文件間的相似性。文字處理中最常用的相似性度量方式是餘弦距離。文字挖掘系統採用向量空間模型,用特徵詞條(T1,T2,…Tn)及其權值Wi代表目標資訊,在進行資訊匹配時,使用這些特徵項評價未知文字與目標樣本的相關程度。特徵詞條及其權值的選取稱為目標樣本的特徵提取,特徵提取演算法的優劣將直接影響到系統的執行效果。
設D為一個包含m個文件的文件集合Di為第i個文件的特徵向量,則有D={D1,D2,…,Dm}, Di=(di1di2…dij),i=12,…,m j=1,2,…,n。其中dij(i=1,2,…,m; j=1,2,…,n)為文件Di中第j個詞條tj的權值它一般被定義為tj在Di中出現的頻率tij的函式,例如採用TF-IDF函式,即dij=tij*log(N/nj)。其中N是文件資料庫中文件總數,nj是文件資料庫含有詞條tj的文件數目。假設使用者給定的文件向量為D2,未知的文件向量為q,兩者的相似程度可用兩向量的夾角餘弦來度量,夾角越小說明相似度越高。相似度的計算公式如下


圖 2 向量空間模型
通過上述的向量空間模型,文字資料就轉換成了計算機可以處理的結構化資料,兩個文件之間的相似性問題轉變成了兩個向量之間的相似性問題。
2.2 中文分詞技術
在使用向量模型表示文件時,首先要對文件進行詞彙化處理。對於英語或者法語等語言來說,將文件轉化成詞的集合比較簡單,但是對於漢語來說,不像英文文字的單詞那樣有空格來區分,這個處理過程要依賴於分詞技術。從簡單的查詞典的方法,到後來的基於統計語言模型的分詞方法,中文分詞的技術已趨於成熟。但是,儘管現在分詞軟體的準確率已經比較高了,它對專業術語(稱為未登入詞識別)的識別率還不是很好。例如“來自星星的你”,分詞可以成功切分為“來自\星星\的\你”,但是怎樣把“來自星星的你”作為一個完整的專有名詞(電視劇名稱)識別出來,還有很多技術要解決。為了進一步提高關鍵詞抽取的準確率,通常需要在詞庫中新增專名詞表來保證分詞的質量。
在完成分詞之後,我們對詞語的位置資訊做進一步的發掘,需要確定記錄位置資訊的方式以及各個位置的詞在反映主題時的相對重要性。標題、摘要和結論、正文等文章各個部分的位置權重是各不相同的,當軟體逐詞掃描統計詞頻時,記錄每個詞的位置資訊。
在計算文件的特徵向量的值時,還需要對文字集進行一些處理,過濾掉無用的資訊。濾除這些沒有作用的詞語可以減少文字特徵向量的維數,減少不必要的運算。常見做法包括:
去掉一些低頻詞,比如某些單詞只在一兩個文字中出現過,這樣詞留在集合中會導致大部分文字樣本的該屬性值為0。
去掉停止詞,一般這種詞幾乎不攜帶任何資訊。例如:“的”、“地”、“得”之類的助詞,以及像“然而”、“因此”等只能反映句子語法結構的詞語,它們不但不能反映文獻的主題,而且還會對關鍵詞的抽取造成干擾,有必要將其濾除。應該去掉的停止詞為所有虛詞以及標點符號。
去掉一些標記資訊,這主要針對網頁文字或其他的標記語言文字。
(二):特徵抽取
1.文字特徵抽取
目前大多數中文文字分類系統都採用詞作為特徵項,作為特徵項的詞稱作特徵詞。這些特徵詞作為文件的中間表示形式,用來實現文件與文件、文件與使用者目標之間的相似度計算 。如果把所有的詞都作為特徵項,那麼特徵向量的維數將過於巨大,會對分類系統的運算效能造成極大的壓力。在這樣的情況下,要完成文字分類幾乎是不可能的。尋求一種有效的特徵降維方法,不僅能降低運算複雜度,還能提高分類的效率和精度,是文字自動分類中一項重要技術。
特徵抽取的主要功能就是在不損傷核心資訊的情況下降低向量空間維數,簡化計算,提高文字處理的速度和效率。相對於其他分類問題,文字特徵抽取的方式常見的有4種:
用對映或變換的方法把原始特徵變換為較少的新特徵;
從原始特徵中挑選出一些最具代表性的特徵;
根據專家的知識挑選最有影響的特徵;
基於數學方法進行選取,找出最具分類資訊的特徵。
其中基於數學方法進行特徵選擇比較精確,人為因素干擾少,尤其適合於文字應用。這種方法通過構造評估函式,對特徵集合中的每個特徵進行評估,並對每個特徵打分,這樣每個詞語都獲得一個評估值,又稱為權值,然後將所有特徵按權值大小排序,提取預定數目的最優特徵作為提取結果的特徵子集。 
2.評估函式
對用數學方法進行特徵選擇的演算法,決定文字特徵提取效果的主要因素是評估函式的質量,常用評估函式包括:
(1) TF-IDF
單詞權重最為有效的實現方法就是TF-IDF它是由Salton在1988 年提出的。其中TF 稱為詞頻, 用於計算該詞描述文件內容的能力 IDF 稱為反文件頻率, 用於計算該詞區分文件的能力。TF*IDF 的指導思想建立在這樣一條基本假設之上 在一個文字中出現很多次的單詞 在另一個同類文字中出現次數也會很多反之亦然。所以如果特徵空間座標系取TF 詞頻作為測度 就可以體現同類文字的特點。另外還要考慮單詞區別不同類別的能力 TF*IDF 法認為一個單詞出現的文字頻率越小 它區別不同類別的能力就越大 所以引入了逆文字頻度IDF 的概念以TF 和IDF 的乘積作為特徵空間座標系的取值測度。TF-IDF 法是以特徵詞在文件d中出現的次數與包含該特徵詞的文件數之比作為該詞的權重,即其中, Wi表示第i個特徵詞的權重,TFi(t,d)表示詞t在文件d中的出現頻率,N表示總的文件數,DF(t)表示包含t的文件數。用TF-IDF演算法來計算特徵詞的權重值是表示當一個詞在這篇文件中出現的頻率越高,同時在其他文件中出現的次數越少,則表明該詞對於表示這篇文件的區分能力越強,所以其權重值就應該越大。將所有詞的權值排序, 根據需要可以有兩種選擇方式:
選擇權值最大的某一固定數n個關鍵詞
選擇權值大於某一閾值的關鍵詞
達觀資料的實踐經驗是,計算機選擇的關鍵詞數量在10∽15個,人工選擇的關鍵詞數量在4∽6個比較合適, 通常具有最好的覆蓋度和專指度。TFIDF演算法是建立在這樣一個假設之上的:對區別文件最有意義的詞語應該是那些在文件中出現頻率高,而在整個文件集合的其他文件中出現頻率少的詞語,所以如果特徵空間座標系取TF詞頻作為測度,就可以體現同類文字的特點。另外考慮到單詞區別不同類別的能力,TFIDF法認為一個單詞出現的文字頻數越小,它區別不同類別文字的能力就越大。因此引入了逆文字頻度IDF的概念,以TF和IDF的乘積作為特徵空間座標系的取值測度,並用它完成對權值TF的調整,調整權值的目的在於突出重要單詞,抑制次要單詞。但是在本質上IDF是一種試圖抑制噪音的加權 ,並且單純地認為文字頻數小的單詞就越重要,文字頻數大的單詞就越無用,顯然這並不是完全正確的。IDF的簡單結構並不能有效地反映單詞的重要程度和特徵詞的分佈情況,使其無法很好地完成對權值調整的功能,所以TF*IDF法的精度並不是很高。此外,在TFIDF演算法中並沒有體現出單詞的位置資訊,對於Web文件而言,權重的計算方法應該體現出HTML的結構特徵。特徵詞在不同的標記符中對文章內容的反映程度不同,其權重的計算方法也應不同。因此應該對於處於網頁不同位置的特徵詞分別賦予不同的係數,然後乘以特徵詞的詞頻,以提高文字表示的效果。
(2) 詞頻法
詞頻是一個詞在文件中出現的次數。通過詞頻進行特徵選擇就是將詞頻小於某一閾值的詞刪除,從而降低特徵空間的維數。這個方法是基於這樣一個假設,即出現頻率小的詞對過濾的影響也較小。但是在資訊檢索的研究中認為,有時頻率小的詞含有更多的資訊。因此,在特徵選擇的過程中不宜簡單地根據詞頻大幅度刪詞。
(3) 文件頻次法
文件頻數(Document Frequency, DF)是最為簡單的一種特徵選擇演算法,它指的是在整個資料集中有多少個文字包含這個單詞。在訓練文字集中對每個特徵計一算它的文件頻次,並且根據預先設定的闌值去除那些文件頻次特別低和特別高的特徵。文件頻次通過在訓練文件數量中計算線性近似複雜度來衡量巨大的文件集,計算複雜度較低,能夠適用於任何語料,因此是特徵降維的常用方法。在訓練文字集中對每個特徵計算它的文件頻數,若該項的DF 值小於某個閾值則將其刪除,若其DF 值大於某個閾值也將其去掉。因為他們分別代表了“沒有代表性”和“沒有區分度”兩種極端的情況。DF 特徵選取使稀有詞要麼不含有用資訊,要麼太少而不足以對分類產生影響,要麼是噪音,所以可刪去。DF 的優點在於計算量小, 速度快,它的時間複雜度和文字數量成線性關係,所以非常適合於超大規模文字資料集的特徵選擇。不僅如此,文件頻數還非常地高效,在有監督的特徵選擇應用中當刪除90%單詞的時候其效能與資訊增益和x2 統計的效能還不相上下。但如果某一稀有詞條主要出現在某類訓練集中,卻能很好地反映類別的特徵,而因低於某個設定的閾值而濾除掉,包含著重要的判斷資訊被捨棄,這樣就會對分類精度有一定的影響。
(4) 互資訊方法
互資訊(Mutual Information)衡量的是某個詞和類別之間的統計獨立關係,某個詞t和某個類別Ci傳統的互資訊定義如下:互資訊是計算語言學模型分析的常用方法,它度量兩個物件之間的相互性。在過濾問題中用於度量特徵對於主題的區分度。
互資訊的定義與交叉嫡近似。互資訊本來是資訊理論中的一個概念,用於表示資訊之間的關係, 是兩個隨機變數統計相關性的測度,使用互資訊理論進行特徵抽取是基於如下假設:在某個特定類別出現頻率高,但在其他類別出現頻率比較低的詞條與該類的互資訊比較大。通常用互資訊作為特徵詞和類別之問的測度,如果特徵詞屬於該類的話,它們的互資訊量最大。由於該方法不需要對特徵詞和類別之間關係的性質作任何假設,因此非常適合於文字分類的特徵和類別的配準工作。特徵項和類別的互資訊體現了特徵項與類別的相關程度, 是一種廣泛用於建立詞關聯統計模型的標準。
互資訊與期望交叉熵的不同在於沒有考慮特徵出現的頻率, 這樣導致互資訊評估函式不選擇高頻的有用詞而有可能選擇稀有詞作為文字的最佳特徵。因為對於每一主題來講,特徵t的互資訊越大,說明它與該主題的共現概率越大,因此,以互資訊作為提取特徵的評價時應選互資訊最大的若干個特徵。互資訊計算的時間複雜度類似於資訊增益, 互資訊的平均值就是資訊增益。互資訊的不足之處在於得分非常受詞條邊緣概率的影響。達觀的實驗資料顯示,互資訊分類效果通常比較差,其次是文件頻率、CC 統計,CHI 統計分類效果最好。
對互資訊而言,提高分類精度的方法有:1) 可以增加特徵空間的維數,以提取足夠多的特徵資訊,這樣就會帶來了時間和空間上的額外開銷; 2) 根據互資訊函式的定義,認為這些低頻詞攜帶著較為強烈的類別資訊,從而對它們有不同程度的倚重. 當訓練語料庫沒有達到一定規模的時候,特徵空間中必然會存在大量的出現文件頻率很低(比如低於3 次) 的詞條,他們較低的文件頻率導致了他們必然只屬於少數類別. 但是從抽取出來的特徵詞觀察發現,大多數為生僻詞,很少一部分確實帶有較強的類別資訊,多數詞攜帶少量的類別資訊,甚至是噪音詞。
(5) 期望交叉熵(Expected Cross Entropy)
交叉嫡與資訊量的定義近似,其公式為:交叉嫡 ,也稱KL距離。它反映了文字主題類的概率分佈和在出現了某特定詞彙的條件下文字主題類的概率分佈之間的距離,詞彙w的交叉嫡越大,對文字主題類分佈的影響也越大。它與資訊增益唯一的不同之處在於沒有考慮單詞未發生的情況,只計算出現在文字中的特徵項。如果特徵項和類別強相關, P(Ci|w)就大,若P(Ci) 又很小的話,則說明該特徵對分類的影響大。交叉熵反映了文字類別的概率分佈和在出現了某個特定詞的條件下文字類別的概率分佈之間的距離, 特徵詞t 的交叉熵越大, 對文字類別分佈的影響也越大。熵的特徵選擇效果都要優於資訊增益。
(6) 二次資訊熵(QEMI)
將二次熵函式應用於互資訊評估方法中,取代互資訊中的Shannon熵,就形成了基於二次熵的互資訊評估函式。基於二次熵的互資訊克服了互資訊的隨機性,是一個確定的量,因此可以作為資訊的整體測度,另外它還比互資訊最大化的計算複雜度要小,所以可以比較高效地用在基於分類的特徵選取上。
(7) 資訊增益方法(Information Gain)
資訊增益方法是機器學習的常用方法,在過濾問題中用於度量已知一個特徵是否出現於某主題相關文字中對於該主題預測有多少資訊。通過計算資訊增益可以得到那些在正例樣本中出現頻率高而在反例樣本中出現頻率低的特徵,以及那些在反例樣本中出現頻率高而在正例樣本中出現頻率低的特徵。資訊增益G(w)的訓算公式如下:其中P(w)是詞w出現的概率,P(Ci)是取第i個目錄時的概率,P(C, |w) 是假定w出現時取第i個目錄的概率。
資訊增益是一種基於熵的評估方法,涉及較多的數學理論和複雜的熵理論公式,定義為某特徵項為整個分類所能提供的資訊量,不考慮任何特徵的熵與考慮該特徵後的熵的差值。他根據訓練資料,計算出各個特徵項的資訊增益,刪除資訊增益很小的項,其餘的按照資訊增益從大到小排序。資訊增益是資訊理論中的一個重要概念, 它表示了某一個特徵項的存在與否對類別預測的影響, 定義為考慮某一特徵項在文字中出現前後的資訊熵之差。某個特徵項的資訊增益值越大, 貢獻越大, 對分類也越重要。資訊增益方法的不足之處在於它考慮了特徵未發生的情況。特別是在類分佈和特徵值分佈高度不平衡的情況下, 絕大多數類都是負類, 絕大多數特徵都不出現。此時的函式值由不出現的特徵決定, 因此, 資訊增益的效果就會大大降低。資訊增益表現出的分類效能偏低。因為資訊增益考慮了文字特徵未發生的情況,雖然特徵不出現的情況腫可能對文字類別具有貢獻,但這種貢獻往往小於考慮這種情況時對特徵分值帶來的干擾。
(8) 統計量方法
x2統計量用於度量特徵w和主題類C之間的獨立性。而表示除w以外的其他特徵,C表示除C以外的其他主題類,那麼特徵w和主題類C的關係有以下四種情況: ,用A, B, C, D表示這四種情況的文件頻次,總的文件數N=A+B+C+D,擴統計量的計算公式如下:當特徵w和主題類C之間完全獨立的時候,x2統計量為0。x2統計量和互資訊的差別在於它是歸一化的統計量,但是它對低頻特徵的區分效果也不好。X2 統計得分的計算有二次複雜度, 相似於互資訊和資訊增益。在 X2 統計和互資訊之間主要的不同在於 X2 是規格化評價, 因而 X2 評估分值對在同類中的詞是可比的, 但是 X2 統計對於低頻詞來說是不可靠的。
利用x2 統計方法來進行特徵抽取是基於如下假設:在指定類別文字中出現頻率高的詞條與在其他類別文字中出現頻率比較高的詞條,對判定文件是否屬於該類別都是很有幫助的.採用x2估計特徵選擇演算法的準確率在實驗中最高,其分類效果受訓練集影響較小,比較穩定。而且在對文教類和政治類存在類別交叉現象的文字進行分類時,採用x2估計的分類系統表現出了優於其它方法的分類效能。X2估計的可靠性較好,便於對程式的控制,無需因訓練集的改變而人為的調節特徵閥值的大小。
(9) 文字證據權(The Weight of Evidence for Text)
文字證據權衡量類的概率和給定特徵時類的條件概率之間的差別。
(10) 優勢率(Odds Ratio)
優勢率只適用於二元分類的情況,其特點是隻關心文字特徵對於目標類的分值。Pos表示目標類,neg表示非目標類。
(11) 遺傳演算法(Genetic Algorithm, GA):
遺傳演算法(Genetic Algorithm, GA)是一種通用型的優化搜尋方法,它利用結構化的隨機資訊交換技術組合群體中各個結構中最好的生存因素,複製出最佳程式碼串,並使之一代一代地進化,最終獲得滿意的優化結果。
文字實際上可以看作是由眾多的特徵詞條構成的多維空間,而特徵向量的選擇就是多維空間中的尋優過程,因此在文字特徵提取研究中可以使用高效尋優演算法。在將文字特徵提取問題轉化為文字空間的尋優過程中,首先對Web文字空間進行遺傳編碼,以文字向量構成染色體,通過選擇、交叉、變異等遺傳操作,不斷搜尋問題域空間,使其不斷得到進化,逐步得到Web文字的最優特徵向量。 基於協同演化的遺傳演算法不是使用固定的環境來評價個體,而是使用其他的個體來評價特定個體。基於協同演化的遺傳演算法不僅能反映其母體的特徵,還能反映其他同類文字的共性,這樣可以有效地解決同一主題眾多文字的集體特徵向量的提取問題,獲得反映整個文字集合某些特徵的最佳個體。
(12) 主成分分析法(Principal Component Analysis,PCA)
PCA是非常常用的一種通用特徵降維方法,也同樣大規模用於文字特徵抽取中,基於其處理方式的不同又分為資料方法和矩陣方法。
矩陣方法中,所有的資料通過計算方差一協方差結構在矩陣中表示出來,矩陣的實現目標是確定協方差矩陣的特徵向量,它們和原始資料的主要成分相對應。在主成分方法中,由於矩陣方法的複雜度在n很大的情況 以二次方增長,因此人們又開發了主要使用Hebbian學習規則的PCA神經網路方法。主成分分析法是特徵選取常用的方法之一,它能夠揭示更多有關變數_豐要方向的資訊。但它的問題在於矩陣方法中要使用奇異值分解對角化矩陣求解方差一協方差。
(13) 模擬退火演算法(Simulating Anneal,SA)
特徵選取可以看成是一個組合優化問題,因而可以使用解決優化問題的方法來解決特徵選取的問題。模擬退火演算法(Simulating Anneal,SA)就是其中一種方法。模擬退火演算法是一個很好的解決優化問題的方法,將這個方法運用到特徵選取中,理論上能夠找到全域性最優解,但在初始溫度的選取和鄰域的選取t要恰當,必須要找到一個比較折中的辦法,綜合考慮解的效能和演算法的速度。
(14) N—Gram演算法
它的基本思想是將文字內容按位元組流進行大小為N的滑動視窗操作,形成長度為N的位元組片段序列。每個位元組片段稱為gram,對全部gram的出現頻度進行統計,並按照事先設定的閾值進行過濾,形成關鍵gram列表,即為該文字的特徵向量空間,每一種gram則為特徵向量維度。
由於N—Gram演算法可以避免中文分詞的障礙,所以對中文分類有較高的實用性。中文文字處理大多采用雙位元組進行分解,稱之為bi-gram。但是bigram切分方法在處理20%左右的中文多字詞時,往往產生語義和語序方面的偏差。而對於專業研究領域,多字詞常常是文字的核心特徵,處理錯誤會導致較大的負面影響。基於N—Gram改進的文字特徵提取演算法,在進行bigram切分時,不僅統計gram的出現頻度,而且還統計某個gram與其前鄰gram的情況,並將其記錄在gram關聯矩陣中。對於那些連續出現頻率大於事先設定閾值的,就將其合併成為多字特徵詞。這樣通過統計與合併雙字特徵詞,自動產生多字特徵詞,可以較好地彌補N—Gram演算法在處理多字詞方面的缺陷。
3. 評估函式對比分析
上述羅列的幾種文件特徵評估函式的特點如何呢?資訊增益的定義過於複雜,因此應用較多的是交叉嫡和互資訊。其中互資訊的效果要好於交叉嫡,這是因為互資訊是對不同的主題類分別抽取特徵詞,而交叉嫡跟特徵在全部主題類內的分佈有關,是對全部主題類來抽取特徵詞。這些方法,在英文特徵提取方面都有各自的優勢,但用於中文文字,並沒有很高的效率。主要有2個方面的原因:
特徵提取的計算量太大,特徵提取效率太低,而特徵提取的效率直接影響到整個文字分類系統的效率;
經過特徵提取後生成的特徵向量維數太高,而且不能直接計算出特徵向量中各個特徵詞的權重。
目前使用評估函式進行特徵選取越來越普遍,特徵選取演算法通過構造一個評估函式的方法,選取預定數目的最佳特徵作為特徵子集的結果。在幾種評估方法中,每一種方法都有一個選詞標準,遵從這個標準,從文字集的所有詞彙中選取出有某個限定範圍的特徵詞集。因為評估函式的構造不是特別複雜,適用範圍又很廣泛,所以越來越多的人們喜歡使用構造評估函式來進行特徵的選取,這些評估函式在Web文字挖掘中被廣泛使用,特徵選擇精度普遍達到70%~80%,但也各自存在缺點和不足。例如,“資訊增益”考慮了單詞未發生的情況,對判斷文字類別貢獻不大,而且引入不必要的干擾,特別是在處理類分佈和特徵值分佈高度不平衡的資料時選擇精度下降。“期望交叉熵”與“資訊增益”的唯一不同就是沒有考慮單詞未發生的情況,因此不論處理哪種資料集,它的特徵選擇精度都優於“資訊增益”。與“期望交叉熵”相比,“互資訊”沒有考慮單詞發生的頻度,這是一個很大的缺點,造成“互資訊”評估函式經常傾向於選擇稀有單詞。“文字證據權”是一種構造比較新穎的評估函式,它衡量一般類的概率和給定特徵類的條件概率之間的差別,這樣在文字處理中,就不需要計算W的所有可能值,而僅考慮W在文字中出現的情況。“優勢率”不像前面所述的其他評估函式將所有類同等對待,它只關心目標類值,所以特別適用於二元分類器,可以儘可能多地識別正類,而不關心識別出負類。從考慮文字類間相關性的角度,可以把常用的評估函式分為兩類,即類間不相關的和類間相關的
“文件頻數”(DF)是典型的類間不相關評估函式, DF的排序標準是依據特徵詞在文件中出現篇數的百分比,或稱為篇章覆蓋率。這種型別的評估函式,為了提高區分度,要儘量尋找篇章覆蓋率較高的特徵詞,但又要避免選擇在各類文字中都多次出現的無意義高頻詞,因此類間不相關評估函式對停用詞表的要求很高。但是很難建立適用於多個類的停用詞表,停用詞不能選擇太多,也不能選擇太少,否則都將會影響特徵詞的選擇。同時,類間不相關評估函式還存在一個明顯的缺點,就是對於特徵詞有交叉的類別或特徵相近的類別,選擇的特徵詞會出現很多相似或相同的詞條,造成在特定類別間的區分度下降。類間相關的評估函式,例如期望交叉熵、互資訊、文字證據權等,綜合考慮了詞條在已定義的所有類別中的出現情況,可以通過調整特徵詞的權重,選擇出區分度更好的特徵,在一定程度上提高了相近類別的區分度。但是,該區分度的提高僅體現在已定義的類別間,而對於尚未定義的域外類別,類間相關評估函式的選擇效果也不理想。因此,在評估函式選擇問題上,提高對域外類別文字的區分度是十分重要的研究課題。 
傳統的特徵選擇方法大多采用以上各評估函式進行特徵權重的計算,由於這些評估函式是基於統計學的,其中一個主要缺陷就是需要用一個很龐大的訓練集才能獲得幾乎所有的對分類起關鍵作用的特徵.這需要消耗大量的時間和空間資源,況且,構建這樣一個龐大的訓練集也是一項十分艱鉅的工作。然而,在現實應用中,考慮到工作效率,不會也沒有足夠的資源去構建一個龐大的訓練集,這樣的結果就是:被選中的甚至是權重比較高的特徵,可能對分類沒有什麼用處,反而會干涉到正確的分類;而真正有用的特徵卻因為出現的頻率低而獲得較低的權重,甚至在降低特徵空間維數的時候被刪除掉了。基於評估函式的特徵提取方法是建立在特徵獨立的假設基礎上,但在實際中這個假設是很難成立的,因此需要考慮特徵相關條件下的文字特徵提取方法。
4. 詞向量的應用
特徵選擇也可以通過用對映或變換的方法把原始特徵變換為較少的新特徵。上面提到的特徵選擇模組,在實際情況會碰到這樣的問題:無論是採用文件頻率、資訊增益法、互資訊法等得降維方法,都會損失了部分的文件資訊。以文件頻率為例,在特徵選擇過程中由於某些關鍵的詞語低於了人為設定的閾值,所以會被直接忽視掉,而很多情況這部分詞彙能包含較多的資訊,對於分類的重要性比較大。怎麼能夠進一步理解這部分的資訊,是急需要解決的問題。一個想法是找到這些使用頻率比較低的詞語相似的高頻詞,譬如在討論“月亮”的古詩詞中,包含了很多低頻的同義詞,如“玉兔”,“嬋娟”等,如果我們能把這些低頻的詞語合併到一個維度,無疑是能夠增強分類系統對文件的理解深度的。詞向量這一概念能夠有效地表示詞語之間的相似性,適用於這種方法。
先介紹一下詞向量的定義。一種最簡單的詞向量是one-hot representation,就是用一個很長的向量來表示一個詞,向量的長度是詞典D的大小N,向量的分量只有一個為1,其他全為0,1的位置對應該詞在詞典中的索引。這種詞向量表示有一些缺點:容易受維數災難的困擾。另一種詞向量是Distributed Representation,它最早是Hinton於1986年提出來的,可以克服one-hot representation的上述缺點。其基本想法是:通過訓練將某種語言中的每個詞對映成一個固定長度的短向量。所有這些向量構成一個詞向量空間,每個向量是該空間中的一個點,在這個空間上引入距離,就可以根據詞之間的距離來判斷它們之間的(詞法、語義上的)相似性了。如何獲取Distributed Representation的詞向量呢?有很多不同的模型可以用來估計詞向量,包括有名的LSA、LDA和神經網路演算法。Word2Vec就是使用度比較廣的一個神經網路演算法實現的詞向量計算工具。
現在介紹詞向量在分類系統上的具體實踐。Word2Vec能夠將詞對映成一個固定長度的短向量,所以生成了文件集合詞語的向量表示。由於向量的距離代表了詞語之間的相似性,我們可以通過聚類的方法(譬如K-Means)把相似的詞語合併到一個維度,重新計算該維度的特徵向量權值。相比於原來的方法,使用詞向量能在一定程度保留了文件的資訊。此外,Word2Vec作為無監督學習方法的一個實現,能夠允許它從無標註的文字進行訓練,能進一步提升系統的效能。
另外,基於向量空間模型的文字分類方法是沒有考慮到詞的順序的。基於卷積神經網路(CNN)來做文字分類,可以利用到詞的順序包含的資訊。CNN模型把原始文字作為輸入,不需要太多的人工特徵。下圖是CNN模型的一個實現,共分四層,第一層是詞向量層,doc中的每個詞,都將其對映到詞向量空間,假設詞向量為k維,則n個詞對映後,相當於生成一張n*k維的影象;第二層是卷積層,多個濾波器作用於詞向量層,不同濾波器生成不同的feature map;第三層是pooling層,取每個feature map的最大值,這樣操作可以處理變長文件,因為第三層輸出只依賴於濾波器的個數;第四層是一個全連線的softmax層,輸出是每個類目的概率。除此之外,輸入層可以有兩個channel,其中一個channel採用預先利用word2vec訓練好的詞向量,另一個channel的詞向量可以通過backpropagation在訓練過程中調整。


(一):特徵向量權重的影響因素
特徵權重用於衡量某個特徵項在文件表示中的重要程度或區分能力的強弱。選擇合適的權重計算方法,對文字分類系統的分類效果能有較大的提升作用。影響特徵詞權值的因素包括以下幾點:
1. 詞頻和文件頻度
詞頻和文件頻度,是特徵項最重要的影響因素。文字內中的中頻詞往往具有代表性,高頻詞區分能力較小,而低頻詞或者示出現詞也常常可以做為關鍵特徵詞。而對於文件頻度這一角度,出現文件多的特徵詞,分類區分能力較差,出現文件少的特徵詞更能代表文字的不同主題。結合詞頻和文件頻度來評估特徵的重要性有較強的區分能力,它們在不同方法中有不同的應用公式,這些方法包括:絕對詞頻(TF)、倒排文件頻度(IDF)、TF-IDF、TFC、ITC、TF-IWF,如下:
絕對詞頻(TF):直接使用特徵項在文字中出現的頻度;
倒排文件頻度(IDF):稀有特徵比常用特徵含有更新的資訊;
TF-IDF: 權重與特徵項在文件中出現的頻率成正比,與在整個語料中出現該特徵項的文件書成反比;
TFC:對文字長度進行歸一化處理後的TF-IDF;
ITC:在TFC基礎上,用tf的對數值代替tf值;
TF-IWF:在TF-IDF演算法的基礎上,用特徵項頻率倒數的對數值IWF代替IDF,並且用IWF的平方平衡權重值對於特徵項頻率的倚重。
2. 詞性
漢語言中,能標識文字特性的往往是文字中的實詞,如名詞、動詞、形容詞等。而文字中的一些虛詞,如感嘆詞、介詞、連詞等,對於標識文字的類別特性並沒有貢獻,也就是對確定文字類別沒有意義的詞。如果把這些對文字分類沒有意思的虛詞作為文字特徵詞,將會帶來很大噪音,從而直接降低文字分類的效率和準確率。因此,在提取文字特徵時,應首先考慮剔除這些對文字分類沒有用處的虛詞,而在實詞中,又以名詞和動詞對於文字的類別特性的表現力最強,所以可以只提取文字中的名詞和動詞作為文字的一級特徵詞。
3. 標題
標題是作者給出的提示文章內容的短語,特別在新聞領域,新聞報道的標題一般都要求要簡練、醒目,有不少縮略語,與報道的主要內容有著重要的聯絡,對摘要內容的影響不可忽視。統計分析表明,小標題的識別有助於準確地把握文章的主題。主要體現在兩個方面:正確識別小標題可以很好地把握文章的整體框架,理清文章的結構層次;同時,小標題本身是文章中心內容的高度概括。因此,小標題的正確識別能在一定程度上提高文摘的質量。
4. 位置
美國的EE.Baxendale的調查結果顯示:段落的論題是段落首句的概率為85%,是段落末句的概率為7%。而且新聞報道性文章的形式特徵決定了第一段一般是揭示文章主要內容的。因此,有必要提高處於特殊位置的句子權重,特別是報道的首旬和末句。但是這種現象又不是絕對的,所以,我們不能認為首句和末句就一定是所要摘要的內容,因此可以考慮一個折衷的辦法,即首句和末句的權重上可通過統計數字擴大一個常數倍。首段、末段、段首、段尾、標題和副標題、子標題等處的句子往往在較大程度上概述了文章的內容。對於出現在這些位置的句子應該加大權重。Internet上的文字資訊大多是HTML結構的,對於處於Web文字結構中不同位置的單詞,其相應的表示文字內容或區別文字類別的能力是不同的,所以在單詞權值中應該體現出該詞的位置資訊。
5. 句法結構
句式與句子的重要性之間存在著某種聯絡,比如摘要中的句子大多是陳述句,而疑問句、感嘆句等則不具內容代表性。而通常“總之”、“綜上所述”等一些概括性語義後的句子,包含了文字的中心內容。
6. 專業詞庫
通用詞庫包含了大量不會成為特徵項的常用詞彙,為了提高系統執行效率,系統根據挖掘目標建立專業的分詞表,這樣可以在保證特徵提取準確性的前提下,顯著提高系統的執行效率。使用者並不在乎具體的哪一個詞出現得多,而在乎泛化的哪一類詞出現得多。真正起決定作用的是某一類詞出現的總頻率。基於這一原理,我們可以先將詞通過一些方法依主題領域劃分為多個類,然後為文字提取各個詞類的詞頻特徵,以完成對文字的分類。可以通過人工確定領域內的關鍵詞集。
7. 資訊熵
熵(Entropy)在資訊理論中是一個非常重要的概念,它是不確定性的一種度量。資訊熵方法的基本目的是找出某種符號系統的資訊量和多餘度之間的關係,以便能用最小的成本和消耗來實現最高效率的資料儲存、管理和傳遞。我們將可以將資訊理論中的熵原理引入到特徵詞權重的計算中。
8. 文件、詞語長度
一般情況下,詞的長度越短,其語義越泛。一般來說,中文中詞長較長的詞往往反映比較具體、下位的概念,而短的詞常常表示相對抽象、上位的概念一般說來,短詞具有較高的頻率和更多的含義,是面向功能的;而長詞的頻率較低,是面向內容的,增加長詞的權重,有利於詞彙進行分割,從而更準確地反映出特徵詞在文章中的重要程度。詞語長度通常不被研究者重視,但是本文在實際應用中發現,關鍵詞通常是一些專業學術組合詞彙,長度較一般詞彙長。考慮候選詞的長度,會突出長詞的作用。長度項也可以使用對數函式來平滑詞彙間長度的劇烈差異。通常來說,長詞彙含義更明確,更能反映文字主題,適合作為關鍵詞,因此將包含在長詞彙中低於一定過濾閾值的短詞彙進行了過濾。所謂過濾閾值,就是指進行過濾短詞彙的後處理時,短詞彙的權重和長詞彙的權重的比的最大值。如果低於過濾閾值,則過濾短詞彙,否則保留短詞彙。根據統計,二字詞彙多是常用詞,不適合作為關鍵詞,因此對實際得到的二字關鍵詞可以做出限制。比如,抽取5個關鍵詞,本文最多允許3個二字關鍵詞存在。這樣的後處理無疑會降低關鍵詞抽取的準確度和召回率,但是同候選詞長度項的運用一樣,人工評價效果將會提高。
9. 詞語間關聯
詞彙間的關聯關係對提升文字理解的深度有非常重要的影響,例如中文中存在大量的同義詞,近義詞,中文簡稱,指代等。在前文中計算詞頻、出現位置時,如果沒有很好的考慮詞語間關聯,則很容易錯誤的識別文章的核心關鍵詞,影響文字分類精度。
10. 單詞的區分能力
在TF*IDF公式的基礎上,又擴充套件了一項單詞的類區分能力。新擴充套件的項用於描述單詞與各個類別之間的相關程度。
11. 詞語直徑(Diameter(t))
詞語直徑是指詞語在文字中首次出現的位置和末次出現的位置之間的距離。詞語直徑是根據實踐提出的一種統計特徵。根據經驗,如果某個詞彙在文字開頭處提到,結尾又提到,那麼它對該文字來說,是個很重要的詞彙。不過統計結果顯示,關鍵詞的直徑分佈出現了兩極分化的趨勢,在文字中僅僅出現了1 次的關鍵詞佔全部關鍵詞的14.184%。 所以詞語直徑是比較粗糙的度量特徵。
12. 首次出現位置(FirstLoc(t))
Frank在Kea演算法中使用候選詞首次出現位置作為Bayes概率計算的一個主要特徵,他稱之為距離(Distance)。簡單的統計可以發現,關鍵詞一般在文章中較早出現,因此出現位置靠前的候選詞應該加大權重。實驗資料表明,首次出現位置和詞語直徑兩個特徵只選擇一個使用就可以了。由於文獻資料加工問題導致中國學術期刊全文資料庫的全文資料不僅包含文章本身,還包含了作者、作者機構以及引文資訊,針對這個特點,使用首次出現位置這個特徵,可以儘可能減少全文資料的附加資訊造成的不良影響。
13. 詞語分佈偏差(Deviation(t))
詞語分佈偏差所考慮的是詞語在文章中的統計分佈。在整篇文章中分佈均勻的詞語通常是重要的詞彙。詞語的分佈偏差計算公式如下: 其中,CurLoc(tj)是詞彙t在文章中第j次出現的位置; MeanLoc(t)是詞彙t在文章中出現的平均位置。
特徵權重計算方法沒有最好的選擇,往往要依據現實的具體場景來選取適合的方法。在進行特徵權重的計算之後,已經可以把測試集資料採用機器學習方法進行分類訓練。但是實際操作會遇到一些問題。單詞並不都包含相同的資訊。如果在一部分檔案中有些單詞頻繁地出現,那將擾亂分類系統的分析。我們想要對每一個詞頻向量進行比例縮放,使其變得更具有代表性。換句話說,我們需要進行向量標準化,譬如標準化向量使其L2範數為1。某種程度上,我們得到了一個在該詞的資訊價值上衰減的結果。所以我們需要按比例縮小那些在一篇文件中頻繁出現的單詞的值 。
(二):樣本訓練和分類評估方法
1.樣本訓練
1.1 文字分類演算法
由於文字分類本身是一個分類問題,所以一般的模式分類方法都可以用於文字分類應用中。常用的分類演算法包括:
(1) Rocchio分類器
Rocchio分類器的基本思想是,首先為每一個訓練文字C建立一個特徵向量,然後使用訓練文字的特徵向量為每個類建立一個原型向量(類向量)。當給定一個待分類文字時,計算待分類文字與各個類別的原型向量之間的距離,然後根據計算出來的距離值決定待分類文字屬於哪一類別。一個基本的實現方法就是把一個類別裡的樣本文件各項取個平均值,作為原型變數。
(2) 樸素貝葉斯分類器
利用特徵項和類別的列和概率來估計給定文件的類別概率。假設文字是基於詞的一元模型,即文字中當前詞的出現依賴於文字類別,但不依賴於其他詞及文字的長度,也就是說,詞與詞之間是獨立的。根據貝葉斯公式,文件Doc屬於Ci類別的概率為P(Ci|Doc)=P(Doc|Ci)*P(Ci)/P(Doc)。
(3) 基於支援向量機的分類器
基於支援向量機(SVM)的分類方法主要用於解決二元模式分類問題。SVM的基本思想是在向量空間中找到一個決策平面,這個平面能夠“最好”地分割兩個分類中的資料點。支援向量機分類法就是要在訓練集中找到具有最大類間界限的決策平面,如圖2。


(4) k-最近鄰法
k-最近鄰方法的基本思想是:給定一個測試文件,系統在訓練集中查詢離它最近的k個鄰近文件,並且根據這些鄰近文件的分類來給該文件的候選類別評分。把鄰近文件和測試文件的相似度作為鄰近文件所在類別的權重,如果這k個鄰近文件中的部分文件屬於同一個類別,那麼將該類別中每個鄰近文件的權重求和,並作為該類別和測試文件的相似度。然後,通過對候選分類評分的排序,給出一個閾值。
(5) 基於神經網路的分類器
神經網路是人工智慧中比較成熟的技術之一,基於該技術的分類器的基本思想是:給每一類文件建立一個神經網路,輸入通常是單詞或者更加複雜的特徵向量,通過機器學習方法獲得從輸入到分類的非線性對映。
(6) 決策樹
決策樹分類器把文字處理過程看作是一個等級分層分解完成的複雜任務。如圖3,決策樹是一棵樹,樹的根節點是整個資料集合空間,每個分結點是對一個單一變數的測試,該測試將資料集合空間分割成兩個或更多個類別,即決策樹可以是二叉樹也可以是多叉樹。每個葉結點是屬於單一類別的記錄。構造決策樹分類器時,首先要通過訓練生成決策樹,然後再通過測試集對決策樹進行修剪。一般可通過遞迴分割的過程構建決策樹,其生成過程通常是自上而下的,選擇分割的方法有很多種,但是目標都是一致的,就是對目標文件進行最佳分割。


1.2 Ensemble方法
我們使用上述的經典分類演算法的過程中,很自然的想到一點,我們是否能夠整合多個演算法優勢到解決某一個特定分類問題中去?答案是肯定的。通過聚合多個分類器的預測來提高分類的準確率。這種技術稱為Ensemble方法。Ensemble方法是提升機器學習精度的有效手段。它的基本思想,充分利用不同分類器的優勢,取長補短,最後綜合多個分類器的結果。Ensemble可以設定一個目標函式(組合多個分類器),通過訓練得到多個分類器的組合引數(而不是簡單的累加或者多數)。 在Ensemble框架下將分類器分為兩個Level: L1層和L2層。L1層是基礎分類器,前面提到的分類器均可以作為L1層分類器來使用;L2層基於L1層,將L1層的分類結果形成特徵向量,再組合一些其他的特徵後,形成L2層分類器(如SVM,AdaBoost等)的輸入。這裡需要特別留意的是用於L2層的訓練的樣本必須沒有在訓練L1層時使用過。


2.文字分類評估

針對不同的目的,多種文字分類器效能評價方法被提出,包括召回率、正確率和F-測度值。設定a表示分類器將輸入文字正確分類到某個類別的個數;b表示分類器將輸入文字錯誤分類到某個類別的個數;c表示分類器將輸入文字錯誤地排除在某個類別之外的個數;d表示分類器將輸入文字正確地排除在某個類別之外的個數。

該分類器的召回率、正確率和F-測度值分別採用以下公式計算:

召回率 r = a / (a + c) * 100%
正確率 p = a / (a + b) * 100%
F-測度值 F = (2 * p * r) /(p + r)

由於在分類結果中,對應每個類別都會有一個召回率和正確率,因此,可以根據每個類別的分類結果評價分類器的整體效能,通常方法有兩種:微平均和巨集平均。微平均是根據正確率和召回率計算公式直接計算出總得正確率和召回率值。巨集平均是指首先計算出每個類別的正確率和召回率,然後對正確率和召回率分別取平均得到總的正確率和召回率。不難看出,巨集平均平等對待每一個類別,所以它的值主要受到稀有類別的影響,而微平均平等考慮文件集中的每一個文件,所以它的值受到常見類別的影響比較大。

結語

如今我們正處在一個資訊爆炸的時代,如何在這樣一個巨大的資訊海洋中更加有效的發現和使用資訊以及如何利用這個資訊寶庫為人們提供更高質量和智慧化的資訊服務,是值得探討的問題。自動文字分類技術作為處理和組織大量文字資料的關鍵技術,已經成為關注焦點,具有廣泛的應用場景。達觀資料科技非常願意與所有企業分享我們的經驗和能力,助力各個企業享受大資料技術的成果。