999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于TextCNN 的政策文本分類

2022-06-29 06:08:26悅,湯
電子設(shè)計(jì)工程 2022年12期
關(guān)鍵詞:分類文本模型

李 悅,湯 鯤

(1.武漢郵電科學(xué)研究院,湖北武漢 430070;2.南京烽火天地通信科技有限公司,江蘇 南京 210019)

在當(dāng)今的大數(shù)據(jù)時(shí)代,政府進(jìn)行宏觀決策時(shí),常常需要參考各地市出臺(tái)的政策文件,然而現(xiàn)在各地市的政策文件分布雜亂,且類別不統(tǒng)一,目前市面上也并沒有把各地市的政策全部綜合起來(lái)的政策文本類數(shù)據(jù)集,而此類數(shù)據(jù)集為政府在宏觀決策時(shí)提供參考,基于此,文中構(gòu)建了一個(gè)大型綜合的全國(guó)各地市政策文本類數(shù)據(jù)集。其次,針對(duì)政策文本分類,目前市面上大都只進(jìn)行了單標(biāo)簽分類,而單標(biāo)簽分類顯然并不適用于政策文本的分類,用一個(gè)標(biāo)簽來(lái)概括整篇文本太籠統(tǒng),因此,文中對(duì)政策文本數(shù)據(jù)集進(jìn)行多標(biāo)簽分類。此外,在政策文本分類中,當(dāng)前普遍的思路是采用TF-IDF+SVM 分類算法[1]來(lái)構(gòu)建分類模型,或者使用BERT 進(jìn)行分類[2],效果都不佳。文中經(jīng)過實(shí)驗(yàn)驗(yàn)證了采用神經(jīng)網(wǎng)絡(luò)TextCNN 更適合進(jìn)行政策類長(zhǎng)文本的多標(biāo)簽分類。

1 TextCNN原理介紹

TextCNN 模型可以并行處理,且自帶n-gram 屬性,訓(xùn)練速度和預(yù)測(cè)精度都比較理想,是一種非常優(yōu)秀的文本分類模型[3]。對(duì)于500 字以上長(zhǎng)度的長(zhǎng)文本,即使是LSTM 在這么長(zhǎng)的序列長(zhǎng)度上也難免梯度消失,而CNN 就不存在該問題,TextCNN 不僅適合處理短文本,同樣也適合處理長(zhǎng)文本,該文待處理的政策文本即為長(zhǎng)文本。下面介紹了TextCNN 模型的原理。

1)Word Embedding

如圖1 所示,在TextCNN 中,首先將“這個(gè)青團(tuán)不錯(cuò),你嘗嘗”分詞成“這個(gè)/青團(tuán)/不錯(cuò)/,/你/嘗嘗”,通過Embedding 將每個(gè)詞映射成一個(gè)5 維詞向量(維度可任意)[4-5]。

圖1 Word Embedding

這步主要是為了將自然語(yǔ)言數(shù)值化,從而方便后續(xù)的處理。可以看出,映射方式不同,最后結(jié)果不同。構(gòu)建完詞向量后,將所有的詞向量拼接成一個(gè)6×5 的二維矩陣,將其作為最初的輸入。

2)Convolution 卷積

這一步驟是將輸入詞向量矩陣與卷積核進(jìn)行卷積運(yùn)算操作,將“這個(gè)”/“青團(tuán)”/“不錯(cuò)”/“,”4 個(gè)詞語(yǔ)構(gòu)成的矩陣與卷積核分別對(duì)應(yīng)相乘再相加,可得到最終的Feature Map,這個(gè)步驟即為卷積[6],具體操作如圖2 所示。卷積操作后,輸入的6×5 的詞向量矩陣就被映射成了一個(gè)3×1 的矩陣,即Feature Map。

圖2 卷積

3)Pooling 池化

