祁小軍 蘭海翔 盧涵宇 丁蕾錠 薛安琪



摘要:在自媒體的時代,人們每天接觸海量的新聞,如何從中對這些新聞進行高效分類,抓取有用的信息是一件關鍵的事情。而貝葉斯、KNN和SVM算法都可以用在文本自動分類中,本文通過實驗就這三種分類器進行對比,分析這三種分類器對新聞文本分類的效果。
關鍵詞:KNN; SVM;新聞TF分類;貝葉斯
中圖分類號: TP208? ? ? ?文獻標識碼:A
文章編號:1009-3044(2019)25-0220-03
Abstract:In the era of media, people are exposed to a huge amount of news every day, how to efficiently classify these news from them, and to grab useful information is a key thing. Bayesian, KNN and SVM algorithms can be used in automatic text categorization. This paper compares these three classifiers through experiments. Analysis the effect of these three classifiers on the classification of news text.
Key words: KNN; SVM; text classification; Bayesian
新聞文本分類問題已經自新聞媒介誕生以來就一直存在,從早期的人工主題分類,到現在的關鍵詞分類。這些分類方式都是想提高新聞分類的效率,特別在今天自媒體盛行的時代,其分類效率愈加變得至關重要。而常用的文本分類方法有樸素貝葉斯、KNN算法和SVM算法。樸素貝葉斯法是基于貝葉斯定理與特征條件獨立假設的分類方法[1],其對已知類別,假設所有屬性相互獨立,換言之,假設每個屬性獨立地對分類記過產生影響。KNN算法即k近鄰算法,是數據挖掘分類方法中最常用的方法之一。所謂的k近鄰是指k個最近的鄰居的意思,說的是每個樣本都可以用它最接近的k個鄰居來代表。Cover和Hart在1968年提出了最初的近鄰算法[2]。SVM(支持向量機)是一種按監督學習方式對數據進行二元分類的廣義線性分類器[1][3],最早于1964年被提出,在人臉識別、文本分類等問題中廣泛應用[4]。
1 中文文本分類技術
文本分類是將大量文本按照一定規則劃分為一系列組別的過程。文本分類實質上是一個模式分類任務,所以諸多模式分類的算法就可以應用到文本分類當中。但文本分類又是自然語言處理的過程。文本的分類規則大多與文本的語義相關,所以和普通的模式分類任務又有著許多不同之處。
1.1 文本特征選擇
在文本分類中,當分類文本數目比較大的時候,從文檔中提取的特征也就隨之增加,但有些特征對文本的分類作用并不大。所以我們要應用適當的文本特征選擇方法來提取具有代表性的特征。去除冗余特征。本文采用基于TF-IDF的文本特征提取。
TF-IDF是一種統計方法,用來評估一個字詞對于一個文本集的重要程度。字詞的重要性與它在文本中出現的頻率成正比,但又同它出現在語料庫中的頻率成反比。其原理如下。
在一個給定的文本中,詞頻(TF)指的是某個給定的詞在該文本出現的頻率。這個數字是對文本總詞數的歸一化,以防止它偏向長的文本。對于在一特定文件中的詞[ti]來說,它的重要性可以表示為:
當某一詞語在特定文本中屬于高頻詞語,且它在整個文本集合中又屬于低頻詞語,通過公式(3)就可以得到一個權重高的TF-IDF。
1.2 基于統計的分類方法
文本分類的方法大多來自模式分類,基本上可以分為三大類,其一是基于統計的方法,另一種是基于連接的方法,.還有一種是基于規則的方法。這些方法的主要區別在于規則的獲取方法[5]。本文采用基于統計的方法。選取的算法包括樸素貝葉斯算法、KNN算法及SVM算法。
1.3 分類性能評估
文本分類的評估和具體應用有關。不同的應用,其性能評估的方法和準則不盡相同。可以有如下幾個指標:
(1) 領域獨立性,由于現有的文本分類技術大多基于特征詞信息,這使得文本分類需要借助詞典和使用專門的分詞技術。但每個學科領域的詞典用詞側重點不同,所以能夠找到一個領域獨立地文本分類系統無疑具有重要價值。
(2) 時間無關性,隨著時間的變化,語言用詞也會發生變化,所以一個高效的文檔分類技術,要不斷更新自己的詞典。
(3) 可擴展性,因為文本分類是建立在文本分類方法上的,且大多說文本分類方法都是機器學習方法,當有新的更加高效的方法出現時,一個分類系統能夠通過擴展,迭代實現更加高效的分類是關鍵。
(4) 空間和時間代價。
本文采用F值、精準率和召回率作為文本分類性能的評估。
2 三種分類器的原理
2.1 樸素貝葉斯分類器
樸素貝葉斯的思想基礎為:對于給出的待分類項,求解在此項出現的條件下各個類別出現的概率,哪個最大,就認為此待分類項屬于哪個類別。樸素貝葉斯分類的正式定義如下:設[x={a1,a2,...,am}]為一個待分類項,而每個a為x的一個特征屬性。有類別集合[C={y1,y2,...,yn}]計算每個y在x基礎的概率分布,[P(y1|x),P(y2|x),...,P(yn|x)]如果[P(yk|x)=max{P(y1|x),P(y2|x),...,P(yn|x)],則[x∈yk] 。關鍵是如何計算每個條件概率。對于此我們可以統計訓練集中的條件概率估計,并假設各個屬性是條件獨立地根據貝葉斯定理有
2.2? KNN分類器
該算法的基本思路是:在給定新文本后考慮在訓練文本集中與該新文本距離最近的K篇文本,根據這K篇文本所屬的類別判定新文本所屬的類別[6],具體的算法步驟如:
1)計算測試數據與各個訓練數據之間的距離;
2)按照距離的遞增關系進行排序;
3)選取距離最小的K個點;
4)確定前K個點所在類別的出現頻率;
5)返回前K個點中出現頻率最高的類別作為測試數據的預測分類。
2.3? SVM分類器
SVM(Support Vector Machines)——支持向量機是在所有知名的數據挖掘算法中最健壯,最準確的方法之一,它屬于二分類算法,可以支持線性和非線性的分類。假設在一個二維線性可分的數據集中,圖1 A所示,我們要找到一個超平面把兩組數據分開,這時,我們認為線性回歸的直線或邏輯回歸的直線也能夠做這個分類,這條直線可以是圖1 B中的直線,也可以是圖1 C中的直線,或者圖1 D中的直線,但哪條直線才最好呢,也就是說哪條直線能夠達到最好的泛化能力呢?那就是一個能使兩類之間的空間大小最大的一個超平面。這個超平面在二維平面上看到的就是一條直線,在三維空間中就是一個平面,因此,我們把這個劃分數據的決策邊界統稱為超平面。離這個超平面最近的點就叫作支持向量,點到超平面的距離叫間隔。支持向量機就是要使超平面和支持向量之間的間隔盡可能的大,這樣超平面才可以將兩類樣本準確的分開,而保證間隔盡可能的大就是保證我們的分類器誤差盡可能地小,盡可能地健壯。
3 分類實驗結果
3.1 分類方法
本文的新聞數據采用復旦的中文語料庫,在pycharm軟件上運行程序,并對其效率和結果進行比較分析。新聞分類總共分為藝術、文學、教育、心理學、歷史、太空學、能源、溝通、計算機、礦業、運輸、電子、環境、農業、經濟、法律、醫學、軍事、政治、運動。共二十個種類。其中每個類別中的2/3作為訓練集,1/3作為測試集。
本文采用文本分類研究普遍接受的評估指標來評價文本分類的性能,即準確率(Precision)、查全率(Real)和FI測試值。
3.2 結果
通過上述的實驗方法實驗樸素貝葉斯、KNN和SVM三種算法的實驗結果其分類結果如表1所示。
可以看出,SVM算法在這三種算法之中的預測效果最好,表明SVM在精準度方面是較好的算法。我們又對比了三種算法預測數據的時間結果如表2所示。
從表中可以看出,SVM在相同的數據量下用時最長,而樸素貝葉斯明顯比其他兩個算法用時時間要短,僅用0.59秒。
4 總結
本文分析和比較了樸素貝葉斯、KNN和SVM三種算法,并利用復旦中文語料庫進行了實驗。 綜合表1 和表2,我們可以看出,當我們需要較高的F1值時,可以選用SVM,當數據量大且對精準度要求不高時,可以選用樸素貝葉斯,綜合時間和準確度,可以選用KNN算法。
參考文獻:
[1] 李航.統計學習方法[M].北京:清華大學出版社,2012.
[2] Cover T M, Hart P E. Nearest neighbor pattern classification[J]. IEEE transactions on information theory, 1967,13(1):21-27.
[3] 周志華.機器學習[M].北京:清華大學出版社,2016:121-139, 298-300.
[4] Sun, A., Lim, E.P. and Ng, W.K. November. Web classification using support vector machine. In Proceedings of the 4th international workshop on Web information and data management,2002: 96-99.
[5] 李榮陸,胡運發.文本分類及其相關技術研究[D].上海: 復旦大學計算機與信息技術系, 2005.
[6] 馬建斌,李瀅,滕桂法,等.KNN和SVM算法在中文文本自動分類技術上的比較研究[J].河北農業大學學報,2008(03):120-123.
【通聯編輯:光文玲】