祁小軍 蘭海翔 盧涵宇 丁蕾錠 薛安琪
摘要:在自媒體的時代,人們每天接觸海量的新聞,如何從中對這些新聞進(jìn)行高效分類,抓取有用的信息是一件關(guān)鍵的事情。而貝葉斯、KNN和SVM算法都可以用在文本自動分類中,本文通過實驗就這三種分類器進(jìn)行對比,分析這三種分類器對新聞文本分類的效果。
關(guān)鍵詞:KNN; SVM;新聞TF分類;貝葉斯
中圖分類號: TP208? ? ? ?文獻(xiàn)標(biāo)識碼: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
新聞文本分類問題已經(jīng)自新聞媒介誕生以來就一直存在,從早期的人工主題分類,到現(xiàn)在的關(guān)鍵詞分類。這些分類方式都是想提高新聞分類的效率,特別在今天自媒體盛行的時代,其分類效率愈加變得至關(guān)重要。而常用的文本分類方法有樸素貝葉斯、KNN算法和SVM算法。樸素貝葉斯法是基于貝葉斯定理與特征條件獨立假設(shè)的分類方法[1],其對已知類別,假設(shè)所有屬性相互獨立,換言之,假設(shè)每個屬性獨立地對分類記過產(chǎn)生影響。KNN算法即k近鄰算法,是數(shù)據(jù)挖掘分類方法中最常用的方法之一。所謂的k近鄰是指k個最近的鄰居的意思,說的是每個樣本都可以用它最接近的k個鄰居來代表。Cover和Hart在1968年提出了最初的近鄰算法[2]。SVM(支持向量機(jī))是一種按監(jiān)督學(xué)習(xí)方式對數(shù)據(jù)進(jìn)行二元分類的廣義線性分類器[1][3],最早于1964年被提出,在人臉識別、文本分類等問題中廣泛應(yīng)用[4]。
1 中文文本分類技術(shù)
文本分類是將大量文本按照一定規(guī)則劃分為一系列組別的過程。文本分類實質(zhì)上是一個模式分類任務(wù),所以諸多模式分類的算法就可以應(yīng)用到文本分類當(dāng)中。但文本分類又是自然語言處理的過程。文本的分類規(guī)則大多與文本的語義相關(guān),所以和普通的模式分類任務(wù)又有著許多不同之處。
1.1 文本特征選擇
在文本分類中,當(dāng)分類文本數(shù)目比較大的時候,從文檔中提取的特征也就隨之增加,但有些特征對文本的分類作用并不大。所以我們要應(yīng)用適當(dāng)?shù)奈谋咎卣鬟x擇方法來提取具有代表性的特征。去除冗余特征。本文采用基于TF-IDF的文本特征提取。
TF-IDF是一種統(tǒng)計方法,用來評估一個字詞對于一個文本集的重要程度。字詞的重要性與它在文本中出現(xiàn)的頻率成正比,但又同它出現(xiàn)在語料庫中的頻率成反比。其原理如下。
在一個給定的文本中,詞頻(TF)指的是某個給定的詞在該文本出現(xiàn)的頻率。這個數(shù)字是對文本總詞數(shù)的歸一化,以防止它偏向長的文本。對于在一特定文件中的詞[ti]來說,它的重要性可以表示為:
當(dāng)某一詞語在特定文本中屬于高頻詞語,且它在整個文本集合中又屬于低頻詞語,通過公式(3)就可以得到一個權(quán)重高的TF-IDF。
1.2 基于統(tǒng)計的分類方法
文本分類的方法大多來自模式分類,基本上可以分為三大類,其一是基于統(tǒng)計的方法,另一種是基于連接的方法,.還有一種是基于規(guī)則的方法。這些方法的主要區(qū)別在于規(guī)則的獲取方法[5]。本文采用基于統(tǒng)計的方法。選取的算法包括樸素貝葉斯算法、KNN算法及SVM算法。
1.3 分類性能評估
文本分類的評估和具體應(yīng)用有關(guān)。不同的應(yīng)用,其性能評估的方法和準(zhǔn)則不盡相同??梢杂腥缦聨讉€指標(biāo):
(1) 領(lǐng)域獨立性,由于現(xiàn)有的文本分類技術(shù)大多基于特征詞信息,這使得文本分類需要借助詞典和使用專門的分詞技術(shù)。但每個學(xué)科領(lǐng)域的詞典用詞側(cè)重點不同,所以能夠找到一個領(lǐng)域獨立地文本分類系統(tǒng)無疑具有重要價值。
(2) 時間無關(guān)性,隨著時間的變化,語言用詞也會發(fā)生變化,所以一個高效的文檔分類技術(shù),要不斷更新自己的詞典。
(3) 可擴(kuò)展性,因為文本分類是建立在文本分類方法上的,且大多說文本分類方法都是機(jī)器學(xué)習(xí)方法,當(dāng)有新的更加高效的方法出現(xiàn)時,一個分類系統(tǒng)能夠通過擴(kuò)展,迭代實現(xiàn)更加高效的分類是關(guān)鍵。
(4) 空間和時間代價。
本文采用F值、精準(zhǔn)率和召回率作為文本分類性能的評估。
2 三種分類器的原理
2.1 樸素貝葉斯分類器
樸素貝葉斯的思想基礎(chǔ)為:對于給出的待分類項,求解在此項出現(xiàn)的條件下各個類別出現(xiàn)的概率,哪個最大,就認(rèn)為此待分類項屬于哪個類別。樸素貝葉斯分類的正式定義如下:設(shè)[x={a1,a2,...,am}]為一個待分類項,而每個a為x的一個特征屬性。有類別集合[C={y1,y2,...,yn}]計算每個y在x基礎(chǔ)的概率分布,[P(y1|x),P(y2|x),...,P(yn|x)]如果[P(yk|x)=max{P(y1|x),P(y2|x),...,P(yn|x)],則[x∈yk] 。關(guān)鍵是如何計算每個條件概率。對于此我們可以統(tǒng)計訓(xùn)練集中的條件概率估計,并假設(shè)各個屬性是條件獨立地根據(jù)貝葉斯定理有
2.2? KNN分類器
該算法的基本思路是:在給定新文本后考慮在訓(xùn)練文本集中與該新文本距離最近的K篇文本,根據(jù)這K篇文本所屬的類別判定新文本所屬的類別[6],具體的算法步驟如:
1)計算測試數(shù)據(jù)與各個訓(xùn)練數(shù)據(jù)之間的距離;
2)按照距離的遞增關(guān)系進(jìn)行排序;
3)選取距離最小的K個點;
4)確定前K個點所在類別的出現(xiàn)頻率;
5)返回前K個點中出現(xiàn)頻率最高的類別作為測試數(shù)據(jù)的預(yù)測分類。
2.3? SVM分類器
SVM(Support Vector Machines)——支持向量機(jī)是在所有知名的數(shù)據(jù)挖掘算法中最健壯,最準(zhǔn)確的方法之一,它屬于二分類算法,可以支持線性和非線性的分類。假設(shè)在一個二維線性可分的數(shù)據(jù)集中,圖1 A所示,我們要找到一個超平面把兩組數(shù)據(jù)分開,這時,我們認(rèn)為線性回歸的直線或邏輯回歸的直線也能夠做這個分類,這條直線可以是圖1 B中的直線,也可以是圖1 C中的直線,或者圖1 D中的直線,但哪條直線才最好呢,也就是說哪條直線能夠達(dá)到最好的泛化能力呢?那就是一個能使兩類之間的空間大小最大的一個超平面。這個超平面在二維平面上看到的就是一條直線,在三維空間中就是一個平面,因此,我們把這個劃分?jǐn)?shù)據(jù)的決策邊界統(tǒng)稱為超平面。離這個超平面最近的點就叫作支持向量,點到超平面的距離叫間隔。支持向量機(jī)就是要使超平面和支持向量之間的間隔盡可能的大,這樣超平面才可以將兩類樣本準(zhǔn)確的分開,而保證間隔盡可能的大就是保證我們的分類器誤差盡可能地小,盡可能地健壯。
3 分類實驗結(jié)果
3.1 分類方法
本文的新聞數(shù)據(jù)采用復(fù)旦的中文語料庫,在pycharm軟件上運(yùn)行程序,并對其效率和結(jié)果進(jìn)行比較分析。新聞分類總共分為藝術(shù)、文學(xué)、教育、心理學(xué)、歷史、太空學(xué)、能源、溝通、計算機(jī)、礦業(yè)、運(yùn)輸、電子、環(huán)境、農(nóng)業(yè)、經(jīng)濟(jì)、法律、醫(yī)學(xué)、軍事、政治、運(yùn)動。共二十個種類。其中每個類別中的2/3作為訓(xùn)練集,1/3作為測試集。
本文采用文本分類研究普遍接受的評估指標(biāo)來評價文本分類的性能,即準(zhǔn)確率(Precision)、查全率(Real)和FI測試值。
3.2 結(jié)果
通過上述的實驗方法實驗樸素貝葉斯、KNN和SVM三種算法的實驗結(jié)果其分類結(jié)果如表1所示。
可以看出,SVM算法在這三種算法之中的預(yù)測效果最好,表明SVM在精準(zhǔn)度方面是較好的算法。我們又對比了三種算法預(yù)測數(shù)據(jù)的時間結(jié)果如表2所示。
從表中可以看出,SVM在相同的數(shù)據(jù)量下用時最長,而樸素貝葉斯明顯比其他兩個算法用時時間要短,僅用0.59秒。
4 總結(jié)
本文分析和比較了樸素貝葉斯、KNN和SVM三種算法,并利用復(fù)旦中文語料庫進(jìn)行了實驗。 綜合表1 和表2,我們可以看出,當(dāng)我們需要較高的F1值時,可以選用SVM,當(dāng)數(shù)據(jù)量大且對精準(zhǔn)度要求不高時,可以選用樸素貝葉斯,綜合時間和準(zhǔn)確度,可以選用KNN算法。
參考文獻(xiàn):
[1] 李航.統(tǒng)計學(xué)習(xí)方法[M].北京:清華大學(xué)出版社,2012.
[2] Cover T M, Hart P E. Nearest neighbor pattern classification[J]. IEEE transactions on information theory, 1967,13(1):21-27.
[3] 周志華.機(jī)器學(xué)習(xí)[M].北京:清華大學(xué)出版社,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] 李榮陸,胡運(yùn)發(fā).文本分類及其相關(guān)技術(shù)研究[D].上海: 復(fù)旦大學(xué)計算機(jī)與信息技術(shù)系, 2005.
[6] 馬建斌,李瀅,滕桂法,等.KNN和SVM算法在中文文本自動分類技術(shù)上的比較研究[J].河北農(nóng)業(yè)大學(xué)學(xué)報,2008(03):120-123.
【通聯(lián)編輯:光文玲】