徐菲菲, 陳賽紅
(上海電力大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院, 上海 200090)
在網(wǎng)絡(luò)日漸發(fā)達(dá)的背景下,各式各樣的信息交流平臺隨之出現(xiàn),比如微博、微信朋友圈、今日頭條、網(wǎng)易、騰訊等,人們可以通過這些網(wǎng)絡(luò)平臺了解各類主題信息,并發(fā)表自己的觀點(diǎn)。這些大量的信息數(shù)據(jù)以文本形式為主,人們急需計算機(jī)機(jī)器對這些龐雜的文本信息進(jìn)行高效分析。在此背景下,自然語言處理研究熱潮應(yīng)運(yùn)而生。聚類算法無疑可作為處理龐雜信息所帶來的問題的有效手段。與文本聚類相比,文本分類需要大量的訓(xùn)練集進(jìn)行訓(xùn)練,并在分析訓(xùn)練集內(nèi)容的基礎(chǔ)上根據(jù)已有的類別給測試集分配一個或多個類別。文本聚類則依據(jù)文本內(nèi)容和結(jié)構(gòu)關(guān)系確定該文本屬于哪個類別,該過程稱為文本聚類中的文本分析和文本標(biāo)記。文本分析和文本標(biāo)記有利于挖掘文本內(nèi)部信息,可以作為一種消除歧義的文本預(yù)處理步驟[1]。文本聚類算法可以節(jié)省檢索成本,協(xié)助用戶得到感興趣的信息,進(jìn)而提高文本檢索的精度和效率[2]。文本聚類可用于圖書館服務(wù)的文檔自動整理[3-4],也可用于發(fā)現(xiàn)并跟蹤網(wǎng)絡(luò)熱點(diǎn)話題,診斷出網(wǎng)絡(luò)中存在的病毒,對加強(qiáng)網(wǎng)絡(luò)安全具有重要意義[5]。
文本主題檢測旨在不浪費(fèi)人工成本的前提下獲取文本闡述的核心主題、多個主題間的關(guān)系以及界定主題的外延等。它是很多文本處理領(lǐng)域中的重要組成部分,比如文本理解、語言建模、信息檢索、文本分類和聚類等[6]。當(dāng)前的研究工作大多集中于英文文本,原因在于兩個方面:一是計算機(jī)對于英文文本的研究處理先于中文文本;二是目前英文數(shù)據(jù)語料庫相對完整且易于采集。中英文存在著較大的差異,這導(dǎo)致中文文本研究方法無法直接引用英文文本研究中成熟的理論知識和關(guān)鍵技術(shù)。本文系統(tǒng)整理了當(dāng)前中文文本主題檢測方法,尤其關(guān)注主題模型、聚類方法及其存在的缺陷,并提出了未來的研究方向。
在國外,學(xué)者們對話題檢測的研究已經(jīng)取得了很多成就。文獻(xiàn)[7]提出了一種嶄新的近似算法,將其運(yùn)用于話題檢測的實(shí)際問題中,并利用分階段算法對其進(jìn)行了分析。文獻(xiàn)[8]為了改善實(shí)驗(yàn)過程中的運(yùn)行速度,在指標(biāo)Precision(準(zhǔn)確率)的基礎(chǔ)上提出了一種新穎的挖掘話題的算法。文獻(xiàn)[9-10]對相關(guān)檢測算法進(jìn)行了優(yōu)化改進(jìn),并運(yùn)用博客上的網(wǎng)絡(luò)文章進(jìn)行熱點(diǎn)話題的挖掘。文獻(xiàn)[11]第一次將實(shí)時性列入識別話題算法的評判指標(biāo),對話題的實(shí)時性作出了相關(guān)的實(shí)驗(yàn)證明。該評判指標(biāo)后期得到了廣泛應(yīng)用。文獻(xiàn)[12]研究了實(shí)時Twitter流的事件檢測技術(shù),將Twitter和微博等各種社交網(wǎng)絡(luò)的文章用于話題檢測。文獻(xiàn)[13]將關(guān)聯(lián)性強(qiáng)的節(jié)點(diǎn)作為話題詞,并將話題詞作為關(guān)鍵詞挖掘出了網(wǎng)絡(luò)平臺上的相關(guān)文章。文獻(xiàn)[14]提出了基于改進(jìn)的Single-Pass聚類(單遍聚類)的MC-TSP算法發(fā)掘話題,并采用詞位置信息TF-IWF-IDF方法表示博客文章內(nèi)容向量,最后在博客數(shù)據(jù)集上驗(yàn)證了改進(jìn)算法的準(zhǔn)確性和效率。文獻(xiàn)[15]提出了基于動態(tài)概念劃分的問答系統(tǒng)的話題追蹤與分析的算法,并在文本語料庫上證明了該算法適用于動態(tài)文本數(shù)據(jù)流。文獻(xiàn)[16]采用有監(jiān)督學(xué)習(xí)算法抽取文本關(guān)鍵字,將關(guān)鍵字作為結(jié)點(diǎn)構(gòu)建詞圖,利用圖的分割技術(shù)將圖分成子圖并從子圖中抽取話題詞,再按照文本的話題詞對文章進(jìn)行聚類,最后插入Story Forest系統(tǒng)中。文獻(xiàn)[17]利用Twitter流數(shù)據(jù)在線檢測話題子事件,使用卡爾曼濾波器、高斯過程和概率主成分分析3種統(tǒng)計方法,將話題子事件識別過程定義為異常檢測問題。文獻(xiàn)[18]利用Twitter流的時間順序并考慮其序列性質(zhì),將社交媒體流中的話題子事件檢測問題構(gòu)造為序列標(biāo)記任務(wù),其本質(zhì)上是根據(jù)上下文內(nèi)容對線性序列中每個元素進(jìn)行分類。
近幾年,國內(nèi)學(xué)者也進(jìn)行了相關(guān)研究。李倩[19]在原始單遍聚類算法的基礎(chǔ)上提出了相應(yīng)的改進(jìn)算法,在微博數(shù)據(jù)集上進(jìn)行話題識別。萬越等人[20]提出一種基于數(shù)據(jù)時序性的動態(tài)增量模型,在模型中將用戶的行為看成特征,以此檢測微博中突發(fā)事件的解決方案。李新盼[21]將改進(jìn)后的Single-Pass聚類(單遍聚類)與傳統(tǒng)的層次凝聚聚類算法相結(jié)合,在微博數(shù)據(jù)集上驗(yàn)證了該算法的可行性。林丹等人[22]提出了一種新型算法——文本關(guān)聯(lián)算法,利用傳統(tǒng)的文檔主題生成模型(LDA模型)[23]挖掘輿論關(guān)心的熱點(diǎn),對LDA模型得到的話題詞進(jìn)行聚類分析,并對實(shí)驗(yàn)結(jié)果提出了優(yōu)化調(diào)整的想法。周楠等人[24]提出了一種基于語言模型的PLSA算法,經(jīng)過Wiki數(shù)據(jù)集上的實(shí)驗(yàn)證明,所提出的算法比基線算法更有優(yōu)越性。王圣[25]提出了一種基于細(xì)粒度文本的話題檢測算法,在大規(guī)模的網(wǎng)絡(luò)數(shù)據(jù)中篩選出需要的話題信息并獲取其他話題信息,以此掌握所有次話題分布情況。譚夢婕等人[26]在新聞數(shù)據(jù)集上提出了一種基于時間切片的文本數(shù)據(jù)流算法,依據(jù)前后文本的句子含義提取文本關(guān)鍵詞,利用K近鄰算法和層次凝聚聚類算法獲取話題簇。張瑞琦[27]利用關(guān)鍵詞作為文本特征進(jìn)行聚類分析,進(jìn)一步生成了排名前N名的熱點(diǎn)話題。陳笑蓉等人[28]提出了一種基于距離的文本聚類重構(gòu)算法,對非正常和相似集群分別進(jìn)行調(diào)整及合并,最后用實(shí)驗(yàn)證明了算法的合理性。田詩宵等人[29]在二維主成分分析法的基礎(chǔ)上提出了一種適用于文本聚類的算法,并在海量數(shù)據(jù)集上實(shí)現(xiàn)文本聚類的并行處理。周煒翔等人[30]建立了IDLDA模型,將隸屬于同個話題的內(nèi)容歸類至同一個集合,利用改進(jìn)的字符串編輯距離方法建立模型以獲取內(nèi)容摘要和核心特征,然后將核心特征詞變成話題短語,最后結(jié)合短語和摘要來闡述文本話題。
綜合國內(nèi)外研究現(xiàn)狀,很多研究人員在中文長文本或者短文本進(jìn)行主題檢測,并取得了相應(yīng)的成果,但在中文長短文本共存的形式下,還有很大的研究空間,值得進(jìn)一步探索。
(1) 文本采集與清洗。利用Python中Requests,Selenium,BeautifulSoup,Scrapy等爬蟲工具將所需要的文本信息爬取到目標(biāo)文件中。爬取到的內(nèi)容中可能包含干擾信息,對文本內(nèi)容沒有任何解釋作用,如鏈接等,類似于這種干擾信息被稱為噪聲。因此,在清洗階段需要使用相關(guān)技術(shù)刪除噪聲內(nèi)容,只保留有用信息,如發(fā)布信息、文本標(biāo)題和正文等。
(2) 文本分詞。與英文相比,中文中兩個詞之間有間隔,相應(yīng)地,這兩者的處理方式也存在著不同。英文文本在該階段稱為詞性還原,而中文文本在該階段稱為文本分詞。為了讓機(jī)器能夠識別中文詞語,必須對文本進(jìn)行分詞預(yù)處理。中文分詞方法事先設(shè)置一個詞典,然后對照文本與詞典,最后實(shí)現(xiàn)文本分詞。Jieba,Pkuseg,LTP,THULAC,SnowNLP,CoreNLP,HanLP等是當(dāng)今較為主流的分詞庫。
(3) 去停用詞。文本數(shù)據(jù)集通常會含有沒有表達(dá)意義但出現(xiàn)的頻率較高的詞語,如嗯、哦、么等。這些高頻率詞的出現(xiàn)會增加文本間的相似度,給后續(xù)的發(fā)掘主題關(guān)鍵詞和文本聚類帶來一定的困難。因此,該階段需借助停用詞表進(jìn)行刪除操作。停用詞表通常包含實(shí)詞和虛詞兩類,實(shí)詞在句子中有實(shí)在意義且能獨(dú)立充當(dāng)句子成分;虛詞在句子中沒有任何的表示意義且不能充當(dāng)句子成分,如介詞、副詞、連詞等。
經(jīng)過上述過程之后,文本集形成了碎片化的文本信息,但是計算機(jī)無法識別這些文本信息,因此人們需要作進(jìn)一步的處理使得這些信息能夠讓計算機(jī)識別。構(gòu)造文本表示模型的目的是將一個無規(guī)律無序的文本結(jié)構(gòu)轉(zhuǎn)換為一個有規(guī)律的結(jié)構(gòu)模型,并從文本主題、文本語義結(jié)構(gòu)等方面表示文本內(nèi)容,其在文本處理領(lǐng)域中占據(jù)重要地位[31]。常用的文本表示模型主要有向量空間模型、統(tǒng)計語言模型和主題模型,前兩者主要研究主題檢測過程,未充分考慮文本的語義,影響了主題檢測的準(zhǔn)確性。隨著主題模型研究的深入,很多研究人員聚焦于主題模型以實(shí)現(xiàn)主題建模,主要是通過主題語義信息,將文檔映射至主題語義空間,從而生成語義特征表示[32]。
2.2.1 向量空間模型
向量空間模型(Vector Space Model,VSM)是將文本轉(zhuǎn)換為空間向量運(yùn)算模式,通過向量在空間上的相似度表示詞語間的相似度,其主要思想是將某篇文章通過詞袋模型表示為很多獨(dú)立的詞。這些詞通常保存至詞典D中,因而可將其轉(zhuǎn)換為N維向量(N表示詞典的大小)[33]。D中詞語數(shù)量值作為向量的維度,維度的大小通常表示某個特征詞在文檔中的權(quán)重,權(quán)重的大小反映了該特征詞在文檔中的重要性。向量空間模型中特征向量可表示為
V(d)=(ω1,t1(ω);…;ωm,tm(ω))
(1)
式中:ωm——詞典中第m個詞;
tm(ω)——ωm的權(quán)重,即ωm在文檔中的重要程度。
目前TF-IDF方法被視為具有一種最常用的對詞語權(quán)重進(jìn)行計算的研究形式。該方法可通過計算tm(ω)提取文本特征。
TF-IDF,也稱為詞頻-逆文檔頻率,是一種用于數(shù)據(jù)挖掘的統(tǒng)計學(xué)方法。TF-IDF由TF和IDF共同決定,即為TF-IDF=TF×IDF。其含義為:某詞W在某篇文章中出現(xiàn)得很頻繁,但在數(shù)據(jù)集的其余部分中出現(xiàn)的次數(shù)較少,則說明該詞在文本聚類中的重要程度較大。
(2)
(3)
式中:TF——某個詞語W在該篇文章中出現(xiàn)的次數(shù),即頻率;
IDF——度量詞W的重要性程度,由總文件數(shù)目除以含詞W的文件數(shù)目,再取10的對數(shù)即可得到。
2.2.2 主題模型
VSM模型雖然思想簡單易懂,但忽略了詞語間的語義關(guān)系,在處理大規(guī)模文本數(shù)據(jù)時,詞典D的大小會隨著數(shù)據(jù)量的增加而增加,從而擴(kuò)大文本向量的維度,給文本挖掘帶來諸多不便[34]。
主題模型是基于無監(jiān)督學(xué)習(xí)形式的具有潛在語義結(jié)構(gòu)實(shí)施文本聚類的統(tǒng)計學(xué)模型[35]。LDA(Latent Dirichlet Allocation)是一種文檔主題生成模型,也稱為三層貝葉斯概率模型[23],通過文檔-詞共現(xiàn)來發(fā)現(xiàn)話題,并在文本話題檢測領(lǐng)域有不錯的效果[36-37]。其過程如圖1所示。
圖1 LDA模型
針對LDA模型在處理短文本中都會面臨特征稀疏的缺點(diǎn)[38],YAN X H等人[39]提出了BTM(Biterm Topic Model)模型,如圖2所示。
圖2 BTM模型
該模型可以利用網(wǎng)絡(luò)語料級別的詞共現(xiàn)模式,通過聚類算法來解決上述文本稀疏的缺點(diǎn),將語料看作是一組話題的混合,每個二元詞組都來自于某個話題。計算一個二元詞組隸屬于某個話題的概率是由二元詞組中兩個詞共同決定的。這樣,不僅在微博短文本上具有明顯優(yōu)勢[40-41],而且在其他各類文本處理中也優(yōu)于其他主題模型[30]。
記Mult()為多項(xiàng)分布,Dir()為Dirichlet分布,具體操作步驟如下。
(1) 對于每個主題Z:計算特定主題的詞分布φZ~Dir(β);計算整個語料庫的主題分布θ~Dir(α)。
(2) 對詞對集合B中每個詞對b:計算主題分布Z~Multi(θ);繪制兩個詞Wp,Wq~Mult(φZ)。
按照上述步驟,一個詞對b的聯(lián)合概率可表示為
(4)
因此,整個語料庫的可能性概率計算式可表示為
(5)
從上述步驟可以看出,BTM模型將單詞共現(xiàn)(詞對b)模式作為傳達(dá)主題語義的單元。與LDA中單個單詞的出現(xiàn)相比,詞對可以更好地揭示主題,從而增強(qiáng)主題的學(xué)習(xí)能力。 為了更好地體現(xiàn)BTM模型的獨(dú)特性,本文對比了LDA模型(圖1)和BTM模型(圖2)。圖1中,LDA模型首先計算文檔級主題分布θ,然后迭代采樣文檔中每個單詞Wp的主題分布Z。由于每個單詞的主題分布Z依賴于同一文檔中的其他單詞,因此LDA在推斷單詞主題分布時過分依賴本地觀察,同時損害了主題分布θ的學(xué)習(xí)。與LDA不同,BTM模型通過從語料庫級主題分布θ中計算主題分布Z,可同時捕獲文檔中的多個主題梯度。由此可以看出,BTM模型不僅克服了LDA的過分依賴問題,而且還保留詞與詞之間的關(guān)聯(lián)性。
由于文本數(shù)據(jù)集通常有數(shù)萬甚至數(shù)十萬級別的詞組,因此會造成向量維數(shù)急劇增加的局面,相應(yīng)地,計算機(jī)運(yùn)算十分困難,會消耗較大的內(nèi)存空間。為了降低問題的規(guī)模,同時提高算法的效率,算法應(yīng)該選擇最具有代表性的特征項(xiàng)。常用的特征選擇方法有文檔頻率、信息增益、卡方校驗(yàn)、互信息等[39]。
經(jīng)過上述步驟后,下一步要處理的是文本主題的跟蹤并實(shí)現(xiàn)文本聚類。在聚類算法中,文本相似度計算廣泛應(yīng)用于主題檢測等方面。因此,在各種不同的情況和任務(wù)中,有不同的文本相似度計算,主要有余弦相似度、歐式距離等[42]。
設(shè)di和dj表示兩個文本矢量,di=(ωi1,ωi2,ωi3,…,ωin),dj=(ωj1,ωj2,ωj3,…,ωjn)。常用相似度計算公式如下。
(1) 歐式距離
(6)
(2) 余弦相似度
(7)
式中:n——文本向量的維度;
ωik——第i個向量第k維的大小;
ωjk——第j個向量第k維的大小。
聚類算法作為一種無監(jiān)督的機(jī)器學(xué)習(xí)方法,不需要大量的訓(xùn)練集,因此具有較高的靈活性。目前,聚類已成為一種對文本進(jìn)行智能推薦、摘要和導(dǎo)航的重要手段,被很多研究人員所關(guān)注[43]。文本聚類主要依據(jù):相同類別的文本具有更大的文本相似度,不同類型的文本具有較小的文本相似度[44]?;趧澐值木垲愃惴ā⒒趯哟蔚木垲愃惴ê突诿芏鹊木垲愃惴ㄊ潜容^常用的3種聚類算法。
2.5.1 基于劃分的聚類算法
基于劃分的聚類算法的代表性算法是K均值聚類(K-Means聚類)。其基本思想是:首先隨機(jī)選取K個點(diǎn)作為初始聚類中心,然后根據(jù)歐式距離計算公式,將距離聚類中心最近的數(shù)據(jù)對象,劃分為一個簇,以此迭代,最后根據(jù)各類數(shù)據(jù)點(diǎn)平均值更新各簇的聚類中心,直至聚類中心不再變化。因此,該算法原理簡單易懂。通過實(shí)際證明,對大規(guī)模的數(shù)據(jù)集,該聚類算法具有高效性,但是該算法對初始點(diǎn)的選取較為敏感,需要人為設(shè)定K值,結(jié)果易陷于局部最優(yōu),同時該算法容易遭到異樣點(diǎn)的困擾而構(gòu)成重大偏差[45]。
2.5.2 基于層次的聚類算法
層次聚類(Hierarchical Clustering)依據(jù)所有數(shù)據(jù)點(diǎn)間的相似度構(gòu)造一棵具備不同層次的嵌套聚類樹。構(gòu)造嵌套聚類樹的方法有凝聚層次聚類(自下向上)和分裂層次聚類(自上向下)兩種。凝聚層次聚類算法依據(jù)某兩類數(shù)據(jù)點(diǎn)的相似度,兼并最為類似的兩個數(shù)據(jù)點(diǎn),并重復(fù)上述步驟直至滿足終止條件。簡言之,該算法是通過計算每個類別中數(shù)據(jù)點(diǎn)與所有數(shù)據(jù)點(diǎn)之間的間隔來確定它們間的相似性,距離越小,相似度越高,同時,兼并間隔最近的兩個類別或者兩個數(shù)據(jù)點(diǎn),最后生成一棵聚類樹[46]。分裂層次聚類首先將所有數(shù)據(jù)點(diǎn)視為一個簇,然后根據(jù)相似度計算方法分為兩個簇,如此反復(fù),直至各個數(shù)據(jù)自成一簇或者達(dá)到終止條件,最后建立一棵具有自上向下結(jié)構(gòu)的層次聚類樹。
由此可知,基于層次的聚類算法易發(fā)現(xiàn)各個形狀的簇,適用于任何模式的相似度和間隔的表示方式,具備較高的靈活性;但該類算法的終止條件沒有明確的規(guī)定,會引起算法的無限循環(huán),不能及時終止。此外,該算法無法處理大規(guī)模的數(shù)據(jù)或者實(shí)時動態(tài)數(shù)據(jù)集。常見的層次聚類算法有BIRCH算法、CURE算法、CHAMELEON算法等。
2.5.3 基于密度的聚類算法
DBSCAN算法是基于密度聚類算法的典型代表,當(dāng)數(shù)據(jù)中某個區(qū)域的密度滿足某一前提時,將該區(qū)域劃分為一個簇,并在空間數(shù)據(jù)庫有一定噪聲的條件下,發(fā)現(xiàn)任何形狀的簇,簇的收縮性較強(qiáng),最后得到的簇中數(shù)據(jù)點(diǎn)是密度相連的最大集合[47]。DBSCAN算法首先設(shè)定間隔閾值和密度閾值,目的是通過兩個閾值來標(biāo)注所有的數(shù)據(jù)對象;其次隨機(jī)選擇一個種子,該種子不屬于任何一個類,找出與該種子密度可達(dá)的所有數(shù)據(jù)點(diǎn)集合(該集合可視為聚類的一個簇);重復(fù)上述步驟,直至所有數(shù)據(jù)分析對象都有其相應(yīng)的類別。若由距離閾值確定的數(shù)據(jù)不在任何一個核心數(shù)據(jù)對象周圍,則將該數(shù)據(jù)視為噪聲點(diǎn)進(jìn)行消除。
由此可看出,DBSCAN算法可自動確定聚類數(shù)目,適用于任何形狀的簇,但是對于大型的數(shù)據(jù)集,需消耗較大的內(nèi)存;同時,文本數(shù)據(jù)密度不均勻或者類別間的距離相差太大,都會影響聚類結(jié)果。
在未來,研究工作可以從3個方面進(jìn)行拓展:
(1) 調(diào)整聚類算法的參數(shù),直至選擇一個最優(yōu)參數(shù)或者將聚類算法與優(yōu)化算法相結(jié)合;
(2) 探索主題模型的優(yōu)化方法,以挖掘出更有說服力的主題詞;
(3) 進(jìn)一步研究基于長文本和短文本共存的話題檢測,如一篇新聞文章會有多個評論,新聞文章屬于長文本,評論屬于短文本,從短文本挖掘出主題補(bǔ)充說明長文本的主題,以確保整個話題更連貫,更全面。
本文梳理了主題檢測的國內(nèi)外研究現(xiàn)狀,詳細(xì)分析了主題檢測的關(guān)鍵步驟和聚類算法的不足之處,并提出了未來的研究方向,以期為中文文本主題聚類算法的進(jìn)一步發(fā)展提供參考。