在得到Feature Map=[1,1,2]后,從中選取最大值‘2’作為輸出,便是max-pooling[7]。如果選擇平均池化(mean-pooling)[8],就是求平均值作為輸出。由此,最大池化在保持主要特征的情況下,極大地減少了參數(shù)的數(shù)目,加速了運(yùn)算,并降低了Feature Map的維度,同時(shí),也降低了過擬合的風(fēng)險(xiǎn)。

圖3 max-pooling

4)使用Softmax k 分類

接下來(lái)是將max-pooling的結(jié)果合并到一起,再送入Softmax 中,可以得到各個(gè)類別[9],如label 為1 和-1的概率,如圖4 所示。

圖4 Softmax

在做模型預(yù)測(cè)時(shí),使用TextCNN,此時(shí)要根據(jù)預(yù)測(cè)標(biāo)簽以及實(shí)際標(biāo)簽來(lái)計(jì)算損失函數(shù),分別計(jì)算出卷積核、max-pooling、Softmax 函數(shù)、激活函數(shù),這4 個(gè)函數(shù)中的各個(gè)參數(shù)需要更新的梯度,再依次更新這些參數(shù),即可完成一輪訓(xùn)練。

2 數(shù)據(jù)集的構(gòu)建

由于該文研究任務(wù)的特殊性,沒有現(xiàn)成的語(yǔ)料可以使用,所以需要構(gòu)建相應(yīng)的語(yǔ)料庫(kù)。其數(shù)據(jù)集來(lái)源于全國(guó)各個(gè)地市的政府政策公告文本信息的爬蟲爬取,然后再對(duì)爬取的結(jié)果利用正則以及結(jié)合人工清洗的方式進(jìn)行數(shù)據(jù)的清洗,構(gòu)建數(shù)據(jù)庫(kù),將爬取并清洗后的數(shù)據(jù)入庫(kù),構(gòu)建政府政策文本語(yǔ)料庫(kù)。

2.1 爬取數(shù)據(jù)及數(shù)據(jù)處理

文中所采用的數(shù)據(jù)均為網(wǎng)絡(luò)爬蟲所得,先挑選出幾個(gè)所需字段,再對(duì)各個(gè)地市政府官網(wǎng)公開的政策文本數(shù)據(jù)分別進(jìn)行采集,經(jīng)過簡(jiǎn)單清洗后整理入庫(kù)。

為了豐富數(shù)據(jù)庫(kù)的數(shù)據(jù)內(nèi)容,文中挑選的字段涵蓋了標(biāo)題、文本、適用對(duì)象、原文鏈接等。全部字段有:title 標(biāo)題、themeList 主題、styleName文體、levelName 層級(jí)、dispatchList_commonName 發(fā)文單位、targetList 適用對(duì)象、original_url 原文鏈接、publishTime 發(fā)文時(shí)間、industryList 適用行業(yè)、scaleList 適用規(guī)模、qx_content 內(nèi)容、classify_tag_list分類標(biāo)簽。

共爬取數(shù)據(jù)100 000 條,經(jīng)去重、去空,以及刪除過短文本后數(shù)據(jù)量為96 640 條。對(duì)數(shù)據(jù)進(jìn)行如下操作:

1)增加標(biāo)簽、篩掉無(wú)關(guān)類別的數(shù)據(jù)(和分類沒關(guān)系的字段)。

2)繁簡(jiǎn)轉(zhuǎn)換、清洗無(wú)意義字符。

3)人工打標(biāo),主要是對(duì)“其他”這個(gè)類別的數(shù)據(jù)進(jìn)行打標(biāo)。

4)構(gòu)建訓(xùn)練集和測(cè)試集,按照6∶2∶2 進(jìn)行劃分。

2.2 數(shù)據(jù)集的介紹

2.2.1 類別的構(gòu)建

由于爬取的數(shù)據(jù)集中,內(nèi)容的類別雜亂不統(tǒng)一,不利于后續(xù)進(jìn)一步利用該數(shù)據(jù)集,因此,對(duì)自建數(shù)據(jù)集中的“qx_content 內(nèi)容”字段進(jìn)行文本分類操作。

