蔡揚 付小斌
摘要:信息爆炸的時代,大量的新聞每天充斥的我們的生活,海量的新聞總是能夠引導著人們對社會中發(fā)生的事件做出自己的判斷。假新聞的錯誤引導將會對社會起到消極的作用,于是該文提出對真假新聞進行分類的方法。該文結(jié)合TF-IDF算法和樸素貝葉斯算法,對新聞中的詞條進行加權,之后重新定義樸素貝葉斯分類器,并對新聞進行分類。最后,我們進行了多組實驗,并取得了多組實驗的平均值作為本次實驗的最終結(jié)論。
關鍵詞:真假新聞;TF-IDF;樸素貝葉斯; 分類
中圖分類號:TP181 文獻標識碼:A 文章編號: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
新聞的真實性是新聞的立命的根本,但是近些年來,假新聞層出不盡,影響了新聞媒體的權威性和公信力;導致錯誤的輿論出現(xiàn);侵害了公民的權利;浪費了時間和金錢,對社會造成了巨大的影響。假新聞影響了社會秩序和經(jīng)濟,并且嚴重的侵犯了新聞當事人的權益。所以我們實現(xiàn)了本文提及的方法,用于高效的判斷假新聞。這對我們來說意義重大,對社會來說也能起到一定程度的積極作用。
1 數(shù)據(jù)預處理
1.1 去停用詞
Hans Peter Luhn創(chuàng)造了這個短語并在他的研究中應用這個概念。在信息檢索中,為節(jié)省存儲空間和提高搜索效率,在處理自然語言數(shù)據(jù)(或文本)之前或者之后會自動過濾掉某些字或詞,這些字或詞即被稱為Stop Words(停用詞)。這些停用詞都是人工輸入、非自動化生成的,生成后的停用詞會形成一個停用詞表。但是,并沒有一個明確的停用詞表能夠適用于所有的工具。
對于一個給定的目的,任何一類的詞語都可以被選作停用詞。通常意義上,停用詞大致分為兩類。一類是人類語言中包含的功能詞,這些功能詞極其普遍,與其他詞相比,功能詞沒有什么實際含義,比如'the'、'is'、'at'、'which'、'on'等。這些詞的應用十分廣泛,但是對這樣的詞搜索引擎無法保證能夠給出真正相關的搜索結(jié)果,難以幫助縮小搜索范圍,同時還會降低搜索的效率,所以通常會把這些詞從問題中移去,從而提高搜索性能。
2.2 正則表達式
正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規(guī)則字符串”,這個“規(guī)則字符串”用來表達對字符串的一種過濾邏輯。給定一個正則表達式和另一個字符串,我們可以達到如下的目的:
1) 給定的字符串是否符合正則表達式的過濾邏輯;
2) 可以通過正則表達式,從字符串中獲取我們想要的特定部分。
本文使用正則去符號是為了更好的處理文本。在分類時,我們主要依賴的是詞,而不是句子。去標點、去停用詞后將會極大的簡化我們對數(shù)據(jù)的使用,并有效的提高分類精度。
2 Na?ve Bayes 和 TF-IDF
2.1 Na?ve Bayes
樸素貝葉斯算法是貝葉斯算法中應用最為廣泛的分類算法之一。貝葉斯公式如下:
(1)
其中,p(c)是類“先驗”概率,p(x|c)是樣本x相對于類標記c的類條件概率,p(c|x)是后驗概率,它反應了在看到訓練樣本數(shù)據(jù)x后假設c成立的置信度。
貝葉斯與樸素貝葉斯的區(qū)別是樸素貝葉斯采用了“屬性條件獨立性假設”,對已知類別,假設所有屬性相互獨立。
基于屬性條件獨立性假設,則有:
(2)
其中d為屬性數(shù)目,xi 為x在第i個屬性上的取值。P(c|x)具體意義是,在給定某個x表示的數(shù)據(jù)點,那么該數(shù)據(jù)點來自類別c的概率是多少。
2.2 TF-IDF
TFIDF的主要思想是:如果某個詞或短語在一篇文章中出現(xiàn)的頻率TF高,并且在其他文章中很少出現(xiàn),則認為此詞或者短語具有很好的類別區(qū)分能力,適合用來分類。TFIDF實際上是:TF * IDF,TF詞頻(Term Frequency),IDF逆向文件頻率(Inverse Document Frequency)。TF表示詞條在文檔d中出現(xiàn)的頻率。這個數(shù)字是對詞數(shù)的歸一化,以防止它偏向長的文件。(同一個詞語在長文件里可能會比短文件有更高的詞數(shù),而不管該詞語重要與否。)對于在某一特定文件里的詞語來說,它的重要性可表示為:
(3)
上式中分子是該詞在文件中的出現(xiàn)次數(shù),分母則是在文件中所有字詞的出現(xiàn)次數(shù)之和。
逆向文件頻率(inverse document frequency,IDF)是一個詞語普遍重要性的度量。某一特定詞語的IDF,可以由總文件數(shù)目除以包含該詞語之文件的數(shù)目,再將得到的商取對數(shù)得到:
(4)
其中|D|:語料庫中的文件總數(shù)。分母:包含詞語的文件數(shù)目(即文件的數(shù)目)如果該詞語不在語料庫中,就會導致分母為零,因此一般情況下使用:
(5)
作為分母。然后再計算TF和IDF的乘積:
(6)
某一特定文件內(nèi)的高詞語頻率,以及該詞語在整個文件集合中的低文件頻率,可以產(chǎn)生出高權重的TF-IDF。因此,TF-IDF傾向于過濾掉常見的詞語,保留重要的詞語。
3 真假新聞分類與實驗
真假新聞數(shù)據(jù)經(jīng)過預處理之后,送入TF-IDF算法中對每類新聞的每條的每個詞進行權重的計算。本次實驗我們共隨機抽選出1000條數(shù)據(jù)作為訓練集送入分類器進行訓練,這一千條數(shù)據(jù)中真新聞和假新聞的數(shù)量分別為500條。在訓練過程中500條真新聞與500條假新聞相互獨立進行訓練,所以概率的計算,也是分別進行。
3.1 TF-IDF處理
TF-IDF計算完成后,我們會得到兩個向量,每個向量中的每一維都代表著一個新聞,每一個新聞中不再是單詞,取而代之的是通過TF-IDF計算得到的每一個單詞的權重。在該向量中,每一維中對應的位置所對應的單詞是相同的,也就是說在計算過程中,我們一共得到了兩個詞包,該詞包中不重復的包含有該類新聞訓練集中的全部詞匯。
[算法1:TF-IDF 輸入:新聞的主體 輸出:包含每一條新聞的詞權重構(gòu)成的向量 1:統(tǒng)計詞數(shù),并對相應的詞計算詞頻
2:對每類文檔:
統(tǒng)計包含詞語ti的數(shù)目
3:計算TF和IDF的乘積
4:返回包含詞語權重的向量 ]
通過TF-IDF計算,可以將文本類型的數(shù)據(jù)轉(zhuǎn)換為數(shù)值類型的數(shù)據(jù),通過計算得到每個詞的權重并構(gòu)建成詞向量,這樣的操作將會在將來的分類過程中減少大量的工作,并且包含有權重的詞向量更加能體現(xiàn)出哪一個詞的重要程度更大。
3.2 從詞向量計算概率
為了在本次項目中使用樸素貝葉斯算法,我們重寫貝葉斯準則:
(7)
粗體的w表示這是一個向量,即它由多個數(shù)值構(gòu)成。如果將w展開為一個個獨立的特征,那么就可以將上述概率寫作. 這里假設所有詞都相互獨立,該假設也稱作條件獨立性假設,意味著可以使用來計算上述概率。
訓練時通過將對應位置的相同詞的權重進行累加后,使得每一個詞的權重能夠更好的體現(xiàn),在將來的分類過程中,對于那些能夠很好地將新聞區(qū)別開來的詞著重的體現(xiàn)出來,這將會大大的提高我們算法分類的精度。不過由于向量的每一個維都包含有訓練集中該類新聞的所有詞匯,所以當訓練集的新聞條數(shù)很多的時候,處理這個向量所花費的時間將會大量增加,在這個方面我們還可以做出一些優(yōu)化。
[算法2:樸素貝葉斯分類器訓練函數(shù) 輸入:文檔詞向量; 文檔類別向量 輸出:給定類別條件下詞匯表中單詞的出現(xiàn)概率。 1:計算每個類別中的文檔數(shù)目
2:對每篇訓練文檔:
3:對每個類別:
4:如果詞條出現(xiàn)在文檔中→增加該詞條的計數(shù)值
5:增加所有詞條的計數(shù)值
6:對每個類別:
7:對每個詞條:
8:將該詞條的數(shù)目除以總詞條數(shù)目得到條件概率
9:返回每個類別的條件概率 算法3:分類 輸入:算法2中得到的單詞出現(xiàn)的概率向量、新的需要分類的新聞 輸出:新聞的真假分類結(jié)果 1:與算法2中的真新聞訓練后的向量相乘,向量對應位置相乘,求和得p0
2:與算法2中的假新聞訓練后的向量相乘,向量對應位置相乘,求和得p1
3:加入log(pClass)和log(1-pClass)防止溢出
4:比較p0 和p1的大小,誰大則將需要分類的新聞分至該類
5:返回類別 ]
3.3 實驗
本次實驗由于都是在個人電腦上運行,所以這將會花費大量的時間,且每次選取的訓練集都是隨機的,因此每次的實驗精度都有所不同。我們最終只進行了十次實驗,以下是實驗結(jié)果:
通過圖1可以看出,由于每次所選取的訓練集有差異,所以十次的實驗結(jié)果呈現(xiàn)出波動狀態(tài),但是結(jié)果相對來說還是比較好。虛線表示的是十次實驗精度的平均值,平均值最終計算為0.9268。
4 結(jié)論
本次項目主要是在完成真假新聞的分類工作,從稍微大一點的角度來說是在進行文本分類。文本分類在機器學習、人工智能的領域中起著至關重要的作用,其中需要學習的知識還有很多。
我們的項目是對英文的文本進行的分類,結(jié)果還是較為可喜的,不過相對于博大精深的中文來說對英文分類已經(jīng)降低了很多難度,我們從中也學習到了很多新的知識。在將來如果遇到了對文本的處理工作,這次的項目將會是一個很好的經(jīng)驗。
參考文獻:
[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]. 河北大學學報:自然科學版,2007,27(3):327-331.
[6] 陳葉旺,余金山. 一種改進的樸素貝葉斯文本分類方法[J]. 華僑大學學報:自然科學版,2011,32(4):401-404.
[7] baike.baidu.com/TF-IDF
[8] 李偲. 基于樸素貝葉斯的文本分類研究及其在微博分類中的應用[D]. 北京理工大學,2015.