一種記錄分組方法和裝置制造方法
【專利摘要】本申請?zhí)峁┝艘环N記錄分組方法,包括:獲取原始記錄集合;獲取用戶通過腳本編譯輸入的邏輯命令;根據(jù)所述邏輯命令利用原始記錄集合產(chǎn)生中間記錄集合;將所述中間記錄對集合通過記錄對生成算法生成最終記錄對集合。本發(fā)明實施例還提供了對應的裝置。本發(fā)明實施例通過MRL語言允許用戶輸入更適合當前原始記錄集合的邏輯命令,根據(jù)該邏輯命令更快的對原始記錄集合進行分組,提高了分組效率。
【專利說明】一種記錄分組方法和裝置
【技術領域】
[0001]本申請涉及數(shù)據(jù)匹配【技術領域】,特別是涉及一種記錄分組方法和裝置。
【背景技術】
[0002]在企業(yè)的生產(chǎn)活動中,會產(chǎn)生大量的業(yè)務數(shù)據(jù),事實上企業(yè)很難確保其所積累數(shù)據(jù)的質量,其原因是多種多樣的,如:錄入錯誤、完整性約束缺失、信息的多種描述方式等,更復雜的是,相互獨立的數(shù)據(jù)源不僅表述相同實體時使用的值不相同,甚至存儲結構、關于數(shù)據(jù)的基本假設也不相同。企業(yè)的生產(chǎn)活動又是以其數(shù)據(jù)為基礎,大到市場分析、決策,小到業(yè)務查詢,都是在業(yè)務數(shù)據(jù)之上的操作。顯然企業(yè)所累積數(shù)據(jù)的質量沒有保障,其所做操作也將無法保障。為了達到企業(yè)對業(yè)務數(shù)據(jù)去重的目的,需要發(fā)明一種高效、準確、自動的匹配方法,快速準確地發(fā)現(xiàn)描述同一實體的不同記錄。
[0003]了解決上述應用中的問題,現(xiàn)有技術提出一種記錄匹配方法,主要包括:首先對標準化記錄集合進行分組獲得記錄對集合;然后將記錄對集合經(jīng)過比較和決策算法獲得匹配記錄對。
[0004]在這種記錄匹配方法中,分組過程中需要通過預置的算法將原始記錄集合形成記錄對集合。也既是分組過程依賴的算法是預先設置在底層的,無法更改,對用戶來說無法針對不同行業(yè)的記錄集合進行優(yōu)化的算法設置,使用不便,也可能降低分組效率。
【發(fā)明內容】
[0005]本申請所要解決的技術問題是提供一種記錄分組方法能夠根據(jù)用戶輸入的分組算法對記錄集合進行分組計算獲得記錄對集合。
[0006]相應的,本申請還提供了種記錄分組裝置。
[0007]為了解決上述問題,本申請公開了一種記錄分組方法,包括:
[0008]獲取原始記錄集合;
[0009]獲取用戶通過腳本編譯輸入的邏輯命令;
[0010]根據(jù)所述邏輯命令利用原始記錄集合產(chǎn)生中間記錄集合;
[0011]將所述中間記錄對集合通過記錄對生成算法生成最終記錄對集合。
[0012]進一步,所述獲取原始記錄集合包括:
[0013]獲取經(jīng)過標準化處理過的原始記錄集合。
[0014]進一步,所述獲取用戶通過腳本編譯輸入的邏輯命令包括:
[0015]獲取用戶通過條件表達式的形式表述的邏輯命令;所述條件表達式包括但不限于四則運算、比較運算、布爾運算以及字符串函數(shù)。
[0016]進一步,所述獲取用戶通過腳本編譯輸入的邏輯命令包括:
[0017]獲取用戶通過預置MRL語言輸入的邏輯命令。
[0018]進一步,所述將中間記錄對集合通過記錄對生成算法生成最終記錄對集合包括:
[0019]將所述中間記錄對集合通過集合運算或Block算法或SortedWindow算法生成最終記錄對集合。
[0020]本申請還提供了一種記錄分組裝置,包括:
[0021]記錄獲取模塊,用于獲取原始記錄集合;
[0022]命令獲取模塊,用于獲取用戶通過腳本編譯輸入的邏輯命令;
[0023]中間記錄集合生成模塊,用于根據(jù)所述邏輯命令利用原始記錄集合產(chǎn)生中間記錄集合;
[0024]記錄對生成模塊,用于將所述中間記錄對集合通過記錄對生成算法生成最終記錄對集合。
[0025]進一步,所述記錄獲取模塊還用于:
[0026]獲取經(jīng)過標準化處理過的原始記錄集合。
[0027]進一步,所述命令獲取模塊還用于:
[0028]獲取用戶通過條件表達式的形式表述的邏輯命令;所述條件表達式包括但不限于四則運算、比較運算、布爾運算以及字符串函數(shù)。
[0029]進一步,所述命令獲取模塊還用于:
[0030]獲取用戶通過預置MRL語言輸入的邏輯命令。
[0031]進一步,所述記錄對生成模塊還用于:
[0032]將所述中間記錄對集合通過集合運算或Block算法或SortedWindow算法生成最終記錄對集合。
[0033]與現(xiàn)有技術相比,本申請包括以下優(yōu)點:通過MRL語言允許用戶輸入更適合當前原始記錄集合的邏輯命令,根據(jù)該邏輯命令更快的對原始記錄集合進行分組,提高了分組效率。
【專利附圖】
【附圖說明】
[0034]圖1是本發(fā)明一種記錄分組方法一實施例的流程示意圖;
[0035]圖2是本發(fā)明一種記錄分組方法一實施例的邏輯示意圖;
[0036]圖3是本發(fā)明一種記錄分組裝置一實施例的結構示意圖。
【具體實施方式】
[0037]為使本申請的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結合附圖和【具體實施方式】對本申請作進一步詳細的說明。
[0038]參照圖1,示出了本申請一種記錄分組方法,包括:
[0039]步驟S101、獲取原始記錄集合;
[0040]進一步,所述獲取原始記錄集合可以獲取經(jīng)過標準化處理過的原始記錄集合。
[0041]本發(fā)明實施例中,最初輸入的記錄集合可以通過特定數(shù)據(jù)標準化處理流程,形成標準化的原始記錄集合,以方便后續(xù)分組處理。
[0042]步驟S102、獲取用戶通過腳本編譯輸入的邏輯命令;
[0043]進一步,所述獲取用戶通過腳本編譯輸入的邏輯命令可以獲取用戶通過條件表達式的形式表述的邏輯命令;所述條件表達式包括但不限于四則運算、比較運算、布爾運算以及字符串函數(shù)。
[0044]進一步,所述獲取用戶通過腳本編譯輸入的邏輯命令可以獲取用戶通過預置MRL語言輸入的邏輯命令。
[0045]由于現(xiàn)有的分組算法基本是定制化的算法,其定制的算法可以根據(jù)業(yè)務需要表達各種邏輯,但其并不具有通用性,無法將適用于某一特定場景的算法直接在另外的場景中使用。以下將以藥品名稱的識別分組為例進行表述;在藥品名稱記錄集合的分組過程中,輸入是的原始記錄集合是藥品名稱表,屬性包括:批準文號(N0)、藥品名(DName)、制藥公司代碼(DCID)、劑型(DForm)、規(guī)格(DSize),目標是將表達同一公司下的同一種藥品的不同記錄識別出來。
[0046]已有的算法如SortedWindow、Block等都無法表達如下的業(yè)務邏輯:將批準文號不為空(isNotNull)的記錄按照批準文號分塊(Block),即:批準文號相同的記錄產(chǎn)生記錄對、批準文號不同的不產(chǎn)生記錄對;批準文號為空(isNull)的記錄會和其他記錄均產(chǎn)生記錄對。類似的業(yè)務邏輯在很多的實際場景中都會存在,但通用的Block算法并不能夠處理上述場景的問題,主要是由于使用通用Block算法作用對象是原始記錄集合,而業(yè)務場景卻需要在滿足某一條件的子集上使用Block算法。
[0047]本發(fā)明實施例采用的MRL語言可以表達1.原始記錄集合上根據(jù)業(yè)務邏輯產(chǎn)生子集2.在記錄集合(含子集)上根據(jù)業(yè)務邏輯產(chǎn)生記錄對集合,因此MRL語言是能夠支持上述業(yè)務邏輯表達的。其表達方式如下:
[0048]A = N0.1sNotNull () ;//批準文號不空的記錄組成集合A
[0049]B = N0.1sNull () ;//將準文號為空的記錄組成集合B
[0050]PL = Block (A.NO) ;//將A中記錄按照批準文號產(chǎn)生記錄對,組成記錄對集合PL
[0051]PL = PL.Un1n (A.Cross (B)) ; //將A與B的記錄兩兩組成記錄對,將結果加入到PL中
[0052]PL = PL.Un1n (B.toPair ()) ; //將B中的記錄兩兩組成記錄對,將結果加入到PL中
[0053]return PL ;//返回記錄對集合PL
[0054]步驟S103、根據(jù)所述邏輯命令利用原始記錄集合產(chǎn)生中間記錄集合;
[0055]由步驟S102可見利用MRL語言可以清晰、簡單地產(chǎn)生用戶需要使用的中間記錄集合,并按照業(yè)務需要將集合進行組合,如“A=N0.1sNotNull (); ”語句表達的就是捋批準文號(N0)不空(isNotNull)的中間記錄集合A,即利用用戶輸入邏輯命令產(chǎn)生中間記錄集合;“PL=PL.Un1n (A.Cross⑶);”語句表達的就是捋A中的每一條記錄與B中的每一條記錄產(chǎn)生記錄對,其實現(xiàn)通過笛卡爾積操作Cross實現(xiàn),即利用業(yè)務邏輯捋記錄集合組成記錄對集合。
[0056]在本發(fā)明實施例中,原始記錄集合需要先通過用戶通過腳本編譯輸入的邏輯命令進行計算得到中間記錄集合,然后捋中間記錄集合利用預置的記錄對生成算法獲得記錄對集合,邏輯如圖2所示。
[0057]步驟S104、捋所述中間記錄對集合通過記錄對生成算法生成最終記錄對集合。
[0058]進一步,本發(fā)明實施例可以捋所述中間記錄對集合通過集合運算或Block算法或SortedWindow算法生成最終記錄對集合。
[0059]本發(fā)明實施例通過MRL語言允許用戶輸入更適合當前原始記錄集合的邏輯命令,根據(jù)該邏輯命令更快的對原始記錄集合進行分組,提高了分組效率。
[0060]對于裝置實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
[0061]本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
[0062]如圖3所示為本發(fā)明一種記錄分組裝置一實施例的結構示意圖,所述裝置包括:
[0063]記錄獲取模塊31,用于獲取原始記錄集合:
[0064]命令獲取模塊32,用于獲取用戶通過腳本編譯輸入的邏輯命令:
[0065]中間記錄集合生成模塊33,用于根據(jù)所述邏輯命令利用原始記錄集合產(chǎn)生中間記錄集合:
[0066]記錄對生成模塊34,用于將所述中間記錄對集合通過記錄對生成算法生成最終記錄對集合。
[0067]進一步。所述記錄獲取模塊31還用于:
[0068]獲取經(jīng)過標準化處理過的原始記錄集合。
[0069]進一步,所述命令獲取模塊32還用于:
[0070]獲取用戶通過條件表達式的形式表述的邏輯命令:所述條件表達式包括但不限于四則運算、比較運算、布爾運算以及字符串函數(shù)。
[0071]進一步,所述命令獲取模塊32還用于:
[0072]獲取用戶通過預置MRL語言輸入的邏輯命令。
[0073]進一步.所述記錄對生成模塊34還用于二
[0074]將所述中間記錄對集合通過集合運算或Block算法或SortedWindow算法生成最終記錄對集合。
[0075]本發(fā)明實施例中,記錄獲取模塊31獲取的是通過特定數(shù)據(jù)標準化處理流程形成標準化的原始記錄集合,以方便后續(xù)分組處理。
[0076]由于現(xiàn)有的分組算法基本是定制化的算法,其定制的算法可以根據(jù)業(yè)務需要表達各種邏輯,但其并不具有通用性,無法捋適用于某一特定場景的算法直接在另夕L的場景中使用。以下捋以藥品名稱的識別分組為例進行表述:在藥品名稱記錄集合的分組過程中,輸入是的原始記錄集合是藥品名稱表,屬性包括:批準文號(N0)、藥品名(DName)、制藥公司代碼(DCID)、劑型(DForm)、規(guī)格(DSize),目標是將表達同一公司下的同一種藥品的不同記錄識別出來。
[0077]已有的算法如SortedWindow、Block等都無法表達如下的業(yè)務邏輯:捋批準文號不為空(isNotNull)的記錄按照批準文號分塊(Block),即二批準文號相同的記錄產(chǎn)生記錄對、批準文號不同的不產(chǎn)生記錄對:批準文號為空(isNull)的記錄會和其他記錄均產(chǎn)生記錄對。類似的業(yè)務邏輯在
[0078]很多的實際場景中都會存在,但通用的Block算法并不能夠處理上述場景的問題,主要是由于使用通用Block算法作用對象是原始記錄集合,而業(yè)務場景卻需要在滿足某一條件的子集上使用Block算法。
[0079]本發(fā)明實施例中命令獲取模塊32采用的MRL語言可以表達1.原始記錄集合上根據(jù)業(yè)務邏輯產(chǎn)生子集2.在記錄集合(含子集)上根據(jù)業(yè)務邏輯產(chǎn)生記錄對集合,因此MRL語言是能夠支持上述業(yè)務邏輯表達的。其表達方式如下:
[0080]A = N0.1sNotNull () ;//批準文號不空的記錄組成集合A
[0081]B = N0.1sNull () ;//將準文號為空的記錄組成集合B
[0082]PL = Block (A.NO) ;//將A中記錄按照批準文號產(chǎn)生記錄對,組成記錄對集合PL
[0083]PL = PL.Un1n (A.Cross (B)) ; //將A與B的記錄兩兩組成記錄對,將結果加入到PL中
[0084]PL = PL.Un1n (B.toPair ()) ; //將B中的記錄兩兩組成記錄對,將結果加入到PL中
[0085]return PL ;//返回記錄對集合PL
[0086]中間記錄集合生成模塊33利用MRL語言可以清晰、簡單地產(chǎn)生用戶需要使用的中間記錄集合,并按照業(yè)務需要將集合進行組合,如“A = N0.1sNotNull (); ”語句表達的就是將批準文號(N0)不空(isNotNull)的中間記錄集合A,即利用用戶輸入邏輯命令產(chǎn)生中間記錄集合;“PL = PL.Un1n (A.Cross (B)); ”語句表達的就是將A中的每一條記錄與B中的每一條記錄產(chǎn)生記錄對,其實現(xiàn)通過笛卡爾積操作Cross實現(xiàn),即利用業(yè)務邏輯將記錄集合組成記錄對集合。
[0087]以上對本申請所提供的一種記錄分組方法和裝置,進行了詳細介紹,本文中應用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領域的一般技術人員,依據(jù)本申請的思想,在【具體實施方式】及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本申請的限制。
【權利要求】
1.一種記錄分組方法,其特征在于,包括: 獲取原始記錄集合; 獲取用戶通過腳本編譯輸入的邏輯命令; 根據(jù)所述邏輯命令利用原始記錄集合產(chǎn)生中間記錄集合; 將所述中間記錄對集合通過記錄對生成算法生成最終記錄對集合。
2.根據(jù)權利要求1所述的方法,其特征在于,所述獲取原始記錄集合包括: 獲取經(jīng)過標準化處理過的原始記錄集合。
3.根據(jù)權利要求1所述的方法,其特征在于,所述獲取用戶通過腳本編譯輸入的邏輯命令包括: 獲取用戶通過條件表達式的形式表述的邏輯命令;所述條件表達式包括但不限于四則運算、比較運算、布爾運算以及字符串函數(shù)。
4.根據(jù)權利要求1所述的方法,其特征在于,所述獲取用戶通過腳本編譯輸入的邏輯命令包括: 獲取用戶通過預置MRL語言輸入的邏輯命令。
5.根據(jù)權利要求3或4所述的方法,其特征在于,所述將中間記錄對集合通過記錄對生成算法生成最終記錄對集合包括: 將所述中間記錄對集合通過集合運算或Block算法或SortedWindow算法生成最終記錄對集合。
6.一種記錄分組裝置,其特征在于,包括: 記錄獲取模塊,用于獲取原始記錄集合; 命令獲取模塊,用于獲取用戶通過腳本編譯輸入的邏輯命令; 中間記錄集合生成模塊,用于根據(jù)所述邏輯命令利用原始記錄集合產(chǎn)生中間記錄集合; 記錄對生成模塊,用于將所述中間記錄對集合通過記錄對生成算法生成最終記錄對集入口 ο
7.根據(jù)權利要求6所述的方法,其特征在于,所述記錄獲取模塊還用于: 獲取經(jīng)過標準化處理過的原始記錄集合。
8.根據(jù)權利要求6所述的裝置,其特征在于,所述命令獲取模塊還用于: 獲取用戶通過條件表達式的形式表述的邏輯命令;所述條件表達式包括但不限于四則運算、比較運算、布爾運算以及字符串函數(shù)。
9.根據(jù)權利要求6所述的裝置,其特征在于,所述命令獲取模塊還用于: 獲取用戶通過預置MRL語言輸入的邏輯命令。
10.根據(jù)權利要求8或9所述的裝置,其特征在于,所述記錄對生成模塊還用于: 將所述中間記錄對集合通過集合運算或Block算法或Sorted Window算法生成最終記錄對集合。
【文檔編號】G06F17/30GK104268136SQ201310341709
【公開日】2015年1月7日 申請日期:2013年7月30日 優(yōu)先權日:2013年7月30日
【發(fā)明者】邊旭, 賈西貝 申請人:深圳市華傲數(shù)據(jù)技術有限公司