基于信息熵的對(duì)象名稱匹配方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種基于信息熵的對(duì)象名稱匹配方法。
【背景技術(shù)】
[0002]對(duì)象識(shí)別又稱記錄匹配,其目的是從(不可靠的)各種數(shù)據(jù)源中識(shí)別出表示同一現(xiàn)實(shí)對(duì)象的記錄。對(duì)象識(shí)別在數(shù)據(jù)清洗、數(shù)據(jù)集成、數(shù)據(jù)分析等應(yīng)用中具有重要作用。對(duì)象識(shí)別所用的數(shù)據(jù)中,一類普遍遇到且非常重要的數(shù)據(jù)是名稱類數(shù)據(jù),如機(jī)構(gòu)名稱、藥品名稱、建筑物名稱等。如何有效的計(jì)算出兩個(gè)名稱之間的相似度對(duì)對(duì)象識(shí)別至關(guān)重要。
[0003]名稱匹配的結(jié)果通常通過(guò)比較字符串相似度來(lái)得出。現(xiàn)有的字符串相似度計(jì)算方法包括編輯距離、向量空間、Q-Gram等。但是,現(xiàn)有的字符串相似度計(jì)算方法不能很好的識(shí)別兩個(gè)對(duì)象名稱之間內(nèi)在的相似度。例如,傳統(tǒng)的Q-Gram計(jì)算方法判斷“深圳市華傲數(shù)據(jù)技術(shù)有限公司”與“華傲數(shù)據(jù)技術(shù)有限公司”的相似度較低為0.74,但人們很容易判別出這兩個(gè)名字實(shí)際上代表同一家企業(yè);傳統(tǒng)的Q-Gram計(jì)算方法判斷“天津市南開(kāi)區(qū)宏業(yè)汽車配件經(jīng)營(yíng)部”與“天津市南開(kāi)區(qū)久晟汽車配件經(jīng)營(yíng)部”之間的相似度為0.76,但人們知道它們代表的是兩家企業(yè)。因此,用戶利用傳統(tǒng)的Q-Gram計(jì)算方法進(jìn)行對(duì)象名稱匹配時(shí),會(huì)得出一些不正確的結(jié)論,無(wú)法有效識(shí)別兩個(gè)對(duì)象名稱之間的相似度。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于提供一種基于信息熵的對(duì)象名稱匹配方法,改進(jìn)兩個(gè)對(duì)象名稱之間相似度的識(shí)別。
[0005]為實(shí)現(xiàn)上述目的,本發(fā)明提供一種基于信息熵的對(duì)象名稱匹配方法,包括:
[0006]步驟10、收集所有待識(shí)別對(duì)象名稱,統(tǒng)計(jì)每個(gè)字符出現(xiàn)的次數(shù)freq以及對(duì)象名稱的總數(shù)totalNum,如果字符在一對(duì)象名稱中出現(xiàn)多次按一次計(jì)算;
[0007]步驟20、對(duì)每個(gè)字符,根據(jù)對(duì)象名稱的總數(shù)totalNum及字符出現(xiàn)的次數(shù)freq之間的比值計(jì)算字符的信息熵;
[0008]步驟30、將第一對(duì)象名稱和第二對(duì)象名稱分別轉(zhuǎn)換為第一和第二 Q-Gram字符串序列;
[0009]步驟40、計(jì)算該第一和第二 Q-Gram字符串序列的并集內(nèi)每個(gè)Q-Gram字符串的信息j:商,Q-Gram字符串的信息熵為Q-Gram字符串中每個(gè)字符的信息熵之和;
[0010]步驟50、求該第一和第二 Q-Gram字符串序列內(nèi)所有Q-Gram字符串的信息熵的總和totalEntropy,初始化該第一對(duì)象名稱和第二對(duì)象名稱的總信息商差difference為O ;
[0011]步驟60、對(duì)于該并集內(nèi)每個(gè)Q-Gram字符串token及其信息摘entropy,將token在該第一 Q-Gram字符串序列中出現(xiàn)的次數(shù)記為numl,將token在該第二 Q-Gram字符串序列中出現(xiàn)的次數(shù)記為num2,如果沒(méi)有出現(xiàn)則相應(yīng)的次數(shù)為O ;計(jì)算token對(duì)應(yīng)的信息j:商差為:
numl-num2 X entropy,并加到總信息摘差 difference 上;
[0012]步驟70、計(jì)算得出該第一對(duì)象名稱和第二對(duì)象名稱的相似度為:(totalEntropy — difference)/totalEntropy。
[0013]其中,所述Q-Gram 為 2_Gram。
[0014]其中,所述Q-Gram 為 3_Gram。
[0015]其中,字符的信息摘=log(totalNum/freq)。
[0016]其中,所述對(duì)象名稱為機(jī)構(gòu)名稱、藥品名稱或建筑物名稱。
[0017]其中,所述對(duì)象名稱包含中文字符或英文字符。
[0018]為實(shí)現(xiàn)上述目的,本發(fā)明還提供了一種基于信息熵的對(duì)象名稱匹配方法,包括:
[0019]步驟1、收集所有待識(shí)別對(duì)象名稱,統(tǒng)計(jì)每個(gè)字符出現(xiàn)的次數(shù)freq以及對(duì)象名稱的總數(shù)totalNum,如果字符在一對(duì)象名稱中出現(xiàn)多次按一次計(jì)算;
[0020]步驟2、對(duì)每個(gè)字符,根據(jù)對(duì)象名稱的總數(shù)totalNum及字符出現(xiàn)的次數(shù)freq之間的比值計(jì)算字符的信息熵;
[0021]步驟3、將第一對(duì)象名稱和第二對(duì)象名稱分別轉(zhuǎn)換為第一和第二 Q-Gram字符串序列;
[0022]步驟4、計(jì)算該第一和第二 Q-Gram字符串序列的并集內(nèi)每個(gè)Q-Gram字符串的信息熵,Q-Gram字符串的信息熵為Q-Gram字符串中每個(gè)字符的信息熵之和;
[0023]步驟5、求該并集內(nèi)所有Q-Gram字符串的信息摘的總和totalEntropy,初始化該第一對(duì)象名稱和第二對(duì)象名稱的總信息摘差difference為O ;
[0024]步驟6、對(duì)于該并集內(nèi)每個(gè)Q-Gram字符串token及其信息摘entropy,將token在該第一 Q-Gram字符串序列中出現(xiàn)的次數(shù)記為numl,將token在該第二 Q-Gram字符串序列中出現(xiàn)的次數(shù)記為num2,如果沒(méi)有出現(xiàn)則相應(yīng)的次數(shù)為O ;計(jì)算token對(duì)應(yīng)的信息j:商差為:
numl-num2 X entropy,并加到總信息摘差 difference 上;
[0025]步驟7、計(jì)算得出該第一對(duì)象名稱和第二對(duì)象名稱的相似度為:(totalEntropy —difference)/totalEntropy。
[0026]其中,所述Q-Gram 為 2-Gram 或 3-Gram。
[0027]其中,字符的信息摘=log(totalNum/freq) ο
[0028]其中,所述對(duì)象名稱為機(jī)構(gòu)名稱、藥品名稱或建筑物名稱。
[0029]其中,所述對(duì)象名稱包含中文字符或英文字符。
[0030]綜上所述,本發(fā)明基于信息熵的對(duì)象名稱匹配方法能夠有效識(shí)別兩個(gè)對(duì)象名稱之間的相似度,處理名稱類數(shù)據(jù)匹配問(wèn)題效果更佳。
【附圖說(shuō)明】
[0031]圖1為本發(fā)明基于信息熵的對(duì)象名稱匹配方法的流程圖。
【具體實(shí)施方式】
[0032]下面結(jié)合附圖,通過(guò)對(duì)本發(fā)明的【具體實(shí)施方式】詳細(xì)描述,將使本發(fā)明的技術(shù)方案及其有益效果顯而易見(jiàn)。
[0033]參見(jiàn)圖1,其為本發(fā)明基于信息熵的對(duì)象名稱匹配方法的流程圖。
[0034]主要包括:
[0035]步驟10、收集所有待識(shí)別對(duì)象名稱,統(tǒng)計(jì)每個(gè)字符出現(xiàn)的次數(shù)freq以及對(duì)象名稱的總數(shù)totalNum,如果字符在一對(duì)象名稱中出現(xiàn)多次按一次計(jì)算。
[0036]步驟20、對(duì)每個(gè)字符,根據(jù)對(duì)象名稱的總數(shù)totalNum及字符出現(xiàn)的次數(shù)freq之間的比值計(jì)算字符的信息熵。
[0037]本發(fā)明考慮到名稱每個(gè)字符在整個(gè)名稱中的權(quán)重是不一樣的,有些字符是很關(guān)鍵的,而有些字符在某些場(chǎng)合些通常會(huì)忽略,如機(jī)構(gòu)名稱“深圳市華傲數(shù)據(jù)技術(shù)有限公司”中,“深圳市”3個(gè)字符代表企業(yè)所處區(qū)域,當(dāng)在某個(gè)特定區(qū)域內(nèi)計(jì)算一批機(jī)構(gòu)名之間的相似度時(shí)(如識(shí)別所有廣東省內(nèi)的企業(yè)),這個(gè)3個(gè)字符通常是無(wú)關(guān)緊要的;“華傲”是名稱中最關(guān)鍵的部分;“數(shù)據(jù)技術(shù)”代表企業(yè)的類別,有一定的參考意義;“有限公司”代表企業(yè)的性質(zhì),通常在比較時(shí)也是無(wú)關(guān)緊要的。因此比較名稱時(shí)需要區(qū)分每個(gè)字符的權(quán)重。本發(fā)明的方案是基于Q-Gram計(jì)算相似度的方法,同時(shí)利用了每個(gè)字符的信息熵。
[0038]字符的信息商可以用公式log(totalNum/freq)來(lái)計(jì)算,log可以取2、e或其它任意適合的常數(shù)為底。在本發(fā)明中,字符的信息熵的計(jì)算公式可以根據(jù)如下條件選定:如果某個(gè)字符出現(xiàn)的越頻繁,其信息含量越低;反之,說(shuō)明其信息含量高,對(duì)對(duì)象的區(qū)分更有價(jià)值。
[0039]通過(guò)步驟10和20計(jì)算得出所有字符的信息熵,用于接下來(lái)計(jì)算兩個(gè)對(duì)象名稱的相似度。
[0040]步驟30、將第一對(duì)象名稱和第二對(duì)象名稱分別轉(zhuǎn)換為第一和第二 Q-Gram字符串序列。
[0041]假設(shè)對(duì)象名稱I為strl,對(duì)象名稱2為str2。
[0042]在第一較佳實(shí)施例中,分別將strl、str2轉(zhuǎn)換成2_Gram字符串序列strlTokens、str2Tokens,即每連續(xù)的2個(gè)字符組成一個(gè)新字符串,如“南開(kāi)區(qū)天誠(chéng)醫(yī)藥保健品研宄所”對(duì)應(yīng)的2-Gram字符串序列:
[0043][南開(kāi),開(kāi)區(qū),區(qū)天,天誠(chéng),誠(chéng)醫(yī),醫(yī)藥,藥保,保健,健品,品研,研宄,宄所]。
[0044]或者,在第二較佳實(shí)施例中,分別將strl、str2轉(zhuǎn)換成3_Gram字符串序列strlTokens、str2Tokens,即每連續(xù)的3個(gè)字符組成一個(gè)新字符串,如“南開(kāi)區(qū)天誠(chéng)醫(yī)藥保健品研宄所”對(duì)應(yīng)的3-Gram字符串序列:
[0045][南開(kāi)區(qū),開(kāi)區(qū)天,區(qū)天誠(chéng),天誠(chéng)醫(yī),誠(chéng)醫(yī)藥,醫(yī)藥保,藥保健,保健品,健品研,品研宄,研宄所]。
[0046]步驟40、計(jì)算該第一和第二 Q-Gram字符串序列的并集內(nèi)每個(gè)Q-Gram字符串的信息熵,Q-Gram字符串的信息熵為Q-Gram字符串中每個(gè)字符的信息熵之和。
[0047]在第一較佳實(shí)施例中,計(jì)算每個(gè)2-Gram字符串的信息熵。
[0048]或者,在第二較佳實(shí)施例中,計(jì)算每個(gè)3-Gram字符串的信息熵。
[0049]步驟50、求該第一和第二 Q-Gram字符串序列內(nèi)所有Q-Gram字符串的信息熵的總和totalEntropy,初始化該第一對(duì)象名稱和第二對(duì)象名稱的總信息摘差difference為O。
[0050]也就是求strlTokens、str2Tokens內(nèi)每個(gè)字符串信息摘的總和,記為totalEntropy,并且初始化2個(gè)名稱的總信息摘差difference為O。
[0051]步驟60、對(duì)于該并集內(nèi)每個(gè)Q-Gram字符串token及其信息摘entropy,將token在該第一 Q-Gram字符串序列中出現(xiàn)的次數(shù)記為numl,將token在該第二 Q-Gram字符串序列中出現(xiàn)的次數(shù)記為num2,如果沒(méi)有出現(xiàn)則相應(yīng)的次數(shù)為O ;計(jì)算token對(duì)應(yīng)的信息熵差為:|numl_num2| Xentropy,并加到總信息摘差 difference 上。也