在類別的設(shè)定上,首先參考了國(guó)務(wù)院政策信息網(wǎng)的類別設(shè)定;另外,文中對(duì)數(shù)據(jù)集進(jìn)行TF-IDF+LDA 聚類[10],通過聚類得到了一些政策重點(diǎn)詞,針對(duì)這些政策重點(diǎn)詞,進(jìn)行類別的設(shè)定。最終,共擬定了47 種類別。全部類別為:產(chǎn)業(yè)發(fā)展、營(yíng)商環(huán)境、政務(wù)公開、學(xué)校教育、人才引進(jìn)和能力培育、創(chuàng)新研發(fā)、復(fù)工復(fù)產(chǎn)、資質(zhì)認(rèn)定、稅收優(yōu)惠、節(jié)能環(huán)保、信息化建設(shè)、轉(zhuǎn)型升級(jí)、互聯(lián)網(wǎng)+、市場(chǎng)拓展、工程報(bào)建、企業(yè)創(chuàng)辦、穩(wěn)企穩(wěn)崗、醫(yī)療健康、金融財(cái)稅、平臺(tái)基地建設(shè)、知識(shí)產(chǎn)權(quán)、電子政務(wù)、成果轉(zhuǎn)化、數(shù)字政府、不動(dòng)產(chǎn)登記、科研課題、融資幫扶、三農(nóng)發(fā)展、租金減免、孵化器及基地建設(shè)、市場(chǎng)監(jiān)管、疫情扶持、緩繳社保、大數(shù)據(jù)、水電氣減免、招商引資、法律法規(guī)、數(shù)字經(jīng)濟(jì)、電子商務(wù)、品牌建設(shè)、數(shù)據(jù)治理、智慧城市、改制上市、并購(gòu)重組、一帶一路、區(qū)塊鏈、其他。

2.2.2 數(shù)據(jù)集示例

針對(duì)上文中的自建數(shù)據(jù)集,想要實(shí)現(xiàn)對(duì)每條數(shù)據(jù)進(jìn)行清洗、分詞后,對(duì)該條數(shù)據(jù)打上相應(yīng)分類標(biāo)簽的目的。樣本和標(biāo)簽的情況如下:

樣本是政策的文本內(nèi)容,標(biāo)簽是政策文本涉及到的類別,而每條政策涉及到的類別可能為多個(gè),所以需要進(jìn)行政策文本的多標(biāo)簽分類。所以訓(xùn)練模型的目的,是希望輸入政策文本數(shù)據(jù),輸出該政策涉及到的類別。數(shù)據(jù)集示例如圖5 所示。

圖5 數(shù)據(jù)集示例圖

3 TextCNN模型的構(gòu)建

3.1 搭建TextCNN模型

1)定義Embedding 層

加載預(yù)訓(xùn)練詞向量,在自定義Embedding 層時(shí),將把詞向量矩陣加入其中。采用這種方法,可使詞向量矩陣在模型初始化時(shí)就加載好了。可以選擇詞向量在訓(xùn)練過程中凍結(jié)還是微調(diào)。如果選擇微調(diào),即freeze=False,能夠一定程度上提升效果,盡管訓(xùn)練速度會(huì)變慢[11]。

2)定義卷積層和池化層

如果卷積層的層數(shù)太淺,會(huì)無(wú)法捕捉長(zhǎng)距離的語(yǔ)義信息,從而不足以提取文本的特征,但是如果卷積層數(shù)太深,就會(huì)陷入梯度消失的境地[12]。為了便于提取長(zhǎng)文本中的句子特征,文中增加了卷積層數(shù)、更改了池化方式。

采用的池化為1/2 池化,在卷積之后,每經(jīng)過一個(gè)大小為3,步長(zhǎng)為2 的池化層,序列的長(zhǎng)度就被壓縮成了原來(lái)的一半。即同樣是size=3 的卷積核,每經(jīng)過一個(gè)1/2 池化層后,其能感知到的文本片段就比之前長(zhǎng)了一倍,解決了原TextCNN 模型中無(wú)法捕獲長(zhǎng)距離語(yǔ)義信息的問題。

