基於支援向量機的文字分類

勿在浮沙築高臺LS發表於2017-04-24

基於支援向量機SVM的文字分類的實現

1 SVM簡介
支援向量機(SVM)演算法被認為是文字分類中效果較為優秀的一種方法,它是一種建立在統計學習理論基礎上的機器學習方法。該演算法基於結構風險最小化原理,將資料集合壓縮到支援向量集合,學習得到分類決策函式。這種技術解決了以往需要無窮大樣本數量的問題,它只需要將一定數量的文字通過計算抽象成向量化的訓練文字資料,提高了分類的精確率。
支援向量機(SVM)演算法是根據有限的樣本資訊,在模型的複雜性與學習能力之間尋求最佳折中,以求獲得最好的推廣能力支援向量機演算法的主要優點有:
(1)專門針對有限樣本情況,其目標是得到現有資訊下的最優解而不僅僅是樣本數量趨於無窮大時的最優值;
(2)演算法最終轉化為一個二次型尋優問題,理論上得到的是全域性最優點,解決了在神經網路方法中無法避免的區域性極值問題;
(3)支援向量機演算法能同時適用於稠密特徵向量與稀疏特徵向量兩種情況,而其他一些文字分類演算法不能同時滿足兩種情況。
(4)支援向量機演算法能夠找出包含重要分類資訊的支援向量,是強有力的增量學習和主動學習工具,在文字分類中具有很大的應用潛力。

2 基於SVM的文字分類過程
SVM 文字分類演算法主要分四個步驟:文字特徵提取、文字特徵表示、歸一化處理和文字分類。
2.1文字特徵提取
目前,在對文字特徵進行提取時,常採用特徵獨立性假設來簡化特徵選擇的過程,達到計算時間和計算質量之間的折中。一般的方法是根據文字中詞彙的特徵向量,通過設定特徵閥值的辦法選擇最佳特徵作為文字特徵子集,建立特徵模型。(特徵提取前,先分詞,去停用詞)。
本特徵提取有很多方法,其中最常用的方法是通過詞頻選擇特徵。先通過詞頻計算出權重,按權重從大到小排序,然後剔除無用詞,這些詞通常是與主題無關的,任何類的文章中都有可能大量出現的,比如“的”“是”“在”一類的詞,一般在停詞表中已定義好,去除這些詞以後,有一個新的序列排下來,然後可以按照實際需求選取權重最高的前8個,10個或者更多詞彙來代表該文字的核心內容。
綜上所述,特徵項的提取步驟可以總結為:
(1)對全部訓練文件進行分詞,由這些詞作為向量的維數來表示文字;
(2)統計每一類內文件所有出現的詞語及其頻率,然後過濾,剔除停用詞和單字詞;
(3)統計每一類內出現詞語的總詞頻,並取其中的若干個頻率最高的詞彙作為這一類別的特徵詞集;
(4)去除每一類別中都出現的詞,合併所有類別的特徵詞集,形成總特徵詞集。最後所得到的特徵詞集就是我們用到的特徵集合,再用該集合去篩選測試集中的特徵。
2.2文字特徵表示
TF-IDF 公式來計算詞的權值:
這裡寫圖片描述
其中tfik表示特診次tk在文件di中出現的頻率,N為訓練文件總數,nk為在訓練集中出現詞tk的文件數。由TF-IDF公式,一批文件中某詞出現的頻率越高,它的區分度則越小,權值也越低;而在一個文件中,某詞出現的頻率越高,區分度則越大,權重越大。
2.3歸一化處理
歸一化就是要把需要處理的資料經過處理後(通過某種演算法)限制在你需要的一定範圍內。
這裡寫圖片描述
公式中a為關鍵詞的詞頻,min為該詞在所有文字中的最小詞頻,max為該詞在所有文字中的最大詞頻。這一步就是歸一化,當用詞頻進行比較時,容易發生較大的偏差,歸一化能使文字分類更加精確。
2.4文字分類
經過文字預處理、特徵提取、特徵表示、歸一化處理後,已經把原來的文字資訊抽象成一個向量化的樣本集,然後把此樣本集與訓練好的模板檔案進行相似度計算,若不屬於該類別,則與其他類別的模板檔案進行計算,直到分進相應的類別,這就是SVM 模型的文字分類方式。
基於SVM的系統實現(如圖所示)
這裡寫圖片描述

相關文章