李菲菲,王移芝
(北京交通大學 計算機與信息技術學院,北京 100044)
隨著移動互聯(lián)網(wǎng)的快速發(fā)展,網(wǎng)絡信息量特別是文本信息呈指數(shù)增長,因此如何精準有效地挖掘、組織和利用海量文本背后的有用信息成為一個熱門話題。文本聚類技術作為自然語言處理(natural language processing,NLP)的預處理步驟,對文本進一步分析和處理有著重要影響,比如信息檢索、生成文檔摘要等,在文本聚類方面,主題聚類[1]方法比傳統(tǒng)方法更有效。于是,隱含狄利克雷分布(latent Dirichlet allocation,LDA)在挖掘文檔中的隱含主題方面得到了越來越多的應用。
LDA[2]主題模型在2003年由普林斯頓大學的David M.Blei等提出,該模型是一種文本建模方法,能夠?qū)⒚科臋n的主題以概率分布的形式給出,用來識別大規(guī)模文本或者視頻中隱含的主題信息,在信息檢索、文本分類等領域應用非常廣泛。目前普遍認為應用基于吉布斯采樣[3]的LDA的最大問題是無法確定最優(yōu)主題數(shù)目,然而主題數(shù)目的選取直接影響到LDA主題模型的性能,導致文檔分布表示存在精度誤差。
在大規(guī)模語料庫中,文檔集的聚類簇數(shù)通常與句子集中隱藏的主題數(shù)目一致,前者作為后者的先驗知識。根據(jù)頻繁詞網(wǎng)絡[4]隱含社區(qū)個數(shù)與文檔集隱含主題數(shù)相一致的特點,文中提出了一種以頻繁詞集網(wǎng)絡的社區(qū)劃分個數(shù)用來指定LDA主題模型主題輸入個數(shù)的方法,使得指定主題數(shù)更加接近文檔分布表征的隱含主題數(shù)目。
大量研究表明,LDA主題抽取效果[5]與潛在主題的數(shù)量直接相關,主題抽取的結(jié)果對主題數(shù)目非常敏感。在此基礎上,國內(nèi)外大量學者展開了相關研究,通過若干方法確定最優(yōu)主題數(shù)目,常用的有以下幾種方法:
(1)Griffiths等提出應用貝葉斯模型[6]確定最優(yōu)主題結(jié)構的方法[7]。該方法依賴于吉布斯采樣的過程,但是計算非常耗時,在實際應用中效果不佳。
(2)層次狄利克雷過程(hierarchical Dirichlet processes,HDP)[8]將主題數(shù)目進行非參數(shù)化處理,它與LDA主題模型的差別在于:該模型可以通過訓練得到最優(yōu)主題個數(shù),并不需要其他參數(shù)。HDP雖然通過狄利克雷過程的非參數(shù)特征解決了LDA中主題數(shù)目的選取問題[9],但是該方法要求為同一個集合同時建立兩個模型:HDP模型和LDA模型;并且算法時間復雜性較高,在具體應用中效率不高。
通過分析以上方法,筆者認為針對LDA最優(yōu)主題數(shù)目的確定,主要存在時間復雜性較高、效率低等問題?;诖耍岢鲆环N以頻繁詞網(wǎng)絡的社區(qū)劃分結(jié)果作為文檔聚類簇數(shù),并以該簇數(shù)確定LDA主題個數(shù)K的方法。
LDA主題模型是一種基于EM算法的經(jīng)典語義分析模型,能夠?qū)Ω呔S文檔降維并提取隱含語義信息。它以詞袋(BOW)模型為基礎,這種模型將文檔轉(zhuǎn)化為一種詞向量,有效地將復雜的語義知識轉(zhuǎn)變?yōu)橐子诶斫獾臄?shù)字信息。并且該模型的詞袋方法并未考慮到詞語之間的次序關系,這就簡化了模型,使得問題變得簡單,也為后人改進LDA模型提供了思路。LDA主題模型在自然語言處理領域中是一種能夠進行文本語義挖掘的統(tǒng)計模型[10]。它可以用來發(fā)現(xiàn)文檔隱藏的主題,將詞項空間表達的文檔約簡為主題空間的低維表示,并實現(xiàn)信息檢索、文本分類等。該模型是一種可以隨機生成可觀測數(shù)據(jù)的文本建模方法,首先拆解文檔為詞的集合,通過計算得到文檔在主題上的低維向量分布,并根據(jù)主題分布對文檔分類或計算主題相關性等。關于語料庫中的每一篇文章,LDA定義了以下生成過程:
(1)對語料庫中的每篇文檔,從主題分布中抽取一個主題;
(2)從步驟1中被抽到的主題所對應的單詞分布中提取一個單詞;
(3)重復步驟1和2,直到覆蓋所有單詞。
LDA代表的概率模型為:
(1)
通過對LDA主題模型的深入討論可知,LDA模型主要是針對特定語料庫,并人工指定語料級別參數(shù)α和β,通過一種半監(jiān)督學習來確定模型,并根據(jù)模型生成文檔。其中α和β所表示的詳細信息如下:
α:分布p(θ)需要一個向量參數(shù),即狄利克雷分布的參數(shù),用于生成一個主題向量;
β:每個主題對應的單詞概率分布矩陣表示為p(w|z)。
由于主題個數(shù)能夠影響到LDA主題模型的主題抽取查準率、查全率以及主題獨立性,如果直接指定主題個數(shù),則可能使得LDA不能得到較好的聚類效果,使其在某些領域的應用效果往往差強人意。所以,需要首先確定最優(yōu)主題個數(shù)K。
文中方法以頻繁詞網(wǎng)絡[11]為基礎,其基本思想為:在大規(guī)模文檔集中,如果兩個詞(例如蘋果與喬布斯、)頻繁出現(xiàn)在同一篇文檔或同一個句子中,則認為這兩個詞是語義相關的。共同出現(xiàn)的一組詞,通常會被用來表述同一個主題。構建頻繁詞網(wǎng)絡可分為三個步驟:數(shù)據(jù)預處理[12]、頻繁詞集挖掘、構建頻繁詞網(wǎng)絡。數(shù)據(jù)預處理部分主要對文章進行分詞[13],并過濾掉一些停用詞和常見的噪音,利用頻繁詞集挖掘算法挖掘文本中的頻繁詞集,然后利用頻繁詞集中詞的共現(xiàn)關系構建詞共現(xiàn)網(wǎng)絡[14]。最后采用社區(qū)發(fā)現(xiàn)算法對詞共現(xiàn)網(wǎng)絡進行社區(qū)劃分[15],劃分出的每一個社區(qū)就是一個主題。具體過程如下文所述。
1.4.1 數(shù)據(jù)預處理
文檔數(shù)據(jù)的預處理包括對文本分詞及過濾停用詞、噪聲等[16]。
(1)分詞。
中文語義理解中,詞是最小的語義表達單位。但是中文句子與英語或其他語言有所不同,單詞與單詞之間并沒有分隔符,所以中文分詞相對比較困難,因此,分詞是文本處理中的關鍵一步。分詞的方法有很多種,中文分詞工具也有很多種,比如中科院的NLPIR/ICTCLAS漢語分詞系統(tǒng)、Java開源工具Jcseg等等。
文中使用的是經(jīng)典漢語分詞工具(開源)IKAnalyzer。IKAnalyzer結(jié)合詞典分詞和文法分析算法的中文詞組組件,對中文分詞支持較好。它具有以下特性:分詞速度較快,對大規(guī)模文本分詞具有重要意義;可以對多種格式的數(shù)據(jù)進行處理(中文、英文、數(shù)字、日期等);支持用戶詞典擴展定義。
(2)過濾停用詞、噪聲。
停用詞是指在自然語言處理中具有一定作用,但是又沒有什么實際意義的詞語。這些詞通常以較高的頻率出現(xiàn),從而影響文本的處理。此外,文本中經(jīng)常會出現(xiàn)一些高頻詞,如“了”、“的”、“是”、“也”等,這些高頻詞會對文本造成強烈的干擾,因此也應該和停用詞一塊兒過濾掉。文中采用搜狗發(fā)布的停用詞庫作為基本停用詞庫。
1.4.2 挖掘頻繁詞集
頻繁項集是文本挖掘領域內(nèi)一項重要的處理手段。該模型假設,在大規(guī)模的文檔集合中,如果某些詞頻繁出現(xiàn)在同一篇文檔或句子中,則可以近似認為這些詞是語義相關的,并且它們出現(xiàn)的頻次越高,相關程度越高。共同出現(xiàn)的一組詞,通常會用來表述同一個主題。例如,在同一時間段的文本中,“數(shù)學”、“政治”、“英語”、“專業(yè)課”這組詞以較高頻率共同出現(xiàn)在同一篇文章中,包含這四個詞的文本很可能和考研這一主題相關。
文中使用FP-GROWTH算法[17]挖掘k頻繁詞集。在進行頻繁詞集的挖掘時,根據(jù)輸入教育類數(shù)據(jù)的文本數(shù)量來調(diào)整SUP支持度的大小。k為1的頻繁詞集沒有體現(xiàn)出特征詞的共現(xiàn)關系,因此將其忽略,k為2的頻繁詞集包含了大量噪聲,故對教育文本進行觀察時發(fā)現(xiàn),絕大部分文本至少有三個特征詞,因此將k為2的頻繁項集忽略,只保留k大于或等于3的頻繁詞集。
1.4.3 構建頻繁詞共現(xiàn)網(wǎng)絡
利用k(k≥3)頻繁詞集中的共現(xiàn)關系構建網(wǎng)絡,得到基于頻繁詞集的詞共現(xiàn)網(wǎng)絡。社區(qū)(community)是復雜網(wǎng)絡中一種常見的現(xiàn)象,社區(qū)內(nèi)節(jié)點聯(lián)系緊密,社區(qū)間節(jié)點聯(lián)系稀疏。在社交網(wǎng)絡中,社區(qū)表現(xiàn)為一系列具有相似興趣的用戶群體;在科學引文網(wǎng)絡中,社區(qū)表現(xiàn)為描述相似內(nèi)容的引文集合;在生物醫(yī)學網(wǎng)絡中,社區(qū)表現(xiàn)為描述同一病癥的DNA或染色體集合。而在以頻繁詞集為基礎構建的詞共現(xiàn)網(wǎng)絡中,同一社區(qū)內(nèi)的詞,通常描述同一主題,即主題以社區(qū)的結(jié)構出現(xiàn)。
文中對文檔集中的k(k≥3)頻繁詞集構建頻繁詞共現(xiàn)網(wǎng)絡,即當兩個詞出現(xiàn)在同一頻繁詞對時,將這兩個詞量化為圖中的兩個點,并認為這兩個點之間有一條邊。這樣,根據(jù)頻繁詞對構建了文檔集對應的頻繁詞共現(xiàn)網(wǎng)絡。
文中使用基于模塊度[18]的社區(qū)劃分算法(BGLL)[19]對詞共現(xiàn)網(wǎng)絡進行社區(qū)劃分。作為經(jīng)典的社區(qū)劃分算法,BGLL有如下優(yōu)點:
(1)BGLL是一種無監(jiān)督社區(qū)劃分算法,不需要指定社區(qū)數(shù)目;
(2)相對于Fast-Newman[20]等算法,BGLL算法可以處理百萬級節(jié)點。文中以1.4.3生成的頻繁詞共現(xiàn)網(wǎng)絡為基礎,采用BGLL算法對該詞共現(xiàn)網(wǎng)絡進行社區(qū)劃分。
實驗數(shù)據(jù)來源于實驗組網(wǎng)絡抓取,采用網(wǎng)絡爬蟲技術在20余個教育網(wǎng)站上抓取各類教育信息(文章),共計79 463條數(shù)據(jù)。按內(nèi)容完整性、主題性強弱、主題分布是否均勻等原則,篩選出3 318條數(shù)據(jù)作為實驗數(shù)據(jù),其中10%的數(shù)據(jù)集用于測試集評估模型,剩余數(shù)據(jù)用于訓練模型。
通過對文檔集標題、簡介、關鍵詞等數(shù)據(jù)的分析,課題組對3 318條數(shù)據(jù)進行主題打標簽,專家鑒定,共獲得主題22個。
由于課程簡介最能體現(xiàn)出課程的特點,因此以課程簡介作為語料庫進行實驗。首先進行頻繁詞集的挖掘,選取最小支持度MINSUP為0.01,頻繁詞集挖掘部分結(jié)果見表1。
表1 頻繁詞集部分結(jié)果
續(xù)表1
然后對頻繁詞集構建詞共現(xiàn)網(wǎng)絡,使用BGLL對詞共現(xiàn)網(wǎng)絡進行社區(qū)劃分。取模塊度為0.48時(模塊度最大)的社區(qū)劃分方式作為最后的實驗結(jié)果,此次實驗共發(fā)現(xiàn)18個社區(qū),故以18作為LDA主題個數(shù)的指定。其中部分主題結(jié)果如表2所示。
表2 部分主題結(jié)果
除了使用Fast-Newman算法對詞共現(xiàn)網(wǎng)絡圖做社區(qū)劃分,文中則采用BGLL對詞共現(xiàn)網(wǎng)絡進行社區(qū)劃分,其中Fast-Newman算法得出的社區(qū)個數(shù)為16,BGLL算法得出的社區(qū)個數(shù)為18個。
以查準率和查全率來評價主題抽取效果,查準率用于評價LDA主題抽取正確主題數(shù)占所有抽取主題數(shù)的比例,查全率用于評價LDA主題抽取正確主題數(shù)占專家預先標注的主題個數(shù)。
公式如下:
(2)
(3)
其中,Textract表示LDA抽取的有效主題數(shù);Tcorrect表示LDA抽取的正確主題數(shù);Tstandard表示專家標注的主題個數(shù)。
不同主題個數(shù)下對應的查準率與查全率如表3所示。
表3 不同主題個數(shù)下的查準率和查全率
由表3可知,通過BGLL算法得出的主題個數(shù)k(18)略好于Fast-Newman算法得出的主題個數(shù)(16),具有最高的查準率和較高的查全率,效果相對較好。
在概率語言模型中,困惑度[21]是一種用來評估語言模型優(yōu)劣的指標,其基本思想是給測試集賦予較高概率值的語言模型,且較小的困惑度意味著模型對新文本具有較好的預測作用,并且在一定程度上,困惑度會隨著潛在主題數(shù)量的增加呈現(xiàn)遞減的規(guī)律。文中以困惑度評價LDA主題模型的優(yōu)劣。在LDA主題模型中,困惑度的計算公式如下所示:
(4)
其中,D表示待訓練文檔數(shù)據(jù)集,一共有M篇文檔;Nd表示每篇文檔d中的單詞數(shù)量;wd表示文檔d中的詞;p(wd)表示詞wd在文檔w中的頻率。
實驗取主題個數(shù)范圍為[10,200],步長為10,分別在訓練數(shù)據(jù)上訓練模型,最終的困惑度-主題個數(shù)曲線如圖1所示。
圖1 不同k值下的LDA模型困惑度
從圖1可以看出,當主題數(shù)目k為19時,LDA的困惑度指標達到最小值,這與文中實驗的結(jié)果18個主題較為接近,從而證明了文中方法的有效性。
按照文獻[5]科技情報分析中LDA主題模型最優(yōu)主題個數(shù)確定方法的研究,參數(shù)設置和算法過程如文中所述。不同k值下的LDA模型方差值如圖2所示,不同k值下的LDA模型Perplexity-Var值如圖3所示。
圖2 不同k值下的LDA模型方差值
圖3 不同k值下的LDA模型Perplexity-Var值
由圖3可知,k取20時LDA主題效果最好,這與文中方法取得的最優(yōu)k值18基本一致,驗證了該方法的正確性。
在大數(shù)據(jù)背景下,為了更準確地分析和處理海量文本數(shù)據(jù),根據(jù)頻繁詞網(wǎng)絡隱含社區(qū)個數(shù)與文檔集隱含主題數(shù)相一致的特點,提出了一種以頻繁詞集網(wǎng)絡的社區(qū)劃分個數(shù)用來指定LDA主題模型主題輸入個數(shù)的方法。實驗結(jié)果表明,該方法可以以一種無監(jiān)督聚類方式得到文檔聚類簇數(shù)并對主題數(shù)目做指定,顯著提升了主題查準率和查全率,并得到較好的聚類效果,相對智能地得到最優(yōu)的主題分布。但文中只是針對教育網(wǎng)站上抓取的數(shù)據(jù)進行了實驗分析,并未針對其他類型的數(shù)據(jù)集進行方法的驗證,如微博新聞、短文本文檔等。接下來,將著重于在多種數(shù)據(jù)集上驗證該方法的正確性。