基於支援向量機的文字分類
基於支援向量機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的系統實現(如圖所示)
相關文章
- 【機器學習】支援向量機分類機器學習
- 基於支援向量機的影像分類系統(MATLAB GUI介面版)MatlabGUI
- 分類演算法-支援向量機 SVM演算法
- 支援向量機原理(一) 線性支援向量機
- 有監督學習——支援向量機、樸素貝葉斯分類
- 基於Scikit-Learn的五個文字分類案例研究文字分類
- 機器學習基礎專題:支援向量機SVM機器學習
- 基於影像視覺詞彙的文字分類方法(完整專案)視覺文字分類
- 理解支援向量機
- 第八篇:支援向量機 (SVM)分類器原理分析與基本應用
- fastText,智慧與美貌並重的文字分類及向量化工具AST文字分類
- 基於spark2.0文字分詞+多分類模型Spark分詞模型
- 機器學習:支援向量機(SVM)機器學習
- 機器學習——支援向量機(SVM)機器學習
- 支援向量機原理(二) 線性支援向量機的軟間隔最大化模型模型
- 文字情感分析(二):基於word2vec和glove詞向量的文字表示
- 學習SVM(二) 如何理解支援向量機的最大分類間隔
- [譯] 支援向量機(SVM)教程
- 機器學習——支援向量機SVM(一)機器學習
- 機器學習之支援向量機的超平面機器學習
- 文字分類-TextCNN文字分類CNN
- 文字分類模型文字分類模型
- 支援向量機原理(三)線性不可分支援向量機與核函式函式
- 基於sklearn的分類器實戰
- 支援向量機(三)核函式函式
- 機器學習基礎篇:支援向量機(SVM)理論與實踐機器學習
- 支援向量機原理(五)線性支援迴歸
- 《機器學習實戰》基於樸素貝葉斯分類演算法構建文字分類器的Python實現機器學習演算法文字分類Python
- 監督學習之支援向量機
- 支援向量機(五)SMO演算法演算法
- 【NLP】TensorFlow實現CNN用於文字分類(譯)CNN文字分類
- 文字分類(下)-卷積神經網路(CNN)在文字分類上的應用文字分類卷積神經網路CNN
- 基於Tensorflow影像分類模型的微服務模型微服務
- BiLSTM-Attention文字分類文字分類
- 文字分類論文系列---文字分類
- 分享《文字分類初探PPT》文字分類
- 基於Pytorch實現貓狗分類PyTorch
- 吳恩達機器學習系列17:支援向量機吳恩達機器學習