(浙江工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,浙江 杭州 310023)
如今,互聯(lián)網(wǎng)正飛速地發(fā)展,網(wǎng)絡(luò)已成為網(wǎng)民接收和傳播信息的主要途徑。通過網(wǎng)絡(luò),每個(gè)網(wǎng)民都可以在極短的時(shí)間內(nèi)了解到全國(guó)各地最新的事件,并實(shí)時(shí)地對(duì)這些事件發(fā)表自己的感想,也可以把自己了解到的事件分享給其他人。在這種形勢(shì)下,網(wǎng)絡(luò)文本的挖掘成了如今科學(xué)研究的一大熱點(diǎn)。如何從海量文本中提取出有價(jià)值的信息一直是一件很有挑戰(zhàn)的事情。文本不同于一般的數(shù)值型數(shù)據(jù),表示和處理都比較復(fù)雜??臻g向量模型(Vector space model)把文本中的每個(gè)詞語映射到向量空間,這使得文本可以通過傳統(tǒng)的數(shù)值型數(shù)據(jù)挖掘算法來處理,不過對(duì)于海量數(shù)據(jù),會(huì)面臨維度災(zāi)難。TF-IDF[1]等方法利用了詞的詞頻信息和逆文檔頻信息,能夠快速提取文章的關(guān)鍵字,不過單純以詞頻度量詞的重要性不夠全面,而且不能夠處理同義詞的情況。近年來,主題模型在文本挖掘中得到了不錯(cuò)的運(yùn)用,其中最具有代表性的就是潛在狄利克雷分配(Latent Dirichlet allocation,LDA)。如今,已經(jīng)有許多針對(duì)不同語料特點(diǎn)改進(jìn)的LDA模型被用在了情感分析、輿情控制和個(gè)性化推薦上。
對(duì)于論壇文本,因?yàn)槠浔旧砭哂幸恍┙Y(jié)構(gòu)化信息,使用原始的LDA模型并不能夠最大化地利用文本信息來挖掘主題。論壇里面可能會(huì)存在大量的短回復(fù)和水帖,短回復(fù)會(huì)造成詞的稀疏性,水帖會(huì)給主題挖掘帶來很多噪音,這些因素都極大地影響了LDA在論壇上的建模效果。針對(duì)論壇的這些特點(diǎn),對(duì)LDA作出了改進(jìn)。經(jīng)真實(shí)文本數(shù)據(jù)試驗(yàn)證明,改進(jìn)后的主題模型能夠提升在論壇語料上的主題挖掘能力。
論壇文本因?yàn)橛兄烊坏陌鎵K區(qū)分,很適合針對(duì)性地挖掘一些信息。目前針對(duì)論壇文本的研究比較少,不過文本挖掘是一個(gè)比較經(jīng)典的研究問題,許多學(xué)者的研究都能夠很方便地應(yīng)用到論壇文本上。
文本摘要是文本挖掘中一個(gè)熱門的研究方向。通過多文檔摘要,可以從大量的文本中獲取相對(duì)比較重要的文本,這使得讀者能夠更加快捷地消化這些文本數(shù)據(jù)。Slamet等[2]通過TF-IDF獲取關(guān)鍵詞和詞權(quán)重,之后借助空間向量模型獲取文本之間的關(guān)系,以實(shí)現(xiàn)文本的自動(dòng)摘要。劉端陽等[3]在TF-IDF的基礎(chǔ)上引入了語義詞典和詞匯鏈,能夠緩解自動(dòng)摘要中同義詞冗余表達(dá)的缺點(diǎn)。余珊珊等[4]結(jié)合了中文的結(jié)構(gòu)特點(diǎn),提出了iTextRank算法,在中文新聞的摘要上取得了不錯(cuò)的效果。
對(duì)論壇進(jìn)行文本摘要往往只能從大量論壇文本中抽取重要的內(nèi)容,并不能對(duì)主題進(jìn)行區(qū)分。論壇的主題挖掘相對(duì)而言更加困難。潛在語義索引(Latent semantic indexing, LSI)[5]是一個(gè)可以挖掘文檔主題的方法,它是主題模型的雛形,LSI通過奇異值分解(SVD)的方法對(duì)文檔進(jìn)行降維,把單詞空間映射到主題空間,通過它可以獲取最有可能代表文章主題的詞語,不過LSI計(jì)算比較復(fù)雜,而且不易針對(duì)文章的特點(diǎn)進(jìn)行修改。Hofmann[6]提出了概率潛在語義分析(Probabilistic latent semantic analysis,PLSA),通過概率統(tǒng)計(jì)來獲取代表文檔主題的詞語,不過PLSA比較容易過擬合,泛化能力比較差。
Blei等[7]在PLSA的基礎(chǔ)上加上了先驗(yàn),提出了潛在狄利克雷分布模型(Latent Dirichlet allocation, LDA),一定程度上克服了PLSA泛化能力差的問題。LDA是一種針對(duì)離散數(shù)據(jù)的概率生成模型,也是一種由文檔、主題、詞組成的3 層貝葉斯概率模型。LDA采用了詞袋(Bag of words)的方式來描述文本,這種方式把獨(dú)立的文檔轉(zhuǎn)化成了一個(gè)個(gè)詞頻向量,從而使文本信息便于建模。詞袋法沒有考慮文檔中詞的順序信息,大大降低了問題的復(fù)雜性。
對(duì)某些語料直接應(yīng)用LDA效果不是很好,比如短文本,其原因是短文本中每個(gè)文本所含的信息量太少,詞袋間詞共現(xiàn)數(shù)太少,模型生成會(huì)遇到數(shù)據(jù)稀疏問題。有人提出了一些有效的解決方案。最簡(jiǎn)單的方式就是把短文本拼接成長(zhǎng)文本,Hong等[8]發(fā)現(xiàn),通過把短的Tweet文本拼接成長(zhǎng)的文本,以長(zhǎng)文本來訓(xùn)練主題模型能夠獲取更高質(zhì)量的主題。Zhao等[9]在分析Twitter的時(shí)候,認(rèn)為在大多數(shù)情況下,一條Tweet只包含一個(gè)主題,以此提出了Twitter-LDA,經(jīng)過測(cè)試,Twitter-LDA在挖掘主題的準(zhǔn)確性上比原始的LDA提升了31%。Balikas等[10]在分析文本的時(shí)候采用了和Twitter-LDA類似的方法,在提出的Sentense LDA中,把同一個(gè)句子中的詞語歸到同一個(gè)主題。結(jié)果表明用詞袋來表示文本會(huì)丟失詞在文本段(句子或者詞組)的共現(xiàn)信息。Yan等[11]用一個(gè)新的主題模型BTM(Biterm topic model)來處理短文本,BTM直接對(duì)共現(xiàn)詞對(duì)(biterms)進(jìn)行建模,通過匯聚語料中的共現(xiàn)詞實(shí)現(xiàn)對(duì)短語建模的目的,解決了詞在文檔層面共現(xiàn)的稀疏性問題。BTM被廣泛用在短信、微博等短文本主題挖掘上[12]。
根據(jù)語料的結(jié)構(gòu)和特點(diǎn)對(duì)主題模型進(jìn)行合理改進(jìn),不僅能夠讓主題模型學(xué)習(xí)新的東西,也能夠提升主題模型的挖掘效果。Rosen-zvi等[13]提出的ATM(Author topic model)把作者信息加入到LDA,這使得模型不僅能夠從文本中挖掘主題,也能夠?qū)W習(xí)某個(gè)作者經(jīng)常寫哪些主題的文章。Lin等[14]提出了JST(Joint sentiment/Topic model)模型,JST模型在LDA模型的基礎(chǔ)上加了一層情感層,通過新增的情感層,JST能夠同時(shí)挖掘文本的主題信息和情感信息。JST被用在了電影評(píng)論上,對(duì)文本的情感分類取得了不錯(cuò)的效果。Xiong等[15]提出的WSTM(Word-pair sentiment-topic model)在BTM上加入了情感層,克服了JST面對(duì)短文本效果不佳的問題。Lim等[16]通過把好友關(guān)系、主題標(biāo)簽、關(guān)注和被關(guān)注信息整合到LDA中,構(gòu)建出TN(Twitter-network topic model)模型。TN模型被實(shí)驗(yàn)證實(shí)能夠更有效地挖掘主題和用戶信息,被用于用戶推薦。
結(jié)合文本特點(diǎn)對(duì)主題建模已經(jīng)成了主流的趨勢(shì)。論壇語料最大的特點(diǎn)就是存在很多水帖。如果直接對(duì)論壇文本進(jìn)行建模,可能達(dá)不到比較理想的效果。筆者利用論壇帖子的用戶特征,在對(duì)主題建模的同時(shí),能夠發(fā)現(xiàn)論壇語料的無意義回復(fù)以及回復(fù)中的背景詞,更加有效地挖掘論壇主題。
論壇一般分版塊,每個(gè)版塊有一個(gè)大主題,比如經(jīng)濟(jì)、體育等。用戶發(fā)帖時(shí),一般會(huì)先根據(jù)自己想發(fā)的內(nèi)容,選擇一個(gè)版塊進(jìn)行發(fā)帖。帖子的主題和版塊的主題相關(guān)。對(duì)于論壇的主題挖掘,主要研究的是同一個(gè)版塊內(nèi)的主題挖掘,這樣不可避免會(huì)遇到主題相似的問題。
論壇的每個(gè)帖子包含正文和別人對(duì)帖子的一系列回復(fù)。對(duì)于一個(gè)帖子的正文和所有回復(fù),其主題分布一致,通用的主題模型并不會(huì)考慮論壇的這些特征。
論壇文本的更新非常迅速,用戶一般喜歡用比較簡(jiǎn)單的語言描述一件事情,很少有長(zhǎng)篇大論,所以論壇的回復(fù)一般都比較短。直接使用LDA對(duì)短文本進(jìn)行分析會(huì)遇到數(shù)據(jù)稀疏的問題,導(dǎo)致挖掘效果不好。
論壇的口語化現(xiàn)象比較嚴(yán)重,文本中濫用標(biāo)點(diǎn)、錯(cuò)別字現(xiàn)象比較普遍,而且有些板塊(比如金融)會(huì)存在很多專有名詞,所以對(duì)于不同的論壇版塊,應(yīng)該做不同的預(yù)處理??梢园岩恍┏S玫谋磉_(dá)整理出來,加入到分詞工具的詞典里,提高分詞準(zhǔn)確性,這一步很難做到無監(jiān)督。
論壇中存在著部分的水帖和推廣貼,這會(huì)給主題的挖掘帶來很大的噪聲。如果有一個(gè)人經(jīng)常發(fā)無意義的帖子,那么這個(gè)人新發(fā)的帖子極有可能也是無意義的。可以在主題模型中引入用戶的信息,提高主題挖掘的準(zhǔn)確性。
根據(jù)2.1節(jié)的分析,筆者提出了BBS-LDA模型。BBS-LDA的圖模型見圖1,圖模型中所用到的符號(hào)含義見表1。
圖1 BBS-LDA的圖模型Fig.1 BBS-LDA graphical model
表1 BBS-LDA的參數(shù)含義Table 1 Parameter meaning of BBS-LDA
該模型和LDA模型一樣屬于生成模型,它假設(shè)語料是根據(jù)一定的概率分布生成的,可以據(jù)此對(duì)文本數(shù)據(jù)進(jìn)行建模,得到變量之間的條件概率分布,這在此模型中具體指每個(gè)詞屬于不同主題的概率分布。圖模型表示的語料的生成過程為
1) 對(duì)于每個(gè)主題k∈[1,K]
采樣其詞分布φk~Dirichlet (β)
2) 采樣無意義的詞分布φr~Dirichlet (βr)
3) 采樣背景詞分布φb~Dirichlet (βb)
4) 對(duì)于每個(gè)用戶u∈[1,U]
采樣標(biāo)記變量分布πu~Beta (γ)
采樣標(biāo)記變量分布ηu~Beta (λ)
5) 對(duì)于每個(gè)帖子p∈[1,P]
采樣其主題分布θp~Dirichlet (α)
對(duì)于帖子中的每個(gè)句子s∈[1,Sp]
采樣標(biāo)記變量rp,s~Bernoulli (πu)
如果rp,s=1
采樣該句子的主題zp,s~Multinomial (θp)
對(duì)于每個(gè)詞w∈[1,Ns]
采樣標(biāo)記變量tp,s,w~Bernoulli (ηu)
如果tp,s,w=0
采樣詞w~Multinomial (φb)
否則如果rp,s=0
采樣詞w~Multinomial (φr)
否則
采樣詞w~Multinomial (φzp,s)
對(duì)比原始LDA,BBS-LDA主要有3點(diǎn)與之不同。第1點(diǎn)是以句子為單位,每個(gè)句子的主題只采樣一次,每個(gè)帖子中的句子具有相同的主題分布,這樣的做法考慮了論壇文本的結(jié)構(gòu)特性,并且可以緩解單條回復(fù)字?jǐn)?shù)少導(dǎo)致的稀疏性問題。第2點(diǎn)是句子中的詞分為兩部分,一部分屬于背景詞,一部分屬于主題詞。這個(gè)做法與Twitter-LDA的做法差不多,唯一的不同是在Twitter-LDA中,η對(duì)于所有文本都是相同的,而在BBS-LDA中,對(duì)于每個(gè)用戶,η都是不同的,因?yàn)椴煌娜?,寫作?xí)慣是不同的。通過這樣的做法,可以對(duì)文本中的背景詞進(jìn)行建模,增加模型在相同版塊不同主題的區(qū)分能力。第3點(diǎn)是增加了一個(gè)標(biāo)記變量r來識(shí)別句子是否有主題,這個(gè)想法是受文獻(xiàn)[17]啟發(fā)得到的,同樣的,對(duì)于每個(gè)不同的用戶,π的值是不同的,因?yàn)橛械挠脩艨赡軙?huì)經(jīng)常回水帖,而有的用戶發(fā)的回復(fù)可能基本上都是和主題相關(guān)的。
LDA主題模型的參數(shù)都比較復(fù)雜,不能夠被精確算出,一般使用一些近似的方法估計(jì)得到。最常用的方法有變分推理(Variational inference)和塌陷吉布斯采樣(Collapsed Gibbs sampling)[18]。筆者使用塌陷吉布斯采樣估計(jì)模型中的參數(shù)。
1) 首先,需要推導(dǎo)每個(gè)句子屬于對(duì)應(yīng)主題的概率。為了簡(jiǎn)化這個(gè)問題,可以先忽略句子中的背景詞,因?yàn)楸尘霸~與主題無關(guān)。根據(jù)模型的生成過程,整個(gè)文本集的生成概率為
(1)
展開式(1)第3項(xiàng),即
(2)
(3)
(4)
把式(3,4)代入式(2)之后,可以得到
(5)
同理,可以得到
(6)
(7)
(8)
在采樣過程中,對(duì)于一個(gè)句子,先采樣r,然后根據(jù)r判斷句子是不是有意義的,如果有意義,則從以α為參數(shù)的Dirichlet分布中再采樣z,否則句子直接屬于無意義主題,無意義主題記為zr,則此時(shí)P(zr|r=0)=1,則有
(9)
所以,整個(gè)文本集生成的概率為
(10)
由此,可以開始采樣第p個(gè)帖子中第s個(gè)句子所對(duì)應(yīng)的標(biāo)記變量rp,s和句子的主題zp,s。當(dāng)rp,s=1時(shí),句子主題為k的概率計(jì)算為
(11)
rp,s=0的概率計(jì)算為
(12)
式中:C表示當(dāng)前采樣句子中無意義詞的個(gè)數(shù);C(v)表示當(dāng)前采樣句子中的詞v屬于無意義詞的個(gè)數(shù)。
之后,對(duì)句子中的每個(gè)詞進(jìn)行采樣(單詞計(jì)為x,單詞的序號(hào)為i)。
2) 現(xiàn)在考慮文本集的時(shí)候不忽略背景詞,則文本集的生成概率為
(13)
因?yàn)榇藭r(shí)句子的主題已采樣,所以式(13)中的前兩項(xiàng)與單詞是否是背景詞的概率無關(guān),把它記為(*)。
與式(5)的推導(dǎo)相同,可以得到
(14)
(15)
將式(5,8,14,15)代入式(13),可得
(16)
詞x屬于背景詞的概率為
(17)
如果該單詞所在的句子對(duì)應(yīng)的標(biāo)志變量rp,s=1,且zp,s=k,同理可得
(18)
如果該單詞所在的句子對(duì)應(yīng)的標(biāo)志變量rp,s=0,同理可得
(19)
等采樣收斂之后,因?yàn)镈irichlet分布和多項(xiàng)分布共軛,各個(gè)隱藏變量的估計(jì)值為
(20)
(21)
(22)
直接使用模型對(duì)文檔進(jìn)行建模,在辨別回復(fù)是否為有意義的回復(fù)上準(zhǔn)確度不是很高。識(shí)別部分比較明顯的垃圾回復(fù)能夠?yàn)槟P吞峁┎糠直O(jiān)督信息,有利于更好地對(duì)文本進(jìn)行建模。在模型參數(shù)估計(jì)的過程中,如果該條回復(fù)已經(jīng)根據(jù)監(jiān)督信息被標(biāo)記為無意義的回復(fù),則直接把該條回復(fù)對(duì)應(yīng)的標(biāo)記變量r賦值為1。如果該條回復(fù)沒有被標(biāo)記,則需要通過采樣算法來決定r的值。根據(jù)觀察發(fā)現(xiàn),論壇的垃圾回復(fù)主要有兩種:第一種是一些過短回復(fù),基本不包含什么語義,只是為了頂貼或者水帖而發(fā)表的回復(fù);第二種是推廣。
對(duì)于第一種垃圾回復(fù),其文本中一般會(huì)包含一些高頻率詞,比如說“頂”“紫薯補(bǔ)丁”。所以篩選了字?jǐn)?shù)小于10的一些回復(fù),經(jīng)分詞之后統(tǒng)計(jì)高頻詞,經(jīng)篩選形成一份詞典。對(duì)于新的文本數(shù)據(jù),可以通過以下方式判斷是否為這一類垃圾回復(fù):首先對(duì)文本進(jìn)行分詞,根據(jù)回復(fù)的詞數(shù)篩選出過短回復(fù);之后判斷該回復(fù)中是否包含詞典中的高頻詞,如果是,則該條回復(fù)為垃圾回復(fù)。
對(duì)于第二種推廣類型的回復(fù),也有一個(gè)特點(diǎn),就是不經(jīng)過大幅度修改直接重復(fù)粘貼,且多為同一個(gè)人發(fā)出。對(duì)于這些水帖,可以在數(shù)據(jù)庫中對(duì)每個(gè)用戶的回復(fù)進(jìn)行遍歷(爬取語料的時(shí)候保留用戶信息),查找文本中相似度比較高的回復(fù),并對(duì)這些回復(fù)進(jìn)行標(biāo)記。計(jì)算語句的相似度主要有基于相同詞的方法、基于向量空間的方法和基于局部敏感哈希(LSH)的方法[19]。筆者使用Simhash[20]來查找重復(fù)回復(fù),它是一種典型的基于局部敏感哈希的算法,計(jì)算效率較高,更適合處理大規(guī)模文本。對(duì)于每個(gè)用戶的所有發(fā)言,使用Simhash計(jì)算它們的哈希值,然后遍歷,尋找相似度高于一定閾值的發(fā)言,如果這些彼此相似的發(fā)言數(shù)量大于這個(gè)閾值,則標(biāo)記為垃圾回復(fù)。需要注意的是,在這里尋找相似回復(fù)的范圍是一個(gè)用戶的所有回復(fù),而不是所有用戶,因?yàn)樵谝粋€(gè)帖子中,可能會(huì)出現(xiàn)多個(gè)用戶因?yàn)楣缠Q等原因發(fā)出相似的發(fā)言,而這些發(fā)言并不一定是垃圾回復(fù)。
3.1.1 數(shù)據(jù)采集
為了驗(yàn)證BBS-LDA的主題挖掘能力,筆者爬取了天涯論壇的百姓聲音版塊的帖子作為實(shí)驗(yàn)數(shù)據(jù)。同一個(gè)版塊的不同主題可能會(huì)含有很多共用詞語,這樣的數(shù)據(jù)能夠很好地區(qū)分不同主題模型對(duì)于挖掘相同版塊近似主題的能力。筆者爬取了2018年1—6月的所有帖子,爬取的內(nèi)容見表2。
表2 爬蟲爬取的內(nèi)容Table 2 Content we crawl through the crawler
3.1.2 數(shù)據(jù)預(yù)處理
首先,對(duì)文本進(jìn)行分詞。中文分詞主要有基于詞典匹配[21]的方法和基于統(tǒng)計(jì)的方法。筆者使用了開源的Jieba分詞,它結(jié)合了詞典和隱馬爾科夫模型,分詞準(zhǔn)確度較高。分詞后根據(jù)詞的詞性保留動(dòng)詞、名詞、形容詞等重要詞性的詞,刪除了數(shù)詞、介詞、量詞等不包含語義信息的詞。
分詞后對(duì)詞語進(jìn)行去停用詞操作。停用詞是一些對(duì)語義沒幫助的詞。對(duì)于中文,現(xiàn)在已經(jīng)有比較全的停用詞庫,比如“哈工大停用詞詞庫”“百度停用詞表”,筆者對(duì)這些停用詞庫進(jìn)行了整合,并做了去重的工作。
之后,使用2.4節(jié)的方法進(jìn)行垃圾回復(fù)的標(biāo)記。對(duì)長(zhǎng)度低于10的回復(fù)分詞之后進(jìn)行了統(tǒng)計(jì),高頻詞見表3(只列出前8項(xiàng))。
表3 短回復(fù)高頻詞列表Table 3 High frequency word list of short response
從表3中可以憑經(jīng)驗(yàn)分辨出哪些詞大概率是水貼,哪些詞和板塊的大背景切合。經(jīng)過篩選,把腐敗、貪官等詞移除,構(gòu)建出一個(gè)詞典,根據(jù)這個(gè)詞典把所有大概率可能是水帖的短回復(fù)做好標(biāo)記。隨后,通過Simhash找到每個(gè)用戶發(fā)表的相似帖子,把重復(fù)數(shù)高于5的重復(fù)帖子標(biāo)記為無意義回復(fù)。最后,統(tǒng)計(jì)各個(gè)詞語的詞頻,把低于5的低頻詞刪除,去除低頻詞有助于提高主題模型的效率。預(yù)處理之后數(shù)據(jù)的統(tǒng)計(jì)信息見表4,以下實(shí)驗(yàn)都是基于這些數(shù)據(jù)完成的。
表4 數(shù)據(jù)的統(tǒng)計(jì)信息Table 4 Data statistics
本次實(shí)驗(yàn)將BBS-LDA和下面兩種主題模型進(jìn)行對(duì)比。模型所用的語料相同,均為上述處理后的語料。不過不同模型對(duì)應(yīng)的輸入不同,所以對(duì)于不同模型,需要在語料格式上做一些改動(dòng)。
1) LDA:原始的LDA,因?yàn)長(zhǎng)DA對(duì)于短文本效果不太好,這里把每個(gè)帖子的正文和回復(fù)拼成一起,當(dāng)成一個(gè)單獨(dú)的文檔來進(jìn)行實(shí)驗(yàn)。
2) Twitter-LDA:原始的Twitter-LDA是以用戶作為聚簇,把每個(gè)用戶的發(fā)言作為一個(gè)文檔,用戶發(fā)的每條Tweet中的所有詞主題相同。這里以帖子作為聚簇,每個(gè)帖子的所有回復(fù)作為一個(gè)文檔,每條回復(fù)中的所有詞主題相同。
主題模型的效果一般可以使用困惑度(Perplexity)來進(jìn)行評(píng)估。困惑度常用來度量概率圖模型的性能,它的值代表著預(yù)測(cè)數(shù)據(jù)時(shí)的不確定度。困惑度越小,就代表著模型的效果越好。困惑度的計(jì)算公式為
(23)
式中:Nd代表第d個(gè)文檔所包含的詞數(shù);p(wd)代表文檔d生成的概率。
隨著迭代次數(shù)的增加,不同主題模型在同一個(gè)測(cè)試數(shù)據(jù)集上的困惑度變化如圖2所示。
圖2 不同模型困惑度隨迭代次數(shù)的變化Fig.2 The perplexity of different models changes with the number of iterations
從圖2中可以看到:3 個(gè)模型隨著迭代次數(shù)的增加,困惑度都逐漸降低,迭代500 次之后模型已經(jīng)收斂,BBS-LDA的困惑度比Twitter-LDA和原始LDA的困惑度都低,說明BBS-LDA有更好的泛化能力。
主題相似度可以度量主題模型對(duì)于不同主題的區(qū)分能力,它也是主題模型的一個(gè)常用的評(píng)估手段。一般用KL散度來度量主題間的相似程度。KL距離越大,代表兩個(gè)主題間的相似度越小,不同主題間的區(qū)分度更加好。
主題k1和k2的KL距離的計(jì)算公式為
(24)
因?yàn)镵L距離不是對(duì)稱的,所以這里計(jì)算兩個(gè)主題之間距離的時(shí)候?qū)烧叩腒L距離取平均,即
Distance (k1,k2)=(KL(k1,k2)+
KL(k2,k1))/2
(25)
在模型收斂之后分別計(jì)算模型的兩兩主題間的平均距離,結(jié)果如表5所示。
表5 不同模型主題間的平均距離Table 5 Average distance between different model topics
最后,直觀地對(duì)3 個(gè)主題模型挖掘的主題進(jìn)行對(duì)比(隨機(jī)抽取了5 個(gè)主題),結(jié)果如表6所示。
表6 不同主題模型關(guān)鍵字對(duì)比Table 6 Keyword comparison between different topic models
從表6可以看到:3 個(gè)模型都能夠比較好地挖掘文章的主題。其中,BBS-LDA因?yàn)榫C合考慮了論壇的結(jié)構(gòu)特性和用戶的信息,關(guān)鍵詞質(zhì)量最高。同時(shí),BBS-LDA還在一定程度上識(shí)別了背景詞和一些無意義的回復(fù),這個(gè)是很有意義的。
論壇是人們獲取和發(fā)布信息的主要途徑之一,挖掘論壇的文本信息對(duì)于輿情監(jiān)控、市場(chǎng)調(diào)研等有著重要的意義。根據(jù)論壇的一系列特點(diǎn),基于LDA提出了新的BBS-LDA主題模型,并通過Gibbs sampling對(duì)模型進(jìn)行推導(dǎo)。經(jīng)過實(shí)際論壇語料試驗(yàn)表明:BBS-LDA不僅具有良好的主題挖掘能力,還能夠在一定程度上識(shí)別文章的無意義回復(fù)和背景詞。下一步工作將研究如何把時(shí)間和BBS-LDA結(jié)合在一起,讓該主題模型能挖掘出更多信息,更實(shí)用。