3)全連接層

該文對(duì)模型在全連接層處也進(jìn)行了修改,TextCNN 的原論文中,網(wǎng)絡(luò)結(jié)構(gòu)只有一個(gè)全連接層作為輸出層,且無(wú)激活函數(shù)。它是把卷積池化的結(jié)果拼接,然后進(jìn)行dropout 操作,再接輸出層。而該文在輸出層之前,又加了一個(gè)全連接層(激活函數(shù)為ReLU),將卷積池化的結(jié)果拼接,進(jìn)行dropout,加全連接層,再接上輸出層。這樣做的原因主要是網(wǎng)絡(luò)加深后,便于提取更豐富的特征。而且如果輸出的類別較少,那么輸出的維度劇烈降維的情況下,如直接從幾百維降到幾維,可能對(duì)分類的效果產(chǎn)生不好的影響。因此需要加一個(gè)全連接層來(lái)過渡。

4)輸出層

輸出層是線性層,不需要使用激活函數(shù)。后面的loss 函數(shù),將sigmoid 和計(jì)算binary loss 兩步同時(shí)進(jìn)行,這樣計(jì)算更有效率,也更穩(wěn)定,故不必加sigmoid函數(shù)得到概率。

文中經(jīng)改進(jìn)后的TextCNN 模型與原TextCNN 模型相比,有如下優(yōu)勢(shì):

基于傳統(tǒng)的TextCNN 模型,為了解決模型中無(wú)法捕捉長(zhǎng)距離語(yǔ)義信息的缺點(diǎn),該文加深了卷積深度,同時(shí)提出了等長(zhǎng)卷積和1/2 池化方式,使得卷積范圍增加。

另外,增加一個(gè)全連接層作為過渡,防止在輸出維度劇烈降維情況下,對(duì)分類效果產(chǎn)生的不利影響。

3.2 多標(biāo)簽分類的評(píng)估函數(shù)

該文選擇采用海明損失[13](Hamming loss)和F1值[14](宏平均和微平均)作為主要指標(biāo)來(lái)評(píng)估模型的性能。關(guān)于宏平均和微平均:如果每個(gè)class 的樣本數(shù)量相差不大,那么宏平均和微平均差異也不大。如果每個(gè)class 的樣本數(shù)量相差較大并且想更注重樣本量多的class,就使用微平均;更注重樣本量少的class,就使用宏平均。如果微平均遠(yuǎn)低于宏平均,則應(yīng)該去檢查樣本量多的class。如果宏平均遠(yuǎn)低于微平均,則應(yīng)該去檢查樣本量少的class[15]。這里可直接用sklearn 函數(shù)來(lái)計(jì)算。對(duì)于每一個(gè)預(yù)測(cè)樣本,需要47 個(gè)類別的每一個(gè)類別都預(yù)測(cè)正確,才能算該樣本預(yù)測(cè)正確,其難度太大,并不適合用于評(píng)價(jià)模型的效果,該文需要分類的共有47 個(gè)類別,如果部分類別可以預(yù)測(cè)正確的話,模型也是可以用的。在模型的訓(xùn)練過程中,如果監(jiān)控到驗(yàn)證集上的F1 值有提升,那么會(huì)在測(cè)試集上做一次評(píng)估,同時(shí)保存模型。

多標(biāo)簽分類的損失函數(shù)不再是多分類的crossentropy loss,而是binary cross-entropy loss。具體實(shí)現(xiàn)的函數(shù)為:criterion=nn.BCEWithLogitsLoss (pos_weight=config.class_weights)[16]

該函數(shù)將模型的輸出做sigmoid,然后計(jì)算損失。pos_weights 這個(gè)關(guān)鍵字參數(shù),用于傳入類別的權(quán)重,引入該參數(shù)緩解類別不平衡的問題,這里只在訓(xùn)練時(shí)傳入,驗(yàn)證和測(cè)試時(shí)不用。

