劉永芬 程麗 陳志安
摘 ?要: 在文本分類領域,中文文本需要經過數據處理,將文檔表達成計算機可以理解并處理的信息。本文采用TF-IDF作為文本表示方法,針對中文文章的多分類問題,對傳統(tǒng)支持向量機進行改進,提出了一種基于特征選擇的多類支持向量機分類方法。在中文文章數據集的對比實驗結果表明,本文的方法在多分類性能上較優(yōu)于其他模式識別方法。
關鍵詞:?M-SVM;特征選擇;中文文本分類
中圖分類號: TP391????文獻標識碼:?A????DOI:10.3969/j.issn.1003-6970.2019.09.016
本文著錄格式:劉永芬,程麗,陳志安. 基于特征選擇的M-SVM中文文本分類[J]. 軟件,2019,40(9):71-74
Chinese Text Classification of M-SVM Based on Feature Selection
LIU Yong-fen1,?CHENG Li1,?CHEN Zhi-an2
(1.?Jinshan College of Fujian Agricultural and Forestry University, Fuzhou Fujian 350002;2.?China Mobile Communication Group Company Limited Fujian Branch, Fuzhou Fujian 350001)
【Abstract】: In the field of text classification, Chinese text needs to be processed through data processing, and the document can be reached into information that can be understood and processed by computer. In this paper, TF-IDF is used as the text representation method to improve the traditional support vector machine (SVM) for the multi-classification problem of Chinese articles, and a multi-class support vector machine classification method based on feature selection is proposed. The experimental results show that the proposed method is superior to other pattern recognition methods in multi-classification performance.
【Key words】: Feature selection;?Chinese text classification
在網絡信息高速傳輸并呈爆炸式增長的時代,中文信息處理也迎來了前所未有的挑戰(zhàn)?;ヂ?lián)網產生的文本數據呈現出半結構化或非結構化等特點[1],不利于計算機直接處理,因此如何從互聯(lián)網中文信息中獲取知識,快速有效地組織成用戶所需的信息成為文本挖掘的主要任務。自動文本分類作為其中的一個重要分支,也逐漸成為學者們研究的熱點。支持向量機SVM由Cortes在1995年提出的[2],基本思想是通過構造一個非線性的超平面,實現對輸入空間的分類。支持向量機的求解主要是解決二次規(guī)劃優(yōu)化問題,通過求解得到的支持向量所描述的最大邊緣間隔來區(qū)分兩類,當數據集特征較稀疏時,SVM也擁有較好的分類能力[3]。許多學者將其應用于圖像處理、人臉識別、仿真預測等領域[4-5]。Goudjil等[6]提出了一種新的基于SVM的文本分類主動學習方法,實驗表明將SVM應用于文本分類領域的可行性。Zainuddin等[7]通過實驗證明特征選擇在情感分析中起到了重要的作用。陳海紅[8]將多核SVM應用于文本分類。也有學者提出了一種將SVM與BP神經網絡相結合的分類方法[9]。王非[10]提出了基于微博的情感新詞發(fā)現方法。然而多數文獻將SVM應用于英文文本分類,而情感分析通常是二分類問題,針對中文文章分類的多類問題還需要將傳統(tǒng)的二分SVM算法進行改進,以期能夠解決序列數據的多分類問題。
為此,本文提出了一種基于特征選擇的M-SVM中文文章多分類方法。通過文本預處理,對文章進行分詞、去除停用詞,設置最小/最大文檔頻率閾值進行特征選擇,將文本的TF-IDF特征表示作為層次SVM分類模型的輸入。通過多次對比實驗實驗結果表明,本文的方法較其他方法具有較高的分類精度。
1.1中文分詞
在自然語言處理技術中,由于英文每個單詞間都以空格作為分隔符,因此處理英文文本并對一篇英文文章提取特征要比處理中文文本簡單許多。中文文本中字字相連,詞和詞組的邊界模糊,要獲取特征必須有分詞這道工序。不同的中文分詞方法會產生不同的切分效果,例如語句“你說的確實在理”,存在多種切分,分成的詞可能的情況有?“的確”、“確實”、“實在”,然而結合語義,將語句分為“你說的/確實/在理”更為恰當。再如語句“2018年底部隊友誼球賽”,可能存在的歧義有“底部”、“部隊”、“隊友”,而分詞不能曲解原文的含義,因此尋找一個合適的分詞方法顯得尤為重要。jieba分詞采用一種有序的字典樹構造詞條字典,用于保存關聯(lián)數組,通過該技術分詞的結果為“2018/年底/部隊/友誼/球賽”,由此可見該分詞方法在一定程度上有效地解決了交叉歧義的問題。
1.2?TF-IDF文本表示
TF-IDF是一種統(tǒng)計方法,在給定的語料中,TF(Term Frequency)詞頻指的是特定詞語在文檔中出現的次數除以文檔的詞語總數。IDF(Inverse Document Frequency)逆向文檔頻率指數表示一個詞語的權重指數,可以由總文件數目除以包含該詞語之文件的數目,再取對數得到。計算出每個詞的詞頻和權重指數后相乘,可得到該詞在文檔中的重要程度。如果某一特定語料中的有一個詞有高詞語頻率,以及該詞語在整個語料中的低文件頻率,可以得到較高的TF-IDF值[11]。
1.3特征選擇
特征選擇就是從一組特征集(包含特征數量為m)中挑選出一些最有效的特征特征子集(包含特征數量為d)以達到降低特征空間維度的目的,即建立一個從高維特征空間到低維特征空間的映射f:Rm→Rd,其中d
傳統(tǒng)SVM算法假設分類問題在H上是線性可分的,那么在H空間中構造最優(yōu)超平面為:
(1)
求解的初始優(yōu)化問題轉化為:
(2)
其中,C為懲罰因子,表示對錯分樣本的懲罰程度,C值越大,對目標函數的損失也越大。上式的求解在保持基于VC維的上界小的基礎上,通過最小化達到經驗風險最小化。引入松弛變量能夠消除個別樣本點對分類器的不良影響,在訓練錯誤和泛化能力間有所折中,所以它具有一定的魯棒性。滿足式(2)中約束條件的最小松弛變量
為:
(3)
從圖1-3可以看出,(1)當=0時,表示樣本點位于分類邊界之外或者在邊界上,分類正確;(2)當0<
1時,表示樣本點位于分類面內,分類正確;(3)當
>1時,樣本點被錯誤分類。
對偶問題為:
(4)
通過非線性映射::Rm→H,x→
,將輸入空間映射到Hilbert 空間H中,如果高維空間中只涉及
的內積運算,即
,而沒有單獨的
出現,則可以用原始空間的函數實現高維空間的這種內積運算,無需知道非線性映射
的具體形式。根據泛函的有關理論,只要一種核函數K(xi,xj)滿足Mercer條件[12],它就對應某一變換空間中的內積,使得
(5)
因此,非線性支持向量機對應的判別函數為:
(6)
根據Hilbert-Schmidt理論,核函數是滿足Mercer條件的任意對稱函數。常見的核函數如下:
(1)poly多項式核函數:,d表示多項式的梯度。
(2)Sigmoid感知核函數:
(3)高斯核函數:
最常用是高斯核函數,此外,還有疊加核函數、樣條核函數和傅里葉序列等。由于支持向量機允許使用不同的核函數,即允許使用不同的假設空間,所以它在解決多樣應用問題時,具有一定的柔韌性。顯然,支持向量機的魯棒性和柔韌性也是我們設計解決其他問題算法時所渴求的[13]。然而傳統(tǒng)的SVM只能解決二值問題,針對多類別文本分類問題,還需對其進行改進。
針對多類問題,彌補現有多類支持向量機算法的不足,本文提出了一種多類支持向量機M-SVM(Multiclass Support Vector Machine)方法。首先將所有類別分成兩個子類,再將子類進一步劃分成兩個次級子類,如此循環(huán)直到每個子類只包含一個單獨的類別為止,包含了不同類別的子類作為層次樹的分支結點,只包含一類樣本的子類作為層次樹的葉子結點,從而形成了層次樹結構模型。從某種程度上說,層次樹模型是一種先驗知識,其作用是指導支持向量機對待測樣本做最后的分類。多類支持向量機的訓練過程如圖2所示。
對于待測樣本x,先從根結點分類器對其進行劃分,根據判別函數將其歸為左子結點或者右子結點,逐層往下直至待測樣本x被分配到某個葉子結點,則將待測樣本x歸到葉子結點所屬的類別,分類過程結束。
實驗數據為搜狐文章語料庫24000篇文章,包含教育、新聞、體育、科技、健康、財經等12個類別,每篇文章采用jieba進行中文分詞處理,對去除停用詞后的數據運用TF-IDF對語料中的每一篇文章進行特征表示。M-SVM根據設置min_df,max_df等不同的參數,得到不同的分類精度。DF表示在語料中出現過某個詞的文檔數量,通過特征選擇,忽略低于min_df文檔頻率以及高于max_df文檔頻率的詞,得到特征選擇后的文檔TF-IDF特征表示,取數據集中90%作為訓練集數據和10%作為測試集數據。通過多次實驗得到以下分類精度,如圖3所示。
從結果中我們發(fā)現隨著特征數的增加,模型分類精度呈曲線上升趨勢,當特征數達到16111時,分類精度達到最高,接著精度隨特征數的增加略有下降。由此可知,對于語料中每篇文章按照一定的特征選擇方法,選擇出最能代表該文章的詞,對于提高模型分類性能以及運行速度都具有很大的幫助。
再按照不同的訓練集和測試集占比進行多次實驗,并與Naive Bayes分類方法進行對比實驗。經過多次實驗對比,取各方法在當前數據集分類中表現最優(yōu)的參數,其中min_df取40, max_df=3000;M-SVM的參數C設置為1,另外,gamma值太大容易造成過擬合,太小高斯核函數會退化成線性核函數,本文采用gamma值為0.5的高斯核函數;Naive Bayes的平滑參數alpha設置為1.5,通過調整訓練樣本與測試樣本之間的占比,得到各方法的分類精度如表所示。
從實驗結果可知,隨著訓練數據越來越多,模型的分類精度也隨著提高,其中M-SVM的在訓練集樣本占所有數據比例90%時,具有最好的文本分類效果。
本文提出了一種基于特征選擇的多類SVM方法,并與傳統(tǒng)貝葉斯方法進行了比較實驗,實驗結果表明該方法在長文本分類中取得了較好的效果,它較大程度地提高中文文本的分類精度。在當前數據集中的實驗可得,當文本特征數16111,訓練集數據占90%時,模型具有較高的分類精度。由此可見,在訓練數據較多的情況下,對于高維度數據采用一定的特征選擇方法,選取最有代表性的特征來對文本進行表示,模型能夠輸出較好的分類性能。
參考文獻
[J].?軟件,?2015,?36(11):?112-114.
[2]?Cortes C, Vapnik V. Support-vector networks[J]. Machine Learning, 1995, 20(3):?273-297.
[3]?Joachims T.?Text categorization with Support Vector Machines: Learning with Many Relevant Features[M]. Machine?Learning: ECML-98. Springer Berlin Heidelberg, 1999: 137-?142.
[4]?祁亨年.?支持向量機及其應用研究綜述[J].?計算機工程, 2004, 30(10): 6-9.
[5]?聶敬云,?李春青,?李威威, 等. 關于遺傳算法優(yōu)化的最小二乘支持向量機在MBR仿真預測中的研究[J]. 軟件,?2015,?36(5):?40-44.
[6]?Goudjil M, Koudil M, Bedda M, et al. A Novel Active Learning Method Using SVM for Text Classification[J]. International Journal of Automation and Computing, 2018, v.15(03):?44-52.
[7]?Zainuddin N, Selamat A, Ibrahim R. Twitter Feature Selection and Classification Using Suport Vector Machine for Aspect-Based Sentiment Analysis[M].Trends in Applied Knowledge-Based Systems and Data Science. 2016, v.9799:?269-279.
[8]?陳海紅. 多核SVM文本分類研究[J].?軟件,?2015,?36(5):?7-10.
[9]?王宏濤,?孫劍偉. 基于BP神經網絡SVM的分類方法研究[J].?軟件,?2015,?36(11):?96-99.
[10]?王非. 基于微博的情感新詞發(fā)現研究[J].?軟件,?2015,?36(11):?06-08.
[11]?Trstenjak B,?Mikac S,?Donko D.KNN with TF-IDF based Framework for Text Categorization[J]. Procedia Engineering, 2014, 69:?1356-1364.
[12]?Burges C. A Tutorial on Support Vector Machines for Pattern Recognition[J]. Data Mining and Knowledge Discovery, 1998, 2(2):?121-167.
[13]?Amari S, Wu S. Improving support vector machine classifiers by modifying kernel functions[J]. Neural Networks, 1999, 12(6):?783-789.