文本数据的机器学习自动分类方法(转)
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在訓練過程中調整。
圖 3 基于卷積神經網絡的文本分類算法?
作者簡介:張健,復旦大學計算機軟件與理論碩士,現任達觀數據聯合創始人,曾在盛大創新院負責相關推薦模塊,在盛大文學數據中心負責任務調度平臺系統和集群維護管理,數據平臺維護管理和開發智能審核系統。 對大數據技術、機器學習算法有較深入的理解和實踐經驗。
?
本文為第二部分,著重介紹特征向量權重的影響因素以及樣本訓練和分類評估方法。
隨著互聯網技術的迅速發展與普及,如何對浩如煙海的數據進行分類、組織和管理,已經成為一個具有重要用途的研究課題。而在這些數據中,文本數據又是數量最大的一類。首先來回顧一下上一篇所提到的文本分類的流程,如圖 1所示,包括訓練、特征抽取、訓練模型、分類預測等幾個主要環節。
圖 1 文本分類流程圖
(一):特征向量權重的影響因素
特征權重用于衡量某個特征項在文檔表示中的重要程度或區分能力的強弱。選擇合適的權重計算方法,對文本分類系統的分類效果能有較大的提升作用。影響特征詞權值的因素包括以下幾點:
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。
圖 2 基于支持向量機分類器原理圖
(4) k-最近鄰法
k-最近鄰方法的基本思想是:給定一個測試文檔,系統在訓練集中查找離它最近的k個鄰近文檔,并且根據這些鄰近文檔的分類來給該文檔的候選類別評分。把鄰近文檔和測試文檔的相似度作為鄰近文檔所在類別的權重,如果這k個鄰近文檔中的部分文檔屬于同一個類別,那么將該類別中每個鄰近文檔的權重求和,并作為該類別和測試文檔的相似度。然后,通過對候選分類評分的排序,給出一個閾值。
(5) 基于神經網絡的分類器
神經網絡是人工智能中比較成熟的技術之一,基于該技術的分類器的基本思想是:給每一類文檔建立一個神經網絡,輸入通常是單詞或者更加復雜的特征向量,通過機器學習方法獲得從輸入到分類的非線性映射。
(6) 決策樹
決策樹分類器把文本處理過程看作是一個等級分層分解完成的復雜任務。如圖3,決策樹是一棵樹,樹的根節點是整個數據集合空間,每個分結點是對一個單一變量的測試,該測試將數據集合空間分割成兩個或更多個類別,即決策樹可以是二叉樹也可以是多叉樹。每個葉結點是屬于單一類別的記錄。構造決策樹分類器時,首先要通過訓練生成決策樹,然后再通過測試集對決策樹進行修剪。一般可通過遞歸分割的過程構建決策樹,其生成過程通常是自上而下的,選擇分割的方法有很多種,但是目標都是一致的,就是對目標文檔進行最佳分割。
圖 3 決策樹實例
1.2 Ensemble方法
我們使用上述的經典分類算法的過程中,很自然的想到一點,我們是否能夠整合多個算法優勢到解決某一個特定分類問題中去?答案是肯定的。通過聚合多個分類器的預測來提高分類的準確率。這種技術稱為Ensemble方法。Ensemble方法是提升機器學習精度的有效手段。它的基本思想,充分利用不同分類器的優勢,取長補短,最后綜合多個分類器的結果。Ensemble可以設定一個目標函數(組合多個分類器),通過訓練得到多個分類器的組合參數(而不是簡單的累加或者多數)。 在Ensemble框架下將分類器分為兩個Level: L1層和L2層。L1層是基礎分類器,前面提到的分類器均可以作為L1層分類器來使用;L2層基于L1層,將L1層的分類結果形成特征向量,再組合一些其他的特征后,形成L2層分類器(如SVM,AdaBoost等)的輸入。這里需要特別留意的是用于L2層的訓練的樣本必須沒有在訓練L1層時使用過。
圖 4 Ensemble框架
2.文本分類評估
針對不同的目的,多種文本分類器性能評價方法被提出,包括召回率、正確率和F-測度值。設定a表示分類器將輸入文本正確分類到某個類別的個數;b表示分類器將輸入文本錯誤分類到某個類別的個數;c表示分類器將輸入文本錯誤地排除在某個類別之外的個數;d表示分類器將輸入文本正確地排除在某個類別之外的個數。
該分類器的召回率、正確率和F-測度值分別采用以下公式計算:
召回率 r = a / (a + c) * 100%
正確率 p = a / (a + b) * 100%
F-測度值 F = (2 * p * r) /(p + r)
由于在分類結果中,對應每個類別都會有一個召回率和正確率,因此,可以根據每個類別的分類結果評價分類器的整體性能,通常方法有兩種:微平均和宏平均。微平均是根據正確率和召回率計算公式直接計算出總得正確率和召回率值。宏平均是指首先計算出每個類別的正確率和召回率,然后對正確率和召回率分別取平均得到總的正確率和召回率。不難看出,宏平均平等對待每一個類別,所以它的值主要受到稀有類別的影響,而微平均平等考慮文檔集中的每一個文檔,所以它的值受到常見類別的影響比較大。
結語
如今我們正處在一個信息爆炸的時代,如何在這樣一個巨大的信息海洋中更加有效的發現和使用信息以及如何利用這個信息寶庫為人們提供更高質量和智能化的信息服務,是值得探討的問題。自動文本分類技術作為處理和組織大量文本數據的關鍵技術,已經成為關注焦點,具有廣泛的應用場景。達觀數據科技非常愿意與所有企業分享我們的經驗和能力,助力各個企業享受大數據技術的成果。
作者簡介:張健,復旦大學計算機軟件與理論碩士,現任達觀數據聯合創始人,曾在盛大創新院負責相關推薦模塊,在盛大文學數據中心負責任務調度平臺系統和集群維護管理,數據平臺維護管理和開發智能審核系統。對大數據技術、機器學習算法有較深入的理解和實踐經驗。
轉載于:https://www.cnblogs.com/DjangoBlog/p/6341427.html
總結
以上是生活随笔為你收集整理的文本数据的机器学习自动分类方法(转)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高德地图测开笔试题分享
- 下一篇: Windows下文本文件编码转换