本發(fā)明涉及自然語言處理領(lǐng)域,具體涉及一種混合長短期記憶網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)的文本分類方法。
背景技術(shù):
基于機(jī)器學(xué)習(xí)的文本自動分類是近年來自然語言處理領(lǐng)域中最熱門的一個研究方向,在信息檢索、搜索引擎、自動問答、電子商務(wù)、數(shù)字圖書館、自動文摘、新聞門戶等眾多領(lǐng)域已經(jīng)得到廣泛和深入的應(yīng)用。所謂的文本自動分類是指在給定分類體系的前提下,利用機(jī)器學(xué)習(xí)的方式來對文本的內(nèi)容進(jìn)行分析后自動確定文本類別的過程。20世紀(jì)90年代以前,文本自動分類主要采用基于知識工程的方式,即由專業(yè)人員手工進(jìn)行分類,其缺點(diǎn)是成本高、費(fèi)時費(fèi)力。90年代以來,許多研究人員開始將各種統(tǒng)計(jì)方法和機(jī)器學(xué)習(xí)方法應(yīng)用于自動文本分類,例如支持向量機(jī)svm、adaboost算法、樸素貝葉斯算法、knn算法和logistic回歸等。近年來,隨著深度學(xué)習(xí)和各種神經(jīng)網(wǎng)絡(luò)模型的快速發(fā)展,基于深度學(xué)習(xí)的文本分類方法引起了學(xué)術(shù)界和工業(yè)界的密切關(guān)注與研究,一些典型的神經(jīng)網(wǎng)絡(luò)模型,如遞歸神經(jīng)網(wǎng)絡(luò)(以長短期記憶網(wǎng)絡(luò)lstm和gru為主要代表)和卷積神經(jīng)網(wǎng)絡(luò)cnn都被廣泛地應(yīng)用于文本的分類中,并取得了良好的效果?,F(xiàn)有的研究和應(yīng)用已證明遞歸神經(jīng)網(wǎng)絡(luò)適合用于學(xué)習(xí)句子中語言單元間的長期依賴關(guān)系,卷積神經(jīng)網(wǎng)絡(luò)適合用于學(xué)習(xí)句子的局部特征,但目前的研究沒有充分地結(jié)合遞歸神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)各自的優(yōu)勢,也沒有結(jié)合考慮句子中語言單元的上下文信息。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是針對上述現(xiàn)有技術(shù)的不足,提供了一種混合長短期記憶網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)的文本分類方法,利用雙向lstm學(xué)習(xí)文本句子中詞的上文信息和下文信息,接著將學(xué)習(xí)結(jié)果通過cnn進(jìn)一步提取局部特征,然后再利用一個雙向lstm層來學(xué)習(xí)局部特征間的關(guān)系,最后將學(xué)習(xí)結(jié)果通過一個多層感知器進(jìn)行分類和輸出。
本發(fā)明的目的可以通過如下技術(shù)方案實(shí)現(xiàn):
一種混合長短期記憶網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)的文本分類方法,所述方法包括以下步驟:
步驟1、對文本中的句子進(jìn)行預(yù)處理,結(jié)合訓(xùn)練語料集中句子的長度分布及均方差,確定句子的長度閾值后形成統(tǒng)一的句子長度,利用預(yù)訓(xùn)練好的詞向量表獲取輸入文本中每一個詞的向量化表示,形成連續(xù)和稠密的實(shí)數(shù)向量矩陣;
步驟2、對于輸入的句子詞向量,分別通過一個正向的lstm網(wǎng)絡(luò)學(xué)習(xí)各個詞的上文信息和一個逆向的lstm網(wǎng)絡(luò)學(xué)習(xí)各個詞的下文信息,并將學(xué)習(xí)的結(jié)果進(jìn)行串聯(lián)合并,從而將包含語義信息的句子詞向量表示轉(zhuǎn)化為同時包含語義及上下文信息的表示;
步驟3、使用多個不同寬度、包含不同權(quán)值的核矩陣分別對雙向lstm網(wǎng)絡(luò)輸出的詞向量矩陣進(jìn)行二維卷積運(yùn)算,提取局部卷積特征,并生成多層局部卷積特征矩陣;
步驟4、使用一維最大值池化算法對多層局部卷積特征矩陣進(jìn)行下采樣,得到句子的多層全局特征矩陣,并將結(jié)果進(jìn)行串聯(lián)合并;
步驟5、使用兩個相反方向的lstm網(wǎng)絡(luò)分別學(xué)習(xí)句子局部特征間的長期依賴關(guān)系,并將最后的學(xué)習(xí)結(jié)果進(jìn)行輸出;
步驟6、將步驟5的輸出結(jié)果先通過一個全連接隱層,接著再經(jīng)過一個softmax層對句子的類別進(jìn)行預(yù)測。
進(jìn)一步地,所述一種混合長短期記憶網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)的文本分類方法是在一個多層神經(jīng)網(wǎng)絡(luò)中完成的,所述步驟1在第一層輸入層中完成,步驟2在第二層雙向lstm層中完成,步驟3在第三層cnn層中完成,步驟4在第四層池化層中完成,步驟5在第五層雙向lstm層中完成,步驟6在第六層輸出層中完成。
進(jìn)一步地,所述第二層雙向lstm層用于學(xué)習(xí)原始輸入句子中各個詞的上下文信息,并且把每個詞的學(xué)習(xí)結(jié)果進(jìn)行串聯(lián)后輸出,所述第五層雙向lstm層學(xué)習(xí)卷積后句子特征間的上下文信息,并且只輸出最后一步的學(xué)習(xí)結(jié)果。
進(jìn)一步地,步驟1中,所述對句子進(jìn)行預(yù)處理包括標(biāo)點(diǎn)符號過濾、縮寫補(bǔ)齊、刪除空格、對句子進(jìn)行分詞和非法字符過濾。
進(jìn)一步地,所述步驟3為局部特征學(xué)習(xí)過程,通過多個不同詞步長的二維卷積窗口和卷積核對包含上下文信息的詞向量進(jìn)行學(xué)習(xí),從而得到不同粒度的短語信息。
進(jìn)一步地,所述步驟4為采樣和降維過程,通過一維最大值池化算法對多層局部卷積特征矩陣進(jìn)行下采樣,得到句子中每一個池化窗口內(nèi)最重要的特征值,并作為局部窗口中的特征表示。
進(jìn)一步地,所述步驟5為局部特征的上下文學(xué)習(xí),通過雙向lstm學(xué)習(xí)局部特征之間的上下文信息,并輸出最后一個詞向量的學(xué)習(xí)結(jié)果,同時形成固定維度的一維輸出。
進(jìn)一步地,所述步驟6為分類輸出,通過一個全連接的多層感知器進(jìn)行分類判斷,并根據(jù)指定分類體系上的概率分布情況得到最終的輸出。
進(jìn)一步地,所述步驟6在一個兩層的多層感知器中完成,包括一個全連接隱層和一個softmax層,步驟6的輸出結(jié)果為對應(yīng)文本的預(yù)測類別。
本發(fā)明與現(xiàn)有技術(shù)相比,具有如下優(yōu)點(diǎn)和有益效果:
本發(fā)明通過充分結(jié)合雙向lstm在學(xué)習(xí)文本的上下文信息方面的優(yōu)勢以及cnn在學(xué)習(xí)文本局部特征方面的優(yōu)勢,提出一種混合lstm和cnn的文本分類方法,通過利用雙向lstm學(xué)習(xí)詞的上下文信息后,再通過cnn進(jìn)一步學(xué)習(xí)提取上下文信息的詞向量的局部特征,接著再利用雙向lstm學(xué)習(xí)這些局部特征的上下文,形成固定維度的輸出,最后通過一個多層感知器進(jìn)行分類輸出。可以進(jìn)一步提高模型分類的準(zhǔn)確率,并具有較好的通用性,在測試的多個語料庫上都取得了很好的效果。
附圖說明
圖1為本發(fā)明實(shí)施例多層神經(jīng)網(wǎng)絡(luò)模型的總體架構(gòu)圖。
具體實(shí)施方式
下面結(jié)合實(shí)施例及附圖對本發(fā)明作進(jìn)一步詳細(xì)的描述,但本發(fā)明的實(shí)施方式不限于此。
實(shí)施例:
本實(shí)施例提供了一種混合長短期記憶網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)的文本分類方法,所述方法包括以下步驟:
步驟1、對文本中句子進(jìn)行預(yù)處理,包括標(biāo)點(diǎn)符號過濾、縮寫補(bǔ)齊、刪除空格、對句子進(jìn)行分詞和非法字符過濾,結(jié)合訓(xùn)練語料集中句子的長度分布及均方差,確定句子的長度閾值后形成統(tǒng)一的句子長度,利用預(yù)訓(xùn)練好的詞向量表獲取輸入文本中每一個詞的向量化表示,形成連續(xù)和稠密的實(shí)數(shù)向量矩陣;
步驟2、對于輸入的句子詞向量,分別通過一個正向的lstm網(wǎng)絡(luò)學(xué)習(xí)各個詞的上文信息和一個逆向的lstm網(wǎng)絡(luò)學(xué)習(xí)各個詞的下文信息,并將學(xué)習(xí)的結(jié)果進(jìn)行串聯(lián)合并,從而將包含語義信息的句子詞向量表示轉(zhuǎn)化為同時包含語義及上下文信息的表示;
步驟3、使用多個不同寬度、包含不同權(quán)值的核矩陣分別對雙向lstm網(wǎng)絡(luò)輸出的詞向量矩陣進(jìn)行二維卷積運(yùn)算,提取局部卷積特征,并生成多層局部卷積特征矩陣;
步驟4、使用一維最大值池化算法對多層局部卷積特征矩陣進(jìn)行下采樣,得到句子的多層全局特征矩陣,并將結(jié)果進(jìn)行串聯(lián)合并;
步驟5、使用兩個相反方向的lstm網(wǎng)絡(luò)分別學(xué)習(xí)句子局部特征間的長期依賴關(guān)系,并將最后的學(xué)習(xí)結(jié)果進(jìn)行輸出;
步驟6、將步驟5的輸出結(jié)果先通過一個全連接隱層,接著再經(jīng)過一個softmax層對句子的類別進(jìn)行預(yù)測。
上面所述一種混合長短期記憶網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)的文本分類方法是在一個多層神經(jīng)網(wǎng)絡(luò)中完成的,多層神經(jīng)網(wǎng)絡(luò)的架構(gòu)圖如圖1所示,所述步驟1在第一層輸入層中完成;步驟2在第二層雙向lstm層中完成,其中,雙向lstm的輸出維度為256維;步驟3在第三層cnn層中完成,其中,cnn層中的卷積詞步長分別為2、3、4,輸出維度為128維;步驟4在第四層池化層中完成,池化窗口的詞步長分別為2,3、4,并且采用一維最大值池化;步驟5在第五層雙向lstm層中完成,其中雙向lstm層的輸出維度為128維,并且只輸出最后一個詞的學(xué)習(xí)結(jié)果;步驟6在第六層輸出層中完成,所述輸出層為一個兩層的多層感知器,包括一個全連接隱層和一個softmax層,所述全連接隱層為128維,dropout值為0.5,步驟6的輸出結(jié)果為對應(yīng)文本的預(yù)測類別。模型訓(xùn)練過程中采用多元交叉熵定義損失函數(shù),并結(jié)合了rmsprop優(yōu)化器。
其中,所述第二層雙向lstm層用于學(xué)習(xí)原始輸入句子中各個詞的上下文信息,并且把每個詞的學(xué)習(xí)結(jié)果進(jìn)行串聯(lián)后輸出,所述第五層雙向lstm層學(xué)習(xí)卷積后句子特征間的上下文信息,并且只輸出最后一步的學(xué)習(xí)結(jié)果。
其中,所述步驟3為局部特征學(xué)習(xí)過程,通過多個不同詞步長的二維卷積窗口和卷積核對包含上下文信息的詞向量進(jìn)行學(xué)習(xí),從而得到不同粒度的短語信息,所述步驟4為采樣和降維過程,通過一維最大值池化算法對多層局部卷積特征矩陣進(jìn)行下采樣,得到句子中每一個池化窗口內(nèi)最重要的特征值,并作為局部窗口中的特征表示,所述步驟5為局部特征的上下文學(xué)習(xí),通過雙向lstm學(xué)習(xí)局部特征之間的上下文信息,并輸出最后一個詞向量的學(xué)習(xí)結(jié)果,同時形成固定維度的一維輸出,所述步驟6為分類輸出,通過一個全連接的多層感知器進(jìn)行分類判斷,并根據(jù)指定分類體系上的概率分布情況得到最終的輸出。
以上所述,僅為本發(fā)明專利較佳的實(shí)施例,但本發(fā)明專利的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明專利所公開的范圍內(nèi),根據(jù)本發(fā)明專利的技術(shù)方案及其發(fā)明專利構(gòu)思加以等同替換或改變,都屬于本發(fā)明專利的保護(hù)范圍。