程?hào)|生,范廣璐,俞雯靜,伍 飛,曾偉波
(1.國(guó)家電網(wǎng)公司 國(guó)網(wǎng)安徽省電力有限公司, 合肥 230061;2.國(guó)網(wǎng)信息通信產(chǎn)業(yè)集團(tuán)有限公司 福建億榕信息技術(shù)有限公司, 福州 350003)
互聯(lián)網(wǎng)的普及和信息技術(shù)的日益發(fā)展導(dǎo)致信息的爆炸式增長(zhǎng),其中大部分信息以文檔形式存在。這些雜亂無(wú)章的文檔中往往包含著對(duì)人們非常重要的信息,如果能對(duì)這些信息進(jìn)行有效的管理和分類就可滿足人們高效獲取信息的需求。但是面對(duì)海量的文本信息,傳統(tǒng)的人工分類方式效率低下,顯然已經(jīng)無(wú)法滿足實(shí)際工作的需要,因此急需開發(fā)文本自動(dòng)分類管理系統(tǒng)。文本分類技術(shù)作為自動(dòng)文本管理系統(tǒng)的關(guān)鍵技術(shù),越來(lái)越受到學(xué)者的關(guān)注。經(jīng)過(guò)多年的研究,在文本分類領(lǐng)域產(chǎn)生了許多優(yōu)秀的模型和算法。文本分類一般包括預(yù)處理、文本表示、分類3個(gè)模塊,預(yù)處理一般包括去除非法字符、詞性標(biāo)注等步驟,其中文本表示和分類模塊是研究的重點(diǎn)。
傳統(tǒng)的文本分類方法普遍采用向量空間模型(vector space model,VSM)對(duì)文本進(jìn)行向量化表示。VSM是20世紀(jì)70年代Salton等學(xué)者提出的,該模型曾被用于SMART信息檢索系統(tǒng)[1]。VSM由于具有較好的計(jì)算性和可操作性,在信息檢索領(lǐng)域和文本分類領(lǐng)域都有廣泛的應(yīng)用。VSM模型一般采用TF-IDF、DF等方式進(jìn)行特征值(權(quán)重)的計(jì)算。這種權(quán)重計(jì)算方式在簡(jiǎn)單的文本分類中取得了不錯(cuò)的效果,但是這種方式存在“詞匯鴻溝”,即無(wú)法保存詞語(yǔ)、語(yǔ)法的信息以及相關(guān)的語(yǔ)義信息,這就意味著該方法無(wú)法衡量單詞之間的語(yǔ)義相關(guān)度,同時(shí)這種方法還存在特征向量維度過(guò)高和數(shù)據(jù)稀疏的問(wèn)題,所以VSM模型不適用于復(fù)雜的文本分類任務(wù)。為了解決“詞匯鴻溝”問(wèn)題,相關(guān)學(xué)者提出了很多解決方案[2-8]。雖然這些改進(jìn)的特征提取方式能有效改善傳統(tǒng)VSM模型的缺點(diǎn),但是這些方法都是通過(guò)人為添加一些限制條件,在一定程度上限制了特征提取的泛化能力。因此,這些改進(jìn)的VSM模型無(wú)法從本質(zhì)上解決VSM模型在特征表達(dá)上存在的問(wèn)題。后續(xù)有學(xué)者提出了詞向量模型,該模型可以有效地解決以上問(wèn)題。其中比較著名的是Word2Vec模型。Word2Vec由Google的Tomas Mikolov團(tuán)隊(duì)[8]提出并實(shí)現(xiàn)。該算法可以在很短的時(shí)間內(nèi)從大規(guī)模的語(yǔ)料庫(kù)中學(xué)習(xí)到詞向量,在得到詞的低維度向量表達(dá)后可在一定程度上判斷詞語(yǔ)間在語(yǔ)義上的相似性。
在分類階段,Logistic回歸、樸素貝葉斯[9-11]、決策樹、KNN[12]、支持向量機(jī)[13-14]等方法在文本分類領(lǐng)域有著廣泛應(yīng)用,取得了豐碩的研究成果。同時(shí),有學(xué)者提出將不同分類模型進(jìn)行融合的策略[15-16]。總體來(lái)說(shuō),這些分類模型復(fù)雜度低,訓(xùn)練速度相對(duì)較快,可解釋性較強(qiáng),但不能實(shí)現(xiàn)文本特征的自動(dòng)提取,分類性能較差。
近年來(lái),深度學(xué)習(xí)模型在自然語(yǔ)言處理(natural language processing,NLP) 領(lǐng)域有了較大的突破[17-20]。2003年,加拿大蒙特利爾教授Bengio等[17]提出用神經(jīng)網(wǎng)絡(luò)來(lái)訓(xùn)練語(yǔ)言模型,嘗試將詞語(yǔ)映射到N維實(shí)數(shù)向量空間中,從而有效避免了因語(yǔ)料龐大而造成的維度災(zāi)難;Weston[18]嘗試將深度學(xué)習(xí)模型應(yīng)用到自然語(yǔ)言處理任務(wù)中的分詞、詞性標(biāo)注、命名實(shí)體識(shí)別和語(yǔ)義角色標(biāo)注等多個(gè)典型問(wèn)題中,并取得了與其他先進(jìn)模型相當(dāng)?shù)乃?;在這之后, Andriy Mnih等[19]提出一種層次化的神經(jīng)網(wǎng)絡(luò)訓(xùn)練模型,希望通過(guò)層次化來(lái)降低單個(gè)神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型的復(fù)雜度; Irsoy等[20]將遞歸神經(jīng)網(wǎng)絡(luò)的深度擴(kuò)展到3層使其成為一個(gè)更深層的網(wǎng)絡(luò),從而有效提高了網(wǎng)絡(luò)的表達(dá)能力??梢钥闯觯陙?lái)深度學(xué)習(xí)模型在自然語(yǔ)言處理領(lǐng)域有不小的進(jìn)步,但是深度學(xué)習(xí)訓(xùn)練效率非常慢,這導(dǎo)致無(wú)法在海量數(shù)據(jù)中進(jìn)行有效推廣。
綜上所述,目前文本分類領(lǐng)域還存在一些難點(diǎn)急需解決,主要包括:① 如何構(gòu)建一個(gè)高效、穩(wěn)定的語(yǔ)義詞典;② 如何打破向量空間模型中詞與詞之間的獨(dú)立性;③ 如何使分類精度與海量數(shù)據(jù)訓(xùn)練速度之間有效平衡。
本文提出了基于極限學(xué)習(xí)機(jī)的中文文本分類方法。該方法包括預(yù)處理模塊、文本特征提取模塊、特征融合模塊和基于極限學(xué)習(xí)機(jī)的分類模塊。其中文本特征提取模塊包含兩個(gè)子模塊:底層特征提取模塊和中層特征自主學(xué)習(xí)模塊。底層特征提取模塊主要包括語(yǔ)義詞典構(gòu)造和特征表達(dá)兩個(gè)步驟,在語(yǔ)義詞典構(gòu)造步驟中,本文加入詞性選擇和底層特征選擇兩個(gè)過(guò)程,以此構(gòu)建一個(gè)高效、穩(wěn)定的語(yǔ)義詞典。實(shí)驗(yàn)結(jié)果表明,本方法可有效解決上述問(wèn)題。
本文所提出的基于ELM的中文文本分類方法總體框架如圖1所示。該方法可分為4個(gè)連續(xù)的模塊:預(yù)處理模塊、文本特征提取模塊、特征融合模塊和分類模塊。文本特征提取模塊包括底層特征提取和中層特征提取兩個(gè)子模塊。在分類模塊中該方法采用ELM作為基分類器,包括學(xué)習(xí)和運(yùn)行兩個(gè)階段,兩個(gè)階段的第一步都要經(jīng)過(guò)預(yù)處理模塊。該模塊主要功能是對(duì)數(shù)據(jù)進(jìn)行規(guī)范化處理,去除與本任務(wù)不相干的信息。模塊首先將文本內(nèi)容統(tǒng)一為UTF-8的編碼格式;再采用正則表達(dá)式匹配的方式對(duì)非法字符進(jìn)行過(guò)濾處理;然后采用ICTCLAS漢語(yǔ)詞法分析系統(tǒng)進(jìn)行分詞和詞性標(biāo)注;最后采用百度停用詞表對(duì)文本中經(jīng)常出現(xiàn)但其本身對(duì)文本分析意義不大的詞進(jìn)行過(guò)濾。
在模型學(xué)習(xí)階段中,訓(xùn)練樣本首先經(jīng)過(guò)預(yù)處理模塊去除不相干的信息,然后進(jìn)入底層特征提取子模塊。該子模塊包括語(yǔ)義詞典的構(gòu)建和形成訓(xùn)練樣本的底層特征表達(dá)兩個(gè)過(guò)程。本方法不是采用傳統(tǒng)的語(yǔ)義詞典構(gòu)造方法,而是提出一套語(yǔ)義詞典的通用構(gòu)建方法,主要包括詞性選擇和底層文本特征選擇兩個(gè)步驟,可在一定程度解決傳統(tǒng)語(yǔ)義詞典詞性單一且覆蓋面不足的問(wèn)題。底層特征最后采用向量空間模型進(jìn)行表達(dá),其中向量中每維的特征是歸一化后的TF-IDF權(quán)重。中層特征提取子模塊首先結(jié)合上一子模塊生成的語(yǔ)義詞典和大規(guī)模的語(yǔ)料庫(kù),采用無(wú)監(jiān)督方式訓(xùn)練Skip-gram模型,接著用訓(xùn)練好的模型產(chǎn)生訓(xùn)練樣本詞向量。最后采用池化技術(shù)形成每個(gè)訓(xùn)練文檔的中層特征表達(dá)。特征融合模塊將之前模塊計(jì)算到的底層特征和中層特征加權(quán)串聯(lián)起來(lái)形成融合特征表達(dá);分類模塊采用監(jiān)督式訓(xùn)練方式分別訓(xùn)練3個(gè)基于極限學(xué)習(xí)機(jī)的文本分類模型,即對(duì)應(yīng)底層特征文本分類模型、中層特征文本分類模型和融合特征文本分類模型。
在模型測(cè)試階段中,測(cè)試樣本同樣要經(jīng)過(guò)預(yù)處理模塊去除與本任務(wù)不相干的信息。在文本特征提取模塊中,本文結(jié)合學(xué)習(xí)階段生成的語(yǔ)義詞典和訓(xùn)練好的Skip-gram模型得到測(cè)試樣本的底層特征和中層特征表達(dá),然后經(jīng)過(guò)特征融合模塊生成融合特征表達(dá)。計(jì)算好的底層特征、中層特征和融合特征分別送入模型學(xué)習(xí)階段中學(xué)習(xí)好的3個(gè)基于極限學(xué)習(xí)機(jī)的文本分類模型中進(jìn)行分類,最后綜合3個(gè)分類模型的分類結(jié)果得出待判定樣本所屬的文本類別。
下面詳細(xì)介紹本方法中涉及到的一些技術(shù),主要包括語(yǔ)義詞典構(gòu)造、底層特征表達(dá)、中層特征表達(dá)、融合特征表達(dá)和基于ELM的分類器。
圖1 基于極限學(xué)習(xí)機(jī)的中文文本分類框圖
鑒于使用傳統(tǒng)語(yǔ)義詞典識(shí)別效果不佳,本文提出了一套語(yǔ)義詞典生成的方法。該語(yǔ)義詞典基于輸入的語(yǔ)料庫(kù)訓(xùn)練,訓(xùn)練文本進(jìn)行文本預(yù)處理后首先進(jìn)行詞性選擇,選取動(dòng)詞、名詞、形容詞、副詞共同組成,保證了語(yǔ)義詞典的穩(wěn)定。通過(guò)底層特征選擇的方式對(duì)語(yǔ)義詞典做進(jìn)一步的篩選,將最能代表文本類別屬性的詞選出,保證了語(yǔ)義詞典的高效性。需要說(shuō)明的是,本文提出的語(yǔ)義詞典構(gòu)建過(guò)程都在訓(xùn)練階段完成。
本文方法認(rèn)為除了形容詞,名詞、動(dòng)詞和副詞都能在一定程度上體現(xiàn)文本的屬性類別,因此將這幾種詞性進(jìn)行組合對(duì)比。經(jīng)過(guò)多組對(duì)比后,最后選擇了名詞、動(dòng)詞、形容詞和副詞共同作為基準(zhǔn)詞,認(rèn)為這樣能最大程度地保證語(yǔ)義詞典的覆蓋面,同時(shí)保留了文檔的語(yǔ)義信息。相比選擇所有詞作為特征詞的方法,詞性選擇在一定程度上降低了語(yǔ)義詞典的維度。
在進(jìn)行文本表達(dá)的過(guò)程中發(fā)現(xiàn),如果選擇所有的基準(zhǔn)詞作為底層特征,依然會(huì)得到一個(gè)高維度的特征空間,特征的維度達(dá)到了幾萬(wàn)維。這樣高維度的底層特征會(huì)給后續(xù)文本分析模塊帶來(lái)巨大的負(fù)擔(dān),不僅高維度的特征帶來(lái)訓(xùn)練時(shí)間的增加,同時(shí)許多分類器無(wú)法適應(yīng)如此高維度的特征空間,使分類的性能受到一定的影響。由于真正對(duì)文本分類有積極意義的特征只是少數(shù),所以本文在詞性選擇基礎(chǔ)上采取了特征選擇過(guò)程。特征選擇過(guò)程使用卡方統(tǒng)計(jì)為評(píng)估函數(shù),為每個(gè)類別下的每個(gè)基準(zhǔn)詞都進(jìn)行計(jì)算得到其對(duì)應(yīng)的CHI值,然后對(duì)這個(gè)類別下的所有基準(zhǔn)詞基于CHI值進(jìn)行降序排序,選擇出最大的K個(gè)基準(zhǔn)詞。K的取值根據(jù)語(yǔ)料的大小來(lái)確定,不同語(yǔ)料的值不同。最后將多個(gè)類別下選擇的多組K個(gè)基準(zhǔn)詞進(jìn)行合并,得到最終的特征詞用于構(gòu)建語(yǔ)義詞典。通過(guò)這兩個(gè)過(guò)程的選擇,語(yǔ)義詞典的維度也從開始的幾萬(wàn)維降低到幾千維,在一定程度上緩解了高維度特征帶來(lái)的訓(xùn)練時(shí)間的增加和分類器分類性能下降的情況。
本文采用空間向量模型作為底層特征的文本表達(dá)。向量空間模型是一種簡(jiǎn)便、高效的文本表示模型。向量空間模型的形式化表達(dá)如下:
對(duì)于給定的文本D=D{t1∶w1,t2∶w2,…,tn∶wn},其中ti表示第i個(gè)特征項(xiàng),wi表示特征項(xiàng)ti所擁有的權(quán)重,n為特征項(xiàng)的總數(shù),在本文中指語(yǔ)義詞典的維度。
在一篇文檔中,選取的不同特征詞對(duì)一篇文檔的類別屬性貢獻(xiàn)應(yīng)該是不相同的。例如形容詞的類別屬性貢獻(xiàn)可能比較大,副詞可能略小于形容詞。為此,本文認(rèn)為有必要對(duì)經(jīng)過(guò)選擇的特征詞進(jìn)行加權(quán),對(duì)文本類別屬性貢獻(xiàn)較大的特征詞賦予較大的權(quán)重,類別屬性貢獻(xiàn)較小的賦予較小的權(quán)重。故本文采用TF-IDF計(jì)算每個(gè)特征向量中的每個(gè)權(quán)重。
TF-IDF算法是自然語(yǔ)言處理領(lǐng)域常用的一種特征權(quán)重計(jì)算方法,相比單獨(dú)依靠詞頻統(tǒng)計(jì)的方法,它將特征詞頻和逆文檔頻率結(jié)合起來(lái)用于計(jì)算某個(gè)特征詞的權(quán)重,TF-IDF對(duì)于類別表征能力的評(píng)判更加全面。詞頻(term frequency,TF) 指某個(gè)給定的詞語(yǔ)在文檔中出現(xiàn)的頻率。逆文檔頻率(inverse document frequency,IDF) 是以包含特征詞的文檔數(shù)為參數(shù)構(gòu)造特征權(quán)重函數(shù),衡量的是詞語(yǔ)的普遍重要性。將TF與IDF結(jié)合起來(lái)使用可以衡量詞語(yǔ)對(duì)某個(gè)文檔的重要性,兩者相乘就形成了TF-IDF權(quán)重。為了消除不同文本長(zhǎng)度對(duì)于特征詞權(quán)重的影響,本文還對(duì)TF-IDF值進(jìn)行了歸一化處理。
中層特征的文本表達(dá)以詞向量為基礎(chǔ),詞向量通過(guò)神經(jīng)網(wǎng)絡(luò)對(duì)語(yǔ)料庫(kù)進(jìn)行訓(xùn)練,將語(yǔ)料庫(kù)中的每個(gè)詞語(yǔ)都映射成一個(gè)指定長(zhǎng)度的向量。這個(gè)向量的維度一般在幾十維到幾百維,相比于One-hot表示法,該向量的維度有了極大的降低。詞向量可以擺脫傳統(tǒng)表示法中詞語(yǔ)之間獨(dú)立的情況。本文采用skip-gram模型獲取詞向量,同一個(gè)詞在不同的輸入語(yǔ)料下學(xué)習(xí)到的詞向量是不同的,skip-gram模型是一個(gè)自學(xué)習(xí)模型,在自主學(xué)習(xí)過(guò)程除了幾個(gè)參數(shù)的選擇,人為干預(yù)很少。
為了獲得文檔的整體表達(dá),本文在得到文檔詞向量的基礎(chǔ)上提出了池化(Pooling)表示法。使用池化表示法既保留了特征詞之間的語(yǔ)義相似性,又在一定程度上降低了底層特征的向量維度,提高了文本識(shí)別精度。圖2所示為本文提出的池化方法示意圖。中層特征表達(dá)的詳細(xì)步驟流程如下:
1) 假設(shè)文本包含x個(gè)詞語(yǔ),經(jīng)過(guò)底層特征提取后剩下t個(gè)詞語(yǔ)(即詞典個(gè)數(shù)為t),則這條文本表示為T=(w1,w2,…,wt),其中每個(gè)單詞的詞向量為v(wi),每個(gè)詞向量有m維特征;
2) 將文本T中的詞向量等分成N份,形成N個(gè)詞向量組,每個(gè)組里面對(duì)應(yīng)有t/N個(gè)詞向量;
3) 對(duì)于每個(gè)詞向量組進(jìn)行以下操作:將組內(nèi)所有詞向量進(jìn)行累加,最終每個(gè)詞向量組都形成一個(gè)特征向量v(z),該特征向量的維度也是m;
4) 將N個(gè)詞向量組的特征向量串聯(lián)起來(lái)就得到整個(gè)文檔的特征向量v(z1)‖v(z2)‖…‖v(zN),其中‖表示串聯(lián)的符號(hào)。
圖2 池化方法示意圖
為了進(jìn)一步提高特征的表達(dá)能力,本文提出了融合特征表達(dá),該方法的主要思路是將之前模塊提取到的底層特征和中層特征進(jìn)行融合,其融合策略是采用權(quán)重組合,公式為?L‖(1-?)M,其中:L表示底層特征向量;M表示中層特征向量;?為底層特征的權(quán)重,設(shè)置為0.2;‖表示串聯(lián)的符號(hào)。該融合特征思路簡(jiǎn)單,能有效地結(jié)合不同尺度下的特征表達(dá)。實(shí)驗(yàn)結(jié)果證明,該融合特征可提高分類精度。
ELM是一種單隱層的前饋神經(jīng)網(wǎng)絡(luò)[21]。該網(wǎng)絡(luò)由輸入層、隱藏層、輸出層三部分組成,輸入層到隱藏層、隱藏層到輸出層之間都是全連接。其中輸入層x表示樣本特征向量,隱含層包括L個(gè)隱含神經(jīng)元,一般情況下L遠(yuǎn)小于N(樣本個(gè)數(shù)),輸出層輸出m維的向量(對(duì)應(yīng)于文本類別的個(gè)數(shù))。與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)不同的是,ELM輸入層和隱含層之間的權(quán)重隨機(jī)生成,只需考慮隱藏層和輸出層之間的連接權(quán)重。ELM優(yōu)化過(guò)程不僅要使誤差最小,也要使隱藏層輸出權(quán)值達(dá)到最小,這樣模型的泛化能力就會(huì)最好,優(yōu)化目標(biāo)方程如下:
Minimize: ‖Hβ-T‖2and ‖β‖
(1)
其中,
H為針對(duì)多個(gè)訓(xùn)練樣本x=[x1,…,xn,…,xN]的隱藏層輸出矩陣。此處的x表示N個(gè)訓(xùn)練樣本文本表達(dá)的集合,H的大小由訓(xùn)練樣本的數(shù)量N和隱藏節(jié)點(diǎn)的數(shù)量L決定,通常L遠(yuǎn)小于N。T是訓(xùn)練樣本集形成的標(biāo)簽矩陣,每一行代表一個(gè)樣本,采用one-hot的形式存儲(chǔ)。
β是隱藏層和輸出層的連接權(quán)重。根據(jù)ELM理論可以求出式(1)中β的解析解:
雖然ELM算法與傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)、SVM相比表現(xiàn)出運(yùn)行速度快、泛化能力強(qiáng)等特點(diǎn),但是本文需要解決二元甚至三元的文本類別分析,而在三元文本分析中特征面臨著高度線性不可分。因此,本文將核函數(shù)引入到ELM算法中進(jìn)行改進(jìn),既Kernel ELM[22]。其主要思想是利用核函數(shù)先將這些特征映射到高維特征中,使得各個(gè)類別的特征在高維空間中不再那么高度非線性。
核函數(shù)定義為
K(xi,yj)=h(xi)·h(yj)
(5)
在ELM中,核技術(shù)就是將顯式的激活函數(shù)G(a,b,x)轉(zhuǎn)換為隱式的映射函數(shù)K(xi,yj)。定義內(nèi)核矩陣求解輸出值為
ΩELM=HHT∶ΩELMi, j=
h(xi)·h(yj)=K(xi,yj)
(6)
則Kernel ELM輸出可以表示為
從式(7)可以看出,不再需要輸入層到隱藏層之間的激活函數(shù)集合h(x)的具體值和隱藏層的節(jié)點(diǎn)個(gè)數(shù)L,而只要知道核函數(shù)K(xi,yj)的具體形式和輸入的樣本個(gè)數(shù)N就可計(jì)算出一個(gè)文本表達(dá)x的表達(dá)值。也就是說(shuō),從網(wǎng)絡(luò)模型上看,相比于傳統(tǒng)的ELM,Kernel ELM固定了網(wǎng)絡(luò)結(jié)構(gòu)而不再受隱藏層節(jié)點(diǎn)數(shù)的干擾,提高了Kernel ELM的穩(wěn)定性。更為重要的是,引入核函數(shù)后的原始特征數(shù)據(jù)會(huì)被映射到高維特征空間中,從而增大了特征間線性分隔的概率,使得分類器易于以擅長(zhǎng)的線性算法去檢測(cè)特征間的非線性關(guān)系。
本文選定高斯核函數(shù)作為映射函數(shù),即:
K(u,v)=exp(-γ‖u-v‖2)
(8)
其中,γ為高斯核平滑參數(shù)。結(jié)合式(7)和(8)可知,KernelELM算法的性能依賴于正則化系數(shù)C和高斯核平滑參數(shù)γ。訓(xùn)練過(guò)程的算法示意圖見(jiàn)圖3。
算法Kernel ELM訓(xùn)練過(guò)程輸入:訓(xùn)練樣本集{(xi, yi)i=1,…,N},核函數(shù)K(xi, yj),常數(shù)C,高斯核平滑參數(shù)γ;輸出:(I/C+ΩELM-1T1.根據(jù)公式(5)~(6)求出ΩELM;2.根據(jù)公式(5)~(7)求出(I/C+ΩELM)-1T;3.保存(I/C+ΩELM)-1T;
為了提高識(shí)別精度,本文提出了集成ELM分類模型。該模型主要思路是分別針對(duì)不同的特征訓(xùn)練分類器,最后綜合3個(gè)分類器的輸出得到最后的分類結(jié)果。圖4所示為本文提出的集成分類器方法。
該算法由如下步驟組成:
1) 分別提取文本樣本的底層特征、中層特征和融合特征;
2) 將3種特征分別送入訓(xùn)練好的基于底層特征的文本分類模型、訓(xùn)練好的基于中層特征的文本分類模型和訓(xùn)練好的基于融合特征的文本分類模型;
3) 將3個(gè)分類模型輸出結(jié)果向量(其中向量每一維對(duì)應(yīng)其中一類的文本類別,每一維的數(shù)值代表文本樣本屬于該文本類別的概率)相加,得到最終輸出向量;
4) 找到最終輸出向量中數(shù)值最大的量,其所對(duì)應(yīng)的文本類別即需要判定樣本的文本類別。
圖4 集成分類器方法示意圖
為了驗(yàn)證提出的文本分類算法,本文將設(shè)計(jì)的算法運(yùn)用于電網(wǎng)檔案管理系統(tǒng)中的檔案分類任務(wù)。實(shí)驗(yàn)所需數(shù)據(jù)集由國(guó)網(wǎng)安徽省電力有限公司提供。該數(shù)據(jù)集提取了2015—2016年國(guó)網(wǎng)安徽省電力有限公司各部門歸檔的文件信息的匯總條目。整個(gè)數(shù)據(jù)集共包括6 713條條目,每一條條目包括序列號(hào)、文件名、文件歸檔部門3個(gè)信息。該任務(wù)的具體要求是:只需根據(jù)文件名完成對(duì)文件歸檔部門的判定。這個(gè)任務(wù)本質(zhì)上是一個(gè)多類文本分類問(wèn)題。數(shù)據(jù)集共涉及22個(gè)部門,每個(gè)部門對(duì)應(yīng)的文件數(shù)如表1所示,可以看出該數(shù)據(jù)集分布不均衡。其中,基建部收集了845條文件,而運(yùn)營(yíng)監(jiān)測(cè)(控)中心只收集了15條文件。為了保證語(yǔ)料庫(kù)的多樣性,本文在訓(xùn)練階段所用的語(yǔ)料庫(kù)除了這些檔案的文件名之外還有檔案對(duì)應(yīng)的文件內(nèi)容。
表1 各部門檔案條數(shù)
實(shí)驗(yàn)所用的硬件配置為Intel(R) Pentium(R) G2030,CPU頻率為3.0 GHz,內(nèi)存為8 G。在實(shí)驗(yàn)過(guò)程中,底層特征的所有步驟以及中層特征的學(xué)習(xí)提取都是通過(guò)JAVA語(yǔ)言實(shí)現(xiàn)完成,分詞以及詞性標(biāo)注處理引用了ICTCLAS的Jna-4.0.0的JAR包。最后的分類模塊在Matlab R2012a上實(shí)現(xiàn)。對(duì)照試驗(yàn)中,SVM算法和基于核的SVM(Kernel_SVM)算法使用臺(tái)灣林教授提供的SVM軟件包[23]。
本文采用分類精度(accuracy)指標(biāo)來(lái)驗(yàn)證提出的基于極限學(xué)習(xí)機(jī)的文本分類方法(本文提出的方法在下文中簡(jiǎn)稱為Kernel_ELM)。使用的評(píng)價(jià)指標(biāo)的計(jì)算公式為:
分類精度=(被正確分類的樣本個(gè)數(shù)/樣本總數(shù))×100%
采用5折交叉驗(yàn)證方式,最后記錄5次實(shí)驗(yàn)的平均精度和標(biāo)準(zhǔn)差,精度越高,標(biāo)準(zhǔn)差越小,則該算法性能越好。
2.4.1 底層特征維度對(duì)模型性能的影響
底層特征采用VSM模型進(jìn)行表示,所以底層特征維度與語(yǔ)義詞典的個(gè)數(shù)有關(guān)。語(yǔ)義詞典構(gòu)建經(jīng)過(guò)詞性選擇和底層特征選擇兩個(gè)過(guò)程,其中涉及的可調(diào)參數(shù)為底層特征選擇過(guò)程中的K值。在底層特征選擇過(guò)程中,使用卡方統(tǒng)計(jì)量,為每個(gè)類別下的每個(gè)詞都進(jìn)行計(jì)算得到一個(gè)CHI值,然后對(duì)這個(gè)類別下的所有詞基于CHI值進(jìn)行排序,選擇出最大的K個(gè)詞,K的取值會(huì)直接影響底層特征維度和模型的性能。實(shí)驗(yàn)分別設(shè)置K值為100、150、200、250、300,分類器采用Kernel ELM。為客觀反映不同K值下模型的性能,本文分別采用尋優(yōu)策略得到不同K值下模型的最優(yōu)結(jié)果(即找到不同K值下對(duì)應(yīng)分類器的最優(yōu)正則系數(shù)C和高斯核平滑參數(shù)γ)。從表2可以看出,K值為250時(shí)模型達(dá)到最優(yōu),但是K值取200時(shí)的結(jié)果與K值取250時(shí)的差距很微弱。為了平衡精度和時(shí)間效率,實(shí)驗(yàn)中將每個(gè)類的K值設(shè)置為200。
表2 不同特征詞數(shù)下的分類精度
2.4.2 詞向量維度對(duì)模型性能的影響
中層特征中詞向量的維度是非常重要的參數(shù),直接影響中層特征文本表達(dá)的維度,因此本節(jié)將對(duì)詞向量的維度m對(duì)模型性能的影響進(jìn)行驗(yàn)證。實(shí)驗(yàn)中分別將詞向量的維度設(shè)置為50、100、200、300,訓(xùn)練模型采用Skip-gram,訓(xùn)練過(guò)程中上下文窗口大小選擇為5,采用Hierarchical Softmax算法進(jìn)行采樣,采樣閾值設(shè)置為10-4,這樣如果一個(gè)詞語(yǔ)在訓(xùn)練語(yǔ)料中出現(xiàn)的頻率越高,就越會(huì)被采樣。實(shí)驗(yàn)中將池化表示法中的N值統(tǒng)一設(shè)置為10。實(shí)驗(yàn)結(jié)果如表3所示,表明詞向量維度越高,效果越好,但是識(shí)別精度會(huì)隨著維度上升增幅逐漸減小。表3顯示維度200和維度300之間的精度差距非常微小,但是維度300以下所需的訓(xùn)練時(shí)間和測(cè)試時(shí)間卻大大超過(guò)維度200下的情況。綜合考慮時(shí)間效率和精度,本文將中層特征中詞向量的維度設(shè)置為200。
表3 不同詞向量維度下的分類精度
2.4.3融合特征及集成分類器對(duì)模型性能的影響
驗(yàn)證本文提出的融合特征和集成分類器策略對(duì)模型性能的影響。表4分別是底層特征、中層特征、融合特征和集成分類器對(duì)應(yīng)的分類精度。從表4可以看出,本文提出的融合特征的分類精度為96.11%,比中層特征提高了0.99%,而采取集成分類器策略的分類精度為97.81%,高于采用一種特征的分類精度,證明本文提出的融合特征和集成分類器策略可顯著提高分類性能。
表4 不同特征下的分類精度
2.4.4 整體性能的比較
將本文提出的方法與傳統(tǒng)方法進(jìn)行比較,本文選取的對(duì)比模型為基于SVM的模型和基于kernel_SVM的模型。為保證公平性,所使用的特征保持一致,集成策略也保持一致。表5展示的是不同方法下得到的分類精度。其中,單獨(dú)SVM、單獨(dú)Kernel_SVM和單獨(dú)Kernel_ELM表示只使用融合特征,集成SVM、集成Kernel_SVM、集成Kernel_ELM表示采取本文提出的集成策略??梢钥闯?,本文提出的方法在單獨(dú)使用融合特征時(shí)和采取集成策略時(shí)都比SVM模型和Kernel_SVM模型的精度高。另外,集成策略對(duì)于SVM基本沒(méi)起到作用,對(duì)于Kernel_SVM的作用也很微弱,但是集成策略卻在本文采用的Kernel ELM分類器上表現(xiàn)出很好的性能提升。這也驗(yàn)證了本文提出方法的優(yōu)越性能。
表5 不同方法分類精度比較
本文提出了一種基于極限學(xué)習(xí)機(jī)的中文文本分類方法,采用單隱層神經(jīng)網(wǎng)絡(luò)作為分類器并使用ELM算法來(lái)訓(xùn)練分類器,有效平衡了模型性能和學(xué)習(xí)效率。為提高精度,本文分別針對(duì)不同的特征訓(xùn)練分類器,并綜合3個(gè)分類器的輸出得到最后的分類結(jié)果。在電網(wǎng)檔案管理系統(tǒng)中的檔案分類問(wèn)題中驗(yàn)證本文方法,實(shí)驗(yàn)結(jié)果表明:本文所提出的算法取得了97.81%的分類精度,相較于基于Kernel SVM的方法提高了1.26%;同時(shí)算法具有極低的計(jì)算復(fù)雜度,只需450 s就可完成模型的訓(xùn)練,相比基于Kernel SVM的方法速度提高了38倍;在測(cè)試階段,識(shí)別一張圖只需要3.76 ms,相比基于Kernel SVM的方法速度提高了10倍。因此,本文所提出的方法適用于海量數(shù)據(jù)下的中文文本分類場(chǎng)景,具有重要的研究意義和推廣價(jià)值。