韓洪勇 姜錦琨 楊超然 陳照奇
摘 要:隨著網(wǎng)絡(luò)信息時(shí)代的到來(lái)和新聞數(shù)據(jù)的不斷增加,人們需要對(duì)新聞進(jìn)行分類的難度也不斷加大。那么,是否有一種有效的分類新聞信息的方法將新聞進(jìn)行分類呢?而在文本分類中,有較好的文本分類的算法是樸素貝葉斯算法。本研究以通過(guò)網(wǎng)絡(luò)爬蟲的方式爬取某新聞網(wǎng)站的少量新聞數(shù)據(jù)數(shù)據(jù),然后對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單的數(shù)據(jù)預(yù)處理、中文文本分詞等,構(gòu)建樸素貝葉斯分類器,進(jìn)而實(shí)現(xiàn)對(duì)新聞分類的目的。
關(guān)鍵詞:樸素貝葉斯;新聞文本;中文文本分類
1 緒論
隨著網(wǎng)絡(luò)的迅速發(fā)展和大數(shù)據(jù)時(shí)代的到來(lái),與網(wǎng)絡(luò)隨著而來(lái)的新聞數(shù)據(jù)也大量增加。面對(duì)爆炸的數(shù)據(jù),需要使用恰當(dāng)?shù)姆椒▽?duì)文本進(jìn)行分類。文檔分類大致需要以下三個(gè)要素:文本向量模型表示、文本的特征選擇和文本訓(xùn)練分類器。而目前比較流行的分類方法主要有貝葉斯方法、SVM、神經(jīng)網(wǎng)絡(luò)、k2最近鄰算法等等。
本文采用貝葉斯的分類方法。貝葉斯是一種比較簡(jiǎn)單、學(xué)習(xí)效率和預(yù)測(cè)效率都很高,并且性能又較好的基于概率的一種學(xué)習(xí)算法。樸素貝葉斯是在貝葉斯定理和特征條件獨(dú)立的前提下,給定訓(xùn)練數(shù)據(jù)集,根據(jù)特征條件獨(dú)立學(xué)習(xí)計(jì)算輸入輸出的聯(lián)合概率分布,然后這就是構(gòu)建的基礎(chǔ)模型,然后再給定輸入數(shù)據(jù)集x,根據(jù)貝葉斯定理求出后驗(yàn)概率最大的輸出y。
2 樸素貝葉斯算法描述
一般的樸素貝葉斯分類算法的過(guò)程如下:
(1)從網(wǎng)絡(luò)上獲取數(shù)據(jù),然后對(duì)數(shù)據(jù)進(jìn)行分類,并標(biāo)記。
(2)將分好類的數(shù)據(jù)進(jìn)行中文分詞。
(3)將數(shù)據(jù)文本中垃圾詞語(yǔ)去除。
(4)將上面整理好的詞條組合成特征組,計(jì)算詞條的頻率信息。
(5)通過(guò)計(jì)算得到的詞條的頻率信息,計(jì)算出詞條再各個(gè)類別文本的先驗(yàn)概率。
(6)再次輸入新的數(shù)據(jù)文本,進(jìn)行中文分詞,去除垃圾詞語(yǔ),合成特征組。
(7)將新的數(shù)據(jù)樣本的特征詞條計(jì)算得到的先驗(yàn)概率帶入樸素貝葉斯公式當(dāng)中,計(jì)算得到后驗(yàn)概率,那么計(jì)算得到的最大概率的那個(gè)對(duì)應(yīng)類別就是新聞文本的類別。
3 新聞文本的獲取及處理
對(duì)于新聞數(shù)據(jù)的獲取途徑主要是從新聞官網(wǎng)上進(jìn)行獲取,對(duì)于一般的新聞網(wǎng)站,可以采用BeautifulSoup庫(kù)的方法編寫代碼爬取頁(yè)面數(shù)據(jù),然后對(duì)頁(yè)面數(shù)據(jù)中的HTML標(biāo)簽進(jìn)行去除。而對(duì)于較為復(fù)雜的、大量的頁(yè)面新聞,甚至具有反爬取處理的網(wǎng)站,就需要使用scrapy框架和代理池的配合來(lái)爬取頁(yè)面數(shù)據(jù)。
4 分類器的構(gòu)建
與英文可以通過(guò)非字母的方式進(jìn)行語(yǔ)句的分割,但是新聞內(nèi)容中都是中文文本,無(wú)法使用這種方式。這里使用第三方的中文分詞:jieba。使用jieba將中文的語(yǔ)句進(jìn)行分割,并標(biāo)記好各自的類別。
在分詞完成之后,會(huì)發(fā)現(xiàn)有很多垃圾詞匯(指與分類無(wú)關(guān)的詞匯,比如:的、是、在等),過(guò)多的垃圾詞匯會(huì)降低文本數(shù)據(jù)的分類的準(zhǔn)確率,這里需要自定義一個(gè)去除垃圾詞匯的規(guī)則來(lái)去除垃圾詞匯。那么,去除垃圾詞匯之后的剩余的所有的分詞,將這些分詞全部用來(lái)訓(xùn)練樸素貝葉斯分類器。除此之外,h還要對(duì)訓(xùn)練集中的所有分詞進(jìn)行詞頻的統(tǒng)計(jì),將詞頻較高的分詞排列在前面。排列完成之后,將分詞進(jìn)行文本向量化。
由于利用樸素貝葉斯分類器進(jìn)行新聞文本分類時(shí),需要計(jì)算各個(gè)分詞向量的概率,然后將這些概率進(jìn)行相乘,得到乘積,使用這個(gè)乘積來(lái)獲得這個(gè)新聞對(duì)應(yīng)的類別。但是如果這個(gè)詞向量中有一個(gè)的概率是0,那么最后分類的結(jié)果也是0,無(wú)法完成新聞的分類。本文使用拉普拉斯平滑的方法,將所有詞向量的出現(xiàn)的詞頻數(shù)增加1,也就是由之前的最低詞頻0變成現(xiàn)在的最低詞頻1,然后最低分母初始化為2,這樣就阻止了出現(xiàn)0的概率。
為了更加快速構(gòu)建文本分類器,本文直接使用sklearn庫(kù)里面的naive_bayes方法直接構(gòu)建分類器,采用先驗(yàn)概率為多項(xiàng)式分布的樸素貝葉斯方法來(lái)進(jìn)行構(gòu)建。在sklearn中我們可以通過(guò)觀察多次去掉多少個(gè)高頻詞的個(gè)數(shù)和最終檢測(cè)率的關(guān)系,這里繪制出高頻詞(deleteNs)和準(zhǔn)確率之間的關(guān)系來(lái)選擇本文最終決定刪除高頻詞的個(gè)數(shù)。
通過(guò)觀察上圖,本文最終選定deleteNS的個(gè)數(shù)為810,然后使用去掉高頻詞的個(gè)數(shù)為810,構(gòu)建新聞分類的樸素貝葉斯分類器。最終測(cè)試的分類精確度為79.368%。
5 問(wèn)題及改進(jìn)
樸素貝葉斯算法是由貝葉斯定理發(fā)展而來(lái),算法比較簡(jiǎn)單,對(duì)于分類問(wèn)題有著比較穩(wěn)定的分類效率。同時(shí),樸素貝葉斯分類器對(duì)于小規(guī)模的數(shù)據(jù)分類表現(xiàn)很好,并且適合增量式訓(xùn)練。除此之外,樸素貝葉斯算法對(duì)于缺失數(shù)據(jù)不太敏感,用于文本分類效果較好。理論上來(lái)說(shuō),樸素貝葉斯分類算法與其他分類算法相比誤差較小,但是在實(shí)際情況上來(lái)看,當(dāng)屬性個(gè)數(shù)比較多的情況下或者各個(gè)屬性之間相關(guān)性比較大時(shí)候,分類效果并不是很好,只有在各個(gè)屬性之間的相關(guān)性較小的情況下,樸素貝葉斯算法才能達(dá)到較好的分類效果。對(duì)于這種情況,可以通過(guò)改進(jìn)部分屬性的關(guān)聯(lián)度,也就是半樸素貝葉斯算法。由于樸素貝葉斯是在假設(shè)各個(gè)條件相互獨(dú)立的前提下求出的先驗(yàn)概率,但是在現(xiàn)實(shí)情況下先驗(yàn)概率未必準(zhǔn)確,所以預(yù)測(cè)效果可能沒(méi)有那么好。除此之外,樸素貝葉斯算法對(duì)輸入數(shù)據(jù)的形式也有很大的敏感性。
參考文獻(xiàn):
[1]崔哲.基于樸素貝葉斯方法的文本分類研究[D].河北科技大學(xué),2018.
[2]Peter Harrington.Machine Learning in Action[M].人民郵電出版社,2013.
[3]麥好.機(jī)器學(xué)習(xí)實(shí)踐指南[M].機(jī)械工業(yè)出版社,2016.
作者簡(jiǎn)介:韓洪勇(1999-),男,山東青島人,現(xiàn)于山東科技大學(xué)攻讀學(xué)士學(xué)位,目前主要從事于計(jì)算機(jī)科學(xué)與技術(shù)的專業(yè)研究。