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