蔡揚(yáng) 付小斌
摘要:信息爆炸的時(shí)代,大量的新聞每天充斥的我們的生活,海量的新聞總是能夠引導(dǎo)著人們對(duì)社會(huì)中發(fā)生的事件做出自己的判斷。假新聞的錯(cuò)誤引導(dǎo)將會(huì)對(duì)社會(huì)起到消極的作用,于是該文提出對(duì)真假新聞進(jìn)行分類的方法。該文結(jié)合TF-IDF算法和樸素貝葉斯算法,對(duì)新聞中的詞條進(jìn)行加權(quán),之后重新定義樸素貝葉斯分類器,并對(duì)新聞進(jìn)行分類。最后,我們進(jìn)行了多組實(shí)驗(yàn),并取得了多組實(shí)驗(yàn)的平均值作為本次實(shí)驗(yàn)的最終結(jié)論。
關(guān)鍵詞:真假新聞;TF-IDF;樸素貝葉斯; 分類
中圖分類號(hào):TP181 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)04-0184-03
Fake or Real News Classification Based on Na?ve Bayes and TF-IDF
CAI Yang, FU Xiao-bin
(Southwest Petroleum University School of Computer Science, Chengdu 610500, China)
Abstract:In this era of information explosion, a lot of news full of our lives every day, massive news is always able to guide people to the events of society to make their own judgments. The false guidance of false news will have a negative effect on society, so this paper proposes a method to classify true and false news. In this paper, we combined the TF-IDF algorithm and the naive Bayesian algorithm to weight the entries in the news, and then redefine the naive Bayesian classifier and classify the news. Finally, we conducted a number of experiments, and made the average of multiple sets of experiments as the final conclusion of this experiment.
Key words: Fake or Real News;TF-IDF; Na?ve Bayes; Classification
新聞的真實(shí)性是新聞的立命的根本,但是近些年來,假新聞層出不盡,影響了新聞媒體的權(quán)威性和公信力;導(dǎo)致錯(cuò)誤的輿論出現(xiàn);侵害了公民的權(quán)利;浪費(fèi)了時(shí)間和金錢,對(duì)社會(huì)造成了巨大的影響。假新聞?dòng)绊懥松鐣?huì)秩序和經(jīng)濟(jì),并且嚴(yán)重的侵犯了新聞當(dāng)事人的權(quán)益。所以我們實(shí)現(xiàn)了本文提及的方法,用于高效的判斷假新聞。這對(duì)我們來說意義重大,對(duì)社會(huì)來說也能起到一定程度的積極作用。
1 數(shù)據(jù)預(yù)處理
1.1 去停用詞
Hans Peter Luhn創(chuàng)造了這個(gè)短語并在他的研究中應(yīng)用這個(gè)概念。在信息檢索中,為節(jié)省存儲(chǔ)空間和提高搜索效率,在處理自然語言數(shù)據(jù)(或文本)之前或者之后會(huì)自動(dòng)過濾掉某些字或詞,這些字或詞即被稱為Stop Words(停用詞)。這些停用詞都是人工輸入、非自動(dòng)化生成的,生成后的停用詞會(huì)形成一個(gè)停用詞表。但是,并沒有一個(gè)明確的停用詞表能夠適用于所有的工具。
對(duì)于一個(gè)給定的目的,任何一類的詞語都可以被選作停用詞。通常意義上,停用詞大致分為兩類。一類是人類語言中包含的功能詞,這些功能詞極其普遍,與其他詞相比,功能詞沒有什么實(shí)際含義,比如'the'、'is'、'at'、'which'、'on'等。這些詞的應(yīng)用十分廣泛,但是對(duì)這樣的詞搜索引擎無法保證能夠給出真正相關(guān)的搜索結(jié)果,難以幫助縮小搜索范圍,同時(shí)還會(huì)降低搜索的效率,所以通常會(huì)把這些詞從問題中移去,從而提高搜索性能。
2.2 正則表達(dá)式
正則表達(dá)式是對(duì)字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個(gè)“規(guī)則字符串”,這個(gè)“規(guī)則字符串”用來表達(dá)對(duì)字符串的一種過濾邏輯。給定一個(gè)正則表達(dá)式和另一個(gè)字符串,我們可以達(dá)到如下的目的:
1) 給定的字符串是否符合正則表達(dá)式的過濾邏輯;
2) 可以通過正則表達(dá)式,從字符串中獲取我們想要的特定部分。
本文使用正則去符號(hào)是為了更好的處理文本。在分類時(shí),我們主要依賴的是詞,而不是句子。去標(biāo)點(diǎn)、去停用詞后將會(huì)極大的簡(jiǎn)化我們對(duì)數(shù)據(jù)的使用,并有效的提高分類精度。
2 Na?ve Bayes 和 TF-IDF
2.1 Na?ve Bayes
樸素貝葉斯算法是貝葉斯算法中應(yīng)用最為廣泛的分類算法之一。貝葉斯公式如下:
(1)
其中,p(c)是類“先驗(yàn)”概率,p(x|c)是樣本x相對(duì)于類標(biāo)記c的類條件概率,p(c|x)是后驗(yàn)概率,它反應(yīng)了在看到訓(xùn)練樣本數(shù)據(jù)x后假設(shè)c成立的置信度。
貝葉斯與樸素貝葉斯的區(qū)別是樸素貝葉斯采用了“屬性條件獨(dú)立性假設(shè)”,對(duì)已知類別,假設(shè)所有屬性相互獨(dú)立。
基于屬性條件獨(dú)立性假設(shè),則有:
(2)
其中d為屬性數(shù)目,xi 為x在第i個(gè)屬性上的取值。P(c|x)具體意義是,在給定某個(gè)x表示的數(shù)據(jù)點(diǎn),那么該數(shù)據(jù)點(diǎn)來自類別c的概率是多少。
2.2 TF-IDF
TFIDF的主要思想是:如果某個(gè)詞或短語在一篇文章中出現(xiàn)的頻率TF高,并且在其他文章中很少出現(xiàn),則認(rèn)為此詞或者短語具有很好的類別區(qū)分能力,適合用來分類。TFIDF實(shí)際上是:TF * IDF,TF詞頻(Term Frequency),IDF逆向文件頻率(Inverse Document Frequency)。TF表示詞條在文檔d中出現(xiàn)的頻率。這個(gè)數(shù)字是對(duì)詞數(shù)的歸一化,以防止它偏向長(zhǎng)的文件。(同一個(gè)詞語在長(zhǎng)文件里可能會(huì)比短文件有更高的詞數(shù),而不管該詞語重要與否。)對(duì)于在某一特定文件里的詞語來說,它的重要性可表示為:
(3)
上式中分子是該詞在文件中的出現(xiàn)次數(shù),分母則是在文件中所有字詞的出現(xiàn)次數(shù)之和。
逆向文件頻率(inverse document frequency,IDF)是一個(gè)詞語普遍重要性的度量。某一特定詞語的IDF,可以由總文件數(shù)目除以包含該詞語之文件的數(shù)目,再將得到的商取對(duì)數(shù)得到:
(4)
其中|D|:語料庫中的文件總數(shù)。分母:包含詞語的文件數(shù)目(即文件的數(shù)目)如果該詞語不在語料庫中,就會(huì)導(dǎo)致分母為零,因此一般情況下使用:
(5)
作為分母。然后再計(jì)算TF和IDF的乘積:
(6)
某一特定文件內(nèi)的高詞語頻率,以及該詞語在整個(gè)文件集合中的低文件頻率,可以產(chǎn)生出高權(quán)重的TF-IDF。因此,TF-IDF傾向于過濾掉常見的詞語,保留重要的詞語。
3 真假新聞分類與實(shí)驗(yàn)
真假新聞數(shù)據(jù)經(jīng)過預(yù)處理之后,送入TF-IDF算法中對(duì)每類新聞的每條的每個(gè)詞進(jìn)行權(quán)重的計(jì)算。本次實(shí)驗(yàn)我們共隨機(jī)抽選出1000條數(shù)據(jù)作為訓(xùn)練集送入分類器進(jìn)行訓(xùn)練,這一千條數(shù)據(jù)中真新聞和假新聞的數(shù)量分別為500條。在訓(xùn)練過程中500條真新聞與500條假新聞相互獨(dú)立進(jìn)行訓(xùn)練,所以概率的計(jì)算,也是分別進(jìn)行。
3.1 TF-IDF處理
TF-IDF計(jì)算完成后,我們會(huì)得到兩個(gè)向量,每個(gè)向量中的每一維都代表著一個(gè)新聞,每一個(gè)新聞中不再是單詞,取而代之的是通過TF-IDF計(jì)算得到的每一個(gè)單詞的權(quán)重。在該向量中,每一維中對(duì)應(yīng)的位置所對(duì)應(yīng)的單詞是相同的,也就是說在計(jì)算過程中,我們一共得到了兩個(gè)詞包,該詞包中不重復(fù)的包含有該類新聞?dòng)?xùn)練集中的全部詞匯。
[算法1:TF-IDF 輸入:新聞的主體 輸出:包含每一條新聞的詞權(quán)重構(gòu)成的向量 1:統(tǒng)計(jì)詞數(shù),并對(duì)相應(yīng)的詞計(jì)算詞頻
2:對(duì)每類文檔:
統(tǒng)計(jì)包含詞語ti的數(shù)目
3:計(jì)算TF和IDF的乘積
4:返回包含詞語權(quán)重的向量 ]
通過TF-IDF計(jì)算,可以將文本類型的數(shù)據(jù)轉(zhuǎn)換為數(shù)值類型的數(shù)據(jù),通過計(jì)算得到每個(gè)詞的權(quán)重并構(gòu)建成詞向量,這樣的操作將會(huì)在將來的分類過程中減少大量的工作,并且包含有權(quán)重的詞向量更加能體現(xiàn)出哪一個(gè)詞的重要程度更大。
3.2 從詞向量計(jì)算概率
為了在本次項(xiàng)目中使用樸素貝葉斯算法,我們重寫貝葉斯準(zhǔn)則:
(7)
粗體的w表示這是一個(gè)向量,即它由多個(gè)數(shù)值構(gòu)成。如果將w展開為一個(gè)個(gè)獨(dú)立的特征,那么就可以將上述概率寫作. 這里假設(shè)所有詞都相互獨(dú)立,該假設(shè)也稱作條件獨(dú)立性假設(shè),意味著可以使用來計(jì)算上述概率。
訓(xùn)練時(shí)通過將對(duì)應(yīng)位置的相同詞的權(quán)重進(jìn)行累加后,使得每一個(gè)詞的權(quán)重能夠更好的體現(xiàn),在將來的分類過程中,對(duì)于那些能夠很好地將新聞區(qū)別開來的詞著重的體現(xiàn)出來,這將會(huì)大大的提高我們算法分類的精度。不過由于向量的每一個(gè)維都包含有訓(xùn)練集中該類新聞的所有詞匯,所以當(dāng)訓(xùn)練集的新聞條數(shù)很多的時(shí)候,處理這個(gè)向量所花費(fèi)的時(shí)間將會(huì)大量增加,在這個(gè)方面我們還可以做出一些優(yōu)化。
[算法2:樸素貝葉斯分類器訓(xùn)練函數(shù) 輸入:文檔詞向量; 文檔類別向量 輸出:給定類別條件下詞匯表中單詞的出現(xiàn)概率。 1:計(jì)算每個(gè)類別中的文檔數(shù)目
2:對(duì)每篇訓(xùn)練文檔:
3:對(duì)每個(gè)類別:
4:如果詞條出現(xiàn)在文檔中→增加該詞條的計(jì)數(shù)值
5:增加所有詞條的計(jì)數(shù)值
6:對(duì)每個(gè)類別:
7:對(duì)每個(gè)詞條:
8:將該詞條的數(shù)目除以總詞條數(shù)目得到條件概率
9:返回每個(gè)類別的條件概率 算法3:分類 輸入:算法2中得到的單詞出現(xiàn)的概率向量、新的需要分類的新聞 輸出:新聞的真假分類結(jié)果 1:與算法2中的真新聞?dòng)?xùn)練后的向量相乘,向量對(duì)應(yīng)位置相乘,求和得p0
2:與算法2中的假新聞?dòng)?xùn)練后的向量相乘,向量對(duì)應(yīng)位置相乘,求和得p1
3:加入log(pClass)和log(1-pClass)防止溢出
4:比較p0 和p1的大小,誰大則將需要分類的新聞分至該類
5:返回類別 ]
3.3 實(shí)驗(yàn)
本次實(shí)驗(yàn)由于都是在個(gè)人電腦上運(yùn)行,所以這將會(huì)花費(fèi)大量的時(shí)間,且每次選取的訓(xùn)練集都是隨機(jī)的,因此每次的實(shí)驗(yàn)精度都有所不同。我們最終只進(jìn)行了十次實(shí)驗(yàn),以下是實(shí)驗(yàn)結(jié)果:
通過圖1可以看出,由于每次所選取的訓(xùn)練集有差異,所以十次的實(shí)驗(yàn)結(jié)果呈現(xiàn)出波動(dòng)狀態(tài),但是結(jié)果相對(duì)來說還是比較好。虛線表示的是十次實(shí)驗(yàn)精度的平均值,平均值最終計(jì)算為0.9268。
4 結(jié)論
本次項(xiàng)目主要是在完成真假新聞的分類工作,從稍微大一點(diǎn)的角度來說是在進(jìn)行文本分類。文本分類在機(jī)器學(xué)習(xí)、人工智能的領(lǐng)域中起著至關(guān)重要的作用,其中需要學(xué)習(xí)的知識(shí)還有很多。
我們的項(xiàng)目是對(duì)英文的文本進(jìn)行的分類,結(jié)果還是較為可喜的,不過相對(duì)于博大精深的中文來說對(duì)英文分類已經(jīng)降低了很多難度,我們從中也學(xué)習(xí)到了很多新的知識(shí)。在將來如果遇到了對(duì)文本的處理工作,這次的項(xiàng)目將會(huì)是一個(gè)很好的經(jīng)驗(yàn)。
參考文獻(xiàn):
[1] Harrington P. Machine Learning in Action[M]// Machine learning in action /. Manning Publications Co. 2012.
[2] Zhang Y T, Gong L, Wang Y C. An improved TF-IDF approach for text classification[J]. Journal of Zhejiang University-SCIENCE A, 2005, 6A(1):49-55.
[3] Wu H C, Luk R W P, Wong K F, et al. Interpreting TF-IDF term weights as making relevance decisions[J]. Acm Transactions on Information Systems, 2008,26(3):55-59.
[4] Rish I. An empirical study of the naive Bayes classifier[J]. Journal of Universal Computer Science, 2001, 1(2):127.
[5] 梁宏勝,徐建民,成岳鵬.一種改進(jìn)的樸素貝葉斯文本分類方法[J]. 河北大學(xué)學(xué)報(bào):自然科學(xué)版,2007,27(3):327-331.
[6] 陳葉旺,余金山. 一種改進(jìn)的樸素貝葉斯文本分類方法[J]. 華僑大學(xué)學(xué)報(bào):自然科學(xué)版,2011,32(4):401-404.
[7] baike.baidu.com/TF-IDF
[8] 李偲. 基于樸素貝葉斯的文本分類研究及其在微博分類中的應(yīng)用[D]. 北京理工大學(xué),2015.