4 實(shí)驗(yàn)結(jié)果及對(duì)比分析

4.1 配置環(huán)境及實(shí)驗(yàn)參數(shù)

1)實(shí)驗(yàn)環(huán)境

該實(shí)驗(yàn)的運(yùn)行環(huán)境為:tensorflow-gpu=1.12.0、keras=2.2.4、python3.6、Scikit-learn=0.21.3、Torch=1.1.0。

2)實(shí)驗(yàn)參數(shù)

在config 類中,配置好相關(guān)的參數(shù),如文件路徑、模型的各個(gè)參數(shù)等。其他一些需要通過計(jì)算得到的模型參數(shù),在數(shù)據(jù)處理過程中添加,如輸入的最大長(zhǎng)度、類別數(shù)、詞表的尺寸等。該文設(shè)置的部分參數(shù)如下:

①batch size=128;

②學(xué)習(xí)率=1e-3;

③百度百科詞向量維度=300;

④卷積核尺寸=[2,3,4,5];

⑤卷積核數(shù)量=128;

4.2 文本預(yù)處理

首先數(shù)值化樣本及標(biāo)簽,在配置參數(shù)初始化后,依次完成文本的清洗和分詞,確定輸入的最大長(zhǎng)度,對(duì)樣本進(jìn)行zero pad,轉(zhuǎn)化為id,對(duì)標(biāo)簽進(jìn)行數(shù)值化,以及構(gòu)建詞表等操作。數(shù)值化后的標(biāo)簽每一位是0或1,類別數(shù)是列數(shù),標(biāo)簽的類別數(shù)為47,也就是TextCNN 的輸出維度為47。在數(shù)值化樣本及標(biāo)簽后,加載百度百科詞向量。針對(duì)類別不平衡問題,該文的數(shù)據(jù)集多標(biāo)簽類別有47 個(gè),經(jīng)過統(tǒng)計(jì)分析,每個(gè)類別之間數(shù)量差別巨大,存在比較嚴(yán)重的類別不平衡問題。通過計(jì)算各個(gè)類別的權(quán)重,來(lái)計(jì)算加權(quán)的loss。對(duì)于數(shù)量較多的類別,給予較小的權(quán)重,數(shù)量較少的類別,權(quán)重較大,以期能緩解多標(biāo)簽的類別不平衡問題。

4.3 對(duì)比實(shí)驗(yàn)結(jié)果

該節(jié)測(cè)試基本的多標(biāo)簽貝葉斯分類算法MLNB、多標(biāo)簽分類KNN 算法ML-KNN,以及RoBERTa算法與文中改進(jìn)過的TextCNN 模型之間的性能對(duì)比。該選擇將以上各個(gè)算法在該文的自建數(shù)據(jù)集上進(jìn)行測(cè)試運(yùn)行對(duì)比,結(jié)果如表1 所示。

表1 實(shí)驗(yàn)結(jié)果對(duì)比

在該文的自建數(shù)據(jù)集上,TextCNN 模型在主要的性能指標(biāo)上超過了所有其他模型,達(dá)到了較好的效果。F1-micro 的值分別比RoBERTa、ML-KNN、ML-NB 高出了3.19,8.68,5.84 個(gè)百分點(diǎn)。

5 結(jié)束語(yǔ)

該文首先介紹并構(gòu)建了一個(gè)全新的全國(guó)政策文本類的數(shù)據(jù)集,通過爬蟲來(lái)獲取全國(guó)各個(gè)地市的政策文本數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行預(yù)處理后,構(gòu)建訓(xùn)練集、驗(yàn)證集和測(cè)試集。后在自建數(shù)據(jù)集上進(jìn)行基于TextCNN 的多標(biāo)簽分類任務(wù)。最后通過改進(jìn)過的TextCNN 神經(jīng)網(wǎng)絡(luò)來(lái)訓(xùn)練模型對(duì)數(shù)據(jù)進(jìn)行多標(biāo)簽分類,經(jīng)過實(shí)驗(yàn)對(duì)比測(cè)試,經(jīng)過改進(jìn)后的TextCNN 結(jié)合百度百科詞向量在自建數(shù)據(jù)集上達(dá)到了較好的分類效果。

