秦 旭,楊文忠,王雪穎,馬國祥,王慶鵬
1.新疆大學(xué) 軟件學(xué)院,烏魯木齊 830046
2.新疆大學(xué) 信息科學(xué)與工程學(xué)院,烏魯木齊 830046
3.新疆電力有限公司 信息通信公司 信息調(diào)控中心,烏魯木齊 830046
隨著互聯(lián)網(wǎng)的快速發(fā)展,人們對(duì)網(wǎng)絡(luò)的依賴也越來越強(qiáng),更多的人愿意在網(wǎng)絡(luò)上發(fā)表自己的觀點(diǎn)和看法。與傳統(tǒng)的媒體相比較,互聯(lián)網(wǎng)新媒體有著卓越的優(yōu)勢,它的交互性、及時(shí)性都更加體現(xiàn)著新聞的價(jià)值。如今,很多熱點(diǎn)的社會(huì)事件都是在互聯(lián)網(wǎng)上被引爆。人們?cè)絹碓搅?xí)慣于用手機(jī)來接收新消息,也更喜歡用手機(jī)來瀏覽新聞并在上面發(fā)表自己的見解,簡短的文字、有效的表達(dá)成為了一種時(shí)尚,這使得微博、知乎、今日頭條、百度貼吧等成為主要的新聞傳播途徑,不僅僅是中國,Twitter 等國外網(wǎng)站也出現(xiàn)了這樣的情況。因而改變?nèi)藗兘邮招畔⒌姆绞?,有效、?zhǔn)確地發(fā)現(xiàn)大家都在關(guān)注的主題,成為了研究熱點(diǎn)。在眾多文本處理算法中,主題發(fā)現(xiàn)的方法分為兩類:一類是基于統(tǒng)計(jì)概率的主題發(fā)現(xiàn)方法;另一類是基于機(jī)器學(xué)習(xí)的主題發(fā)現(xiàn)方法。
基于統(tǒng)計(jì)概率的主題發(fā)現(xiàn)方法的代表為LDA(Latent Dirichlet Allocation)算法,它通過應(yīng)用貝葉斯概率模型將文本信息轉(zhuǎn)化為概率分布。LDA算法現(xiàn)在被廣泛應(yīng)用在圖像分析[1]、書籍分類、文本處理[2]、生物基因分類[3]、人臉識(shí)別[4]等場景中。因?yàn)長DA 算法可以將連續(xù)的數(shù)據(jù)概率化,同時(shí)將數(shù)據(jù)假設(shè)為沒有順序的關(guān)系,這樣大大簡化了計(jì)算的復(fù)雜程度,使得它在眾多方面得到了廣泛的應(yīng)用,但是也留下了改進(jìn)的空間。眾多的改進(jìn)算法都取得了不錯(cuò)的效果。文獻(xiàn)[5]對(duì)LDA 進(jìn)行了改進(jìn),將數(shù)據(jù)加入了時(shí)間性,使詞的出現(xiàn)順序變得重要,在話題發(fā)現(xiàn)領(lǐng)域取得不錯(cuò)的效果;文獻(xiàn)[6-9]也對(duì)LDA 進(jìn)行了不同程度的改進(jìn)。另一方面,使用基于頻繁項(xiàng)集的主題發(fā)現(xiàn)也得到了大家的認(rèn)可,它們通過生成頻繁項(xiàng)集發(fā)現(xiàn)其中的關(guān)聯(lián)來定義文本的主題。優(yōu)點(diǎn)是利用Apriori原理加快了速度,因?yàn)殛P(guān)聯(lián)挖掘的數(shù)據(jù)集往往是重復(fù)性很高的,這就能帶來很高的壓縮比,節(jié)省了大量的存儲(chǔ)空間;而缺點(diǎn)是效率比較低,實(shí)現(xiàn)比較困難,對(duì)于數(shù)據(jù)要求較高的某些應(yīng)用中性能下降。
另一種就是基于機(jī)器學(xué)習(xí)的主題發(fā)現(xiàn),基于RNN(Recurrent Neural Network)和主題模型的社交網(wǎng)絡(luò)突發(fā)話題發(fā)現(xiàn)[10],通過神經(jīng)網(wǎng)絡(luò)[11]的高度抽象性發(fā)現(xiàn)大量數(shù)據(jù)中隱藏的關(guān)系,取得了一些成果。近些年來,對(duì)混合算法的研究逐漸增多,尤其是在聚類方面,很多數(shù)據(jù)來源不再是單一類型,文獻(xiàn)[12]專門針對(duì)不同種類的混合數(shù)據(jù)提出了混合算法,文獻(xiàn)[13-15]提出了更加高效的混合聚類算法。不同的數(shù)據(jù)有著其自身的特性[16],不可能適應(yīng)每一種數(shù)據(jù),將不同來源的數(shù)據(jù)進(jìn)行分析,準(zhǔn)確發(fā)現(xiàn)主題有著重要意義。為了解決上述問題,本文提出了一種基于共現(xiàn)的異類源話題發(fā)現(xiàn)方法,它可以適應(yīng)于多種來源的文檔[17-18],能夠有效地發(fā)現(xiàn)主題,有效利用每種文檔來源的特性。該方法具有適應(yīng)多種文本進(jìn)行主題發(fā)現(xiàn),對(duì)于文本類型和主題要求較低的優(yōu)點(diǎn),但由于使用了多重算法進(jìn)行處理,數(shù)據(jù)運(yùn)算效率有一定的下降。
近些年來,主題檢測逐漸受到國內(nèi)外科研工作者的廣泛關(guān)注。長文本主題檢測已經(jīng)取得了較好的效果,但在短文本[19]上的檢測結(jié)果始終差強(qiáng)人意。本文采用長文本主題檢測后的結(jié)果對(duì)短文本聚類[20]結(jié)果進(jìn)行補(bǔ)充來獲得更準(zhǔn)確更貼切的主題。對(duì)于長文本和短文本分別采用LDA 和K-means 算法進(jìn)行聚類融合,并對(duì)其進(jìn)行了一些改進(jìn)。
在LDA 的具體計(jì)算中,認(rèn)為一篇文章生成的模式如下:從迪利克雷分布α中取樣形成文檔i的主題分布θi;從主題的多項(xiàng)式分布θi中抽出生成文檔i第j個(gè)詞的主題zi,j;從迪利克雷分布β中抽出詞語形成主題zi,j對(duì)應(yīng)的詞語分布φi,j;從詞語的多項(xiàng)式分布φi,j最終生成詞語wi,j。
對(duì)于一篇文章來說,它的形成過程是每次寫一個(gè)詞的時(shí)候,首先會(huì)以一定的幾率選擇一個(gè)方向。不同方向被選中的概率是不一樣的,在這個(gè)理論中,假設(shè)文章和主題之間存在一定的關(guān)系,它符合多項(xiàng)式分布。同理,主題和詞之間也被認(rèn)為存在多項(xiàng)式分布。所謂分布(概率),就是不同情況出現(xiàn)的幾率,它們能被總結(jié)成為一個(gè)特定的規(guī)律。
對(duì)應(yīng)貝葉斯參數(shù)估計(jì)的過程:先驗(yàn)分布+數(shù)據(jù)的知識(shí)=后驗(yàn)分布。根據(jù)式子可以知道它們對(duì)應(yīng)觀測到的樣本數(shù)據(jù)。
舉一個(gè)例子:假設(shè)對(duì)于詞庫來說總共有詞的數(shù)量是N,假設(shè)人們關(guān)注的每個(gè)詞出現(xiàn)vi的發(fā)生次數(shù)ni,那么,可以發(fā)現(xiàn)它正好是一個(gè)多項(xiàng)式分布:
對(duì)應(yīng)到LDA 模型中,文章和主題分布的關(guān)系就變成了分布統(tǒng)計(jì)是每個(gè)主題的詞的數(shù)量。主題和詞對(duì)應(yīng)的是主題中每個(gè)詞的數(shù)量。
K-means算法[21]是較為經(jīng)典的聚類算法,它采用相對(duì)于中心點(diǎn)的距離作為指標(biāo),通過不斷地迭代將數(shù)據(jù)分為輸入K個(gè)類,算法認(rèn)為的類中心點(diǎn)是本類中所有值的平均值,每個(gè)類用聚類中心點(diǎn)的特征來進(jìn)行描述。對(duì)于給定的一個(gè)包含n個(gè)d維數(shù)據(jù)點(diǎn)的數(shù)據(jù)集X以及要分得的類別K,選取歐式距離作為相似度指標(biāo)[22],聚類目標(biāo)是使得各類的聚類平方和最小,即最小化:
結(jié)合最小二乘法和拉格朗日原理,聚類中心為對(duì)應(yīng)類中每個(gè)類中數(shù)據(jù)的均值,在計(jì)算中保證算法能夠收斂,應(yīng)該盡量使類的中心保持不變[23]。
K-means是一個(gè)反復(fù)迭代的過程,算法分為4個(gè)步驟:
(1)選擇樣本中的K個(gè)對(duì)象將它們認(rèn)為中心;
(2)對(duì)于樣本中的實(shí)際計(jì)算對(duì)象來說,依據(jù)它們與這些選定中心的歐氏距離,按近距離優(yōu)先的原則,將它們與離它們最近的中心劃分到一起;
(3)更新聚類中心,計(jì)算每個(gè)類別中對(duì)象到中心的距離獲取平均值重新獲得中心,并按照優(yōu)化函數(shù)判斷是否聚類結(jié)束;
(4)對(duì)上一次計(jì)算的結(jié)果與本次進(jìn)行對(duì)比,如果沒有發(fā)生變化,則輸出結(jié)果,若出現(xiàn)變化,判斷是否需要重新計(jì)算,若需要,則返回(2)。
下面對(duì)本文的核心內(nèi)容進(jìn)行敘述。將不同來源的數(shù)據(jù)進(jìn)行主題發(fā)現(xiàn),利用不同文本源的特點(diǎn),對(duì)其進(jìn)行分析。
將同時(shí)出現(xiàn)在同一個(gè)主題中的詞定義為共有詞,通過共有詞可以比較兩個(gè)主題的相識(shí)程度,通過比較可以發(fā)現(xiàn),在主題中的共有詞達(dá)到一定比例后,就可以認(rèn)為兩個(gè)主題為同一類主題的不同情況。
相對(duì)相似度:將通過不同源得出的主題詞進(jìn)行比較,得出不同源之間相互關(guān)系。將不同源主題之間進(jìn)行相互比較,得出相對(duì)相似度。
相對(duì)相似度公式:
其中,S1是對(duì)應(yīng)的主題的相對(duì)相似度值;a1為主題相同詞數(shù);L1為詞條長度。
Similarity calculation描述:
LDA_Theme_length=getKmeans_keyword.length;
Kmeans_Theme_length=getKmeans_keyword.length;
if LDA_Theme_length>=Kmeans_Theme_length for word in Kmeans_Theme:
if(word in LDA_Theme)
sumNum=sumNum+1;
else
for word in LDA_Theme:
if(word in Kmeans_Theme)
sumNum=sumNum+1;
return sumNum/total
end
通過同義詞和相對(duì)相似度,對(duì)不同的主題進(jìn)行計(jì)算。對(duì)于計(jì)算結(jié)果設(shè)定閾值,當(dāng)大于該閾值時(shí),認(rèn)為這兩個(gè)主題為相似主題,預(yù)備進(jìn)行融合。在后續(xù)的比較過程中發(fā)現(xiàn)更相近的則進(jìn)行替換,否則在算法結(jié)束時(shí)進(jìn)行融合。
其中,PS為兩個(gè)主題間的平均相似度,a1為LDA主題相同詞數(shù),a2為K-means 主題相同詞數(shù);L1+L2為對(duì)應(yīng)主題詞條長度之和。
圖1 處理總流程圖
將不同的數(shù)據(jù)源根據(jù)數(shù)據(jù)具體特性采用相應(yīng)的算法進(jìn)行處理,對(duì)于長文本類型數(shù)據(jù)源,采用LDA算法進(jìn)行處理,對(duì)于短文本類型數(shù)據(jù),采用K-means算法進(jìn)行處理。多源主題融合模型的總流程圖如圖1所示。
首先,將數(shù)據(jù)根據(jù)文本進(jìn)行分詞,采用jieba 分詞,去停用詞方法;對(duì)長文本使用LDA 計(jì)算出主題概率矩陣,同時(shí)將短文本類型的詞使用K-means進(jìn)行處理,在K取值方面采用Calinski-Harabasz準(zhǔn)則。
其中,SSB是類方差,z為所有點(diǎn)的中心,mi為某類的中心點(diǎn);SSW是類內(nèi)方差,是復(fù)雜度;VRC比率越大,數(shù)據(jù)分離度越大。VRC 其本質(zhì)是方差分析,將類間方差與類內(nèi)方差比較,若兩者之比近似1,說明來自同一個(gè)正態(tài)總體,若遠(yuǎn)遠(yuǎn)大于1,說明類間方差遠(yuǎn)大于類內(nèi)方差,兩者不來自同一個(gè)整體。
本文給出一個(gè)LDA算法處理過后文本主題的數(shù)量N,使用N作為中心點(diǎn)進(jìn)行K的取值;分別嘗試對(duì)N與N+1 兩個(gè)數(shù)值進(jìn)行計(jì)算,然后得出ΔVRC值,確認(rèn)K值,完成K-means 算法分類。對(duì)分類完畢的數(shù)據(jù)采用式(4)進(jìn)行計(jì)算。
算法流程:
(1)將不同源的數(shù)據(jù)依據(jù)數(shù)據(jù)特性使用對(duì)應(yīng)的方法進(jìn)行主題發(fā)現(xiàn);
(2)對(duì)發(fā)現(xiàn)的主題詞進(jìn)行整理;
(3)對(duì)主題詞進(jìn)行比較,發(fā)現(xiàn)共有主題詞;
(4)計(jì)算相對(duì)相似度和平均相似度。
對(duì)相似度進(jìn)行比較、融合。該算法具體過程如圖2所示。
圖2 融合演示圖
該算法偽代碼如下。
Fusion algorithm描述:
getLda_keyword=key_lda(input_source)
getKmeans_keyword=key_kmeans(input_source)
if theme in getLda:
if word in theme:
for compareSame(word,key_kmeans_word)
if similarity>=60%
convergence_theme(getLda_keyword,getKmeans_keyword)
end
本實(shí)驗(yàn)的硬件平臺(tái)采用Intel i5 1.8 GHz,8 GB 內(nèi)存,在Windows 環(huán)境下采用56Python 語言編寫實(shí)驗(yàn)代碼。編寫Python 程序爬取百度新聞與新浪微博組成的數(shù)據(jù)集。經(jīng)實(shí)驗(yàn)證明,具有更多分類標(biāo)準(zhǔn)能夠提高聚類效果。
表1 數(shù)據(jù)集表
收集了更加復(fù)雜的貼吧信息,貼吧數(shù)據(jù)集的數(shù)據(jù)量如表2所示。
表2 貼吧數(shù)據(jù)集表
(1)分別在每個(gè)數(shù)據(jù)集對(duì)MTFM與LDA、K-means的主題詞平均長度進(jìn)行比較(見圖3)。
圖3 平均詞條長度圖
對(duì)于傳統(tǒng)的判斷兩個(gè)文檔相似的方法TF-IDF,主要就是查看兩個(gè)文檔共同出現(xiàn)的單詞的數(shù)量,這種方法沒有考慮到前后語義的關(guān)聯(lián)。文檔-詞語的概念就是文檔主題與詞語之間產(chǎn)生聯(lián)系,更加精確,更多的主題詞能更好地反映主題。
本文通過改進(jìn)LDA 和K-meams 算法獲得MTFM算法。通過共有詞對(duì)主題詞進(jìn)行融合,可以發(fā)現(xiàn),對(duì)于不同的數(shù)據(jù)集來說(S1~S4數(shù)據(jù)量逐漸增大),在數(shù)據(jù)量增大時(shí),由于LDA算法通過概率發(fā)現(xiàn)主題,數(shù)據(jù)量的增加能明顯增加LDA主題詞的長度;對(duì)于K-means來說,更多的詞有更多的詞條長度,但是本文算法明顯有更長的主題詞條長度。
(2)與LDA、K-means進(jìn)行主題發(fā)現(xiàn)的準(zhǔn)確度比較。
困惑度是用來衡量語言概率模型優(yōu)劣的一種方法。一個(gè)語言概率模型可以看成是在整個(gè)句子或者文段上的概率分布。通常用于評(píng)價(jià)聚類算法好壞的方法有兩種:其一是使用帶分類標(biāo)簽的測試數(shù)據(jù)集,然后使用一些算法,比如Normalized Mutual Information 和Variation of Information distance,來判斷聚類結(jié)果與真實(shí)結(jié)果的差距;其二是使用無分類標(biāo)簽的測試數(shù)據(jù)集,用訓(xùn)練出來的模型來測試數(shù)據(jù)集,然后計(jì)算在測試數(shù)據(jù)集上所有token 似然值幾何平均數(shù)的倒數(shù),也就是perplexity指標(biāo)。這個(gè)指標(biāo)可以直觀理解為用于生成測試數(shù)據(jù)集的詞表大小的期望值,而這個(gè)詞表中所有詞匯符合平均分布。
式(6)中,M 是指訓(xùn)練好的模型參數(shù),在不同的模型中指不同的參數(shù)類型。例如在LDA 中將collapsed Gibbs Sampler 采樣的w 向量和z 向量帶入計(jì)算可以得出困惑度。困惑度的基本思想是給測試集的句子賦予較高概率值的語言模型較好,當(dāng)語言模型訓(xùn)練完成后,測試集中的句子都是正常的句子,那么訓(xùn)練好的模型就是在測試集上的概率越高越好;根據(jù)困惑度公式可知,困惑度越小,句子概率越大,語言模型越好。本文模型與LDA、K-means在困惑度上的實(shí)驗(yàn)對(duì)比結(jié)果如圖4所示。
圖4 困惑度比較圖
對(duì)于主題準(zhǔn)確率,從圖中可以發(fā)現(xiàn)在數(shù)據(jù)量較少時(shí),三種算法都不能有效地發(fā)現(xiàn)主題,在文本規(guī)模達(dá)到一定數(shù)量時(shí),發(fā)現(xiàn)LDA 發(fā)現(xiàn)主題的困惑度有明顯的提高;但是在數(shù)量增長到一定規(guī)模后,特別是混合后的文本,困惑度明顯上升,而MTFM算法卻能獲得不錯(cuò)的效果。
(3)在不同數(shù)據(jù)集進(jìn)行綜合對(duì)比。
采用平均詞條長度、主題數(shù)量、樣本數(shù)、困惑度和時(shí)間跨度對(duì)同一數(shù)據(jù)集進(jìn)行綜合考慮,比較算法的差異。綜合對(duì)比后結(jié)果如圖5所示。
圖5 MTFM與LDA、K-means綜合比較圖
通過圖5 比較可以看出,在相同的樣本數(shù)量、相同的時(shí)間跨度之下,本文方法具有較低的困惑度,聚集出較多的主題數(shù)量;同時(shí)隨著樣本數(shù)量的不斷增多,從文本數(shù)量較大的樣本分析看,相同的時(shí)間跨度之下,本文方法能獲得更低的困惑度,具有研究效果。
(4)在幀吧數(shù)據(jù)集上,將本文提出的算法與K-modes 算法進(jìn)行了困惑度和評(píng)價(jià)詞條長度兩項(xiàng)的對(duì)比實(shí)驗(yàn),結(jié)果如圖6所示。
圖6 貼吧數(shù)據(jù)集上MTFM與K-modes比較圖
實(shí)驗(yàn)如圖6 所示,在更加復(fù)雜的數(shù)據(jù)集中,本文提出的方法在困惑度上依然有優(yōu)秀的表現(xiàn),在平均詞條長度上也能取得不錯(cuò)的效果。
本文通過對(duì)不同源的數(shù)據(jù)采用本文算法進(jìn)行處理,對(duì)不同源的數(shù)據(jù)特性進(jìn)行充分利用,將更加豐富的主題詞添加進(jìn)主題中,能夠更加準(zhǔn)確地定義主題。通過實(shí)驗(yàn)證明,本文方法能夠在不同源的數(shù)據(jù)上取得一定的效果,能獲得更好的主題分類。在后面的研究中,將考慮詞語傾向性分析,使擴(kuò)展的主題更加準(zhǔn)確有效。未來會(huì)考慮將多源主題發(fā)現(xiàn)應(yīng)用于輿情監(jiān)控系統(tǒng),及時(shí)對(duì)輿論進(jìn)行引導(dǎo)。