高潔云,趙逢禹,劉 亞
(上海理工大學(xué) 光電信息與計算機工程學(xué)院,上海 200093)
文本分類是基于文本的內(nèi)容將文本分配給一個或多個預(yù)定義類別[1]。傳統(tǒng)上,文本分類是基于詞的向量空間模型,每個文本被表示為高維空間中的向量,文本之間的相似性是基于詞匹配計算的,即取決于文本之間詞特征的共現(xiàn)率。因此,Salton等人[2]提出的矢量空間模型,也稱為特征向量模型,有助于在二維空間中用詞頻建模來表示文本。通常,文本表示包括特征提取和特征加權(quán)兩個步驟,特征提取可捕獲文本上下文的重要特征,特征加權(quán)是各特征的賦予不同的權(quán)重值,表明其在該特定文本以及整個語料庫中的重要性。詞袋(BOW)[2]模型是把文本中的詞與詞頻抽取出來,構(gòu)成詞袋,形成文本的特征空間,但是文本特征空間的大小隨文本大小增加而變得極度稀疏,并且沒有考慮詞間的語義。
基于語義分析的技術(shù)可用于文本分類過程以提高性能和準(zhǔn)確性。但是,大多數(shù)現(xiàn)有的文本分類方法都使用統(tǒng)計加權(quán)方法來計算特征加權(quán)。Deerwester等[3]提出了一種稱為潛在語義分析(LSA)的純統(tǒng)計技術(shù),通過合并與具有相似含義的詞相關(guān)聯(lián)的維度來很好地解決同義詞問題,但是多義性問題仍沒有很好地解決。Gabrilovich和Markovitch[4]提出了一種顯式語義分析(ESA)技術(shù),利用維基百科中的概念將自然語言文本表示成細(xì)粒度的語義概念,對自然語言處理的研究發(fā)現(xiàn),ESA在文本分類方面是成功的。然而,ESA算法在很大程度上依賴于維基百科的現(xiàn)有知識,這非常耗時。Banik等人[5]已經(jīng)提出了類似的方法,其目的在于開發(fā)概念本體,其中從維基百科提取的背景知識用作語義核以改進(jìn)文檔表示。但是,基于詞特征空間的文檔表示有時不能很好地反映文檔之間的語義相關(guān)性。
在Google推出詞向量word2vec[6]后,出現(xiàn)了一種新的文檔表示方法,陳磊等人[7]通過word2vec詞向量特征選擇的方法來創(chuàng)建分類特征。詞向量是一種分布式表示,其中詞以低維和實值向量表示,在向量空間中,語義上相似的詞往往具有相似的向量。最近的研究已經(jīng)應(yīng)用詞向量來提高文本分類任務(wù)的性能[8]。
為了更進(jìn)一步優(yōu)化文本分類性能并提高準(zhǔn)確性,針對海量文本數(shù)據(jù),該文提出了一種新的混合特征選擇技術(shù)(hybrid feature selection,HFS),對海量文本使用HFS技術(shù)刪除不相關(guān)且冗余的文本特征,通過去除不必要的特征來減少數(shù)據(jù)維度。由于word2vec會忽略詞內(nèi)部的形態(tài)特征這一問題,在應(yīng)用混合特征選擇之后,提出使用預(yù)訓(xùn)練的fastText詞向量技術(shù)用于發(fā)現(xiàn)語義上相似的特征,以增強原始特征集,并應(yīng)用這種增強的特征集進(jìn)行分類。該文把增強特征方法(enhanced hybrid feature selection,EHFS)與兩種特征選擇方法(AC和MAD)以及著名的文本分類算法LSTM一起使用,并通過實驗驗證了EHFS對文本分類的有效性。
word2vec[9-10]從輸入中構(gòu)建詞匯表,然后學(xué)習(xí)詞的向量表示為每個詞生成一個向量。但它忽略了詞內(nèi)部的形態(tài)特征,比如:“文本數(shù)據(jù)”和“文本”,這兩個詞有公共字符“文本”,即它們的內(nèi)部形態(tài)類似,但是在傳統(tǒng)word2vec中,這種詞內(nèi)部形態(tài)信息因為被轉(zhuǎn)換成不同的詞向量而被忽略。為了克服這個問題,該文引入了fastText,它可以計算兩個向量在語義上的相似度,對相似特征進(jìn)行語義上的增強。
Facebook于2016年推出的fastText是一個開源的詞向量計算和文本分類工具[11-12]。在fastText模型中,字符級別的n-gram信息和詞內(nèi)部順序的隱藏信息可以用于詞表示,對于“文本數(shù)據(jù)”這個詞,假設(shè)n的取值為3,則它的trigram有:“<文本”,“文本數(shù)”,“本數(shù)據(jù)”,“數(shù)據(jù)>”。其中,<表示前綴,>表示后綴,于是,可以用這些trigram來表示“文本數(shù)據(jù)”這個詞,進(jìn)一步,“文本數(shù)據(jù)”的詞向量可以用這4個trigram的向量疊加來表示。對于未登錄詞的詞向量可以使用詞典中相應(yīng)的子詞向量之和的平均來進(jìn)行表示。
fastText還可以計算兩個向量在語義上的相似度。首先從輸入中構(gòu)建詞匯表,然后學(xué)習(xí)詞的向量表示。對于兩個詞向量,使用余弦相似度值確定它們的相似度,該值越大,兩個向量在語義上就越接近,這些詞向量可以用作分類問題中的特征。
LSTM是由Hochreiter&Schmidhuber在1997年提出的[13],它是RNN的一種特殊類型,可以學(xué)習(xí)長期依賴關(guān)系[14]。LSTM結(jié)構(gòu)如圖1所示。
圖1 LSTM結(jié)構(gòu)
RNN是具有內(nèi)部存儲器的網(wǎng)絡(luò),可高效地預(yù)測時間序列[15]。在RNN中,信息從每個神經(jīng)元流到其同層中的其他每個神經(jīng)元。LSTM是RNN單元的擴(kuò)展[16],它克服了RNN單元的缺點。與傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(luò)相比,LSTM仍然是基于xt和ht-1來計算ht,只不過內(nèi)部的結(jié)構(gòu)加入了輸入門、遺忘門以及輸出門三個門和一個內(nèi)部記憶單元ct[17]。輸入門確定何時將當(dāng)前計算的新狀態(tài)更新到記憶單元中;遺忘門確定何時將前一步記憶單元中的信息遺忘掉;輸出門確定何時將當(dāng)前的記憶單元輸出。
文本經(jīng)過預(yù)處理后一般含有數(shù)以萬計個不同的詞組,這些詞組所構(gòu)成的向量規(guī)模同樣也很龐大,計算機運算成本就比較高,因此進(jìn)行特征選擇,對文本分類具有重要的意義。該文采用改進(jìn)的混合特征選擇方法,從全局特征中提取最具區(qū)分度和較多文檔中出現(xiàn)的特征[18]。由于相似特征對分類價值不大,該文采用基于特征向量的絕對余弦(AC)相似度,去除部分相似的冗余特征。然后采用基于詞頻(term frequency,TF)的平均絕對差值(MAD)與基于詞文檔頻率(document frequency,DF)的平均絕對差值(MAD)相結(jié)合的方法選擇特征。
絕對余弦(AC)基于相似性得分去除冗余特征,將兩個詞經(jīng)過預(yù)訓(xùn)練好的fastText模型轉(zhuǎn)成詞向量,計算余弦相似度,如果相似度得分過高,則刪除其中之一。特征的絕對余弦相似度可以通過式(1)計算,其中wi和wt是詞,v(wi)與v(wt)是對應(yīng)的詞向量。
(1)
(2)
(3)
(4)
(5)
為了得到對文本分類重要的特征,該文提出了一個混合特征選擇方法HFS,獲取最具區(qū)分度和較多文檔中出現(xiàn)的特征。算法1給出了HFS算法的描述。
算法1:混合特征選擇HFS。
輸入:經(jīng)過數(shù)據(jù)預(yù)處理后的文本特征集T={t1,t2,…,tf}。
輸出:特征子集featuresHFS。
(1)在文本特征集T中,用絕對余弦AC進(jìn)行特征選擇去除冗余特征獲取特征子集FS1。
(2)在FS1中,用基于詞頻的平均絕對差值MAD進(jìn)行特征選擇獲得MAD值較大的特征子集FS2。
(3)在FS1中,用基于詞文檔頻率的平均絕對差值MAD進(jìn)行特征選擇獲得MAD值較大的特征子集FS3。
(4)選取FS2∪FS3特征子集作為featuresHFS。
通過混合特征選擇方法HFS獲取的特征子集featuresHFS并未考慮低頻且對分類有重要價值的特征,由于這類特征出現(xiàn)的頻率低,在分類訓(xùn)練算法中的作用常被忽略。為了解決這一問題,該文使用特征增強方法對這類特征在語義上進(jìn)行增強。算法2給出了EHFS算法的描述。
算法2:特征增強方法EHFS。
輸入:經(jīng)過數(shù)據(jù)預(yù)處理后的文本特征集T={t1,t2,…,tf}。
特征子集featuresHFS。
輸出:特征子集featuresenhanced。
(1)在混合特征選擇方法HFS的基礎(chǔ)上,選擇MAD值較高但是詞頻較低的部分特征。
(2)使用預(yù)訓(xùn)練好的fastText模型計算每個特征f與未標(biāo)記數(shù)據(jù)集的其他所有特征之間的余弦相似度得分。
(3)選擇每個特征語義上最相似的前k個特征,如果這k個特征在T中,且不在特征子集featuresHFS中,則將其添加到最終的特征集featuresenhanced中。
為了評估針對文本分類提出的增強混合特征選擇方法EHFS的性能,該文將分類算法LSTM應(yīng)用于使用該算法生成的最終文本向量上得到分類模型,然后驗證模型的正確性。圖2描述了文本分類流程。
圖2 基于語義分析的文本分類流程
為了更好地驗證增強的混合特征選擇EHFS算法對文本分類的作用,構(gòu)建了一個實驗。該實驗首先抓取不同類型的文本數(shù)據(jù),構(gòu)建文本數(shù)據(jù)集,然后進(jìn)行數(shù)據(jù)預(yù)處理并采用增強混合特征選擇方法進(jìn)行特征選取,最后采用LSTM模型對文本分類,并基于分類結(jié)果驗證該方法的性能與效率。
使用python抓取工具scrapy收集了來自新浪、今日頭條、騰訊、百度、人民網(wǎng)五個熱門站點共71 825個文本數(shù)據(jù),數(shù)據(jù)收集自過去3年到2019年12月之間。類別和文本數(shù)量如下:文化(6 024),經(jīng)濟(jì)(13 167),科技(7 580),法律(4 122),教育(9 809),軍事(2 675),旅游(8 352),娛樂(1 954),歷史(5 124),體育(13 018)。由于來自所有網(wǎng)站的合并數(shù)據(jù)集并未將數(shù)據(jù)公平地分布在所有類別中,因此該研究僅限于十個類別。
4.2.1 文本詞頻
該文用python編寫了對各類別中每個文本處理程序,提取詞干,統(tǒng)計每個類別對應(yīng)的詞干和詞頻,然后在數(shù)據(jù)庫中構(gòu)建文本詞頻表,表的字段有文本文檔、詞干、詞頻,以法律文本law0.txt為例,law0.txt、訴訟、13。
4.2.2 文本的詞文檔頻率
根據(jù)文本詞頻的統(tǒng)計,統(tǒng)計每個詞的詞文檔頻率DF。以每個類別的文本特征為例,針對每個詞干計算被多少個文本所覆蓋,將結(jié)果插入到詞文檔頻率表中,表的字段有詞干、詞文檔頻率,以法律詞干“訴訟”為例,訴訟、217。
在獲取每個類別每個文本的特征后(包括詞干與詞頻),通過merge_stem函數(shù)可以將每個類別的文本進(jìn)行詞干合并,最后得到該類別所有詞干集合all_features。以法律為例,將law0.txt、law1.txt…law4122.txt的特征合并到law.txt文本中。
4.3.1 詞干去冗余
根據(jù)類別得到合并后的文本,然后計算任意兩個詞之間的的絕對余弦AC值,這里詞的特征向量通過fastText計算。如果特征相似度得分超過設(shè)置的0.8,就認(rèn)為這兩個特征是冗余關(guān)系,可去掉其中DF值低的詞。本文通過調(diào)用removed_redundancy(all_features)程序獲得去冗余后的數(shù)據(jù)集FS1。
4.3.2 提取重要特征FS2
本實驗提供mad_tf程序,該程序基于每個類別特征子集FS1中各類別詞頻的平均絕對差值獲取每個類別的特征子集FS2。該程序的處理方法是:(1)計算FS1中所有詞的詞頻均值(合并文本時,將相同的詞干,所對應(yīng)的詞頻相加);(2)根據(jù)每個詞干Ti的詞頻,計算MADtfi;(3)將詞干的MADtf由大到小排序,取前60%的詞干加入到特征子集FS2中,獲得的特征子集FS2的信息(文本文檔、詞干、詞頻、詞頻的平均絕對差值MADtf)放在數(shù)據(jù)庫的表1中。
表1 詞頻的平均絕對差值
4.3.3 提取重要特征FS3
本實驗提供mad_df程序,該程序基于每個類別特征子集FS1中各類別詞文檔頻率DF的平均絕對差值獲取每個類別的特征子集FS3。該程序的處理方法是:(1)計算所有詞文檔頻率的均值;(2)根據(jù)每個詞干Ti的詞文檔頻率,計算MADdfi;(3)將詞干的MADdf由大到小排序,取前60%的詞干加入到特征子集FS3中,獲得的特征子集FS3的信息(詞干、詞文檔頻率、詞文檔頻率的平均絕對差值MADdf)放在數(shù)據(jù)庫的表2中。
表2 詞文檔頻率的平均絕對差值
4.3.4 獲取增強特征子集featuresenhanced
根據(jù)算法2,該文提供了enhanced_features程序?qū)Φ皖l特征在語義上進(jìn)行增強,來獲取每個類別增強后的特征子集featuresenhanced。
獲得每個類別的特征子集后,使用TensorFlow庫中的LSTM的實現(xiàn)類BasicLSTMCell用于構(gòu)建和訓(xùn)練深度學(xué)習(xí)模型。LSTM的建模工作是:(1)拆分?jǐn)?shù)據(jù)集為80%訓(xùn)練集和20%驗證集;(2)定義一個LSTM的序列模型,模型的第一層是嵌入層(Embedding),它將上面獲得的每個類別的特征子集features經(jīng)過fastText模型構(gòu)建的詞向量而形成的矢量矩陣作為模型的輸入;(3)輸出層則為包含10個分類的全連接層。因為是多分類問題,所以激活函數(shù)設(shè)置為“softmax”,損失函數(shù)為分類交叉熵。
基于上面的實驗過程,構(gòu)建了兩個實驗。實驗1采用混合特征選擇HFS選擇的特征訓(xùn)練分類模型,實驗2采用增強混合特征選擇方法EHFS,在混合特征選擇后對低頻特征做語義上的增強,然后用增強后的特征訓(xùn)練分類模型。針對兩個實驗,從精確率(Precision)、召回率(Recall)、F值(F1-score)[19-21]的得分來評判分類的效果。
實驗1:混合特征選擇HFS和LSTM模型的評估。
表3描述了混合特征選擇HFS進(jìn)行特征選擇獲取特征子集,然后將其作為LSTM模型的輸入數(shù)據(jù),進(jìn)行文本分類,分類的實驗結(jié)果中,軍事文本的分類精度為96%,經(jīng)濟(jì)文本的分類精度為68%。
表3 使用HFS和LSTM的分類結(jié)果
表4使用經(jīng)典的算法TF-IDF來做一組對比實驗。實驗表明HFS方法的分類效果優(yōu)于TF-IDF算法。
表4 HFS和經(jīng)典算法TF-IDF的平均實驗結(jié)果對比
實驗2:增強混合特征選擇方法EHFS和與HFS對比。
首先使用該文提出的基于語義的增強混合特征選擇方法EHFS獲取特征子集,然后將其作為LSTM模型的輸入數(shù)據(jù),進(jìn)行文本分類,得到的分類結(jié)果見表5。
表5 使用EHFS和LSTM的分類結(jié)果
續(xù)表5
從實驗結(jié)果可以得知,考慮了語義的特征選擇實驗2的分類效果較實驗1有很大改善。并且實驗2在準(zhǔn)確度上也比實驗1更高一些。實驗的分類準(zhǔn)確性如圖3所示。
圖3 實驗1和實驗2的分類準(zhǔn)確性與epoch的關(guān)系圖
在混合特征選擇上,提出一種新的增強混合特征選擇方法EHFS。該方法先使用改進(jìn)的混合特征選擇,再使用特征相似分析對低頻且對分類有重要價值的特征進(jìn)行語義上的增強。然后將得到的特征向量矩陣作為LSTM模型的輸入進(jìn)行模型的訓(xùn)練。數(shù)據(jù)集來自五個熱門網(wǎng)站的數(shù)據(jù),并將其效果與指標(biāo)進(jìn)行了比較。實驗結(jié)果表明,提出的增強混合特征選擇方法EHFS比不考慮語義只進(jìn)行混合特征選擇HFS,分類效果有很好的改善。文本數(shù)據(jù)集被分為十個不同的類別,其中體育的準(zhǔn)確度最高為96%,法律類的準(zhǔn)確度為82%。實驗基于相對較小的數(shù)據(jù)集,還可以獲取更多文本數(shù)據(jù)集來進(jìn)行改進(jìn)。另外,該文只是基于10類文本進(jìn)行分類,還需要增加數(shù)據(jù)類別驗證文本分類方法的實用性。