本發(fā)明涉及信息處理領域,特別涉及基于自動信息篩選的企業(yè)行業(yè)分類系統(tǒng)。
背景技術:
隨著社會的進步和市場的繁榮和發(fā)展,中國經濟一直處于高速的發(fā)展軌道上,企業(yè)作為社會經濟中最重要的活動主體,在經濟中扮演著重要的角色,對于企業(yè)信息的整理和分析有助于幫助相關決策者了解該企業(yè)的經營狀況,發(fā)現潛在經營風險。企業(yè)的二級行業(yè)類別較多,如果人工對海量的企業(yè)進行分類,將耗費大量的人力。
通常會借助機器學習的手段進行數據挖掘,自動完成行業(yè)分類。主流的方法分有兩種:一種是使用傳統(tǒng)的機器學習方法,首先人工提取特征,再利用經典的分類算法,比如SVM,樸素貝葉斯等分類器完成行業(yè)分類。另一種是利用深度學習技術,比如循環(huán)神經網絡完成自動的特征提取和分類任務。二級行業(yè)分類相比一級行業(yè)分類,在經營范圍的描述上,不同行業(yè)之間存在更多的相似性,這導致利用常規(guī)方法很難發(fā)現這種微小的差異,進而較難作出正確的判斷。如果使用傳統(tǒng)的機器學習方法,需要做大量的特征工程,比如TF-IDF,N-GRAM等方法提取重要的特征組成高維向量放入不同的分類器算法中進行試驗和調參,工作量大而繁重,并且都是憑借人的一些經驗和猜想在進行的嘗試,很可能花費了很大的精力最終效果卻不顯著。即便使用深度學習的方法,比如循環(huán)神經網絡,雖然免去了一些人工的特征提取的工作,但是由于經營范圍的描述信息通常很分散,包含了多個行業(yè)的內容,單從經營范圍無法確定哪些信息對判斷行業(yè)類別是有效的。比如,XX釀酒有限公司的經營范圍描述是“白酒釀造,批發(fā)零售五金、日用品、飼料、建筑材料”。該描述中包含了多個行業(yè)類別,很難確定哪些內容是需要重點關注的,哪些內容是無用的,應該忽略。針對該類問題,如果人工進行判定,通常會先看一下公司名包含了“釀酒”,會將經營范圍的描述重點放在“白酒釀造”,忽略其他無關的描述,最終確定該企業(yè)屬于“酒、飲料和精制茶制造業(yè)”?;谌四X的這種信息處理方式的啟發(fā),本發(fā)明結合循環(huán)神經網絡和門限控制的方法,構建了一個能夠基于公司名自動進行信息篩選的神經網絡,用于企業(yè)的二級行業(yè)分類。
技術實現要素:
本發(fā)明的目的在于克服現有技術中所存在的上述不足,提供基于自動信息篩選的企業(yè)行業(yè)分類系統(tǒng),構造行業(yè)分類神經網絡模型;所述行業(yè)分類神經網絡模型中結合循環(huán)神經網絡和門限控制的方法,使用企業(yè)名稱來對企業(yè)經營范圍信息進行篩選,以實現對待分類企業(yè)二級行業(yè)的自動分類判斷。
為了實現上述發(fā)明目的,本發(fā)明提供了以下技術方案:基于自動信息篩選的企業(yè)行業(yè)分類系統(tǒng),所述系統(tǒng)包含行業(yè)分類神經網絡模型;所述行業(yè)分類神經網絡模型中結合循環(huán)神經網絡和門限控制的方法,使用企業(yè)名稱來對企業(yè)經營范圍信息進行篩選,實現對待分類企業(yè)二級行業(yè)的自動分類判斷。
具體的,所采用行業(yè)分類神經網絡模型的向前算法公式如下:
hj=GRU1(xj,hj-1)
sj=GRU2(zj,sj-1)
f=σ(W(f)hT+U(f)sT)
y=softmax(b)
其中,GRU1為第一循環(huán)神經網絡,hj是GRU1在輸入序列中第j個詞的輸入后生成的隱藏層狀態(tài)向量,xj是輸入序列中第j個詞的詞向量;
GRU2為第二循環(huán)神經網絡;sj是GRU2在輸入序列中第j個詞的輸入后生成的隱藏層狀態(tài)向量,zj是輸入序列中第j個詞的詞向量;
f是用于信息篩選的控制門向量,hT是最后一個詞輸入后生成的隱藏層狀態(tài)向量,sT是最后一個詞輸入后生成的隱藏層狀態(tài)向量,f由hT和sT通過一個全連接的神經網絡生成,其網絡的參數分別是W(f)和U(f),激活函數是sigmoid函數,由符號σ表示;
b是另一個全連接的神經網絡得到的預測向量,該全連接神經網絡的輸入向量為sT、f和hT,激活函數為tanh,由完成信息篩選,W為sT的參數,U為的參數;
y為通過本神經網絡的最終的每個類別的分類概率分布向量,由向量b通過一個softmax層得到。
進一步的本發(fā)明系統(tǒng)包含以下實現步驟:
(1)將待分類企業(yè)的企業(yè)名稱和經營范圍進行分詞處理,建立經營范圍的詞語庫,將分詞后的數據作為語料庫生成詞匯表,并對每一個詞建立相應的詞典索引,將索引值映射成不同的固定長度的隨機向量;
(2)將二級行業(yè)分類中的所有類別進行編碼,并將編碼號轉化成對應的向量,一個編碼號對應一個向量;
(3)在待分類企業(yè)中隨機選取一定數量的樣本,進行標注;在標注后中樣劃分為訓練樣本和開發(fā)樣本;
(4)將訓練樣本的二級行業(yè)分類向量、企業(yè)經營范圍的詞向量序列和企業(yè)名稱的詞向量序列輸入行業(yè)分類神經網絡模型中,通過神經網絡的向前算法和誤差反向傳播,自動調節(jié)神經網絡的權重參數,直到模型收斂;
(5)將待分類企業(yè)的企業(yè)經營范圍的詞向量序列輸入已經訓練完畢的所述行業(yè)分類神經網絡模型的第一循環(huán)神經網絡中,將對應企業(yè)名稱的詞向量序列輸入已經訓練完畢的所述行業(yè)分類神經網絡模型的第二循環(huán)神經網絡中;通過所述行業(yè)分類神經網絡預測出待分類企業(yè)的二級行業(yè)分類結果。
進一步的,所述行業(yè)分類神經網絡模型的向前傳播包含以下實現過程:
①、將待分類企業(yè)經營范圍的詞向量序列輸入GRU1,生成表征經營范圍的向量;
②、將待分類企業(yè)名稱的詞向量序列輸入GRU2,生成表征企業(yè)名的向量;
③、將表征經營范圍的向量和表征公司名的向量送入全連接的神經網絡生成信息篩選門控制向量;
④、通過信息篩選門控制向量過濾表征經營范圍的向量生成篩選后的經營范圍向量;
⑤、將篩選后的經營范圍向量和表征公司名的向量送入全連接的神經網絡生成預測向量,再通過softmax層生成二級行業(yè)類別的概率分布。
進一步的,所述系統(tǒng)為加載有上述企業(yè)行業(yè)分類功能程序的計算機或者服務器。
與現有技術相比,本發(fā)明的有益效果:本發(fā)明提供基于自動信息篩選的企業(yè)行業(yè)分類系統(tǒng),本發(fā)明利用深度學習技術,使用GRU循環(huán)神經網絡,自動對文本數據進行特征提取,通過加入門限控制的神經網絡,實現了基于公司名對經營范圍的自動信息篩選過濾,在很難區(qū)分的不同的二級行業(yè)分類之間,自動篩選出關鍵的信息,實現了高效精準的二級行業(yè)類別的預測。彌補了單獨使用一個循環(huán)神經網絡的不足,同時也發(fā)揮了神經網絡的特征自動提取,無需人工干預的優(yōu)勢。
附圖說明:
圖1為本基于自動信息篩選的企業(yè)行業(yè)分類系統(tǒng)的實現步驟圖。
圖2為語料庫的編號已經向量映射關系示意圖。
圖3為本發(fā)明系統(tǒng)中行業(yè)分類神經網絡模型的向前算法過程示意圖。
具體實施方式
下面結合試驗例及具體實施方式對本發(fā)明作進一步的詳細描述。但不應將此理解為本發(fā)明上述主題的范圍僅限于以下的實施例,凡基于本發(fā)明內容所實現的技術均屬于本發(fā)明的范圍。
基于自動信息篩選的企業(yè)行業(yè)分類系統(tǒng),所述系統(tǒng)包含行業(yè)分類神經網絡模型;所述行業(yè)分類神經網絡模型中結合循環(huán)神經網絡和門限控制的方法,使用企業(yè)名稱來對企業(yè)經營范圍信息進行篩選,實現對待分類企業(yè)二級行業(yè)的自動分類判斷。
具體的,所采用行業(yè)分類神經網絡模型的向前算法公式如下:
hj=GRU1(xj,hj-1)
sj=GRU2(zj,sj-1)
f=σ(W(f)hT+U(f)sT)
y=softmax(b)
其中,GRU1和GRU2是兩個GRU循環(huán)神經網絡(GRU1為第一循環(huán)神經網絡,GRU2為第二循環(huán)神經網絡),GRU將忘記門和輸入門合成了一個單一的更新門,同時還混合了細胞狀態(tài)和隱藏狀態(tài)。最終的模型比標準的LSTM模型要簡單,效果跟LSTM不相上下。與LSTM一樣,GRU用于處理序列數據,比如一段文字描述可以作為由詞組成的序列輸入到GRU中,該方法在自然語言處理領域中被廣泛的運用。
本文的神經網絡前向算法中,GRU1的輸入是每一個樣本的經營范圍詞向量序列,也就是在步驟3中處理好的經營范圍的詞序列所對應的詞向量序列。xj是輸入序列中第j個詞的詞向量,hj是GRU1在輸入序列中第j個詞的輸入后生成的隱藏層狀態(tài)向量,hT是最后一個詞輸入后生成的隱藏層狀態(tài)向量,表征當前企業(yè)的經營范圍。同理,GRU2的輸入是每一個樣本的公司名詞向量序列,zj是輸入序列中第j個詞的詞向量,sj是GRU2在輸入序列中第j個詞的輸入后生成的隱藏層狀態(tài)向量,sT是最后一個詞輸入后生成的隱藏層狀態(tài)向量,表征當前企業(yè)的公司名。f是用于信息篩選的控制門向量,由hT和sT通過一個全連接的神經網絡生成,其網絡的參數分別是W(f)和U(f),激活函數是sigmoid函數,由符號σ表示。信息篩選由完成,通過點乘運算將hT中的無用的雜亂信息丟棄,得到有效的信息,再結合公司名向量sT,通過另一個全連接的神經網絡得到最后的預測向量b,其神經網絡的參數分別為W和U,激活函數是tanh。向量b通過一個softmax層得到最終的每個類別的概率分布向量y。向量y中的每一維的值對應了相應類別的概率,通常選擇概率值最大的類別作為最后的預測類別。
進一步的,本發(fā)明系統(tǒng)的待分類企業(yè)的行業(yè)預測包含如圖1所示的以下實現步驟:
(1)將待分類企業(yè)的企業(yè)名稱和經營范圍進行分詞處理,并去除標點符號和停用詞等無意義的詞;將分詞后的數據作為語料庫生成詞匯表,并對每一個詞建立相應的詞典索引,將索引值映射成不同的固定長度的隨機向量。比如經營范圍的描述是“啤酒、白酒飲料、純凈水的生產、銷售”,分詞處理后為“啤酒 白酒 飲料 純凈水 生產 銷售”。將分詞后的所有的數據作為語料庫生成詞匯表,并對每一個詞建立相應的詞典索引,比如啤酒索引是1,白酒索引是3,飲料的索引是9。最后將所有的詞的索引值映射到不同的固定長度的隨機向量。也就是說每一個詞用都用不同的固定長度的詞向量進行表示。如圖2所示。公司名和經營范圍在分詞處理后的詞序列所對應的詞向量序列將作為神經網絡的輸入。
(2)將二級行業(yè)分類中的所有類別進行編碼,并將編碼號轉化成對應的向量,一個編碼號對應一個向量。
收集大量企業(yè)公司名和相對應的經營范圍描述的數據,隨機篩選其中的部分數據m條作為樣本。根據經營范圍對每條樣本進行人工標注,標記它所屬的二級行業(yè)類別。比如,XXX酒業(yè)有限責任公司的經營范圍的描述是:“啤酒、白酒飲料、純凈水的生產、銷售”。則將該條樣本標記為“酒、飲料和精制茶制造業(yè)”?!熬?、飲料和精制茶制造業(yè)”是二級行業(yè)分類的其中一個類別,二級行業(yè)分類擁有很多類別,比如:農業(yè)、林業(yè)、畜牧業(yè)、煤炭開采和洗選業(yè)、石油和天然氣開采業(yè)、黑色金屬礦采選業(yè)、有色金屬礦采選業(yè)、非金屬礦采選業(yè)、通用設備制造業(yè)、專用設備制造業(yè)、汽車制造業(yè)、酒、飲料和精制茶制造業(yè)等。(2)將二級行業(yè)分類中的所有類別進行編碼,轉換成計算機可識別的整數。比如整數1對應的是農業(yè),整數15對應的是酒、飲料和精制茶制造業(yè)。再將每個類別編碼轉換成one-hot向量,向量的維度是總的二級行業(yè)分類類別數量,比如,農業(yè)的編碼是1,向量的第一個維度的元素值為1,其余為0。如“1000000…”。該向量將作為神經網絡目標變量的輸入。
(3)在待分類企業(yè)中隨機選取一定數量的樣本,進行標注;在標注后中樣劃分為訓練樣本和開發(fā)樣本;通常70%的樣本作為訓練樣本,30%的樣本作為開發(fā)樣本。
(4)將訓練樣本的二級行業(yè)分類向量、企業(yè)經營范圍的詞向量序列和企業(yè)名稱的詞向量序列輸入行業(yè)分類神經網絡模型中,通過神經網絡的向前算法和誤差反向傳播,自動調節(jié)神經網絡的權重參數,直到模型收斂。
在訓練樣本中將步驟(2)中處理的表征樣本所屬類別的one-hot向量和步驟3中處理的公司名和經營范圍的詞向量序列輸入到行業(yè)分類神經網絡模型中。模型首先會根據公司名和經營范圍的詞向量序列完成前向運算,然后通過樣本的真實類別(步驟(2)中的one-hot向量)進行誤差的反向傳播,這個過程會自動的去修正神經網絡中的權重參數。模型訓練過程中,記錄每一輪迭代在開發(fā)樣本和訓練樣本上的準確率,當訓練樣本上的準確率不斷的提升,開發(fā)樣本上的準確率沒有太大的變化(或者達到設置的準確率閾值)時,可以認為模型已經收斂并停止模型的訓練,保存開發(fā)樣本上準確率最高的一輪迭代結果對應的權重參數作為最終的預測模型。
(5)將待分類企業(yè)的企業(yè)經營范圍的詞向量序列輸入已經訓練完畢的所述行業(yè)分類神經網絡模型的第一循環(huán)神經網絡中,將對應企業(yè)名稱的詞向量序列輸入已經訓練完畢的所述行業(yè)分類神經網絡模型的第二循環(huán)神經網絡中;通過所述行業(yè)分類神經網絡預測出待分類企業(yè)的二級行業(yè)分類結果。
進一步的,所述行業(yè)分類神經網絡模型的向前傳播包含如圖3所示的以下實現過程:
①、將待分類企業(yè)經營范圍的詞向量序列輸入GRU1,生成表征經營范圍的向量;
②、將待分類企業(yè)名稱的詞向量序列輸入GRU2,生成表征企業(yè)名的向量;
③、將表征經營范圍的向量和表征公司名的向量送入全連接的神經網絡生成信息篩選門控制向量;
④、通過信息篩選門控制向量過濾表征經營范圍的向量生成篩選后的經營范圍向量;
⑤、將篩選后的經營范圍向量和表征公司名的向量送入全連接的神經網絡生成預測向量,再通過softmax層生成二級行業(yè)類別的概率分布。
進一步的,所述系統(tǒng)為加載有上述企業(yè)行業(yè)分類功能程序的計算機或者服務器。將訓練好的行業(yè)分類神經網絡模型加載于計算機或者服務器中,使用時用戶只需要將待分類企業(yè)名稱信息和企業(yè)經營范圍信息輸入到行業(yè)分類神經網絡模型中就能得到對應企業(yè)的二級行業(yè)分類結果。