當(dāng)然,該文在研究過程中仍然有不足之處,比如文中自建數(shù)據(jù)集里的政策數(shù)據(jù)是多標(biāo)簽文本,存在一定程度上的標(biāo)簽類別不平衡的問題,雖然使用權(quán)重在一定程度上緩解了類別不平衡的問題,但權(quán)重應(yīng)用的效果并不是很好,這部分內(nèi)容待優(yōu)化。未來(lái)將在該方面繼續(xù)進(jìn)行研究。

猜你喜歡
分類文本模型
一半模型
分類算一算
重要模型『一線三等角』
重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
在808DA上文本顯示的改善
分類討論求坐標(biāo)
基于doc2vec和TF-IDF的相似文本識(shí)別
電子制作(2018年18期)2018-11-14 01:48:06
數(shù)據(jù)分析中的分類討論
教你一招:數(shù)的分類
3D打印中的模型分割與打包
主站蜘蛛池模板: 日韩精品无码免费一区二区三区| 国产亚洲日韩av在线| 精品撒尿视频一区二区三区| 人妻中文久热无码丝袜| 久久人人爽人人爽人人片aV东京热 | 国产xxxxx免费视频| 国产精品亚洲片在线va| 国产在线日本| 色爽网免费视频| 性色一区| 超碰免费91| 亚洲第一国产综合| 亚洲国产精品一区二区第一页免| 在线免费不卡视频| 精品亚洲欧美中文字幕在线看| 国产视频欧美| 久久特级毛片| 亚洲成aⅴ人在线观看| 国产成人精彩在线视频50| 在线国产欧美| 国产成人亚洲精品色欲AV| 国产国模一区二区三区四区| 国产尤物在线播放| 国产精品大白天新婚身材| 一级全免费视频播放| 另类欧美日韩| 欧洲日本亚洲中文字幕| 久久久久亚洲精品无码网站| 免费无码网站| 影音先锋丝袜制服| 超碰91免费人妻| 久久福利网| 夜夜高潮夜夜爽国产伦精品| 亚洲一区二区三区国产精品| 欧美性猛交xxxx乱大交极品| 亚洲首页在线观看| 亚洲国产成人在线| 国内精品久久久久久久久久影视| 亚洲综合一区国产精品| 午夜少妇精品视频小电影| 奇米影视狠狠精品7777| 一区二区日韩国产精久久| 日韩精品久久无码中文字幕色欲| 久久综合丝袜日本网| 亚洲天堂福利视频| 日韩第九页| 在线观看精品自拍视频| 中文纯内无码H| 在线va视频| 亚洲三级影院| 色爽网免费视频| 91在线国内在线播放老师| 久久77777| 99999久久久久久亚洲| 日韩精品亚洲一区中文字幕| 日韩黄色精品| 97se亚洲综合在线| 亚洲久悠悠色悠在线播放| 国产二级毛片| 欧美黑人欧美精品刺激| 一本大道东京热无码av| 国产区91| 欧美a网站| 日本成人一区| 日本道综合一本久久久88| 欧美在线网| 国产chinese男男gay视频网| 国产精品白浆无码流出在线看| 亚洲中文精品人人永久免费| 成人综合久久综合| 国产va视频| 国产欧美日本在线观看| 日韩一区精品视频一区二区| 欧美日韩资源| 精品国产成人av免费| 女人18一级毛片免费观看| 乱人伦视频中文字幕在线| 亚洲精品第五页| 亚洲国产综合精品一区| 国产精品一区二区久久精品无码| 国产一级毛片高清完整视频版| 一级在线毛片|