馬亞州,張 勇,侯益明,王紫薇
(山西農業(yè)大學 信息科學與工程學院,山西 太谷 030801)
2020年,新冠病毒來勢洶洶,席卷全球。隨著新型冠狀病毒性肺炎疫情的蔓延,防控工作越來越艱巨,面臨的問題也越來越嚴峻。在這沒有硝煙的“戰(zhàn)場”上,普通民眾能做的就是保護好自己,因此,能夠正確接收正規(guī)新聞報道,清楚地認清當下疫情情勢和防控措施,才可以更好地保護自己,對社會有所貢獻。
為了能夠快速閱讀到關于疫情的新聞,本文基于樸素貝葉斯算法來對當前一些實時新聞進行分類,將實時新聞分為疫情類與非疫情類。該算法用于分類的準確率較高且有一定使用意義,值得進一步研究。
樸素貝葉斯(Naive Bayes,NB)是基于“特征之間是獨立的”[1]這一樸素假設,應用貝葉斯定理的監(jiān)督學習算法。對應給定的樣本X的特征向量x1,x2, ...,xm;該樣本X的類別y的概率可以由貝葉斯公式得到:
(1)
特征之間是相互獨立的,可得:
(2)
在給定樣本的情況下,P(x1,x2, ...,xm)是常數(shù):
(3)
要求得到最終的模型為:
(4)
計算出新聞分類中用于訓練的每個新聞標題的每個單詞在詞匯表中出現(xiàn)的概率,之后對于待分類的新聞可分別計算其屬于兩個類別的概率,然后比較其大小,最終予以分類[2]。算法流程如圖1所示。
(1)通過Java爬蟲代碼分別從中國日報網英文版(http://www.chinadaily.com.cn/)、人民網英文版(http://english.peopledaily.com.cn/)、中國日報英文版(http://europe.chinadaily.com.cn/ )、新浪英文版(http://english.sina.com/ )等各大權威網站搜集近一個月以來的新聞報道標題,從中共篩選得到1 085條關于新冠疫情的新聞報道標題,從中隨機選取200條用于測試錯誤率,其余用于訓練,另外,選取同樣數(shù)目的其他新聞標題也用于訓練。將每個樣本分別單獨放到一個文本文檔中,構成訓練數(shù)據(jù)集和測試數(shù)據(jù)集[3]。
(2)訓練數(shù)據(jù)時,將所有訓練數(shù)據(jù)集和測試數(shù)據(jù)集構成一個詞匯表并且將其向量化,將得到包含所有單詞的單詞表及向量表,如表1所示。
表1 樣本數(shù)量
根據(jù)樸素貝葉斯算法的原理,首先,需要針對所有樣本集構造一個詞匯表;其次,根據(jù)詞匯表將訓練樣本集向量化[4];最后,構造一個帶有兩個參數(shù)的分類器:訓練文檔矩陣和訓練類別標簽向量。將依次求得在整個數(shù)據(jù)集中,文檔分別屬于疫情類以及非疫情類的概率、詞匯表中各個單詞分別在疫情類以及非疫情類的概率,分類流程如圖2所示。
圖2 分類流程
進行新聞識別前,根據(jù)在“構造分類器”部分得到的詞匯表將待分類的200個新聞標題向量化[5],各自形成文本文檔。
根據(jù)之前構造分類器輸出返回的結果,可用于對新聞文檔來進行分類。對每一個待分類新聞,首先使用split函數(shù)將其內部單詞且分開,然后去除沒意義的部分(長度小于3),之后將該文檔使用于式(3),求出該文檔分別屬于各個類別的概率,最后取概率大的類別為最終分類類別。將測試結果與其真實類別進行比較,若不相等,則分類錯誤,錯誤次數(shù)加1,錯誤率為式(5):
(5)
其中,X為錯誤分類的數(shù)據(jù)個數(shù),N為進行測試的數(shù)據(jù)個數(shù)??梢缘玫叫侣劮诸惖腻e誤率,以此來評價分類的效果。
經過對隨機抽取的200條新聞進行分類測試,平均正確率可達到95.94%,分類準確率較高,如表2所示。
表2 每一次分類準確率
將該分類器應用于實際的新聞分類將有實際意義,使民眾能夠快速接收到關于新冠肺炎疫情的消息,更好地保護自己和保護別人。