高 森,嚴(yán) 曙,崔超遠(yuǎn),孫丙宇,汪六三
1(中國科學(xué)院 合肥物質(zhì)科學(xué)研究院 智能機械研究所,合肥 230031)2(中國科學(xué)技術(shù)大學(xué),合肥 230026)
隨著互聯(lián)網(wǎng)技術(shù)和信息技術(shù)的迅速發(fā)展,微博等一些社交媒體正改變著人們的生活.由于微博的廣泛流行,微博中產(chǎn)生大量的數(shù)據(jù),這些數(shù)據(jù)有著非常大的潛在價值.目前進行微博主題發(fā)現(xiàn)的方法主要是使用LDA模型[1],但是由于微博內(nèi)容比較短,內(nèi)容比較隨意,并不是所有的微博內(nèi)容都是與用戶興趣相關(guān)的.所以可以把微博分為兩類:與用戶興趣相關(guān)的微博和與用戶興趣不相關(guān)的微博[2].與用戶興趣不相關(guān)的微博也就是‘噪聲微博’的存在,會很大程度上影響微博主題發(fā)現(xiàn)的質(zhì)量.傳統(tǒng)的文本分類方法主要有支持向量機(SVM),樸素貝葉斯(Bayes)和決策樹(Tree)三種方法,由于微博文本的特點,微博文本短而且內(nèi)容形式隨意沒有規(guī)律,所以傳統(tǒng)的文本分類方法對微博數(shù)據(jù)分類的效果并不是很好,所以本文分別采用了bagging學(xué)習(xí)算法來提高分類法的準(zhǔn)確率.即先使用支持向量機,樸素貝葉斯和決策樹三種方法對標(biāo)注好的微博內(nèi)容進行訓(xùn)練,得出三種預(yù)測函數(shù)序列進行投票,得到一個分類器,然后利用這個聯(lián)合分類器去除噪聲微博,在此基礎(chǔ)上再進行LDA主題發(fā)現(xiàn)[3-9],發(fā)現(xiàn)微博主題分類的質(zhì)量有很大的提升.
在分類算法中,樸素貝葉斯分類(Bayes Classifier)因其簡單和容易理解的特性,被廣泛使用,基本思想是:對于給出的待分類項,求解在此項出現(xiàn)的條件下各個類別出現(xiàn)的概率,概率最大的那個類別就認(rèn)為該項屬于這個類別.正式定義如下:
假設(shè)各個特征屬性是條件獨立的,則根據(jù)貝葉斯定理可以推導(dǎo)出:
支持向量機(SVM)是一種十分常用的二分類模型.支持向量機(SVM)的定義是:給定線性可分訓(xùn)練數(shù)據(jù)集,通過間隔最大化或等價的求解相應(yīng)的凸二次規(guī)劃問題學(xué)習(xí)得到的分離超平面為:
稱為線性可分支持向量機.
決策樹二分類器模型是一個典型二叉樹結(jié)構(gòu).決策樹分類器模型經(jīng)常用來做二分類,決策樹上的非葉節(jié)點表示在一個特征屬性上的測試,將測試的數(shù)據(jù)分為兩類.文本使用信息增益來做決策樹的特征屬性選擇.信息增益基于香濃的信息論,找出的屬性具有這樣的特點:以屬性分裂前后的信息增益比其他屬性最大.這里信息的定義如下:
聯(lián)合分類器是三種經(jīng)典的文本分類方法:樸素貝葉斯分類器、決策樹分類器和支持向量機(SVM)分類器結(jié)合構(gòu)成的[10-14].先用樸素貝葉斯分類器、決策樹分類器和支持向量機(SVM)分類器在人工標(biāo)注好的的微博數(shù)據(jù)集中抽取80%的數(shù)據(jù)訓(xùn)練生成三個預(yù)測函數(shù)YB,YT,YS分別代表貝葉斯分類器預(yù)測函數(shù)、決策樹分類器預(yù)測函數(shù)和支持向量機分類器預(yù)測函數(shù),YU是聯(lián)合分類器預(yù)測函數(shù).對于每條微博w,使用三個預(yù)測函數(shù)分別做預(yù)測分類.微博分為兩類:與用戶興趣相關(guān)c1和與用戶興趣不相關(guān)c2.那么:
YB,YT,YS取值為0或1.如果則將微博w分為c1類,否則分為c2類.
這樣做的原理是:
設(shè)P={P1,P2,P3}分別是三個分類器的準(zhǔn)確率,那么聯(lián)合分類器的準(zhǔn)確率:
對PU求導(dǎo)數(shù)令其等于0得P=0或1,所以可知PU在P∈(0,1)的范圍內(nèi)是遞增的.再令PU=P得P=0、0.5或1,即在P=0、0.5和1的時候聯(lián)合分類器的效果和單個分類器的效果一樣,而又因為PU在P∈(0,1)的范圍內(nèi)是遞增的,所以在1>P>0.5的情況下PU>P,所以要求樸素貝葉斯分類、決策樹分類和支持向量機(SVM)分類器的準(zhǔn)確率達(dá)到0.5以上,聯(lián)合分類器才有效果.而實驗表明本文采用的三個分類器準(zhǔn)確率都在0.5以上,所以采用聯(lián)合分類器進行微博噪聲分類是合理而有效的.
LDA模型是一種三層貝葉斯模型,三層分別為:單詞層、topic層和文檔層.該模型基于如下假設(shè):
(1)整個文檔集合中存在k個互相獨立的topic;
(2)每一個topic是詞上的多項分布;
(3)每一個文檔由k個topic隨機混合組成;
(4)每一個文檔是k個topic上的多項分布;
(5)每一個文檔的topic概率分布的先驗分布是Dirichlet分布;
(6)每一個topic中詞的概率分布的先驗分布是Dirichlet分布.
文檔的生成過程如下:
(1)對于文檔集合M,從參數(shù)為β的Dirichlet分布中采樣topic生成word的分布參數(shù)φ;
(2)對于每個M中的文檔m,從參數(shù)為α的Dirichlet分布中采樣doc對topic的分布參數(shù)θ;
(3)對于文檔m中的第n個詞語W_mn,先按照θ分布采樣文檔m的一個隱含的主題Z_m,再按照φ分布采樣主題Z_m的一個詞語W_mn.
LDA貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示.
圖1 LDA貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)圖
因此整個模型的聯(lián)合分布,如下:
對聯(lián)合分布求積分,去掉部分隱變量后:
通過計算消除中間參數(shù)θ和φ,得到主題的轉(zhuǎn)移概率化為:
該模型的主要分為三個階段:一是將文本向量化,將一個字符串轉(zhuǎn)化成向量形式;二是構(gòu)造分類器,本文共采用三個分類器:樸素貝葉斯、支持向量機和決策樹分別對訓(xùn)練集進行訓(xùn)練,得出三個預(yù)測函數(shù)進行投票得出一個聯(lián)合分類器模型;三是訓(xùn)練LDA模型.
由于微博內(nèi)容形式比較隨意,而且內(nèi)容里面穿插著各種表情和URL等,這使文本向量化造成很大的麻煩,因此文本向量化首先要做的就是去除特殊字符,包括繁體字、URL、標(biāo)點符號等.去除特殊字符之后我們要對微博內(nèi)容進行分詞.
文本向量化的主要流程是:
(1)去除微博中出現(xiàn)的包括繁體字、URL、標(biāo)點符號等在內(nèi)的特殊字符.
(2)將各文檔進行分詞,從字符串轉(zhuǎn)化成單詞列表.
(3)去除停用詞,去掉一些無關(guān)主題的詞,以免影響主題發(fā)現(xiàn)的質(zhì)量.
(4)統(tǒng)計各文檔單詞,生成詞典.
(5)利用詞典將文檔轉(zhuǎn)化成詞頻表示的向量,即指向量中的各值對應(yīng)于詞典中對應(yīng)位置單詞在該文檔中出現(xiàn)次數(shù).
(6)再進行進一步處理,將詞頻表示的向量轉(zhuǎn)化成tf-idf表示的向量.
(7)由tf-idf表示的向量轉(zhuǎn)化成lsi表示的向量.
過濾噪聲微博的過程可以看作是一個二分類問題,即將所有微博分為兩個類:與用戶興趣相關(guān)和與用戶興趣不相關(guān).本文使用了三種經(jīng)典的文本分類方法和bagging學(xué)習(xí)算法提高分類器的準(zhǔn)確率.先用樸素貝葉斯分類、決策樹分類和支持向量機(SVM)分類生成三個預(yù)測函數(shù).然后使用簡單投票機制,實行多數(shù)服從少數(shù)策略組合成聯(lián)合分類器,解決噪聲微博過濾的問題.
我們將文本向量化后的每一列當(dāng)作是分類器的特征,然后直接用文檔向量化的結(jié)果訓(xùn)練分類器,得出三個預(yù)測函數(shù),然后將每個預(yù)測函數(shù)對微博進行投票,獲得兩次及以上投票的類別我們就認(rèn)為是該微博的類別.
將得到的聯(lián)合分類器對未分類的微博進行分類,篩選出與用戶興趣相關(guān)的微博,然后進行文檔向量化,在進行LDA訓(xùn)練,得出LDA模型.
實驗數(shù)據(jù)是來自2016年5月1日的微博內(nèi)容,總共有將近80萬條微博,選出前3000條微博進行人工標(biāo)注是否與用戶興趣相關(guān).結(jié)果統(tǒng)計得出與用戶興趣不相關(guān)的微博有1243條,與用戶興趣相關(guān)的微博的有1757條.然后我們分別對這3000條微博做了預(yù)處理,即去除微博中的特殊字符,然后將微博用結(jié)巴分詞進行分詞,再將分詞后的結(jié)果去停用詞.這樣我們就把原先的一條微博轉(zhuǎn)換成一個單詞列表.最后隨機將標(biāo)注好的數(shù)據(jù)集按8:2的比例隨機分成訓(xùn)練集和測試集,這樣就完成了數(shù)據(jù)的預(yù)處理過程.
在預(yù)處理過程中我們獲得了訓(xùn)練集數(shù)據(jù)和測試集數(shù)據(jù),將訓(xùn)練集數(shù)據(jù)作為數(shù)據(jù)集來分別訓(xùn)練Bayes分類器模型、SVM分類器模型和Tree分類器模型得到三個預(yù)測函數(shù),模型參數(shù)都是默認(rèn)的,通過投票對微博數(shù)據(jù)進行分類.在機器學(xué)習(xí)中為了評估一個模型的性能,通常使用ROC曲線,ROC曲線經(jīng)常用于評價一個二分類器的性能.
圖2解釋了ROC曲線中各參數(shù)的意義.
圖2 ROC曲線參數(shù)示意圖
ROC關(guān)注兩個指標(biāo):
在ROC二維空間圖中,FPR作橫坐標(biāo),TPR是縱坐標(biāo),畫出的曲線說明了分類器在P和FP間的權(quán)衡.ROC的主要分析工具是一個畫在ROC空間的曲線.對于二值分類問題,實例的值往往是連續(xù)值,我們通過設(shè)定一個閾值,將實例分類到正類或者負(fù)類11.因此我們可以變化閾值,根據(jù)不同的閾值進行分類,根據(jù)分類結(jié)果計算得到ROC空間中相應(yīng)的點,連接這些點就形成ROC curve.圖3是SVM分類器和聯(lián)合分類器的ROC曲線.
由圖1可以看出聯(lián)合分類器明顯比SVM分類器分類效果要好上很多,為了得到聯(lián)合分類器模型和其他模型更直觀的對比,又算出各個分類器的準(zhǔn)確率和召回率如表1.
圖3 SVM分類器和聯(lián)合分類器在測試集上的ROC曲線
表1 分類器的準(zhǔn)確率和召回率
由表1可知,聯(lián)合分類器的分類準(zhǔn)確率達(dá)到87%,幾乎可以將噪聲微博去除.我們用聯(lián)合分類器將8萬微博重新分類,獲得53612條與用戶興趣相關(guān)的微博.
在訓(xùn)練LDA模型中,主題數(shù)的確定是一個非常困難的問題.目前還沒有非常有效的方法來確定主題的數(shù)目.這里我們采用的是根據(jù)新浪新聞的分類數(shù)目來確定主題數(shù)目,最后把主題數(shù)定為是15個.
本文先用聯(lián)合分類器將8萬微博重新分類,獲得53612條與用戶興趣相關(guān)的微博,將這些微博進行去特殊字符分詞等預(yù)處理,最后獲得是每篇微博都是詞的列表.將得到的數(shù)據(jù)作為語料庫,統(tǒng)計各文檔單詞生成詞典,利用詞典將文檔轉(zhuǎn)化成詞頻表示的向量,即指向量中的各值對應(yīng)于詞典中對應(yīng)位置單詞在該文檔中出現(xiàn)次數(shù),再進行進一步處理,將詞頻表示的向量轉(zhuǎn)化成tf-idf表示的向量,最后訓(xùn)練LDA模型得到15個主題.主題和主題下的詞如表2所示.
表2 主題及主題詞
Bagging是一種用來提高學(xué)習(xí)算法準(zhǔn)確度的方法,這種方法通過構(gòu)造一個預(yù)測函數(shù)系列,然后以投票的方式將它們組合成一個預(yù)測函數(shù).通過這種方式把三個原本用于微博分類效果不好的模型組合成一個聯(lián)合分類器.通過圖2和表1可以看出聯(lián)合分類器的分類效果準(zhǔn)確率顯著提高.表2是主題從15個主題中選擇的5個主題以及每個主題下的前5個詞.根據(jù)實驗結(jié)果可以看出去除噪聲微博之后每個主題非常明確,這也進一步說明了去除噪聲微博的重要性.
本文先將用戶發(fā)的微博進行了預(yù)處理,然后進行人工標(biāo)注.把標(biāo)注好的數(shù)據(jù)作為分類器模型的訓(xùn)練集,實驗表明各個模型的精確率都可達(dá)到70%以上,而本文所使用的聯(lián)合分類器的精確率可以達(dá)到85%以上,接下來的LDA模型發(fā)現(xiàn)的主題效果很好,更加證明了在進行主題發(fā)現(xiàn)之前使用聯(lián)合分類器對微博內(nèi)容進行分類,去除噪聲微博的重要性和有效性.
雖然該模型取得了很好的效果,但是沒有對LDA模型進行改進.LDA模型分類的效果不僅取決于訓(xùn)練集的質(zhì)量,還有其他的很多方面,例如分詞的效果,參數(shù)的選擇等.下一步將對該問題做更深入的研究.
1 王廣新.基于微博的用戶興趣分析與個性化信息推薦[碩士學(xué)位論文].上海:上海交通大學(xué),2013.
2 于洪濤,崔瑞飛,董芹芹.基于遺忘曲線的微博用戶興趣模型.計算機工程與設(shè)計,2014,35(10):3367–3372,3379.[doi:10.3969/j.issn.1000-7024.2014.10.006]
3 張培晶,宋蕾.基于LDA的微博文本主題建模方法研究述評.圖書情報工作,2012,56(24):120–125.
4 劉紅兵,李文坤,張仰森.基于LDA模型和多層聚類的微博話題檢測.計算機技術(shù)與發(fā)展,2016,26(6):25–30,36.
5 柳培林.基于向量空間模型的中文文本分類技術(shù)研究[碩士學(xué)位論文].大慶:大慶石油學(xué)院,2006.
6 周茜,趙明生,扈旻.中文文本分類中的特征選擇研究.中文信息學(xué)報,2004,18(3):17–23.
7 劉麗珍,宋瀚濤.文本分類中的特征選取.計算機工程,2004,30(4):14–15,175.
8 劉穎.用隱馬爾柯夫模型對漢語進行切分和標(biāo)注排歧.計算機工程與設(shè)計,2001,22(4):58–62,68.
9 李湘東,高凡,丁叢.LDA模型下不同分詞方法對文本分類性能的影響研究.計算機應(yīng)用研究,2017,34(1):62–66.
10 張紅梅,王利華.使用否定選擇算法改進文本過濾.計算機工程與科學(xué),2008,30(8):61–64.
11 劉海峰,劉守生,姚澤清.文本分類中基于訓(xùn)練樣本空間分布的K近鄰改進算法.情報學(xué)報,2003,32(1):80–85.
12 李湘東,巴志超,黃莉.基于語料信息度量的文本分類性能影響研究.情報雜志,2014,33(9):157–162,180.
13 苑擎飏.基于決策樹中文文本分類技術(shù)的研究與實現(xiàn)[碩士學(xué)位論文].沈陽:東北大學(xué),2008.
14 崔建明,劉建明,廖周宇.基于SVM算法的文本分類技術(shù)研究.計算機仿真,2013,30(2):299–302.