吳震,冉曉燕,苗權(quán),2,*,劉純艷,張棟,魏娜
(1.國家計算機(jī)網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心,北京 100029;2.國家計算機(jī)網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心北京分中心,北京 100055; 3.長城計算機(jī)軟件與系統(tǒng)有限公司,北京 100190)
中國的企業(yè)數(shù)量眾多,行業(yè)類別廣泛。對于廣大企業(yè)進(jìn)行行業(yè)分類是十分必要的,能夠進(jìn)一步解釋特定行業(yè)所處的發(fā)展階段及其在國民經(jīng)濟(jì)中的地位。以《國民經(jīng)濟(jì)行業(yè)分類》[1](GB/T 4754—2017)為例,將行業(yè)分為了97個大類、473個中類、1 380個小類。近年來,網(wǎng)信企業(yè)規(guī)??焖僭黾?,隨著基于深度學(xué)習(xí)的文本分類技術(shù)[2-4]的提升,如何利用企業(yè)數(shù)據(jù)信息進(jìn)行行業(yè)智能判別和分類具有重要意義,同時對于全國企業(yè)的智能分類具有借鑒和參考作用。
據(jù)不完全統(tǒng)計,中國網(wǎng)信行業(yè)企業(yè)數(shù)量不低于200萬家,既分布于互聯(lián)網(wǎng)、信息設(shè)備制造、信息傳輸、信息技術(shù)服務(wù)等國民經(jīng)濟(jì)行業(yè)范圍,又同時存在于電商、金融、教育、醫(yī)療甚至是大數(shù)據(jù)、人工智能等新興和前沿領(lǐng)域。如何對網(wǎng)信行業(yè)進(jìn)行行業(yè)分類,是做好網(wǎng)信企業(yè)統(tǒng)計分析工作的前提和基礎(chǔ),進(jìn)而整體掌握當(dāng)前中國網(wǎng)信行業(yè)及重點(diǎn)網(wǎng)信企業(yè)發(fā)展情況,及時發(fā)現(xiàn)運(yùn)行過程中表現(xiàn)出的苗頭性、傾向性、潛在性問題,并提出相對應(yīng)的政策建議。
目前,進(jìn)行行業(yè)分類的過程中,往往存在覆蓋面積小、方式單一、時效性不足等問題,僅依靠傳統(tǒng)的人工識別方式無法滿足需求,亟須一種精確、高效的識別方式。隨著人工智能技術(shù)的不斷發(fā)展和進(jìn)步,針對文本分類問題的研究也出現(xiàn)多元化的發(fā)展。文本分類一般包括3個步驟:①文本向量化;②根據(jù)算法提取文本特征向量;③使用分類器對特征向量進(jìn)行分類判斷。因此,詞表示的好壞將直接影響分類器的結(jié)果,如何合理而有效地向量化文本通常是文本分類的關(guān)鍵技術(shù)。
詞向量最初的表示形式是one-hot,該方法的缺點(diǎn)是:①詞與詞間的語義視為相互獨(dú)立,無法表達(dá)詞之間的語義信息。②每種表達(dá)每次只有1個位于高位,其余均位于低位,可能導(dǎo)致維度爆炸,這造成了one-hot表示具有高稀疏的特性。TFIDF算法解決了以上部分問題,其用以評估一字詞對于一個文件集或一個語料庫中的其中一份文件的重要程度。算法主要思想是:字詞在文件中出現(xiàn)的次數(shù)增多,其重要性也相應(yīng)增加,但會與語料庫中出現(xiàn)的頻率反比例下降。
2013年,Mikolov等[5]提出了word2vec模型,相對于以上方法,該模型能夠產(chǎn)生稠密的向量,避免維度爆炸,在語法和語義的相似性方面有很大的提高。
傳統(tǒng)文本分類算法有Bayes、支持向量機(jī)(SVM)、KNN、Logistic回 歸 等。徐 軍 等[6]使 用Na?ve Bayes等機(jī)器學(xué)習(xí)方法進(jìn)行新聞的情感自動分類,但是Na?ve Bayes對缺失數(shù)據(jù)不敏感,需要假設(shè)先驗(yàn)?zāi)P?,從而?dǎo)致預(yù)測效果不佳。2014年,Kim[7]提出了TextCNN網(wǎng)絡(luò),驗(yàn)證了使用預(yù)訓(xùn)練的詞向量比使用隨機(jī)初始化的詞向量能獲得更好的效果,而使用預(yù)訓(xùn)練的詞向量初始化,并在具體任務(wù)中進(jìn)行詞向量的fine-tuning可能會得到更好的效果,但是由于卷積神經(jīng)網(wǎng)絡(luò)(CNN)更關(guān)注局部特征,并且大的卷積核會導(dǎo)致計算量暴增,不利于模型深度的增加,計算性能也會降低。2017年,Vaswani等[8]完全拋棄了循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)和CNN等網(wǎng)絡(luò)結(jié)構(gòu),首次提出將注意力機(jī)制應(yīng)用在NLP領(lǐng)域,注意力機(jī)制也成為了大家近期的研究熱點(diǎn)。2019年,Devlin等[9]提出了一種新的語言表征模型BERT,這是一種基于Transformer的雙向編碼器。
本文提出了一種融合多元數(shù)據(jù)的fastText算法[10],用于網(wǎng)信行業(yè)文本分類。該方法在fast-Text算法基礎(chǔ)上,對n元語法模型(n-gram)處理后的輸入詞序列進(jìn)行權(quán)重計算。同時,融合網(wǎng)信企業(yè)信息不同維度的短文本數(shù)據(jù),并進(jìn)行加權(quán)計算,實(shí)現(xiàn)快速進(jìn)行網(wǎng)信企業(yè)分類的目標(biāo)。在網(wǎng)信企業(yè)數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),分類精確率達(dá)到83.1%。
本文實(shí)驗(yàn)通過獲取企業(yè)經(jīng)營范圍進(jìn)行企業(yè)識別分類。主要獲取方式包括:通過政府?dāng)?shù)據(jù)公開平臺中提供的公開API接口獲取(如北京市政務(wù)數(shù)據(jù)資源網(wǎng)、廣東省政府?dāng)?shù)據(jù)統(tǒng)一開放平臺、上海市政府?dāng)?shù)據(jù)服務(wù)網(wǎng))企業(yè)名稱、企業(yè)法人、經(jīng)營范圍等信息;通過互聯(lián)網(wǎng)采集的方式獲取企業(yè)名稱及相關(guān)信息。
文本預(yù)處理[11]是對非結(jié)構(gòu)化企業(yè)經(jīng)營范圍、輿論等文本信息進(jìn)行分析,經(jīng)過過濾、提煉、選定等一系列自然語言處理操作[12]后,通過深度神經(jīng)網(wǎng)絡(luò)方法快速自動識別、劃分文本中的經(jīng)營范圍詞,并對智能分詞結(jié)果文本進(jìn)行展示。在網(wǎng)信企業(yè)分類的工程應(yīng)用中,通過數(shù)據(jù)洗清、分詞、詞性標(biāo)注、去停用詞4個方面來完成語料的預(yù)處理工作。
以《國 民 經(jīng) 濟(jì) 行 業(yè) 分 類》[1](GB/T 4754—2017)和《電子信息產(chǎn)業(yè)行業(yè)分類目錄》為基礎(chǔ),對國民經(jīng)濟(jì)行業(yè)分類中符合“網(wǎng)信”范疇的相關(guān)活動進(jìn)行再歸類。分類結(jié)果考慮中國宏觀經(jīng)濟(jì)發(fā)展、網(wǎng)信事業(yè)發(fā)展進(jìn)程的現(xiàn)實(shí)情況,以體現(xiàn)階段性發(fā)展特征。
共分為四大類:信息設(shè)備制造、信息傳輸服務(wù)、軟件和信息技術(shù)服務(wù)業(yè)、互聯(lián)網(wǎng)和相關(guān)服務(wù),一級、二級、三級目錄分類如表1所示。
表1 行業(yè)分類結(jié)果Tab le 1 Industry classification resu lts
續(xù)表
2.3.1 分類識別過程
本文實(shí)驗(yàn)采用自然語言預(yù)處理技術(shù),主要針對網(wǎng)信行業(yè)企業(yè)的經(jīng)營范圍進(jìn)行分段、分句,并對每一句進(jìn)行分詞,根據(jù)分詞與關(guān)鍵詞比對的結(jié)果,實(shí)現(xiàn)對網(wǎng)信行業(yè)統(tǒng)計分類和創(chuàng)新性分類的自動識別與發(fā)現(xiàn)。流程如圖1所示。
圖1 分類識別流程Fig.1 Flowchart of classification and identification
2.3.2 基準(zhǔn)分類算法
實(shí)驗(yàn)分別采取了Na?ve Bayes、決策樹、KNN、TextCNN等作為基準(zhǔn)方法。
2.3.3 fastText算法
綜合考慮經(jīng)營范圍數(shù)據(jù)的特征,本文基于fastText算法進(jìn)行行業(yè)分類識別。fastText是facebook開源的一個詞向量與文本分類工具[13-14],典型應(yīng)用場景是“帶監(jiān)督的文本分類問題”,結(jié)合了自然語言處理和機(jī)器學(xué)習(xí)中最成功的理念。該算法只有隱層和輸出層,模型簡單,訓(xùn)練速度快,準(zhǔn)確率較高。在普通的CPU上可以實(shí)現(xiàn)分鐘級別的訓(xùn)練,比深度模型的訓(xùn)練要快幾個數(shù)量級,同時,在多個標(biāo)準(zhǔn)的測試數(shù)據(jù)集上,fastText在文本分類的準(zhǔn)確率上,與現(xiàn)有的一些深度學(xué)習(xí)的方法效果相當(dāng)或接近。fastText使用詞袋及n-gram袋表征語句,使用子詞(subword)信息,并通過隱藏表征在類別間共享信息。另外,采用了一個Softmax層級(利用了類別不均衡分布的優(yōu)勢)來加速運(yùn)算。
2.3.4 層次Softmax
對于有大量類別的數(shù)據(jù)集,fastText使用了一個分層分類器[15](而非扁平式架構(gòu))。不同的類別被整合進(jìn)樹形結(jié)構(gòu)中。在某些文本分類任務(wù)中類別很多,計算線性分類器的復(fù)雜度高。fastText模型使用層次Softmax,對標(biāo)簽進(jìn)行編碼,能夠極大地縮小模型預(yù)測目標(biāo)的數(shù)量。
層次Softmax如圖2所示。
圖2 層次SoftmaxFig.2 Hierarchical Softmax
2.3.5 n-gram子詞特征
fastText在用于網(wǎng)信企業(yè)名稱分類時,使用的特征是詞袋模型,同時,加入了n-gram特征,用于解決詞語之間順序的分類問題。每個詞被看做是n-gram字母串包。為了區(qū)分前后綴情況,“<”、“>”符號被加到了詞的前后端。除了詞的子串外,詞本身也被包含進(jìn)了n-gram 字母串包。以where為例,n=3的情況下,其子串分別為<wh,whe,her,ere,re>,以及其本身。
2.3.6 fastText算法模型
fastText模型架構(gòu)[16]如圖3所示。
圖3 fastText模型架構(gòu)Fig.3 Architecture of fastTextmodel
圖3展示了單個隱層的簡單模型[17]。第一個權(quán)重矩陣A可以被視作某個句子的詞查找表。將詞表示平均成一個文本表示。文本表示是一個隱藏變量,然后將其送入一個線性分類器。該模型將一系列單詞作為輸入并產(chǎn)生一個預(yù)定義類的概率分布。本文使用Softmax函數(shù)f來計算預(yù)定義類的概率分布,對于一組包含N個文檔的文檔集,fastText模型目標(biāo)是使式(1)最小化。
式中:n為樣本個數(shù);xn為第n個文檔特征的標(biāo)準(zhǔn)化包(第n個樣本的歸一化特征,每個特征是詞向量的平均值);yn為第n個樣本對應(yīng)的類別;f為損失函數(shù)Softmax;A為權(quán)重矩陣(構(gòu)建詞,embedding);B為權(quán)重矩陣(隱層到輸出層)。因預(yù)測語料更偏向詞語的組合,本實(shí)驗(yàn)中融入TF-IDF的先驗(yàn)特征,經(jīng)驗(yàn)證顯著提升了分類效果。
本文采用精確率P、召回率R、F1值進(jìn)行評估,具體計算公式如下:
式中:A為預(yù)測正確的正樣本數(shù);B為測試數(shù)據(jù)集中各個類的數(shù)目;C為預(yù)測結(jié)果中各個類的數(shù)量;F1為預(yù)測錯位的負(fù)樣本數(shù)。
本文實(shí)驗(yàn)數(shù)據(jù)來源于政府公開API接口及互聯(lián)網(wǎng)爬取數(shù)據(jù)。其中,公共API(北京市政務(wù)數(shù)據(jù)資源網(wǎng)、廣東省政府?dāng)?shù)據(jù)統(tǒng)一開放平臺、上海市政府?dāng)?shù)據(jù)服務(wù)網(wǎng))和互聯(lián)網(wǎng)爬取結(jié)果獲取企業(yè)信息(如企業(yè)名稱、企業(yè)法人、企業(yè)經(jīng)營地址等企業(yè)信息)。獲取到的數(shù)據(jù)在經(jīng)過清洗整合后,保存企業(yè)名稱等結(jié)構(gòu)化數(shù)據(jù),通過企業(yè)基本信息分析,獲取對應(yīng)企業(yè)經(jīng)營范圍。共使用了10萬條數(shù)據(jù),包括計算機(jī)制造、通信設(shè)備制造、廣播電視設(shè)備制造、雷達(dá)及配套設(shè)備制造、非專業(yè)視聽設(shè)備制造、智能消費(fèi)設(shè)備制造、電子器件制造、電子元件及電子專用材料制造、電子信息機(jī)電產(chǎn)品制造、專用儀器儀表制造、其他電子設(shè)備制造等31個企業(yè)分類。以上數(shù)據(jù)根據(jù)獲取平臺劃分為5個數(shù)據(jù)集DS1~DS5,以及1個測試集Test1,如表2所示。
表2 文本數(shù)量數(shù)據(jù)集樣本Tab le 2 Text quantity dataset sam p le
實(shí)驗(yàn)機(jī)器配置:操作系統(tǒng)Ubuntu 18.04.1 LTS,Intel(R)Xeon(R)Gold 6130 CPU@2.10 GHz,fastText在gcc 7.3.0上編譯。
為了驗(yàn)證fastText對企業(yè)分類的效果,本文使用DS1做訓(xùn)練集,使用Test1做測試集,n-gram使用的默認(rèn)值為1,維度使用默認(rèn)值為200,分類的準(zhǔn)確率的宏平均值及所用時間如表3所示。
依據(jù)表3,本文實(shí)驗(yàn)基于fastText算法在8 s內(nèi)完成80 000條數(shù)據(jù)的企業(yè)分類,精準(zhǔn)率平均值達(dá)到83.1%,召回率平均值達(dá)到了80.5%,F(xiàn)1值平均值達(dá)到了81.8%,在網(wǎng)信行業(yè)分類方面達(dá)到了良好的效果。
表3 數(shù)據(jù)集的分類結(jié)果Table 3 C lassification resu lt of dataset%
針對目前企業(yè)分類效率及準(zhǔn)確率較低的問題,本文以網(wǎng)信行業(yè)為例,使用fastText文本分類算法,探討其在行業(yè)分類的適用性,經(jīng)實(shí)驗(yàn)表明,基于fastText的行業(yè)分類識別準(zhǔn)確率高(可達(dá)到82%以上),分類速度快,能夠滿足現(xiàn)有的行業(yè)分類需求。