彭子豪 譚 欣
(湖北第二師范學院計算機學院,湖北 潛江433100)
互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,使文本信息的體量乘上了增長的快車。為了有效的對海量文本信息進行數(shù)據(jù)挖掘,文本分類成為了研究的熱點。文本分類在新聞主題分類、情感分析、輿情分析和智能信息推薦中都應(yīng)用廣泛。尤其是大數(shù)據(jù)海量文本數(shù)據(jù)而言,對其進行高效高精度的文本分類是一個重要的研究內(nèi)容。樸素貝葉斯算法是公認經(jīng)典的分類算法,普遍用于文本分類。樸素貝葉斯最核心的部分是貝葉斯法則,用后驗概率和聯(lián)合概率來計算先驗概率。
文獻[1]在樸素貝葉斯算法文本分類算法中去掉了對先驗概率的計算,并在后驗概率的計算中引入了一個放大系數(shù),提升了計算精度。
文獻[2] 提出一種基于詞向量間余弦相似度的改進樸素貝葉斯算法,有效的降低了特征向量的數(shù)據(jù)冗余和計算復雜性。
文獻[3]實現(xiàn)了基于MapReduce 實現(xiàn)樸素貝葉斯算法,使在大數(shù)據(jù)量的情況下, 并行化的貝葉斯算法較傳統(tǒng)的貝葉斯算法具有更好的執(zhí)行效率和較高的擴展性。在基于樸素貝葉斯的文本分類時,首先需要通過詞頻統(tǒng)計獲取文本特征,之后利用貝葉斯對屬性以同權(quán)的形式進行模型計算。
而上述文獻沒有考慮到對于文本屬性而言,不同的屬性在表征類別時貢獻可能是不同的,而在傳統(tǒng)貝葉斯文本分類方法中,認為特征項在分類時對決策的貢獻相同,對不具有代表性的、噪聲污染的特征和高頻出現(xiàn)特征屬性進行同權(quán)處理,導致分類精確度降低。
為區(qū)分文本單詞特征屬性在分類時的權(quán)重差異,提升文本大數(shù)據(jù)的分類精度及效率,本文首先利用改進的TFIDFCF 算法進行文本詞頻統(tǒng)計,獲取不同單詞的詞頻,該算法解決了TFIDF算法在計算特征詞權(quán)重時忽略類間關(guān)系的問題。其次將文本特征詞的詞頻統(tǒng)計結(jié)果,作為樸素貝葉斯模型的屬性特征權(quán)重輸入,進行加權(quán)分類。此外為了提高算法對海量大數(shù)據(jù)文本分類的處理能力,基于MapReduce 編程理念,在分布式框架上進行改進的算法的并行化處理,并通過計算召回率,精確率,f1-score等對算法性能進行評價。
實驗結(jié)果表明,本文提出的基于改進的TFIDF 詞頻處理及并行框架下的樸素貝葉斯文本分類算法,較傳統(tǒng)方法在分類精度及效率上均有提升。
樸素貝葉斯的主要思想是在假設(shè)特征在互相條件獨立的情況下,基于貝葉斯公式用先驗概率的值來計算后驗概率。
傳統(tǒng)的樸素貝葉斯算法認為所有特征屬性對分類決策的貢獻是相同的。文獻[5]表明,在文本分類中,得冗余的、與分類無關(guān)的、相互影響的以及被噪聲污染的特征和其他特征具有相同的地位,并使得分類的正確性降低。針對傳統(tǒng)的樸素貝葉斯在文本分類上認為特征詞貢獻相同,提出了基于TFIDFCF 特征加權(quán)的樸素貝葉斯算法。
其中Wk,d為特征項Xk詞在d 文本中的TFIDFCF 權(quán)值。將詞頻,逆文檔頻率和類別區(qū)分度兼顧,較好的反應(yīng)了詞語的重要程度。這樣將此權(quán)重加權(quán)到樸素貝葉斯模型中,會根據(jù)詞的重要程度優(yōu)化樸素貝葉斯假定特征詞都條件獨立的情況。
算法實現(xiàn)總體可以分為兩大步驟。第一個步驟為計算每個文章中詞的TFIDFCF 值,第二個步驟為計算語料庫中類別出現(xiàn)的概率及每個詞在每個類別下的出現(xiàn)的條件概率。最終輸出到NewBayesCalCulateMap 中即可進行類別預(yù)測(在實際預(yù)測中,由于樸素貝葉斯是由先驗概率和聯(lián)合概率來估計后驗概率,所以第二步驟在預(yù)測時不需要計算,按照訓練出來的模型帶入即可)。由于MapReduce 并行計算框架支持有向圖計算,按照上面的拓撲圖進行會進行有序的輸入輸出形成MapReduce 鏈。雖然并行計算提高了計算的速度,但mapreduce 需要頻繁的落盤,磁盤IO 開銷大。而spark 基于內(nèi)存的運算方式可能可以在此基礎(chǔ)上更快。
MapReduce 實現(xiàn)并行TFIDFCF 特征加權(quán)貝葉斯算法流程圖
防止下溢出:在實現(xiàn)貝葉斯公式計算時。若進行浮點數(shù)運算,因為浮點數(shù)精確度不夠,會導致乘積為零的情況,對改進的貝葉斯算法取對后公式如下:
為驗證算法的可行性,本文選取了清華大學自然語言處理實驗室THUCNews 新聞文本部分數(shù)據(jù)和兩組測試數(shù)據(jù)進行分類試驗;并以傳統(tǒng)貝葉斯文本分類結(jié)果對比對比試驗,進行算法有效性分析。
THUCNews 新聞文本數(shù)據(jù)分類:
(1)THUCNews 數(shù)據(jù)介紹
THUCNews 新聞文本數(shù)據(jù)是根據(jù)新浪新聞RSS 訂閱頻道2005~2011 年間的歷史數(shù)據(jù)篩選過濾生成, 包含74 萬篇新聞文檔,包含14 個候選分類類別:財經(jīng)、彩票、房產(chǎn)、股票、娛樂等。本文節(jié)選了7 類每類5000 篇文檔進行模型訓練和測試。
(2)實驗步驟
①對文本數(shù)據(jù)進行分詞。去除停用詞后,通過特征工程提取特征詞,作為詞庫。
②根據(jù)詞庫把輸入的文本數(shù)據(jù)轉(zhuǎn)化為詞向量。
③訓練樸素貝葉斯模型。
④基于1.2 介紹的TFIDFCF 算法計算每篇文章中特征詞的權(quán)重。
⑤將TFIDFCF 權(quán)重值加權(quán)到訓練好的樸素貝葉斯分類模型中,取計算出的最大值所屬類別為預(yù)測結(jié)果。
(3)THUCNews 新聞文本分類結(jié)果分析
分類預(yù)測結(jié)果對比表
本文中使用準確率、召回率、F1-score 三個指標來評估算法效果。
①精確率(Precision):分類結(jié)果中正確分類為Ci 的樣本數(shù)占分類結(jié)果中所有分為Ci 類別的樣本數(shù),衡量分類的查準率
②召回率(Recall):分類結(jié)果中正確分類為Ci 的樣本數(shù)占所有Ci 類的樣本數(shù)的比例,衡量分類的查全率
③F1-score:在精確率和召回率的基礎(chǔ)上提出了F1 值的概念,來對精確率和召回率進行整體評價
本文基于如上實驗步驟在并行框架的計算優(yōu)勢下實現(xiàn)了這兩種算法,提取了大量特征詞。由于特征詞多,數(shù)據(jù)量大,分類模型都建立的很準確。實驗結(jié)果表明兩種方法都有很好的文本分類能力。根據(jù)分類結(jié)果對比表可以發(fā)現(xiàn),基于TFIDFCF 特征加權(quán)的樸素貝葉斯算法對于傳統(tǒng)的樸素貝葉斯算法在大部分新聞類別中分類效果上有一定提升。
在本文中,通過研究,對樸素貝葉斯應(yīng)用在文本分類認為特征詞之間相互條件獨立提出了不同的觀點。首先研究了TFIDFCF 算法,消除了TFIDF 算法在類間的偏差,并加權(quán)到樸素貝葉斯算法模型中。這樣使那些重要的詞相較于傳統(tǒng)的樸素貝葉斯算法擁有更合理的權(quán)重。最后通過實驗結(jié)果表明并行的TFIDFCF 特征加權(quán)的樸素貝葉斯算法是高效,合理,準確的。