本發(fā)明涉及電子聯(lián)行號匹配領域,更具體地,涉及一種基于矩陣相似度算法的電子聯(lián)行號匹配方法。
背景技術:同行交易:指代收付系統(tǒng)與某銀行有接口交互,并可以通過接口進行支付交易,如HTTP接口,SOCKET接口,F(xiàn)TP接口等??缧薪灰祝褐复崭断到y(tǒng)與某銀行沒有直接的接口,但可以通過其它銀行進行此銀行賬號的支付交易。在全國由于存在大大小小的各種城鄉(xiāng)銀行,而這些城鄉(xiāng)銀行又并未進行聯(lián)網(wǎng),如農(nóng)村商業(yè)銀行,其在每個省都是獨立的銀行系統(tǒng),如果代收付要做全國的農(nóng)村商業(yè)銀行的業(yè)務,那么如果跟每個省份的農(nóng)村商業(yè)直聯(lián)又不大現(xiàn)實,在這種情況下可以通過跨行進行處理,比如目前代收付現(xiàn)在使用的跨行代付交易,就是通過連接建行,再由建行連接人行大小額系統(tǒng)進行代付。雖然可以通過建行實現(xiàn)跨行的代付交易,但是通過建行進行跨行代付存在一個較大的問題,那就是走建行的跨行交易,必須提供付款賬號的發(fā)卡行電子聯(lián)行號,例如:中國工商銀行股份有限公司廣州天河支行,它所對應的電子聯(lián)行號為:102581000208,代收付必須將此電子聯(lián)行號與賬號信息一起提供到建行方可進行跨行付款,由于商戶上送的開戶行名稱可能不完整,如只提供,廣州工行天河支行,那么如果系統(tǒng)要正確找到完整的名稱及電子聯(lián)行號,必須有一個匹配識別系統(tǒng)。
技術實現(xiàn)要素:為了克服現(xiàn)有技術的不足,本發(fā)明提出一種基于矩陣相似度算法的電子聯(lián)行號匹配方法,能夠更好的服務商戶。本發(fā)明的技術方案為:一種基于矩陣相似度算法的電子聯(lián)行號匹配方法,包括以下步驟:S1.用戶輸入支付信息;S2.根據(jù)省份與地市獲取對應的地區(qū)碼;S3.根據(jù)銀行代碼及地區(qū)碼,模糊搜索電子聯(lián)行號列表;S4.根據(jù)用戶輸入的支付信息中的銀行名稱獲取關鍵字;S5.將獲取的關鍵字與模糊搜索出來的電子聯(lián)行號列表的關鍵字進行匹配;S6.匹配成功則返回。優(yōu)選的,所述步驟S4中獲取關鍵字的具體方式為:S41.用戶輸入銀行名稱;S42.去掉所有銀行名稱常用字;S43.去掉對應銀行名稱常用字;S44.去掉銀行名稱中地址名,獲取關鍵字。優(yōu)選的,所述步驟S44還包括對獲取的關鍵字進行修正。優(yōu)選的,所述步驟S5的匹配方式采用矩陣相似度算法進行匹配,相似度最高的匹配值為用戶輸入的信息對于的電子聯(lián)行號。優(yōu)選的,所述矩陣相似度算法具體為:令字符串s1的長度大于s2的長度,即n1>n2,記S=n1-n2。S51.將字符串s1的字符依次寫成一行,將字符串s2的字符依次寫成一列,然后依次比對,字符相同的就記為1,不同的就記為0,生成矩陣R,矩陣元素R[i,j]表示s2的第i個元素與s1的第j個元素是否相同;S52.生成矩陣R1,R1的行數(shù)等于S+1,列數(shù)等于n2,R1[i,j]=R[j,j+i-1];S53.將矩陣R1的非零元素換成所在行的數(shù)字,生成矩陣R2;S54.從矩陣R2倒數(shù)第二行反向遞推到第一行,則第一行含有下面所有行的最大信息量,即找到了最優(yōu)路徑;S541.先在R2的倒數(shù)第二行取一個元素,再在倒數(shù)第一行取n2-1個元素,計算這n2個元素的信息量;S542.在倒數(shù)第二行取兩個元素,再在倒數(shù)第一行取n2-2個元素,同樣計算這n2個元素的信息量;S543.依次窮舉計算,得到信息量最大的劃分;S544.對倒數(shù)第二行元素和倒數(shù)第三行,重復步驟S541、S542、S543,直到第一行為止;S545.將劃分的右上角元素置零,將右下角元素替代右上角元素,保留左上角元素;S546.取得整個劃分,在數(shù)值增大的地方加入空格,空格的個數(shù)為前后變化的數(shù)值的差值,元素零除外。優(yōu)選的,所述步驟S1中用戶輸入支付信息后,還包括將該支付信息與知識庫中的信息進行比對,當前輸入信息已存儲在知識庫中,則匹配成功;否則跳轉至步驟S2。優(yōu)選的,所述步驟S1中的支付信息包括:賬號、戶名、省份名、地市名、開戶銀行名稱及銀行代碼。附圖說明圖1為本發(fā)明電子聯(lián)行號匹配流程圖。圖2為本發(fā)明獲取關鍵字流程圖。具體實施方式下面結合附圖對本發(fā)明做進一步描述,但本發(fā)明的實施方式并不限于此。如圖1,一種基于矩陣相似度算法的電子聯(lián)行號匹配方法的具體實現(xiàn)方式為:(1)商戶輸入支付信息,其中支付信息包括賬號、戶名、省份名、地市名、開戶銀行名稱和銀行代碼;(2)從知識庫中查找該信息是否做過交易,如已交易過,則匹配成功,否則跳轉至步驟(3);(3)根據(jù)省份與地市獲取對應的地區(qū)碼;(4)根據(jù)銀行代碼及地區(qū)碼,模糊搜索電子聯(lián)行號列表并根據(jù)地區(qū)碼、銀行名稱調用關鍵字生成模塊;(5)生成支付卡號所對應的開戶行支行名稱關鍵字;(6)從數(shù)據(jù)庫中查找所在地區(qū)及所在銀行的關鍵字列表,找到相似的關鍵字;(7)判斷其相似是否達到0.5,若大于0.5,則匹配成功,匹配結束;否則繼續(xù)查找所在地區(qū)是否存在默認的可處理的支行名稱,存在則匹配成功。電子聯(lián)行號匹配模塊,根據(jù)商戶上傳的省份與地市通過系統(tǒng)地區(qū)表找到對應的地區(qū)碼,根據(jù)銀行代碼以及找到的對應地區(qū)碼,模糊搜索電子聯(lián)行號列表,根據(jù)上傳的銀行名稱獲取關鍵字,對于關鍵字的獲取是智能路由匹配過程的核心技術之一稱之為電子聯(lián)行號匹配過程。獲取關鍵字的流程如圖2,1)客戶信息由商戶在代收付系統(tǒng)錄入的信息,默認為是正確的,如果出現(xiàn)失敗的,需要商戶把信息維護正確。2)知識庫的數(shù)據(jù)是保存了成功交易過的賬戶對應的聯(lián)行號信息。3)把商戶送上來的開戶行信息截取關鍵字與開戶行所在市的銀行名稱的關鍵字匹配得最大的相似度的記錄。采用算法關鍵字相似度算法。具體流程:(11)獲取行名的關鍵字(包括系統(tǒng)庫表的以及商戶送過來的開戶行數(shù)據(jù)),用同一個方法處理,保證統(tǒng)一性。配置字典,定義4種子類銀行名稱常用詞,例如“股份有限公司”、“營業(yè)部”,“支行”銀行名稱,例如“招商銀行”,“招行”省市信息,例如“廣東省”,“廣州市”結果修正詞,例如“廣州市橋”算法流程及例子(例如開戶行“招商銀行股份有限公司廣州市橋支行營業(yè)部”)剔除銀行名稱常用詞。剔除“股份有限公司”、“營業(yè)部”,“支行”,結果為“招商銀行廣州市橋”;剔除銀行名稱。剔除“招商銀行”,結果為“廣州市橋”;剔除省市。剔除“廣州市”,結果是“橋”,由于結果長度太小不利于相似度匹配,還原到上一層,結果仍為“廣州市橋”;結果修正,根據(jù)配置信息“廣州市橋”應為“市橋”,結果為“市橋”經(jīng)過以上步驟,得到關鍵字為“市橋”,與人工判斷得到的關鍵字無異。下表為招行廣州市內各網(wǎng)點名稱以及由系統(tǒng)抽取得到的關鍵字。如表1中廣州市部分銀行的關鍵字:表1行名關鍵字招商銀行廣州分行廣州招商銀行廣州分行天河支行天河招商銀行廣州分行人民中路支行人民中路招商銀行廣州分行五羊支行五羊招商銀行廣州分行白云路支行白云路招商銀行廣州分行環(huán)市東路支行環(huán)市東路招商銀行廣州分行海珠支行海珠招商銀行廣州分行流花支行流花招商銀行廣州分行營業(yè)部廣州招商銀行廣州分行東風支行東風招商銀行股份有限公司廣州林和路支行林和路招商銀行廣州分行世貿(mào)大廈支行世貿(mào)大廈招商銀行廣州分行越秀支行越秀招商銀行廣州分行東山支行東山招商銀行廣州分行機場支行機場招商銀行廣州分行高新支行高新招商銀行股份有限公司廣州珠江新城支行珠江新城招商銀行廣州分行番禺支行番禺招商銀行股份有限公司廣州市橋支行市橋招商銀行股份有限公司廣州增城支行增城招商銀行股份有限公司廣州新塘支行新塘招商銀行廣州開發(fā)區(qū)支行開發(fā)區(qū)招商銀行股份有限公司廣州龍口支行龍口招商銀行股份有限公司廣州風神支行風神招商銀行股份有限公司廣州體育西路支行體育西路招商銀行股份有限公司廣州上下九支行上下九招商銀行股份有限公司廣州花城支行花城招商銀行股份有限公司廣州中山二路支行二路招商銀行股份有限公司廣州南沙支行南沙招商銀行股份有限公司廣州黃埔大道支行黃埔大道招商銀行股份有限公司廣州金穗支行金穗招商銀行股份有限公司廣州科技園支行科技園招商銀行股份有限公司廣州天安支行天安招商銀行股份有限公司廣州石牌支行石牌招商銀行股份有限公司廣州豐興支行豐興招商銀行股份有限公司廣州天潤路支行天潤路招商銀行股份有限公司廣州盈隆廣場支行盈隆廣場招商銀行股份有限公司廣州錦城大廈支行錦城大廈(12)使用矩陣相似度算法,把商戶的送來的開戶行交易的關鍵字與系統(tǒng)里該行該市的所有行的關鍵字進行相似度匹配運算,得到相似度最高的匹配值。商戶上送的數(shù)據(jù)“招商銀行股份有限公司廣州市橋支行營業(yè)部”的關鍵字“市橋”與庫表的數(shù)據(jù)“招商銀行股份有限公司廣州市橋支行”的關鍵字“市橋”相似度為1,完全匹配,系統(tǒng)自動匹配正確。(13)關鍵字相似度算法結果分析根據(jù)市場部第一次從商戶提供的數(shù)據(jù)進行測試(已剔除建行后的不同的開戶銀行,測試數(shù)據(jù)共310條),通過計算,關鍵字的相似度在0.5-1區(qū)間的占85%(共259條),關鍵字完全匹配(相似度為1)有170條,占56%,準確率為100%;其中相似度在0.5-0.9區(qū)間的準確率為81%??傆嫞喝绻覀兛紤]將相似度大于0.5的匹配結果向建行提交,準確率達到93%,共240條記錄。測試數(shù)據(jù)說明:數(shù)據(jù)僅有開戶行名稱,所在省市人工判別添加,有些記錄不能準確分辨所屬省市,故存在部分結果有問題,這部分記錄占5%左右。4)業(yè)務規(guī)則是由經(jīng)驗所得的,符合一定條件的話不管開戶行是哪個只要送到業(yè)務規(guī)則的記錄最終必會成功。在本實施例中,相似度矩陣算法具體為:令字符串s1的長度大于s2的長度,即n1>n2,記S=n1-n2。S51.將字符串s1的字符依次寫成一行,將字符串s2的字符依次寫成一列,然后依次比對,字符相同的就記為1,不同的就記為0,生成矩陣R,矩陣元素R[i,j]表示s2的第i個元素與s1的第j個元素是否相同;S52.生成矩陣R1,R1的行數(shù)等于S+1,列數(shù)等于n2,R1[i,j]=R[j,j+i-1];S53.將矩陣R1的非零元素換成所在行的數(shù)字,生成矩陣R2;S54.從矩陣R2倒數(shù)第二行反向遞推到第一行,則第一行含有下面所有行的最大信息量,即找到了最優(yōu)路徑;S541.先在R2的倒數(shù)第二行取一個元素,再在倒數(shù)第一行取n2-1個元素,計算這n2個元素的信息量;S542.在倒數(shù)第二行取兩個元素,再在倒數(shù)第一行取n2-2個元素,同樣計算這n2個元素的信息量;S543.依次窮舉計算,得到信息量最大的劃分;S544.對倒數(shù)第二行元素和倒數(shù)第三行,重復步驟S541、S542、S543,直到第一行為止;S545.將劃分的右上角元素置零,將右下角元素替代右上角元素,保留左上角元素;S546.取得整個劃分,在數(shù)值增大的地方加入空格,空格的個數(shù)為前后變化的數(shù)值的差值,元素零除外。如表2,為存儲在知識庫中字典表2ITEM_NAMEITEM_VALITEM_VAL_DESCBANKNAME102工商銀行BANKNAME102工商行BANKNAME102工行 BANKNAME103農(nóng)業(yè)銀行BANKNAME103農(nóng)業(yè)行BANKNAME103農(nóng)行 BANKNAME104銀行BANKNAME104中行 BANKNAME105建設銀行BANKNAME105建行 BANKNAME201國家開發(fā)銀行 BANKNAME301交通銀行BANKNAME301交通行BANKNAME301交行 BANKNAME302中信銀行BANKNAME302中信BANKNAME302中信行 BANKNAME303光大銀行BANKNAME303光大BANKNAME303光大行 BANKNAME304華夏銀行BANKNAME304華夏BANKNAME304華夏行 BANKNAME305民生銀行BANKNAME305民生行BANKNAME305民生 BANKNAME306廣東發(fā)展銀行BANKNAME306廣發(fā)BANKNAME306廣發(fā)行BANKNAME306廣東發(fā)展 BANKNAME307深圳發(fā)展銀行BANKNAME307深發(fā)展BANKNAME307深圳發(fā)展BANKNAME307深發(fā)BANKNAME307深發(fā)行 BANKNAME308招商銀行BANKNAME308招行BANKNAME308招商BANKNAME308招商行 BANKNAME309興業(yè)銀行BANKNAME309興業(yè)BANKNAME309興業(yè)行 BANKNAME310上海浦東發(fā)展銀行BANKNAME310浦東發(fā)展銀行BANKNAME310浦發(fā)BANKNAME310上海浦發(fā)BANKNAME310浦發(fā)銀行BANKNAME310浦發(fā)行 BANKNAME313城市商業(yè)銀行BANKNAME313市商BANKNAME313城市商業(yè)BANKNAME313商業(yè)銀行 BANKNAME314農(nóng)村商業(yè)銀行(江蘇) BANKNAME315恒豐銀行BANKNAME315恒豐 BANKNAME316浙商銀行BANKNAME316浙商 BANKNAME317農(nóng)村合作銀行BANKNAME317農(nóng)村合作 BANKNAME401城市信用社BANKNAME401信用社 BANKNAME402農(nóng)村信用社BANKNAME402農(nóng)信社BANKNAME402農(nóng)信BANKNAME402農(nóng)村信用BANKNAME402合作聯(lián)社 BANKNAME403郵政儲蓄銀行BANKNAME403郵政儲蓄BANKNAME403郵儲BANKNAME403郵政銀行 ALWAYS001股份有限公司ALWAYS001有限責任公司ALWAYS001中國ALWAYS001營業(yè)部ALWAYS001分社ALWAYS001合作社ALWAYS001支行ALWAYS001分行ALWAYS001辦事處ALWAYS001分理處ALWAYS001營業(yè)所ALWAYS001營業(yè)室ALWAYS001儲蓄所ALWAYS001營業(yè)中心ALWAYS001信用社 ALWAYS002廣州市橋|市橋表3為廣東省部分城市字典示例:表3AREA_NAMEAREA_FULLNAME廣東廣東省潮安潮安縣潮州潮州市饒平饒平縣東莞東莞市恩平恩平市封開封開縣佛山佛山市高要高要市高州高州市廣寧廣寧縣廣州廣州市海豐海豐縣河源河源市東源東源縣和平和平縣連平連平縣鶴山鶴山市化州化州市懷集懷集縣惠來惠來縣惠州惠州市惠州惠州市博羅博羅縣惠東惠東縣龍門龍門縣江門江門市揭東揭東縣揭西揭西縣揭陽揭陽市開平開平市樂昌樂昌市雷州雷州市連州連州市廉江廉江市龍川龍川縣陸豐陸豐市陸河陸河縣羅定羅定市茂名茂名市電白電白縣梅州梅州市大埔大埔縣豐順豐順縣蕉嶺蕉嶺縣平遠平遠縣五華五華縣南雄南雄市普寧普寧市清遠清遠市佛岡佛岡縣連南瑤族自治連南瑤族自治縣連山連山縣清新清新縣陽山陽山縣汕頭汕頭市潮陽潮陽區(qū)澄海澄海區(qū)南澳南澳縣汕尾汕尾市韶關韶關市曲江曲江區(qū)仁化仁化縣乳源乳源縣始興始興縣翁源翁源縣新豐新豐縣深圳深圳市四會四會市遂溪遂溪縣臺山臺山市吳川吳川市信宜信宜市興寧興寧市徐聞徐聞縣陽春陽春市陽東陽東縣陽江陽江市陽西陽西縣英德英德市云浮云浮市新興新興縣郁南郁南縣湛江湛江市肇慶肇慶市德慶德慶縣中山中山市珠海珠海市紫金紫金縣以上所述的本發(fā)明的實施方式,并不構成對本發(fā)明保護范圍的限定。任何在本發(fā)明的精神原則之內所做出的修改、等同替換和改進等,均應包含在本發(fā)明的權利要求保護范圍之內。