摘要:為解決應急信息數據雜亂無章、缺乏高效管理等問題,通過結合長短時記憶網絡(long-term and short-term memory network,LSTM)與卷積神經網絡(Convolutional Neural Networks,CNN)兩個傳統深度學習模型,提出一種基于LSTM-TextCNN聯合模型的改進應急文本分類方法。通過收集大量的應急文本作為實驗數據集和相應的預處理,運用word2vec模型將應急文本訓練成詞向量,再以拼接后的詞向量表示文本,進而構建出LSTM-TextCNN聯合模型以提取文本的抽象特征,最后將提取到的抽象特征輸入到softmax分類器中完成應急文本的分類。將基于LSTM-TextCNN聯合模型的改進應急文本分類方法分別與傳統的分類方法支持向量機(Support Vector Machine,SVM)、單模型LSTM、單模型TextCNN進行對比分析。實例結果表明:基于LSTM-TextCNN聯合模型的改進應急文本分類方法在精確率、召回率和F1值三個評價指標上較SVM有明顯的提高,體現了深度學習在解決應急文本分類問題中的優越性;基于LSTM-TextCNN聯合模型的應急文本分類方法分類效果較單模型LSTM模型或TextCNN模型均好,體現了聯合模型的高效性。
關鍵詞:深度學習;應急文本分類;LSTM-TextCNN;word2vec
中圖分類號:TP183? 文獻標識碼:A
文章編號:1009-3044(2022)04-0095-05
1 引言與特點
應急信息對于搶險救災工作起著重要的指導作用。為了從海量的應急信息庫中快速獲取所需要的關鍵信息,對應急信息進行分類存在迫切的需要。文本信息較聲音與圖像信息來說更加易于下載和上傳,且占用內存較少,故成為應急信息傳遞過程中的主要形式,如何對應急文本信息進行高效分類是一個重要的研究問題。
應急文本分類問題主要有兩種解決方法:一種是傳統的分類方法,包括SVM[1]、鄰近算法(K-Nearest Neighbor,KNN)[2-3]等,都是基于傳統機器學習的方法,依賴于大量的特征工程;另一種是基于深度學習的分類方法,相比于傳統的機器學習分類方法,深度學習可以自我學習文本特征,具有更強的泛化性。近年來國內外眾多研究學者給予了深度學習高度關注,對文本分類問題也取得了不少的研究成果。焦李成等人[4]詳細闡述了深度學習的發展與應用,并介紹了幾種主流的神經網絡模型;Kim Y [5]使用CNN模型對電影評論進行分類,然而只設置了一層卷積層,獲取的特征信息不夠全面;Zhang Y等[6]在卷積神經網絡模型的池化層加入了注意力機制,提高了文本分類性能;王根生等人[7]在傳統的卷積神經網絡基礎上加入改進后的TF-IDF算法,對詞向量賦予權重。以上三篇文獻都使用基于單模型的文本分類方法,提取到的文本特征較為單一,在一定程度上無法準確表示整個文本。Chen等人[8]提出一種將CNN與RNN相結合的文本分類方法;鄭飛等人[9]提出一種將LDA與word2vec相結合的文本分類方法,解決了由于文本長度不一致而導致的特征提取困難這一問題;劉心蕙等人[10]把多頭注意力機制、膠囊網絡以及雙向長短時記憶網絡等方法結合起來,提出一種基于ATT-Capsule-Bilstm模型的文本分類方法。上述三篇文獻將幾種模型相結合,獲取到更加豐富的文本特征,有效提高了文本分類性能。
綜上所述,本文通過結合LSTM與TextCNN兩個傳統的單模型,提出一種基于LSTM-TextCNN聯合模型的改進應急文本分類方法,利用TextCNN模型有效提取文本的局部特征,使用LSTM模型保留特征之間的關聯性,通過融合層將其融合,從而獲得更加全面細致的文本特征,提升文本分類性能。
2 應急文本分類
2.1 整體流程
應急文本分類主要包括應急文本收集、預處理、文本向量化、神經網絡模型訓練、輸出分類結果五個部分,其流程圖如圖1。
(1)文本預處理
文本預處理工作主要包括文本分詞、去停用詞等操作。
(2)文本向量化
經過文本預處理后的詞語序列無法直接輸入到分類器中,需要將其轉化為計算機可以識別的向量形式。傳統生成詞向量的方法往往會造成維度過大的問題,使用word2vec 方法可以有效避免這個問題,且能夠在一定程度上保留詞語語意,有利于接下來的分類操作。word2vec模型包括CBOW和Skip-gram兩種結構,它們均由輸入層、預測層和輸出層三層結構組成,如圖2。選用哪種結構主要取決于語料集規模的大小,當語料集規模較大時,CBOW結構的性能優于Skip-gram結構,而當語料集規模較小時,則Skip-gram結構優于CBOW結構的性能。
本文選擇 Skip-gram 結構訓練詞向量,其訓練目標為通過給定的中心詞來預測周圍詞。詞向量訓練流程如下圖3,用 Skip-gram 模型首先對大量數據進行預訓練。
2.2 神經網絡模型構建
常用的深度學習模型有自編碼神經網絡(AE)、卷積神經網絡(CNN)、長短時記憶網絡(LSTM)和循環神經網絡(RNN)等,考慮到應急文本的特點,分類時比較適用的是CNN、RNN和LSTM網絡結構。
(1)TextCNN
TextCNN是在CNN的基礎上通過設置幾種大小不一的卷積核,對不同的局部特征進行提取,使得提取到的特征更具有全面性和多樣性[11]。TextCNN的整體架構如圖4。
TextCNN是由輸入層、卷積層(C1、C2)、池化層(S1、S2)、全連接層以及輸出層等基本結構組成。在經過word2vec模型訓練后產生了詞向量矩陣S,如式(1)所示:
式中:xi是由詞經過預訓練后的詞向量映射得到的。
TextCNN 的核心部分是卷積層,本文中卷積層設置三種大小不一的卷積核,可以分別提取不同的文本特征,卷積的核心公式如式(2)所示:
其中w和b屬于模型的超參數,f表示激活函數,一個卷積核完成卷積操作后,得到特征圖譜如式(3)所示:
為了防止過擬合且減少訓練的參數,在卷積層之后設置池化層,對特征進行聚合統計。本文中采用最大池化方法,其計算過程如式(4)所示:
將所有提取的特征值拼接到一起,形成一個特征向量,應急文本便可以用該特征向量來表示。
(2)LSTM
LSTM通過三種“門”的結構(輸入門、遺忘門和輸出門)可以決定哪些信息要被遺忘,哪些信息要被保留,這一特性使得LSTM能夠獲取文本中長距離特征之間的關系,有效彌補了RNN的缺陷,其模型結構如圖5。
圖中i、f和o分別表示輸入門、遺忘門和輸出門。LSTM網絡結構中單個記憶儲存格在t時刻的計算公式如下:
式中⊙為逐點乘運算,W和b分別表示網絡結構中的權重矩陣和偏置向量。
(3)LSTM-TextCNN
TextCNN雖然擅長提取局部特征,但無法獲取不同特征之間的依賴關系,對整個文本語義的表示存在一定的局限性。而LSTM雖然能夠在提取文本特征的同時保留特征之間的關聯性,但在提取文本特征的多樣性上稍顯不足,且對深層特征的提取還有待提高。因此,為了將兩種方法的優點結合起來,本文構建了LSTM-TextCNN聯合模型。
LSTM-TextCNN聯合模型中分別對LSTM和TextCNN兩個單模型進行訓練,之后把提取的兩種不同的文本特征融合在一起,得到更具全面性和多樣性的文本特征,LSTM-TextCNN聯合模型的結構示意圖如圖6。
在LSTM-TextCNN模型的TextCNN部分設置三層網絡結構,如圖7。第一層為輸入層,第二層為卷積層,第三層為池化層。
在LSTM-TextCNN模型的LSTM部分設置四層結構,第一層為輸入層,之后兩層隱層為LSTM層,將訓練之后的詞向量矩陣由輸入層輸入,在LSTM層進行循環計算,激活函數設置為tanh。
在LSTM-TextCNN模型的融合層中使用Keras框架里面的Concatenta函數對兩種文本特征進行融合,得到的特征向量記為C。C中包括兩個部分,一部分記作C1,即通過TextCNN模型獲取到的文本特征,另一部分記作C2,即通過LSTM模型獲取到的文本特征。獲取C的具體代碼為[C=Concatenta(axis=-1)([C1,C2])]
C中既包含了由TextCNN獲取的局部特征,又包含了由LSTM獲取的上下文語義特征,能夠更好地代表整個文本,對提高文本分類的準確率提供了幫助。
全連接中設置兩層,第一層為全連接層,第二層為Softmax層。全連接層中加上‘rule’作為激活函數,Softmax層則使用softmax激活函數,將全連接層的結果映射成區間(0,1)之間的值,該值就是劃分到某類的概率。Softmax函數如式(11)所示:
式中p表示劃分類的概率。
為了加速收斂并防止在訓練過程中使模型陷入局部最優解,在LSTM-TextCNN模型中設置損失函數為交叉熵損失函數。交叉熵的公式為:
式中C為代價;x表示實際輸入;a表示實際輸出;y表示期望輸出;n表示輸入的總數。
2.3 分類效果評價指標
應急文本分類結果通過準確率p、召回率r和F1值三個指標來評價[5]。假設Tp表示該分類判定正確,FP表示非該類被判定為該分類 ,FN表示該分類被判定為其他類,TN表示非該分類判定正確。
準確率p的計算公式為:
召回率r的計算公式為
由于準確率和召回率相互影響,有時p值越大,r值反而越小,此時無法直接評價分類結果的好壞,故引入F1值。F1值是p值和r值的調和平均數,其計算公式為:
以上三個評價指標的值越大,分類效果也就越出色。
3 實例驗證
實驗環境是在Windows 10 64位系統Intel-i7 CPU、32GB內存的計算機上進行,開發環境使用的是python3.8語言的Pycharm-professional集成開發工具,詞向量訓練工具使用Word2vec。
3.1 預處理
本文使用的應急文本數據是從中國應急信息官網、應急管理部官網中獲取的8000份應急救援相關的文檔資料。將這些應急文本按照應急事件類別分為五類:自然災害事件、事故災難事件、公共衛生事件、社會安全事件和其他事件,如表1。從中抽取80%作為訓練數據,剩下的20%作為測試數據。
(1)分詞、去停用詞
本文使用Python中文分詞組件jieba分詞,將文本信息中的每一個句子拆分成單個詞語。本文選用jieba分詞中的全模式分詞,將可能的分詞全部展示出來,以避免錯漏關鍵的詞義信息;圖8中是一篇2019年7月21日云南省麗江市永勝縣發生地震的相關文本,文本格式為txt,對圖8中的文檔內容進行分詞、去停用詞后如圖9所示。
(2)訓練詞向量
本文使用word2vec中的 Skip-gram 模型將經過預處理之后的應急文本訓練成維度為100的詞向量,把詞向量拼接成一個序列表示句子信息。
3.2 參數設置
實驗是在深度學習框架 Keras 下完成的。TextCNN 部分共設三個卷積層,分別設置三種不同尺寸的卷積核,每個卷積層設置50個卷積核。為了確定解決應急文本分類問題的最佳卷積核尺寸,實驗驗證了卷積核尺寸為2、3、4、5、6和10時的分類效果,均使用同一數據集以保證實驗結果的公平性,結果如表2所示。
通過表2的實驗結果可以看出,當卷積核尺寸設為4時文本分類效果最好。若三個卷積層都設置為同一尺寸的卷積核,則會導致提取的文本特征過于單一。因此,本文設置了三種不同尺寸的卷積核。為了選擇效果最佳的卷積核組合,以上面實驗結果中單個卷積核效果最優的尺寸4為基礎,與其他尺寸依次組合得到表3的結果。
由實驗結果可知,設置卷積核尺寸組合為3、4、5的時候,文本分類的表現效果最好。故卷積核尺寸設置為3、4、5的組合。
在 LSTM 層中,設置單元數量為50,這些單元都是并列的,droupout參數值設為0.5,在得到特征向量C后,調用Flatten層將多維的特征向量C一維化,后接全連接層,將全連接層的激活函數設置為relu,輸出維度設為1。
3.3 實驗結果與分析
為了驗證LSTM-TextCNN聯合模型的分類性能,將其分類結果與傳統的分類方法SVM、單模型TextCNN和單模型LSTM進行對比。為了保證實驗的公平性,實驗均使用同一數據集進行分類。由于模型運行過程中的意外錯誤會影響到實驗結果,故運行模型3次之后取平均值,得到結果如圖10所示。
結果顯示,相比于傳統的分類方法SVM來說,使用單模型TectCNN、單模型LSTM以及LSTM-TectCNN聯合模型得到的分類結果在精確率、召回率和F1值三個指標上都有明顯的提升,這就表明將深度學習應用到應急文本分類問題中比傳統方法的分類效果更好。同時LSTM-TectCNN聯合模型的分類結果相較于TextCNN和LSTM兩個單模型來說,其精確率、召回率和F1值都是最大的。由此可見,將LSTM和TextCNN兩個單模型結合起來構建LSTM-TectCNN聯合模型可以有效提高分類性能。其中主要原因是LSTM-TectCNN聯合模型將LSTM和TextCNN兩種單模型提取到的文本特征融合到了一起,而融合特征對整個文本的表示更加準確全面。
3.4 參數分析
為了進一步分析Droupout參數的取值對應急文本分類結果的影響,對不設置 Droupout參數和將其設置為0.1、0.3和0.5時的模型進行測試,得到結果如圖11所示。
結果顯示,不設置Dropout參數比設置Dropout參數的模型在精確率、召回率和F1值三個指標上都有降低,其主要原因是設置Dropout參數的模型在訓練階段進行權值調整時,增強了模型在缺少個體之間連接信息條件下的學習能力,很大程度上提高了模型的泛化能力。同時也可以看出,當Dropout參數值取0.3時雖然召回率比取0.5時小,但其他兩個指標值都是最高的,從整體上來看,Dropout 參數值取0.3時模型對應急文本的分類效果是最佳的。
4 結束語
本文提出來一種基于LSTM-TextCNN聯合模型的改進應急文本分類方法,利用TextCNN模型獲取文本的局部特征,使用LSTM模型保留特征之間的關聯性,以此得到的綜合特征能夠更加準確地表示整個應急文本。通過與傳統分類方法SVM、單模型LSTM以及單模型TextCNN進行比較,結果表明,LSTM-TextCNN聯合模型的F1值優于其他模型,有效提升了分類性能。下一步的研究工作是對文本進行更為細致的多標簽分類,并嘗試減少模型訓練的時間。
參考文獻:
[1] Elisseeff A, Weston J.A kernel method for multi-labelled classification[C]//Advances in Neural Information Processing Systems,2002:681-687.
[2] Wang F F,Liu Z,Wang C D.An improved kNN text classification method[J].International Journal of Computational Science and Engineering,2019,20(3):397.
[3] 陸凱,徐華.ML-kNN算法在大數據集上的高效應用[J].計算機工程與應用,2019,55(1):84-88.
[4] 焦李成,楊淑媛,劉芳,等.神經網絡七十年:回顧與展望[J].計算機學報,2016,39(8):1697-1716.
[5] Kim Y.Convolutional neural networks for sentence classification[C]//Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP).Doha,Qatar.Stroudsburg,PA,USA:Association for Computational Linguistics,2014.
[6] Er M J,Zhang Y,Wang N,et al.Attention pooling-based convolutional neural network for sentence modelling[J].Information Sciences,2016,373:388-403.
[7] 王根生,黃學堅.基于Word2Vec和改進型TF-IDF的卷積神經網絡文本分類模型[J].小型微型計算機系統,2019,40(5):1120-1126.
[8] Chen G B,Ye D H,Xing Z C,et al.Ensemble application of convolutional and recurrent neural networks for multi-label text categorization[C]//2017 International Joint Conference on Neural Networks (IJCNN).May14-19,2017,Anchorage,AK,USA.IEEE,2017:2377-2383.
[9] 鄭飛,韋德壕,黃勝.基于LDA和深度學習的文本分類方法[J].計算機工程與設計,2020,41(8):2184-2189.
[10] 劉心惠,陳文實,周愛,等.基于聯合模型的多標簽文本分類研究[J].計算機工程與應用,2020,56(14):111-117.
[11] 薛濤,王雅玲,穆楠.基于詞義消歧的卷積神經網絡文本分類模型[J].計算機應用研究,2018,35(10):2898-2903.
收稿日期:2021-08-25
作者簡介:許旺(1996—),男,甘肅武威人,碩士研究生,研究方向為深度學習、鐵路運輸組織。