亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于約束的字符串相似度研究與應(yīng)用

        2019-07-01 02:35:55劉月錕

        劉月錕

        摘 要:為了提高計(jì)算字符串相似度的準(zhǔn)確度,分析了字符串相似度計(jì)算中準(zhǔn)確度難以提高的原因,研究了當(dāng)前編輯距離計(jì)算中存在的問題,對編輯距離計(jì)算中替換操作代價(jià)進(jìn)行修訂,使編輯距離的計(jì)算更加符合實(shí)際應(yīng)用,提出了相似字符串轉(zhuǎn)換的不可逆,說明孤立的字符串難以做到精確匹配,挖掘與字符串密切相關(guān)的屬性,提出了具有約束的字符串定義,在此基礎(chǔ)上改進(jìn)了萊文斯坦算法,通過對實(shí)例數(shù)據(jù)分析,驗(yàn)證了該方法在基于關(guān)系型數(shù)據(jù)庫的應(yīng)用系統(tǒng)中的有效性。

        關(guān)鍵詞: 編輯距離;字符串相似度;萊文斯坦算法;約束字符串;轉(zhuǎn)換不可逆

        文章編號: 2095-2163(2019)03-0180-04 中圖分類號: TP391 文獻(xiàn)標(biāo)志碼: A

        0 引 言

        隨著數(shù)據(jù)規(guī)模的不斷增長,數(shù)據(jù)共享是各單位間需要迫切解決的關(guān)鍵問題。各單位間數(shù)據(jù)庫結(jié)構(gòu)不同,數(shù)據(jù)代碼差別很大,數(shù)據(jù)共享主要是基礎(chǔ)數(shù)據(jù)共享,而基礎(chǔ)數(shù)據(jù)中至關(guān)重要的就是單位信息。因此關(guān)于不同系統(tǒng)中單位名稱的成功匹配即已成為一個頗具實(shí)用價(jià)值的研發(fā)項(xiàng)目。不同系統(tǒng)中單位的代碼不同,單位名稱存在很大差距,有的使用簡稱或當(dāng)?shù)丶s定俗成的名稱,要進(jìn)行單位名稱的有效匹配,字符串相似度度量是有效的技術(shù)方法。通常,求解字符串相似度的方法可依據(jù)不同的特征將其劃分為3類:基于字面相似的方法、基于統(tǒng)計(jì)關(guān)聯(lián)的方法、基于語義相似的方法。其中,基于字面相似的方法中,比較典型的有基于編輯距離的方法[1]。編輯距離廣泛應(yīng)用于字符串近似搜索,與其他度量字符串相似性的算法,如:余弦距離、海明距離、Jaccard距離等相比,編輯距離能夠精確度量2個字符串的相似程度[2]。

        本文對使用編輯距離度量字符串相似度的方法進(jìn)行了深入剖析,研究提出了相似字符串轉(zhuǎn)換的不可逆定義,同時(shí)證實(shí)了這一命題結(jié)論,即:將字符串作為孤立個體時(shí),在一定程度上,難以明顯提高匹配的準(zhǔn)確度,故而本次研究中根據(jù)字符串的背景環(huán)境,考慮了與字符串密切相關(guān)的屬性,進(jìn)而提出了具有約束的字符串定義。在此基礎(chǔ)上,參考關(guān)系型數(shù)據(jù)庫的知識,通過改進(jìn)Levenshtein算法,實(shí)現(xiàn)了單位名稱的相似度對比。如此則不但提高了比對效率,而且也改善了比對精度。本文最后,通過社會保險(xiǎn)與稅務(wù)數(shù)據(jù)共享的實(shí)例,也驗(yàn)證了本文方法的良好應(yīng)用效果。

        1 字符串相似度的經(jīng)典算法

        Levenshtein算法是經(jīng)典的計(jì)算字符串相似度的算法。Levenshtein算法使用編輯距離計(jì)算字符串的相似度,而利用編輯距離計(jì)算字符串的相似度,具有結(jié)果準(zhǔn)確度高,操作簡單等優(yōu)點(diǎn)。對此將做出研究闡釋如下。

        1.1 編輯距離

        編輯距離表示將一個字符串轉(zhuǎn)換為另一個字符串所需要的最少編輯次數(shù),編輯是指將字符串中的字符進(jìn)行插入、刪除或替換操作,這個概念由Levenshtein于1966年提出[3],而由其一并提出的求編輯距離算法即稱為Levenshtein算法,簡稱為LD算法。

        設(shè)原字符串是s,目標(biāo)字符串為t,編輯距離定義為:distance(t,s)。求取編輯距離的過程詳見如下。

        1.2 字符串相似度

        設(shè)原字符串為s,目標(biāo)字符串為t,s的長度為m,t的長度為n,定義2個字符串的相似度為:sim(t,s)。研究推得其計(jì)算公式為:

        相似度介于[0,1]之間,值越大表示2個字符串相似程度越大,值為1時(shí)表示2個字符串完全一致。

        1.3 經(jīng)典相似度算法存在的問題

        考慮2個例子,設(shè)t=“ab”,s=“cd”,按照Levenshtein算法計(jì)算2個字符串的相似度為0.5;設(shè)t=“臨邑縣迎曦大街896號”,s=“樂陵市湖濱西路140號”,按照Levenshtein算法計(jì)算2個字符串的相似度為0.55;顯然,按照字符串字面意義看,這2個相似度都不可能達(dá)到0.5。

        為了便于分析問題,現(xiàn)在簡化字符串模型,假設(shè)字符串t長度為n,字符串s長度為m,n>m,n-m=k,t、s中相同字符串在m長度中滿足最大對應(yīng),事實(shí)上k長度的字符串中與m相同的字符,可以通過刪除、插入操作變換到t字符串的前面,如:t=“abc”,s=“ac”,t經(jīng)過刪除插入變?yōu)椤癮cb”。由Levenshtein算法可得如下數(shù)學(xué)公式:

        此公式的推導(dǎo)過程為:假設(shè)字符串t長度為n,字符串s長度為m,n>m,n-m=k,前m個字符中有相同字符i個,則字符串t和s前m個字符變?yōu)橐恢?,需要m-i次替換操作,然后,s字符串經(jīng)過k次插入,轉(zhuǎn)換為與t一致,則編輯距離為:m-i+k=m-i+n-m=n-i,所以,m+n-n+i=m+i,則相似度即為公式(2)。

        當(dāng)n=m且i=0時(shí),即2個字符串長度相等且沒有相同字符時(shí),相似度為0.5,即使i=0,sim>0,相似度永遠(yuǎn)大于零。

        2 經(jīng)典相似度算法改進(jìn)

        按照公式(2)計(jì)算的相似度永遠(yuǎn)大于零,究其原因就在于求編輯距離時(shí)插入、刪除、替換為基本操作,地位等同,所產(chǎn)生的花費(fèi)最大都是1,但實(shí)際操作中,替換操作的花費(fèi)與插入、刪除是不等同的,替換可以分解為刪除和插入兩個操作,如將字符a替換為b,操作為刪除a、插入b,字符不同時(shí),cost應(yīng)為2。

        2.1 改進(jìn)的相似度計(jì)算公式

        改進(jìn)的相似度計(jì)算公式可表示為:

        此公式的推導(dǎo)過程為:字符串模型仍然采用公式(2)的模型,則字符串t和s前m個字符變?yōu)橐恢滦枰?(m-i)次替換操作,而后,s字符串經(jīng)過k次插入,轉(zhuǎn)換為與t一致,則編輯距離為:2(m-i)+k=2m-2i+n-m=n+m-2i,所以,m+n-n-m+2i=2i,則相似度即為公式(3)。

        當(dāng)i=0時(shí),即2個字符串沒有相同字符時(shí),相似度為0。

        2.2 改進(jìn)的字符串相似度算法

        算法1 2個字符串的相似度算法改進(jìn)

        Input:string s and t

        Output:sim_imp(t,s)

        字符串s長度 m=len(s)

        字符串t 長度 n=len(t)

        定義二維數(shù)據(jù)dif[n+1][m+1]

        初始化dif[n+1][m+1]

        for i=1 to n

        for j=1 to m

        if t[i]=s[j]

        cost=0

        else

        cost=2

        dif[i][j]=min(

        dif[i-1][j]+1, //刪除

        dif[i][j-1]+1,//插入

        dif[i-1][j-1]+cost) //替換

        return (n+m-dif[n][m])/(n+m)

        按照算法1計(jì)算1.3中2個例子的字符串的相似度,分別為0和0.09,這是與實(shí)際情況相符的。

        2.3 改進(jìn)字符串相似度算法的不足

        改進(jìn)后的算法仍然存在不足,在一定地域環(huán)境中人們對于單位名稱習(xí)慣使用單位簡稱或約定俗成的叫法,這樣一來就極容易造成誤判,如:“高邑縣第一中學(xué)”和“趙縣第一中學(xué)”在本縣域范圍內(nèi)可能都習(xí)慣使用“第一中學(xué)”作為簡稱,但與“第一中學(xué)”計(jì)算相似度時(shí),前者的相似度是0.73,而后者的相似度為0.8,如何提高比對準(zhǔn)確度即已成為本次課題的研究焦點(diǎn)。

        針對字符串相似度度量中提高準(zhǔn)確率問題,多年來,一些學(xué)者對字符串的相似度發(fā)表了很多研究成果。文獻(xiàn)[4]根據(jù)簡稱與全稱的構(gòu)成關(guān)系,構(gòu)造簡稱規(guī)則,從而與全稱對照,這樣雖能緩解一定的問題不足,但同樣面臨很多困難,如:“西南大學(xué)”、“西北大學(xué)”都簡稱“西大”,根據(jù)全稱到簡稱規(guī)則沒有差別,前兩個字都代表方位,后兩個字都代表專用名詞;文獻(xiàn)[5]采用分詞的方式計(jì)算相似度,雖然有一定改進(jìn),但也同樣遇到了文獻(xiàn)[4]的難題;文獻(xiàn)[6]基于詞向量研究了句子的相似度。文獻(xiàn)[7]綜合編輯距離和分詞等方法,提出了面向用戶查詢意圖的相似度分析方法。文獻(xiàn)[8]提出了使用塊編輯距離計(jì)算字符串相似度的方法,上述方法都試圖從字符串本身,尋找提高相似度計(jì)算的方法,沒有考慮與其他因素的關(guān)聯(lián)關(guān)系,但由于相似字符串轉(zhuǎn)換不可逆,總是存在一定的不確定性,導(dǎo)致相似度度量精確度難獲實(shí)質(zhì)性提升;文獻(xiàn)[9]對中文簡稱和全稱設(shè)置置信度,需要大量基礎(chǔ)數(shù)據(jù)源,計(jì)算工作量較大。

        定義1 相似字符串轉(zhuǎn)換的不可逆性 由全稱根據(jù)一定規(guī)則能轉(zhuǎn)換為簡稱,用同樣規(guī)則由簡稱轉(zhuǎn)換為全稱是不可逆的。同樣,相似字符串之間的轉(zhuǎn)換也是不可逆的。

        顯然全稱到簡稱是多對一的關(guān)系,就像哈希函數(shù)一樣,所以其過程是不可逆的,即不能簡單由簡稱推出全稱。同樣適用字符串相似度比較,雖然從不同研究角度出發(fā),能尋找出提高計(jì)算字符串相似度的方法,但這些方法具有不確定性。

        3 計(jì)算約束字符串相似度的算法

        全稱-簡稱轉(zhuǎn)換是不可逆的,但事物并不是孤立存在的,如:在陜西說起“西大”,人們第一印象是“西北大學(xué)”,在重慶提到“西大”,人們首先想起的是“西南大學(xué)”,簡稱必然有其密切關(guān)聯(lián)的屬性。在企業(yè)基礎(chǔ)信息的對比中,企業(yè)名稱、企業(yè)地址、所在區(qū)域是聯(lián)系緊密的3個屬性。

        定義2 具有約束的字符串 將需要比對的元素和與其有緊密關(guān)系的屬性,組成一個元組,這個元組就是有約束關(guān)系的字符串,記為T(d1,d2,……,dn),d1為被約束字符串,d2,……,dn為約束屬性。

        在中文環(huán)境的多數(shù)情況下,句子只有在一定語義環(huán)境中,才有具體含義,句子就是被約束字符串,語義環(huán)境就是約束屬性。具有約束的元組求相似度時(shí),對應(yīng)屬性分別求相似度,然后合成求出復(fù)合相似度,求相似度應(yīng)用算法2,研究給出設(shè)計(jì)代碼如下。

        算法2 具有約束的字符串復(fù)合相似度

        Input:元組T and S

        Output:com_sim(T,S)

        com_rat=1

        for i to n

        t=T[i]

        s=S[i]

        rat=sim_imp(t,s)

        com_rat=com_rat*rat

        return com_rat

        4 實(shí)例分析

        將稅務(wù)登記信息與社保的參保企業(yè)信息作為分析實(shí)例,按照算法2設(shè)計(jì)相似度算法,尋找單位名稱的相互匹配數(shù)據(jù),使用Python3.6編程,數(shù)據(jù)庫使用MySQL5.7。

        需要匹配的字符串為企業(yè)名稱,名稱相似度閾值設(shè)為0.75,約束屬性為單位地址和行政區(qū)劃代碼,單位地址相似度閾值為0.5,行政區(qū)劃代碼相似度閾值為1,即必須為同一行政區(qū)內(nèi)企業(yè)匹配,不是同一行政區(qū)內(nèi),相似度為0;具有約束的中文字符串復(fù)合相似度閾值為0.375。約束字符串記為T(name,addr,div),其中name表示企業(yè)名稱,addr表示單位地址,div代表行政區(qū)劃代碼,addr和div為約束屬性。有約束字符串與無約束字符串總體效率情況見表1。

        由表1可知,有約束字符串與無約束字符串相比,無效的匹配數(shù)據(jù)下降了41%。而匹配的數(shù)據(jù)準(zhǔn)確率由54%提高到73%。

        4.1 簡稱相同情況對比分析

        選取社保數(shù)據(jù)中單位名稱是“房產(chǎn)管理中心”的單位,無約束相似度匹配結(jié)果見表2,名稱相似度用name_rat表示。

        由表2可知,名稱的相似度都是0.80,不能準(zhǔn)確地匹配到正確數(shù)據(jù)。

        有約束相似度情況見表3,名稱相似度用name_rat表示,地址相似度用addr_rat表示,行政區(qū)劃相似度用div_rat表示,復(fù)合相似度用com_rat表示。

        可以看出具有約束的字符串可以實(shí)現(xiàn)精確匹配。

        4.2 同一行政區(qū)劃內(nèi)對比情況

        選取社保數(shù)據(jù)中單位名稱是“寧津縣重達(dá)汽車配件有限公司”的企業(yè),有約束相似度匹配結(jié)果見表4。

        可以看出“山東重達(dá)汽車配件有限公司”與“寧津縣重達(dá)汽車配件有限公司”具有更高的復(fù)合相似度,反映了實(shí)際情況。但是沒有地址約束時(shí),相似度最高的是“寧津縣伊高汽車配件有限公司”,這是不正確的。

        5 結(jié)束語

        本文分析了當(dāng)前計(jì)算字符串相似度的Levenshtein算法存在的不足,提出了改進(jìn)方法,給出了相似字符串轉(zhuǎn)換的不可逆定義,指出現(xiàn)在求字符串相似度的局限性,進(jìn)而得出具有約束屬性字符串的概念,不再把字符串看做孤立的個體,而把字符串、約束屬性視為密切聯(lián)系的整體,基于約束字符串改進(jìn)Levenshtein算法,由于關(guān)系型數(shù)據(jù)庫中字符串約束屬性容易獲得,該方法在關(guān)系型數(shù)據(jù)庫中求解字符串相似度方面具有很好效果。

        參考文獻(xiàn)

        [1]姜華,韓安琪,王美佳,等. 基于改進(jìn)編輯距離的字符串相似度求解算法[J]. 計(jì)算機(jī)工程,2014,40(1):222-227.

        [2]張潤梁,牛之賢. 基于基本操作序列的編輯距離順序驗(yàn)證[J]. 計(jì)算機(jī)科學(xué),2016,43(6A):51-54.

        [3]馬立東. 編輯距離算法及其在英語易混詞自動抽取中的應(yīng)用[J]. 智能計(jì)算機(jī)與應(yīng)用,2013,3(1):47-51.

        [4]沈嘉懿,李芳,徐飛玉,等. 中文組織機(jī)構(gòu)名稱與簡稱的識別[J]. 中文信息學(xué)報(bào),2007,21(6):17-21.

        [5]黃林晟,鄧志鴻,唐世渭,等. 基于編輯距離的中文組織機(jī)構(gòu)名簡稱-全稱匹配算法[J]. 山東大學(xué)學(xué)報(bào)(理學(xué)版),2012,47(5):43-48.

        [6]田星,鄭瑾,張祖平. 基于詞向量的Jaccard相似度算法[J]. 計(jì)算機(jī)科學(xué),2018,45(7):186-189.

        [7]李景玉,張仰森,陳若愚. 面向用戶查詢意圖的句子相似度分層計(jì)算[J]. 計(jì)算機(jī)科學(xué),2015,42(1):227-231.

        [8]王斌,郭慶,李中博,等. 支持塊編輯距離的索引結(jié)構(gòu)[J]. 計(jì)算機(jī)研究與發(fā)展,2010,47(1):191-199.

        [9]郭暉,董源,周鋼. 基于屬性關(guān)聯(lián)相似度的中文簡稱匹配算法研究[J]. 計(jì)算機(jī)與數(shù)字工程,2018,46(9):1726-1730.

        久久精品爱国产免费久久| 国产欧美日韩一区二区三区| 污污内射在线观看一区二区少妇| 亚洲男人的天堂网站| 久久精品国产成人午夜福利| 久久人妻少妇嫩草av蜜桃| 亚洲精品一区久久久久一品av| 丰满岳妇乱一区二区三区| 色老头久久综合网老妇女| 久久久国产精品五月天伊人| 亚洲永久国产中文字幕| 日韩精品久久久久久久电影蜜臀| 亚洲男人av香蕉爽爽爽爽| 国内精品久久久久影院蜜芽 | 欧美亚洲日本国产综合在线| 亚洲日韩AV秘 无码一区二区 | 最新国产三级| 一区二区视频网站在线观看| 亚洲一区二区国产激情| 久久久www免费人成精品| 色综合久久综合欧美综合图片 | 国产日韩欧美网站| 精品一区二区三区女同免费| 国产三a级三级日产三级野外| 国产办公室沙发系列高清| 91综合在线| 亚洲精品国产第一区三区| 国产亚洲精品久久午夜玫瑰园| 国产成人综合久久亚洲精品| 国产九色AV刺激露脸对白| 亚洲国产成人久久精品美女av| √天堂资源中文www| 日韩精品无码一区二区三区视频 | 久久精品日韩免费视频| 日本孕妇潮喷高潮视频| 玩弄少妇高潮ⅹxxxyw| 日本久久精品免费播放| 久久综合激情的五月天| 国产成年女人毛片80s网站| 亚洲V日韩V精品v无码专区小说 | 免费国产线观看免费观看|