文本分類大體有兩種方法:一種是基於訓練集的文本分類方法;另外一種是基於分類詞表的文本分類方法。兩種方法出自不一樣角度的研究者,訓練集法更多的來自計算機或人工智能研究領域,而分類表法則更多地來自突出情報領域。本文主要介紹前一種。算法
基於訓練集的文本分類是一種典型的有教師的機器學習問題,通常分爲訓練和分類兩個階段,具體過程以下:網絡
訓練階段:機器學習
1) 定義類別集合 ,這些類別但是是層次式的,也能夠是並列式的。函數
2) 給出訓練文檔集合 ,每一個訓練文檔 被標上所屬的類別標識 。學習
3) 統計 中全部文檔的特徵矢量 ,肯定表明 中每一個類別的特徵矢量 。測試
分類階段:人工智能
1)對於測試文檔集合 中的每一個待分類文檔 ,計算其特徵矢量 與每一個 之間的類似度 。spa
2)選取類似度最大的一個類別 做爲 的類別。遞歸
有時也能夠爲 指定多個類別,只要 與這些類別之間的類似度超過某個預約的閾值。若是 與全部類別的類似度均低於閾值,那麼一般將文檔放在一邊,有用戶來作最終決定。若是這種狀況常常發生,則說明須要修改預約義的類別,而後從新進行上述訓練與分類工程。文檔
從訓練集中得出分類模式的方法不少,有基於文本特徵向量相關性的方法、基於神經網絡技術的方法、基於遺傳算法的方法、基於關聯的方法、基於EM算法的方法等。
樸素貝葉斯(Naive Bayes)算法的基本思路是計算文本屬於類別的機率,文本屬於類別的機率等於文本中每一個詞屬於類別的機率的綜合表達式。具體算法步驟以下:
1) 計算特徵詞屬於每一個類別的機率向量( )。
其中, =
2)對於新文本 ,按下面的公式計算該文本屬於類 的機率:
其中, , 爲類似含義, 爲類別總數, 爲 爲特徵詞總數。
3)比較新文本屬於全部類的機率,將文本分到機率最大的那個類別中。
該算法的思路十分簡單,根據算術平均爲每類文本集生成一個表明該類的中心向量,而後在新文原本到時,肯定新文本向量,計算該向量與每類中心向量間的距離(類似度),最後斷定文本屬於與文本距離最近的類,具體步驟以下:
訓練階段:
1)首先定義類別集合 這些類別能夠是層次式的,也能夠是並列式的;
2)而後給出訓練文本集合 ,每一個訓練文本都被標上所屬的類別標識 ;
3)提取訓練文本集合S中全部文本的特徵矢量 ,並採用必定的原測來肯定表明C中每一個類別的特徵矢量 ;
分類階段:
1)對於測試文本集合 中的每個待分類文本 ,計算其特徵矢量 與每個 之間的類似度 ,能夠用前面所提到的餘弦法。
2)選取類似度最大的一個類別 做爲 的類別。
該算法的基本思路是:在給定新文本後,考慮在訓練文本集中與該新文本距離最近(最類似)的K篇文本,根據這K篇文本所屬的類別判斷新文本所屬的類別,具體算法步驟以下:
1)根據特徵項集合從新描述訓練文本向量;
2)將新文本表示爲特徵向量;
3)在訓練文本集中選出與新文本最類似的K個文本,計算方法仍爲餘弦法:
其中,K值的肯定目前沒有很好的方法,通常採用先定一個初始值,而後根據試驗測試的結果調整K值,通常初始值定爲幾百到數千之間。
4)在新文本的K個鄰居中,依次計算每類的權重,計算公式爲
其中, 函數,即,若是 屬於類 ,那麼函數值爲1,不然爲0。
5)比較類的權重,將文本分到權重最大的那個類別中。
支持向量機(Support Vector Machine,SVM)最初是由Vapnik提出的,是一種相對較新的機器學習方法。支持向量機的基本實現思想是:經過某種事先選擇的非線性影射把輸入向量x映射到一個高維特徵空間Z,在這個空間中構造最優分類超平面。也就是SVM採用輸入向量的非線性變換,在特徵空間中,在現行決策規則集合上按照正規超平面權值的模構造一個結構,而後選擇結構中最好的元素和這個元素中最好的函數,以達到最小化錯誤率的目標,實現告終構風險最小化原則。具體算法細節將在下一章做詳細介紹。
它是採用感知算法進行分類,在此種模型中,分類知識被隱式地存儲在鏈接
的權值上,使用迭代算法來肯定權值向量,當網絡輸出判別正確時。權值向量保
持不變,不然進行增長或下降的調整,所以也稱獎懲法。通常在神經網絡分類法中包括兩個部分訓練部分和測試部分,以樣本的特徵項構造輸入神經元,特徵的數量即爲輸入神經元的數量,至於隱含層數量和該層神經元的數目要視實際而定。在訓練部分經過對至關數量的訓練樣本的訓練獲得訓練樣本輸入與輸出之間的關係即在不斷的迭代調整過程當中獲得鏈接權值矩陣。測試部分則是針對用戶輸入的待測樣本的特徵獲得輸出值即該樣本的所屬的類。
決策樹是被普遍使用的概括學習方法之一。決策樹是用樣本的屬性做爲根節點,用屬性的取值做爲分支的樹結構。它是利用信息論原理對大量樣本的屬性進行分析和概括產生的。決策樹的根節點是全部樣本中信息量最大的屬性。樹的中間節點是以該節點爲根的子樹所包含的樣本子集中信息量最大的屬性。決策樹的葉節點是樣本的類別值。決策樹用於對新樣本的分類,即經過決策樹對新樣本屬性值的測試,從樹的根節點開始,按照樣本屬性的取值,逐漸沿着決策樹向下,直到樹的葉節點,該葉節點表示的類別就是新樣本的類別。決策樹方法是數據挖掘中很是有效的分類方法,它排除噪音的強壯性以及學習反義表達的能力使其更適合於文本分類[31]。比較著名的決策樹算法是ID3算法以及它的後繼C4.五、C5等。基本的ID3算法是經過自頂向下構造決策樹的。其主算法步驟以下:
1)從訓練集中隨機選擇一個既含正例又含反例的子集(稱爲「窗口」);
2)用「建樹算法」對當前窗口造成一棵決策樹;
3)對訓練集(窗口除外)中例子用所得決策樹進行類別斷定,找出錯判的例子;
4)若存在錯判的例子,把它們插入窗口,重複步驟2),不然結束。
建樹算法:
1)對當前例子集合,計算各特徵的互信息;
2)選擇互信息最大的特徵 ;
3)把在 處取值相同的例子歸於同一子集, 取幾個值就獲得幾個子集;
4)對既含正例又含反例的子集,遞歸調用建樹算法;
若子集僅含正例或反例,對應分支標上的P或N,返回調用處。
許多研究者研究了將多種分類方法聯合成一種分類器的技術,這個過程稱爲Voting,聯合分類基本思想是將一組分類器結合起來,以表決的形式進行模式分類。選舉算法能夠分爲2個類型:Bagging(Bootstrap aggregation)算法和Boosting算法。
Bagging算法:
訓練R個分類器fi,分類器之間其餘相同就是參數不一樣。其中fi是經過從訓練集合中(N篇文檔)隨機取(取後放回)N次文檔構成的訓練集合訓練獲得的。
對於新文檔d,用這R個分類器去分類,獲得的最多的那個類別做爲d的最終類別。
Boosting算法:
相似Bagging方法,可是訓練是串行進行的,第k個分類器訓練時關注對前k-1分類器中錯分的文檔,即不是隨機取,而是加大取這些文檔的機率.
本章主要介紹了當前文本分類領域經常使用的幾種文本分類算法及其原理,包括貝葉斯算法、向量距離測度算法、決策樹算法、KNN算法、支持向量機、神經網絡等。其中KNN算法、決策樹算法中的ID3算法和支持向量機會在第四章的中文文本分類的實驗中獲得應用。