梁志劍,謝紅宇,安衛(wèi)鋼
(1.中北大學(xué) 大數(shù)據(jù)學(xué)院,山西 太原 030051;2.中北大學(xué) 研究生院,山西 太原 030051)
文本分類作為自然語言處理中的經(jīng)典任務(wù),主要包括文本預(yù)處理[1]、文本特征的提取及分類器的設(shè)計等過程。在眾多的機器學(xué)習(xí)算法中,樸素貝葉斯算法是最為經(jīng)典的分類算法之一,在文本分類的任務(wù)中經(jīng)常會被用到。文獻[2]中利用貝葉斯分類器對文化旅游文本進行相關(guān)主題分類,通過對比實驗發(fā)現(xiàn)它在處理文本分類時的效率很高,但如果數(shù)據(jù)量比較大時,該方法的準(zhǔn)確率不高。為了能夠使計算機挖掘出文本之間的聯(lián)系,一種基于詞向量特征表示方法被提出,將深度學(xué)習(xí)算法引入到自然語言處理領(lǐng)域。文獻[3]中利用LSTM神經(jīng)網(wǎng)絡(luò)模型對金融新聞文本分類,提高了文本的準(zhǔn)確率。文獻[4]中將卷積神經(jīng)網(wǎng)絡(luò)和GRU神經(jīng)網(wǎng)絡(luò)相結(jié)合,并引入attention機制用于提取文本特征,雖然特征提取較好,但對短文本的分類效果不好。文獻[5]中利用雙向GRU神經(jīng)網(wǎng)絡(luò)和attention來進行特征提取,但模型復(fù)雜度較高,訓(xùn)練時間較長。通過以上方法的研究分析,本文提出的基于雙向的GRU神經(jīng)網(wǎng)絡(luò)和貝葉斯分類器的方法與傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)相比,其優(yōu)勢在于利用其雙向神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)能夠充分考慮到文本上下文的信息和語序的關(guān)系,捕捉其更加重要的特征,極大優(yōu)化了特征提取的過程,同時貝葉斯分類器具有結(jié)構(gòu)簡單,執(zhí)行效率高的特點,兩者結(jié)合更加提高了文本分類的效率和準(zhǔn)確率。對比仿真結(jié)果表明,該模型具有很好的分類效果。
隨著科學(xué)水平的不斷提高,人們的生活方式發(fā)生了巨大的變化,越來越多的人開始去追求智能化的生活,因而也致使許多科研工作者投身于智能產(chǎn)業(yè)的研發(fā)。于是深度學(xué)習(xí)作為一把重要的利器被迅速推廣開來。
循環(huán)神經(jīng)網(wǎng)絡(luò)[6](recurrent neural networks,RNN)作為一種很重要的深度學(xué)習(xí)模型,廣泛應(yīng)用于機器翻譯,語音識別等領(lǐng)域。該模型在每個時刻利用當(dāng)前時刻的輸入數(shù)據(jù)以及之前時刻的輸出數(shù)據(jù),在同一個神經(jīng)元產(chǎn)生當(dāng)前時刻的輸出數(shù)據(jù),從而經(jīng)常被用來解決一些帶時序的問題。然而RNN卻無法很好處理遠距離依賴的問題,于是就需要改進神經(jīng)元的結(jié)構(gòu)從而利用其門控原理來選擇性地遺忘以前的信息并加入新的信息。所以RNN產(chǎn)生了很多變體,最常用且最為經(jīng)典的就是長短時記憶網(wǎng)絡(luò)(long short-term memory networks,LSTM),而門控循環(huán)單元網(wǎng)絡(luò)[7](gated recurrent unit neural networks,GRU)相較LSTM,不僅繼承了LSTM的門控制原理,而且又簡化了神經(jīng)元的結(jié)構(gòu),減少了模型的復(fù)雜度,使得該模型得到了更廣泛的應(yīng)用。
盡管GRU是LSTM的一個變體,不過兩者之間差別還是比較大的。它將LSTM的忘記門和輸入門合成了單一的更新門,從而GRU變成了雙控門結(jié)構(gòu)。同時還將細胞狀態(tài)和隱藏狀態(tài)混合在了一起,很大程度簡化了模型結(jié)構(gòu),當(dāng)訓(xùn)練數(shù)據(jù)很大時,GRU能節(jié)省很多時間。同時GRU的雙控門結(jié)構(gòu)也對信息起到了選擇性的作用,更新門是用來對上一時刻的信息做出選擇性的接收,而重置門則是對上一時刻信息做出選擇性的拒絕,因而GRU對文本特征的提取會更加準(zhǔn)確。圖1是GRU單元門結(jié)構(gòu)。
圖1 GRU單元門結(jié)構(gòu)
圖1中Xt表示t時刻的輸入文本數(shù)據(jù),ct-1為上一時刻的輸入文本數(shù)據(jù),rt表示為重置門,zt為更新門,ht為待激活狀態(tài),ct是當(dāng)前時刻的輸出,其計算公式如下所示
zt=σ(Wz·[ct-1,xt])
(1)
rt=σ(Wr·[ct-1,xt])
(2)
ht=tanh(W·[rt*ct-1,xt])
(3)
ct=(1-zt)*ct-1+zt*ht
(4)
式中,σ為sigmoid函數(shù),W為權(quán)重矩陣,從式(4)可以看出,t時刻的輸出與當(dāng)前時刻的輸入數(shù)據(jù)有關(guān),還與上一時刻的輸入數(shù)據(jù)有關(guān)。GRU神經(jīng)網(wǎng)絡(luò)的參數(shù)比傳統(tǒng)的RNN,LSTM都少,因此其計算量相對較小,模型訓(xùn)練時間較短。
在傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(luò)中,信息的傳播過程往往是單向的,而這種單向的網(wǎng)絡(luò)結(jié)構(gòu)在處理文本信息時就會出現(xiàn)一些弊端。因為有時要預(yù)測的文本的信息是由前面的一些輸入文本信息和后面的一些輸入文本信息共同作用的,這樣能使文本的語義理解更加清晰明確。這時雙向RNN[8](bi-direction recurrent neural network,BiRNN)的網(wǎng)絡(luò)模型結(jié)構(gòu)特點就能發(fā)揮其更大的優(yōu)勢。例如要預(yù)測一句話“我出生在__,所以我會說山西方言?!敝锌瞻椎牟糠謺r,不僅需要知道缺失地方前面的內(nèi)容信息,也要知道后面的內(nèi)容信息,這樣才能更好地理解語義,預(yù)測出缺失部分的內(nèi)容,如果僅知道前面的信息內(nèi)容或后面的信息內(nèi)容,那么要預(yù)測的空缺處詞語的可能性就會很多,準(zhǔn)確率就會降低。
雙向 GRU 神經(jīng)網(wǎng)絡(luò)(bi-direction gated recurrent unit neural network,BiGRU)模型結(jié)合雙向 RNN和LSTM兩個模型的優(yōu)點并做進一步改進形成的模型,通俗地說就是用GRU的神經(jīng)元替換掉雙向RNN模型中的循環(huán)神經(jīng)元。圖2展示了一個沿著時間軸展開的雙向GRU神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。
圖2 雙向GRU神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
圖2中從左向右循環(huán)神經(jīng)網(wǎng)絡(luò)層的更新公式為
(5)
從右向左循環(huán)神經(jīng)網(wǎng)絡(luò)層的更新公式為
(6)
雙向GRU神經(jīng)網(wǎng)絡(luò)最終輸出的計算公式為
(7)
式中:W,V,U為權(quán)重矩陣,b,c為偏執(zhí)矩陣。
TF-IDF[9]是一種特征加權(quán)的算法,經(jīng)常被用于數(shù)據(jù)檢索等領(lǐng)域。它采用統(tǒng)計的方法,通過計算某個字或詞在某篇文章中出現(xiàn)的次數(shù)或者在包含所有文章的語料庫中出現(xiàn)的次數(shù)來判斷這個詞或字的重要程度。并且它由TF和IDF兩部分組成。
TF表示某個詞在整篇文章中出現(xiàn)的概率。其計算公式為
(8)
其中,nij為特征詞在文本中出現(xiàn)的次數(shù), ∑knkj則是文本中所有特征詞的個數(shù)。計算的結(jié)果即為某個特征詞的詞頻。
IDF表示逆向文本頻率,用來衡量某個詞在整個語料庫中的頻率,為剔除掉文檔中一些經(jīng)常遇到但卻不重要的詞語同時也能夠保留一些特征明顯的詞語。其計算公式為
(9)
N表示語料庫中全部文章的數(shù)量, 1+Nmi表示文章中具有明顯特征的詞語mi的數(shù)量。為防止該詞語在語料庫中不存在,即分母為0,使用1+Nmi作為分母。
TF-IDF算法的主要目的在于如果某個字或詞在某篇文章中出現(xiàn)的次數(shù)很高,而在其它文章中出現(xiàn)的次數(shù)很低,則說明該字或者詞具有明顯的特征,那么該字或者詞就能夠作為分類的依據(jù)。
其計算公式為
TF-IDFij=TFij*IDFij
(10)
TF-IDF的值是由詞頻TFij和逆向文本詞頻IDFij的乘積得到的。TF-IDF值越大,表示該特征詞對這個文本的重要性越大。
樸素貝葉斯算法[10]作為經(jīng)典的機器學(xué)習(xí)算法之一,在信息檢索領(lǐng)域有著極為重要的地位。樸素貝葉斯是一種基于貝葉斯定理的分類算法。然而在求解貝葉斯定理過程中經(jīng)常會出現(xiàn)一些棘手問題。諸如組合爆炸和樣本稀疏等,為更好解決這些問題,在樸素貝葉斯分類器中,前提假設(shè)各個屬性變量之間都是相互獨立的。然而這種前提假設(shè)在很多具體應(yīng)用場景中都不能成立,但是卻能使該分類器在很多情況下會表現(xiàn)出不錯的性能。如果能對貝葉斯定理[11]進行近似的求解,那么就會對文本分類器的設(shè)計有更深的理解。
假設(shè)某個文本有n項特征,分別是e1,e2,…,en。 文本類別有k個,分別為m1,m2,…,mk。 求式(11)的最大值也就是貝葉斯分類器最終得到的結(jié)果
(11)
式中:p(e1,e2,…,en) 的計算過程不涉及類別bi, 可以忽略此項,不對它進行計算。因此如果要使p(mi|e1,e2,…,en) 的值最大化,那么就相當(dāng)于求出p(mi|e1,e2,…,en)p(mi) 的最大值。樸素貝葉斯分類器所引入的屬性條件獨立性假設(shè)可用如下公式表示
p(mi|e1,e2,…,en)p(mi)=p(e1|mi)p(e2|mi)…p(en|mi)p(mi)
(12)
個體最可能屬于的類別是最大后驗估計,如下式
(13)
式中:等號右端的每個概率值都能從已知的條件中很容易地求出,因而就可以求出文本屬于每個類別對應(yīng)的概率大小,然后將概率最大的類別作為最終的分類結(jié)果。
該模型由4部分組成,第一部分由word2vec模型[12]對待分類的文本進行詞向量的訓(xùn)練得到文本向量,第二部分將得到的文本向量輸入雙向GRU神經(jīng)網(wǎng)絡(luò)進行特征提取,第三部分通過利用TF-IDF算法對所有提取到的特征進行賦值權(quán)重,選出權(quán)重高的特征向量,第四部分將這些選出特征向量輸入貝葉斯分類器中進行訓(xùn)練并根據(jù)輸出概率的大小得出最后分類結(jié)果。該混合模型結(jié)構(gòu)如圖3所示。
圖3 混合模型框架結(jié)構(gòu)
在文本分類的任務(wù)中使用該混合模型時主要包含訓(xùn)練,驗證,測試3個過程。訓(xùn)練過程:首先對原始的中文文本數(shù)據(jù)集先進行文本預(yù)處理,將文本轉(zhuǎn)化為適合于分類的干凈的詞序列后利用word2vec模型對數(shù)據(jù)集進行詞向量的訓(xùn)練,從而將原始數(shù)據(jù)集被轉(zhuǎn)化為計算機能讀懂的向量形式,并計算出了各個詞之間的相似程度。然后將其中用于訓(xùn)練的數(shù)據(jù)集對雙向GRU神經(jīng)網(wǎng)絡(luò)模型進行訓(xùn)練,然后用訓(xùn)練好的網(wǎng)絡(luò)模型提取訓(xùn)練集所有樣本的特征,通過TF-IDF算法權(quán)重賦值后,用高權(quán)重的特征集訓(xùn)練貝葉斯分類器。驗證過程:利用驗證集中的數(shù)據(jù)對已經(jīng)訓(xùn)練好的模型進行反復(fù)的驗證和修改,使模型的分類效果更優(yōu)。測試階段:對測試集中的樣本數(shù)據(jù),通過已經(jīng)訓(xùn)練好的雙向GRU神經(jīng)網(wǎng)絡(luò)提取文本特征,利用TF-IDF權(quán)重賦值,最后將高權(quán)重的特征送入貝葉斯分類器,將模型輸出的結(jié)果與文本正確的結(jié)果進行比較來判斷模型的優(yōu)劣。
在做文本分類任務(wù)時,數(shù)據(jù)預(yù)處理[13]的好壞直接影響分類結(jié)果準(zhǔn)確率高低,由于其重要性,往往需要投入很長時間進行數(shù)據(jù)預(yù)處理。數(shù)據(jù)預(yù)處理主要包括以下內(nèi)容。
(1)分詞。本文用到的數(shù)據(jù)集都是中文文本,而中文文本與英文文本有很大的不同,沒有明顯的空格,一般都需要調(diào)用中文分詞庫來進行分詞。
(2)去除停用詞。中文文本中含有很多沒有意義的虛詞,例如“著”“的”,這類詞稱為停用詞。去除掉這些詞有利于提高文本分類的效率。
(3)去除低頻詞。在中文文本中還有一些詞雖然有一定的意義,但是只有很少的文本中出現(xiàn)過,相對于整個文本語料庫來說,這些詞就沒有什么實際的意義,因此這類詞也要去除掉。
本文所用實驗環(huán)境的主要參數(shù)為處理器:Intel(R)Core(TM)i5-3230M CPU@2.60 GHz;圖形加速卡:NVIDIA GeForce GT 720 M;內(nèi)存:8 GB;操作系統(tǒng):windows 10 企業(yè)版(64 bit);使用Google 開源深度學(xué)習(xí)框架TensorFlow構(gòu)建所有神經(jīng)網(wǎng)絡(luò)模型并在anaconda軟件平臺上運行python程序進行訓(xùn)練和測試。
本文的實驗分別在主題分類和情感分類這兩類文本分類任務(wù)上對提出的模型進行測試,采用的第一種數(shù)據(jù)集是在騰訊新聞上通過網(wǎng)絡(luò)爬蟲獲取的,共分為科技、汽車、娛樂、軍事、運動5類文本數(shù)據(jù),共計50萬條。第二種數(shù)據(jù)集是在豆瓣上爬取電影的評論,共計50萬條,分為積極,中性和消極3大類。同時將數(shù)據(jù)集按照比例6∶2∶2分為訓(xùn)練集,驗證集和測試集。實驗數(shù)據(jù)見表1。
表1 實驗數(shù)據(jù)
在做文本分類任務(wù)時,判斷文本分類結(jié)果的優(yōu)劣經(jīng)常會用到準(zhǔn)確率P(Precision)、召回率R(Recall)和F1這3種評價指標(biāo)。
準(zhǔn)確率P(Precision)是衡量類別的查準(zhǔn)率,其公式如下
(14)
式中:TP表示分類正確的文本數(shù)量;Sum表示實際分類的文本數(shù)量。
召回率R(Recall)是衡量類別的查全率,其公式如下
(15)
式中:TS表示屬于該類別的文本數(shù)量。
F1值是衡量查全率和查準(zhǔn)率的綜合,以及對它們的偏向程度,因此它是由準(zhǔn)確率和召回率計算而來,其公式如下
(16)
在實驗剛開始前,首先要對剛獲取的原始數(shù)據(jù)集進行合理化的整理,其中包括剔除其中的一些噪音數(shù)據(jù)和數(shù)據(jù)預(yù)處理操作,然后將整理后的數(shù)據(jù)在通過word2vec將所有的詞轉(zhuǎn)化為100維的詞向量用于后續(xù)模型的訓(xùn)練。
在實驗過程中,為了能使本文提出的模型的準(zhǔn)確率達到最優(yōu),經(jīng)反復(fù)數(shù)次實驗并不斷調(diào)整參數(shù),并記錄每次實驗結(jié)果,最終把模型效果最優(yōu)情況下的各部分參數(shù)設(shè)置如下:其中隱藏層的層數(shù)為3層,隱層的節(jié)點數(shù)量為100,學(xué)習(xí)率設(shè)置為0.05,訓(xùn)練的迭代步數(shù)為100,迭代輪次為1000。為了防止神經(jīng)網(wǎng)絡(luò)過擬合,采用了Dropout機制,并設(shè)置了Dropout的丟棄率為0.3。同時將本文提出的模型與傳統(tǒng)的RNN模型,LSTM模型,GRU做對比實驗并且各個模型參數(shù)設(shè)置與本文的模型設(shè)置一樣來驗證本文模型的有效性。
實驗結(jié)果見表2,表3。
表2 主題分類數(shù)據(jù)集測試結(jié)果
表2是將新聞文本進行主題分類,表3則是將電影評論文本進行情感分類,分別將本文提出的混合模型與對比模型在不同評價指標(biāo)的值作對比。實驗結(jié)果表明,在兩類數(shù)據(jù)集上,本文方法與傳統(tǒng)單向的神經(jīng)網(wǎng)絡(luò)相比,在準(zhǔn)確率和F1值都有明顯提高,平均高出3-4個百分點。與雙向
表3 情感分類數(shù)據(jù)集測試結(jié)果
的神經(jīng)網(wǎng)絡(luò)相比,雖然在準(zhǔn)確率上差別不大,但是在模型訓(xùn)練的時間上,本文提出的方法也占有明顯優(yōu)勢。這說明單向深度學(xué)習(xí)模型 CNN,LSTM 或GRU的學(xué)習(xí)能力有所欠缺導(dǎo)致泛化能力不高,而雙向的深度模型結(jié)構(gòu)復(fù)雜需要花費更長的時間訓(xùn)練模型。尤其在數(shù)據(jù)量比較大時模型的訓(xùn)練時間往往會比較長,而本文提出的模型對這些問題做了進一步的改進,并取得了不錯的效果。
本文主要的工作是為了解決傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)模型在做文本分類任務(wù)時的準(zhǔn)確率不高、訓(xùn)練時間長等問題,提出了一種基于雙向GRU神經(jīng)網(wǎng)絡(luò)模型與貝葉斯分類器相混合的文本分類算法,并通過對比實驗得出本文方法無論是在準(zhǔn)確率還是運行效率上都優(yōu)于單一傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)模型,說明雙向GRU神經(jīng)網(wǎng)絡(luò)具有更強的提取特征的能力,再利用TF-IDF算法加權(quán)賦值,通過貝葉斯分類器分類,提高了文本的分類效率,從而表現(xiàn)出了該模型的優(yōu)勢。另外對于文本分類任務(wù)來說,文本特征提取很重要,雖然本文方法較傳統(tǒng)方法有明顯提升,但仍然有些不足之處,在今后的工作學(xué)習(xí)中,筆者將進一步優(yōu)化文本特征提取的效率,爭取進一步提升時間效率。