王治學
(寧夏師范學院數(shù)學與計算機科學學院,寧夏固原 756000)
文本分類主要是基于現(xiàn)代信息算法將文本內(nèi)容根據(jù)標準進行分類標注,其多用于各個媒體平臺中智能化新聞分類、廣告過濾、內(nèi)容審核和垃圾評論自動屏蔽等功能布設,而運用圖卷積神經(jīng)網(wǎng)絡模型及算法,可通過對數(shù)據(jù)虛擬建模進行智能信息獲取,進而提升有效信息處理效率,實現(xiàn)自動化文本分類。
隨著科技的不斷發(fā)展,文本數(shù)據(jù)的數(shù)量與日俱增。如何有效地管理和利用這些文本數(shù)據(jù)成為了當前迫切需要解決的問題。傳統(tǒng)的文本分類方法主要是使用深度學習模型進行文本分類,該方法取得了較好的效果,但是隨著文本數(shù)據(jù)量的增加,這些方法出現(xiàn)了諸如計算復雜度高、對大量低質量數(shù)據(jù)敏感等問題。在主題模型領域最流行的是BERT,該方法通過學習單詞之間的上下文關系預測句子中單詞的主題。本文采用BERT 的一種變體——GPT-2,其使用預訓練的詞向量與嵌入向量相結合進行分類。還有一種基于圖卷積神經(jīng)網(wǎng)絡的文本分類方法——Grid-SVR,該方法結合了GCN 和SVR 模型。為了解決上述問題,本文提出了一種基于圖卷積神經(jīng)網(wǎng)絡(GCN)的主題模型,具體如圖1 所示。該模型使用GCN 作為輸入層,將文本看作一個節(jié)點,利用卷積和池化操作對文本進行特征提取,再用Softmax 將文本的特征映射到空間中的不同位置。同時,考慮到文本之間的關系,本文提出了注意力機制以更好地理解文本之間的關系。使用Grid-SVR 進行實驗,該模型在主題建模過程中利用了圖卷積神經(jīng)網(wǎng)絡(GCN),其基本思想是利用圖卷積神經(jīng)網(wǎng)絡的卷積操作從輸入的文本圖中提取特征,并使用圖卷積神經(jīng)網(wǎng)絡來建模文本之間的關系,最終輸出為一個主題表示。另外,Grid-SVR 模型采用了一種新的注意力機制,該注意力機制能夠在計算上加速主題建模的過程,從而使得模型在時間上有更好的性能。實驗采用來自Google 新聞網(wǎng)站的英文新聞數(shù)據(jù)集,該數(shù)據(jù)集包含超過1 萬篇文章,其中包含大量主題相關的文本內(nèi)容,以便于更好地理解文本之間的關系。一種基于GCN 的主題模型文本分類算法,該方法將文本表示為節(jié)點嵌入向量形式,并利用圖卷積神經(jīng)網(wǎng)絡(GCN)提取特征,對文本進行表示,進而使用注意力機制來建模文本之間的關系。
圖1 基于圖卷積神經(jīng)網(wǎng)絡的主題模型構建流程
2.1.1 基礎框架結構
基于卷積神經(jīng)網(wǎng)絡所構建的主題文件分類模型,主要通過分類器和編碼器功能來完成,具體包括以下2 點。第一,首先可運用神經(jīng)網(wǎng)絡中的池化層及卷積層對上下文信息進行編輯處理,進而獲取準確的高層卷積文本語義特征,而主題信息則通過主題模型中ProdLDA 獲得,再全面融合主題與上下文信息,進而獲取真實的文本特征。第二,采用分類器網(wǎng)絡全連接層實施分類結果信息輸出,即可完成分類過程。具體網(wǎng)絡框架,如圖2 所示[1]。
圖2 卷積神經(jīng)網(wǎng)絡基礎框架圖
2.1.2 功能層介紹
通過上述基礎框架得知,文本分類通過輸入層、輸出層、卷積層、融合層與池化層共同完成處理過程,具體如下。第一,輸入層。其主要是將預處理后的文件信息,以CBOW 模型實施詞嵌訓練,并獲取初始單詞向量進行輸入處理。該層主要負責將單詞文檔轉化為初始向量的全過程,將文檔表現(xiàn)成為一個規(guī)則性向量矩陣。本次實驗將主要利用Clove 作為英文文本作為嵌入表示,并利用Word+Ngram 和SogouNews 作為中文文本嵌入詞表示,進而提升整體模型結構訓練效果,其中中文矩陣表現(xiàn)形式如公式(1)所示
式中:m∈[1,M],nm表示第m個文件文檔中的單詞總數(shù),而M則表示數(shù)據(jù)集中全部文檔數(shù)量。第二,卷積層。該層主要負責對網(wǎng)絡模型各種數(shù)據(jù)的特征進行提取,其通常使用卷積核尺寸來提取不同長度的文本,相比單一化文本提取而言,該層的信息提取范圍更廣。如將卷積核尺寸設定為3 時,便可每次同時提取3 個不同單詞特征。而在本次研究當中,總共布設了尺寸為3的512 個卷積核來獲取不同的上下文信息,進而保障整體數(shù)據(jù)提取精度。第三,池化層。為避免卷積層在應用過程中所造成的文件冗余而影響到整體數(shù)據(jù)分類精度,必須通過池化層進行池化處理。該層主要負責對文件矩陣進行縮減,并池化處理各種上下文特征,在精簡訓練參數(shù)的基礎上加快訓練速度,進而在避免產(chǎn)生擬合作用的前提下解決卷積后所產(chǎn)生的文件冗余問題。第四,融合層。在經(jīng)過池化層的池化處理后,便可通過融合層將網(wǎng)絡模型提取到的主題特征與上下文特征融合,得到全新的文件特征向量,如公式(2)所示
式中:Vm代表通過卷積神經(jīng)網(wǎng)絡功能所得到的上下文文本語義基本特征,θm代表主題模型或獲取的文檔信息在K個內(nèi)部潛在主題上的向量分布概率,Nm代表經(jīng)過系統(tǒng)組合后得到的融合特征,該文本向量特征同時兼具潛在主題與上下文語義2 種不同特征。而融合層則是將不同矩陣特征基于數(shù)據(jù)序列的方式實施數(shù)據(jù)拼接與融合,進而全面解決文本數(shù)據(jù)冗余與稀疏問題。第五,輸出層。經(jīng)過系統(tǒng)融合后的潛在主題信息與上下文信息模型,主要基于Softmax 組成函數(shù)及全連接層計算各種文檔數(shù)據(jù)的分布概率,進而獲取準確的數(shù)據(jù)輸出數(shù)值。
本次研究主要通過將ProdLDA 主題模型引入卷積神經(jīng)網(wǎng)絡當中,構建卷積神經(jīng)網(wǎng)絡融合ProdLDA 主題模型厚度的文本算法,詳細算法過程如圖3 所示,具體如下。第一,在對文本數(shù)據(jù)集實施預處理后,可將CBOW 模型數(shù)據(jù)集文檔轉為詞嵌入模式,并將基本主題模型參數(shù)實施初始化處理,進而確定最佳主題數(shù)量。第二,在對模型的不斷迭代訓練過程中,可將詞嵌入引入其中并構建特有的特征數(shù)據(jù)矩陣,進而準確評估模型性能。第三,通過訓練主題模型信息,獲取主題特征矩陣并準確提取全部文件上下信息,進而形成特征矩陣。第四,構建內(nèi)部融合層,將文本向量拼接完成后傳輸至相應的分類層,適當調(diào)整權值和參數(shù),最終構建完整的CNN 文本分類及ProdLDA 主題模型。第五,通過一系列文件信息處理,使得系統(tǒng)輸入層與輸出層均具備了部分潛在主題和上下文語義信息,最后,由Softmax 組成函數(shù)輸出層來準確判斷文檔數(shù)據(jù)分布概率[2]。
圖3 卷積神經(jīng)網(wǎng)絡融合ProdLDA 主題模型厚度的文本算法構建流程
2.3.1 初步測試
在短文本分類研究實驗中,本文主要基于今日頭條平臺來構建2 個不同的數(shù)據(jù)集,共分為擁有20 萬條信息數(shù)據(jù)的9 個類別數(shù)據(jù)集和擁有38 萬條信息數(shù)據(jù)的15 個類別數(shù)據(jù)集2 種。而在長文文本分類研究實驗中,則主要采用了擁有20 種不同分布狀態(tài)的新聞媒體類型的英文數(shù)據(jù)集,其可用于2 萬條不同的長文本集合處理。
考慮到整體訓練過程中的數(shù)據(jù)處理量較大,且需要頻繁更改設計主題參數(shù)才能使主題模型達到最佳數(shù)據(jù)處理效果。因此,本次研究實驗主要基于評價規(guī)范中的數(shù)據(jù)準確率作為衡量標準,對主題特征進行深入分析,并以20 為一個測試梯度,通過相關搜索引擎進行數(shù)據(jù)收集、對比,最終得知50 個主題數(shù)量下的數(shù)據(jù)處理準確率達到了0.912%,故而可將其作為最佳主題數(shù)量設計參數(shù)。而詞嵌入維度同樣會在一定程度上影響到詞語特征提取效果,因此,本次研究實驗以頭條數(shù)據(jù)集作為詞嵌入研究平臺進行數(shù)據(jù)收集、對比,最后發(fā)現(xiàn),當詞嵌入為150 維度時,其準確率可達0.907%,完全可以將其作為最佳嵌入詞設計參數(shù)。此外,為進一步提升文件分類處理精度,實驗人員再次以今日頭條作為研究平臺,對同樣基于數(shù)據(jù)準確率評價指標,對模型訓練系統(tǒng)迭代次數(shù)實施了分析與探索,最終得知當?shù)螖?shù)為35 時,其整體文件分類效率、分類速度及分類精度最佳。
2.3.2 結果分析
在經(jīng)過一系列實驗測試后,最終測算出1 號數(shù)據(jù)集(20 萬條數(shù)據(jù)、9 個類別)中的不同模型中數(shù)據(jù)集各項測試結果如下。在ProdLDA-CNN 模型中,F(xiàn)1 測試比率為0.915 0%、召回率為0.913 1%、準確率為0.917 8%。在TMN 模型中,F(xiàn)1 測試比率為0.914 3%、召回率為0.914 2%、準確率為0.914 9%。在Word2vec-CNN 模型中,F(xiàn)1 測試比率為0.904 1%、召回率為0.904 0%、準確率為0.903 8%,其整體數(shù)據(jù)測試精度均在合理范圍內(nèi)。而在將數(shù)據(jù)集基礎類別量從9 個提升至15 個時,語料噪音和交叉信息量也會不斷增加[3]。
由于語料噪音數(shù)據(jù)與數(shù)據(jù)集類別增多時,CNN 單一模型數(shù)據(jù)處理準確率大大降低,而TMN 與本次研究實驗模型則依舊保持較高的數(shù)據(jù)處理準確率。為進一步證明該模型的操作可行性,工作人員還針對基于20 NG 的英文長文本數(shù)據(jù)集方面進行了一系列對比分析,結果顯示,在基于20 NG 長文本數(shù)據(jù)的情況下,ProdLDA-CNN 系統(tǒng)模型整體分類精度相較于Word2vec-CNN 單一模型處理精度明顯較高,其根本原因在于單一化CNN 模型更加側重于對局部卷積語義的提取,而無法準確獲取長文本中的各類數(shù)據(jù)信息,而本次研究實驗中的主題模型則可基于文檔主題特征來提取文件信息,故而其整體文件分類精度較高[4]。
本次文本分類案例系統(tǒng)主要基于現(xiàn)代數(shù)字編程技術構建,整體采用Flask 作為基礎框架,而后端文本分類系統(tǒng)則主要采用Python 來實施。用戶可先上傳需要處理的各種數(shù)據(jù),并利用內(nèi)部預處理功能模塊進行數(shù)據(jù)去停、分詞等基礎操作,最后點擊模型訓練指令,再由程序處理后將最終結果返回操作界面,進而完成整體數(shù)據(jù)分類過程,詳細模塊功能如下。登錄注冊功能模塊主要負責對用戶信息進行驗證處理,保障整體系統(tǒng)信息安全。數(shù)據(jù)標注功能模塊主要基于內(nèi)部程序規(guī)則關鍵詞,對待處理數(shù)據(jù)實施輔助標注。預處理數(shù)據(jù)功能模塊主要負責對數(shù)據(jù)疊詞、去停用詞及數(shù)據(jù)分詞等方面的清洗工作。模型訓練功能模塊主要對模型進行自動調(diào)整,完善各項數(shù)據(jù)處理性能。模型評價功能模塊主要負責模型評估,判斷模型數(shù)據(jù)處理結果的準確性。模型預測功能模塊主要負責封裝訓練后的各個數(shù)據(jù)模型,并通過待預測信息中封裝好的后臺數(shù)據(jù)實施有效預測。而批處理信息預測功能模塊,則主要負責對不同數(shù)據(jù)信息進行預測處理,并提供全面的數(shù)據(jù)下載功能。通過不同功能模塊之間的配合工作,大大降低了系統(tǒng)處理的耦合性,進而提高模型系統(tǒng)文件分類效率。
本次案例系統(tǒng),主要由數(shù)據(jù)庫存儲、注冊登錄、數(shù)據(jù)標注及模型訓練等幾個關鍵模塊構成。其中數(shù)據(jù)庫存儲模塊主要負責編制與管理,如預測接口表、規(guī)則配置表及用戶信息表等內(nèi)部表格,進而增加整體數(shù)據(jù)分類管理的合理性,如在用戶信息表設計過程中,必須包括字段名稱、數(shù)據(jù)類型、是否允許為空及具體作用等幾項,具體如下。將表內(nèi)id 字段數(shù)據(jù)類型設計為int,允許為空設定為否,功能為操作主鍵。將表內(nèi)userid 字段數(shù)據(jù)類型設計為varchaer(255),允許為空設定為否,功能為用戶名。將表內(nèi)owner 字段數(shù)據(jù)類型設計為int,允許為空設定為否,功能為管理權限(參數(shù)0 為普通用戶、參數(shù)1 為管理員,默認值為0)。將表內(nèi)loginip 字段數(shù)據(jù)類型設計為varchaer(255),允許為空設定為否,功能為對各種登錄IP 地址進行記錄。將表內(nèi)loginCouunt字段數(shù)據(jù)類型設計為num,允許為空設定為否,功能為記錄用戶登錄次數(shù)。將表內(nèi)loginTime 字段數(shù)據(jù)類型設計為datetime,允許為空設定為否,功能為記錄詳細的用戶登錄時間。
注冊登錄模塊主要是為了保障整體系統(tǒng)信息的安全性,避免無關人員竊取內(nèi)部信息。因分類系統(tǒng)對操作人員的專業(yè)性要求較高,其內(nèi)部信息量極大且涉及范圍較廣。因此,本次案例系統(tǒng)主要采用token 方式來驗證系統(tǒng)管理員信息,進而各種網(wǎng)絡不法分子惡意入侵和攻擊,詳細操作過程如下。用戶登錄操作時將密碼與賬號錄入,系統(tǒng)會將相應信息與MySQL 數(shù)據(jù)中的存儲信息進行對比驗證,并返回一個獨有的token 簽名,最后驗證token 數(shù)據(jù)是否準確無誤。此外,用戶在本地實施token 存儲時,系統(tǒng)會在指令發(fā)出時予以驗證[5]。
具體驗證流程依次為系統(tǒng)開啟、用戶登錄信息錄入、token 信息識別、發(fā)送主頁請求和驗證token 請求的準確性,如信息準確則會自動跳入主頁界面,若信息有誤則會在本頁面發(fā)出錯誤提示。
為提升數(shù)據(jù)標注工作效率,系統(tǒng)會在內(nèi)部通過數(shù)據(jù)標注功能模塊來標注規(guī)則關鍵詞,并基于具體關鍵詞的權重判斷數(shù)據(jù)標簽,最后使用分詞工具進行提取,從而獲取最終數(shù)據(jù)標簽。而模型訓練模塊則主要基于訓練腳本,將整體訓練結構展示到頁面上,其無須通過任何程序編寫即可完成功能訓練。用戶只需點擊相應的操作按鈕,便可實施如分詞、消除停用詞等基本需求。此外,工作人員還通過操作界面設計及系統(tǒng)測試等方式,不斷完善系統(tǒng)功能、提升文件分類操作精度,進而在降低人工工作量的前提下,大幅提升了整體文件分類工作效率。
綜上所述,將主體模型結合卷積神經(jīng)網(wǎng)絡技術充分融入到文本分類當中,并基于用戶實際需求來構建一套完整的信息處理系統(tǒng),從而真正實現(xiàn)智能化數(shù)據(jù)信息分類處理,使用戶通過系統(tǒng)界面即可獲取全部信息處理結果,進而真正對文本信息進行智能化分類。