背景技術
近年來,人民銀行、銀保監會對銀行的監管愈發趨嚴,對銀行報送的資料品質要求也越來越高。銀保監會就資料品質專項治理工作釋出通知(銀保監辦發〔2020〕45号),要求包括所有銀行及保險類的金融機構在2021年5月底前,落實監管資料品質專項治理方案,并制定了詳細的項目進度時間表。資料品質主要包括資料真實性、準确性、完整性、及時性。
監管機構要求商業銀行實施專項治理的資料包括:非現場監管(1104)、監管資料标準化(EAST)、金融基礎資料、利率報備等。這些專項資料都需要銀行報送客戶所屬行業或者資金投向行業。行業分類按照中華人民共和國國家标準GB/T 4754-2017“國民經濟行業分類”(以下簡稱為标準版本代碼)的标準執行。行業代碼是行業分類的具體代碼,按照一定的科學依據對從事國民經濟生産和經營的機關或者個體的組織結構體系的詳細劃分,如林業、汽車業、銀行業等,按照機關的主要經濟活動确定其行業性質。
由于某些原因,銀行内客戶的行業代碼不全都符合監管機構要求的最新版本代碼,有些是2011版本或者更早版本(以下稱為曆史版本代碼),有些則儲存了中文行業名稱,有些隻提供了四位數字而缺失表示行業門類的字母等,這些都是不符合監管要求的行業代碼,在報送的時候會被監管機構系統退回,無法正常報送。
目前業界關于資料标準化工作方面,都采用人工手動添加映射的方式,這種方式對于代碼值數量比較少的情況是可以的,比如說性别,從業狀況等,隻有幾個十幾個代碼值。但是對于行業代碼,有上千個碼值的情況,如果也采用手工添加映射的方式,則處理腳本會過于備援,而且效率太低。
具體實施方式
容易了解,根據本發明的技術方案,在不變更本發明實質精神下,本領域的一般技術人員可以提出可互相替換的多種結構方式以及實作方式。是以,以下具體實施方式以及附圖僅是對本發明的技術方案的示例性說明,而不應當視為本發明的全部或者視為對本發明技術方案的限定或限制。
根據本發明的一實施方式結合圖1示出。本發明提供了一種行業代碼标準化方法,包括如下步驟:
S100,擷取行業資料。
S200,通過正規表達式對行業資料進行資料格式分類,針對不同分類結果進行預處理,獲得數字代碼和中文描述A。
參見圖2,對行業資料進行預處理,具體包括:
S201,根據正規表達式“^[A-T]\d{2,4}$”,表示形式“一位字母,二到四位數字”,對行業資料進行比對,如果比對,則略過字母,取數字代碼,否則進入下一步。例如,原始輸入行業為“A0111”,則取“0111”。
S202,根據正規表達式“^\d{4}$”,表示形式“四位數字”,對行業資料進行比對,如果比對,則取四位數字代碼,否則進入下一步。例如,原始輸入行業為“8190”,則取“8190”。
S203,根據正規表達式“^[A-Z]\d{4}~[\u4e00-\u9fa5]{2,20}$”,表示形式“一位字母四位數字~二到二十位中文行業描述”,對行業資料進行比對,如果比對,則取符号“~”前面代碼的四位數字代碼,否則進入下一步。例如,原始輸入行業為“C3262~鋁壓延加工”,則取“3262”。
S204,根據正規表達式“^[\u4e00-\u9fa5]{2,20}$”,表示形式“二到二十位中文描述”,對行業資料進行比對,如果比對,則取全部中文描述A。例如,原始輸入行業為“鋁壓延加工”,則取“鋁壓延加工”。
S300,判斷數字代碼是否在标準版本中,如果在,則補齊行業門類字母,生成行業代碼,否則進行下一步。
例如,數字代碼“0111”在标準版本中,則按照标準版本代碼補齊行業門類字母“A”,生成行業代碼“A0111”。補齊門類行業字母的邏輯,參考行業門類與大類的包含關系,比如門類A包含的大類範圍是01到05,門類B包含的大類範圍是06到12,門類C包含的大類範圍是13到43,以此類推,标準版本和曆史版本略有差别。
S400,判斷數字代碼是否在曆史版本中,如果在,則取出曆史版本中對應的中文描述B,否則不做處理。
例如,數字代碼為“8190”,它在标準版本代碼中不存在的,但是存在于曆史版本中,則按照曆史版本代碼取中文描述,最後輸出“其他未列明服務業”。曆史版本代碼采用的是字典資料結構,字典用于儲存一組不重複的鍵值對,并且可以根據輸入的鍵來獲得對應的值。鍵是曆史行業代碼,值是行業中文描述。
S500,将中文描述A或中文描述B與一标準版本中文描述進行相似度計算,重複操作,獲得标準版本中最相似的中文描述C。
實際上,我們會将待比較行業的中文描述和标準版本行業的所有中文描述進行比較。這裡列舉兩個标準行業中文描述,作為示例。
參見圖3,将中文描述A或中文描述B與一标準版本中文描述進行相似度計算,包括:
S501,對需要計算相似度的兩個中文描述進行拆分,列出待比較中文描述和标準版本中文描述的所有元素。
例如,待比較行業(中文描述A或中文描述B):“文體用品批發”;标準行業A描述:“文具用品批發”;标準行業B描述:“文具用品零售”。考慮到行業中文描述屬于短語,一般不超過二十個字,且字間順序影響也可以忽略。是以我們可以最細粒度拆分,上述行業拆分後得到:
待比較行業:[文,體,用,品,批,發]
标準行業A:[文,具,用,品,批,發]
标準行業B:[文,具,用,品,零,售]
S502,将拆分後的元素去重後放在同一集合中,構造出特征空間,并對特征空間的元素進行位置編碼。
例如:
特征空間A:{“文”:0,“體”:1,“用”:2,“品”:3,“批”:4,“發”:5,“具”:6}
特征空間B:{“文”:0,“體”:1,“用”:2,“品”:3,“批”:4,“發”:5,“具”:6,“零”:7,“售”:8}
S503,将待比較中文描述和标準版本中文描述中的每個元素轉換為特征空間元素對應的位置編碼,以進行數字化。
當和标準行業A比較時,基于特征空間A得到編碼如下:
待比較行業:[0,1,2,3,4,5]
标準行業A:[0,6,2,3,4,5]
當和标準行業B比較時,基于特征空間B得到編碼如下:
标準行業B:[0,6,2,3,7,8]
S504,對數字化後的待比較中文描述和标準版本中文描述進行獨熱編碼,獲得兩個行業向量。獨熱編碼(OneHot編碼),又稱為一位有效編碼,主要是采用N位狀态寄存器來對N個狀态進行編碼,每個狀态都有獨立的寄存器位,并且在任意時候隻有一位有效。OneHot編碼是分類變量作為二進制向量的表示。這首先要求将分類值映射到整數值。然後,每個整數值被表示為二進制向量,除了整數的索引之外,其它都是零值。
本案例中,即計算每個特征空間中元素在原行業中文描述中出現的次數,OneHot編碼後得到的結果如下:
當和标準行業A比較時,得到基于特征空間A的OneHot編碼:
待比較行業:[1,1,1,1,1,1,0]
标準行業A:[1,0,1,1,1,1,1]。
當和标準行業B比較時,得到基于特征空間B的OneHot編碼:
待比較行業:[1,1,1,1,1,1,0,0,0]
标準行業B:[1,0,1,1,0,0,1,1,1]
S505,應用餘弦相似度算法,計算兩個行業向量之間夾角的餘弦值,餘弦值越大相似度越高。
餘弦相似度算法:一個向量空間中兩個向量夾角間的餘弦值作為衡量兩個個體之間差異的大小,餘弦值接近1,夾角趨于0,表明兩個向量越相似,餘弦值接近于0,夾角趨于90度,表明兩個向量越不相似,餘弦相似度算法如下:

CosA表示待比較行業和标準行業A的餘弦相似度,CosB表示待比較行業和标準行業B的餘弦相似度。根據計算結果,待比較行業和标準行業A相似度很高。當周遊整個标準版本中文描述時,計算得到“文體用品批發”和“文具用品批發”最相似。
S600,根據中文描述C,查找出對應的标準版本行業代碼并輸出。例如,根行業中文描述“文具用品批發”,從标準行業代碼中找出其對應的代碼“F5141”,輸出代碼。
考慮到特征空間中的不同次元,對語義的影響不一樣,比如行業“其他衛生活動”,如果單純的從餘弦相似度算法來看,得出的結果可能就是“其他保險活動”。是以,為了解決原餘弦相似度算法的局限,需要對向量中的某些次元進行增強,于是最終的相似度算法為:
F是特征增強向量。我們在具體實作中,維護了一個增強次元清單,從行業門類中提取關鍵字,目前增強次元清單清單有:[“制造”,“建築”,“批發”,“零售”,“衛生”。。。等]。凡是待比較行業中有關鍵字在這個增強次元清單中的,都會得到增強。比如待比較行業中有“衛生”,增強向量的次元數量為特征空間的次元,增強系數預設為2,其他次元值為1,形如[1,1,2,2,1,1...]
待比較行業為“其他衛生活動”,标準行業有“其他保險活動”和“其他未列明衛生服務”,特征空間1[其他衛生活動保險],次元為8,關鍵特征位置為2,3,是以增強向量為F=[1,1,2,2,1,1,1,1],特征空間2[其他衛生活動未列明服務],次元為11,關鍵特征位置為2,3,同理增強向量為F=[1,1,2,2,1,1,1,1,1,1,1]。代入新的相似度公式計算後可的Sim1 = 0.471, Sim2 = 0.745。是以“其他未列明衛生服務”更相似。
附圖說明
參照附圖來說明本發明的公開内容。應當了解,附圖僅僅用于說明目的,而并非意在對本發明的保護範圍構成限制。在附圖中,相同的附圖示記用于指代相同的部件。其中:
圖1為本發明實施例的行業代碼标準化方法的流程示意圖;
圖2為本發明實施例的對行業資料進行預處理的流程示意圖;
圖3為本發明實施例的進行相似度計算的流程示意圖。