国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      進行串匹配的方法

      文檔序號:6409271閱讀:199來源:國知局
      專利名稱:進行串匹配的方法
      本申請關(guān)系到串匹配的一般領(lǐng)域,更具體地關(guān)系到使用串編輯距離的下界估計的一種串匹配方法。
      串匹配是比較兩個串以便確定它們在多大程度上相似。一種普遍使用的對串的相似性的測度是“串編輯距離”。簡單地說,串編輯距離衡量把一個串編輯為另一個串的“費用”。串編輯距離將在后面詳述。
      計算串編輯距離的最普遍使用的方法叫做“動態(tài)編程”。動態(tài)編程的準確特性已為人知,在此申請中不再詳述。動態(tài)編程以及所有這樣的串編輯距離算法都是計算量大。在商業(yè)設(shè)備中,計算資源總是受費用的限制,因此希望盡可能減少應(yīng)用程序?qū)τ嬎阗Y源的需求為了維持用戶輸入的響應(yīng)時間在可接受的水平上,這一點經(jīng)常是關(guān)鍵的。
      一個具有有限的處理能力并運行一個串匹配應(yīng)用的設(shè)備就是在一歐洲申請(其申請?zhí)?4304890)中由同一申請人所描述的“草書匹配”設(shè)備?!安輹ヅ洹笔撬阉麟娮幽臉颖尽安輹倍幌劝阉鼈兎g成ASCII字符的操作。一幅草書是用戶用電子輸入筆直接寫在屏上輸入的。這里串匹配是用來將一個代表一幅輸入草書的串,即查詢串,與代表先前輸入的一系列草書的串,即候選串相比較。匹配操作的目的是恢復(fù)與候選串之一相聯(lián)的一個數(shù)據(jù)對象(例如電話號碼)。如果減少了計算串編輯距離所需的處理,就可以在這一設(shè)備降低用戶輸入的響應(yīng)時間。
      串編輯距離還用于很多其它的串匹配應(yīng)用。很多商業(yè)字處理器就利用串編輯距離計算,如像DNA比較程序。在后者,候選串可能是一個“長”距離候選串的子串。所有這些應(yīng)用都會從減少執(zhí)行串匹配所需的計算量中獲益。
      因此本發(fā)明的目標就是改進串匹配的方法。
      根據(jù)本發(fā)明,我們提供了一個查詢串和一個候選串相匹配的方法,該方法包括對候選串的串編輯距離的下界估計的計算,其中計算下界估計包含如下步驟-通過給較短的串加上填充元素使兩串長度相等;-根據(jù)兩個串的內(nèi)部元素的值把兩個串排序;-計算兩個串的對應(yīng)位置的元素的替換費用的總和。
      這一方法的優(yōu)點在于它對處理的需求比先前技術(shù)的串匹配方法要少。
      在本發(fā)明的第一實施例中,串匹配操作包含如下步驟-計算查詢串與所述候選串之一之間的串編輯距離,并把所述的候選串存起來作為當前的最佳匹配串。
      -計算剩下的每一個候選串的一個下界估計距離并衡量結(jié)果,以便-如果下界估計距離比當前最佳匹配距離的候選串大,則候選串被丟棄;-否則計算查詢串與當前候選串之間的串編輯距離,并保留當前候選串或者當前最佳匹配串,哪一個離查詢串的串編輯距離小,哪一個就作為當前最佳匹配候選串;
      -存儲最終的最佳候選串。
      在本發(fā)明的第二實施例中,通過執(zhí)行一個初始步驟,即對每一個候選串計算它與查詢串的下界估計距離,并根據(jù)下界距離對候選串排序;然后查詢串的下界估計距離超過當前最佳匹配距離的所有候選串丟掉,這樣便提高了串匹配操作的效率。
      在本發(fā)明的第三實施例中,還包含一個步驟,即在執(zhí)行第一次串編輯距離的計算之前丟棄所有的下限估計距離大于一個預(yù)定義的門限距離的那些所述候選串。
      對本發(fā)明在草書匹配領(lǐng)域的具體實施例,將參考如下的圖以舉例方式來描述。


      圖1顯示了一個使用根據(jù)本發(fā)明的串編輯距離的下界估計的手持式草書匹配設(shè)備的例子;圖2是圖1的設(shè)備的草書匹配子系統(tǒng)的簡化方框圖;圖3是傳統(tǒng)的串匹配方法的流程圖;圖4是顯示本發(fā)明使用的串匹配方法的流程圖;圖5a顯示了把第一個兩字符的串映射到第二個兩字符的串的合法的串編輯序列;圖5b顯示了一個使用“交叉”的非法的串編輯序列;圖6是一個顯示根據(jù)本發(fā)明的計算串編輯距離的下界的算法的流程圖;圖7是一個計算兩個整數(shù)代碼串的下界估計距離的例子;圖8是本發(fā)明進一步改進串匹配操作的方法的第二個應(yīng)用的流程圖;圖9是本發(fā)明包含一個門限步驟以進一步加速計算的方法的第三個應(yīng)用的流程圖。
      在圖1中顯示的一個手持式“草書匹配”設(shè)備10是作為一個具有有限計算能力的設(shè)備的例子,在此設(shè)備中本發(fā)明可以用來減少計算時間。
      設(shè)備10包含一個筆敏感的屏幕12和一支輸入筆11用來往屏幕上寫。設(shè)備包含一個微處理器,例如Intel80386,來執(zhí)行普通控制功能,如初始化。該設(shè)備還包含一個基于處理器的串匹配子系統(tǒng)20,后者把電話號碼和名字與用輸入筆11在屏幕12上寫入的編碼的草書匹配。
      現(xiàn)在參考圖2詳細描述草書匹配子系統(tǒng)20。草書匹配子系統(tǒng)包含一個計算一個輸入草書的查詢串表達式的編碼器21。該查詢串被輸入到匹配器23,此匹配器用來計算它與前面存儲的一組候選串22之間的串編輯距離?!熬嚯x得分”是對每一個候選串22相對于查詢串計算的,其結(jié)果24用來確定最佳匹配。圖2中名字“Dan”被匹配到相應(yīng)于“Dan”的候選串,因為這兩個串之間的距離得分最低。這一候選串連同它相聯(lián)的電話號碼作為最佳匹配被返回。
      草書匹配操作的編碼方面的問題不是本發(fā)明的論題,不再詳述。
      現(xiàn)在參考圖3的流程圖給出對傳統(tǒng)的匹配操作的描述,它有如下步驟步驟31把編碼的查詢串加載到匹配器;步驟32裝入第一候選串;步驟33使用一種計算量大的技術(shù),例如動態(tài)編程來計算兩個串之間的串編輯距離,并把它存起來。步驟34串編輯距離被存儲。
      對第2個及后面的候選串重復(fù)步驟32-34,直到所有的候選串都被處理完;步驟35將離查詢串的串編輯距離最小的候選串作為最佳匹配返回。
      在傳統(tǒng)方法中,計算串編輯距離必須對每個候選串都執(zhí)行,因而大大地增加了總體計算量的需求。
      圖4勾劃出了使用本發(fā)明的一個改進的串匹配方法。這一實施例在可能的地方需要用低計算強度的“下界估計距離”計算來替換高計算強度的串編輯距離計算。下界估計距離是對串編輯距離的計算的近似,保證不會超越它所近似的串編輯距離的大小。這個的計算強度比串編輯距離小得多。由此可見,如果計算出的下界估計距離比當前最佳匹配的串編輯距離大,就沒有必要計算這個候選串的實際的串編輯距離。這是正確的,因為實際的串編輯距離總是大于或等于下界估計距離。
      因此在圖4中步驟41裝入查詢串;步驟42裝入第一個候選串;步驟43計算查詢串與第一候選串之間的串編輯距離;步驟44這個候選串作為當前最佳匹配存起來;步驟45裝入下一個候選串;步驟46計算它與候選串之間的下界估計距離;如果下界估計比當前最佳匹配的串編輯距離大,該候選串可以立即消除,并在步驟45中裝入下一個候選串。步驟47如果下界估計距離比當前最佳匹配的串編輯距離小,那么必須計算候選串的串編輯距離。
      當下界估計比當前最佳匹配的串編輯距離小時,必須計算候選串的串編輯距離,以便在當前最佳匹配與候選串之間進行有意義的比較。
      如果候選串的串編輯比當前最佳匹配的小,則方法轉(zhuǎn)回到步驟44,候選串成為當前最佳匹配。
      否則,候選串被丟棄,在步驟45裝入下一個候選串。
      此方法被重復(fù),直到所有的候選串都被處理完。
      這一方法保證從候選串的集合中找出最佳匹配串。
      從前面描述中知,作為一個有效的拋棄準則,有必要使下界估計接近低估,但是決不能超過實際的串編輯距離。理論上有很多方法計算對串編輯距離的下界估計。下界估計的一例是“0”,它是所有串編輯距離的下界。但是“0”不是一個串編輯距離的好的估計,因為它不能成為有效的拋棄準則。我們提供了一個計算下界估計的方法,它提供了對串編輯距離非常接近的近似,但計算強度小得多。
      通過對串編輯距離的更詳盡的解釋可以獲得對本發(fā)明更好的理解。
      一個“串編輯序列”通過一系列“替換”(Sub),“刪除”(del)和“插入”(Ins)操作,把一個串變換成另一個串。圖5a顯示了一例,其中一個兩字符的串使用合法的串編輯序列映射到另一個兩字符的串。圖中串a(chǎn)1b1可以通過三個合法編輯序列之一映射到串a(chǎn)2b21.del(a1),sub(b1,b2),ins(a2)2.del(b2),sub(a1,a2),ins(b1)3.del(a1),del(b1),ins(b2),ins(a2)其中sub(a,b)即用b替換a。
      三個編輯操作中的每一個都賦予一個“費用”。費用的選取純粹依賴于應(yīng)用,并由系統(tǒng)設(shè)計者制定。“串編輯距離”就定義為把一個串轉(zhuǎn)換成另一個串所需的編輯操作的費用的最小值和。如果插入和刪除操作的費用選為統(tǒng)一的,即插入操作的費用等于刪除操作的費用;而且替換操作的費用選為對稱,即Sub(a,b)的費用等于Sub(b,a)的費用,并且比一個插入加一個刪除的費用的和??;圖5a的串編輯距離將是上面的序列1或2的總費用。
      對于圖5a的簡單情況,串編輯序列1和2的最小費用是容易識別的。但在實際應(yīng)用中,涉及更長的串,而且編輯費用的賦值方式也更為高級,找出串編輯序列的最小費用變得更復(fù)雜。為了找出最小和,使用動態(tài)編程來考慮所有可能的合法的串編輯序列的費用。
      圖5b顯示了第四種可能的串編輯序列,它使用了交叉替換sub(a1,a2),sub(b1,b2)。這個串編輯序列的總費用較低,但不允許這樣。禁止交叉替換是使用動態(tài)編程的前提。如果允許交叉替換,例如在處理打字轉(zhuǎn)置的情況,那么搜索串編輯序列的最小費用將更為復(fù)雜,這個算法的計算強度甚至比采用動態(tài)編程更大。
      本發(fā)明的下界估計距離放松了交叉的限制,并且如果可能的話,使用交叉允許一個串中的每個元素被另一個串的一個元素所替換。但是下界估計計算不搜索交叉替換的所有可能組合。反而利用一個過程以確定基于兩個串的順序所用的交叉。這樣的結(jié)果費用保證比相應(yīng)的串編輯距離小。
      下面的討論是S()代表替換費用,i()代表插入費用,d()代表刪除費用。
      下界估計距離算法做出五個假設(shè)1.串x和y包含從集S提取的元素序列,象整數(shù)集一樣具有總體順序。
      2.在元素xi,yi∈S上的所有編輯操作的費用大于或等于0。即S(xi,yj)≥0i(xi)≥0d(xi)≥03.兩個元素的替換費用小于或等于插入一個和刪除另一個的費用,即S(xi,yj)≤i(yj)+d(xi)4.有一個空值φ,對于元素來說,這樣用φ替換一個元素xi的費用小于或等于插入或刪除xi的費用,即S(xi,φ)≤d(xi)和S(φ,xi)≤i(xj)另外,如果需要串編輯距離及其下界在兩個串的次序中是對稱的,則5.編輯操作費用應(yīng)當對稱
      i(xi)=d(xi)和S(xi,yj)=S(yj,xi)計算串編輯距離的下界估計的算法如圖6的流程圖所示。在步驟61和62裝入串。在步驟63通過往較短的串加入填充(空)元素來使各串長度相等。在步驟64,兩個串都按內(nèi)部元素次序排序。然后在串的相應(yīng)位置中的元素的替換費用總和在步驟65進行計算。
      這一方法比動態(tài)編程的計算費用小得多。
      針對兩個整數(shù)代碼串的這個算法應(yīng)用的一例,如圖7所示,費用如下S(xi,yj)=|xi-yj|d(xi)=|xi|i(yj)=|yj|φ=0應(yīng)用圖6的方法串C2填以空元素。對齊之后兩個串被排序,此例中用升序。相應(yīng)元素的替換費用的總和,對整數(shù)來說,就是簡單地把它們之間的距離幅度加起來。
      對于精于此道的人會很清楚,對圖4的串匹配算法應(yīng)用本發(fā)明所帶來的改進在很大程度上依賴于候選串被處理的順序。在最壞情況下,以串編輯距離的降序安排候選串的處理。那么對每個候選串,下界估計距離和串編輯距離兩者都要計算,結(jié)果其處理需求超過了傳統(tǒng)的需求。但是,在實際的設(shè)備上這種情況不會頻繁發(fā)生,使得平均起來說,使用本發(fā)明的串匹配算法估計串編輯距離在總體的處理上比傳統(tǒng)算法少是可能的。
      本發(fā)明還可以應(yīng)用于解決如圖8所示的順序問題。圖中,在預(yù)處理步驟81-83中,對每一個候選串計算其下界估計距離,在步驟84所有的候選串以它們的下界估計距離的升序分類。然后此方法根據(jù)圖4繼續(xù)進行。這一改進不僅消除了上述的最壞情況順序,而且進一步降低了處理需求。這是因為一旦循環(huán)到達與查詢串的下界距離超過了當前最佳匹配距離的第一個候選串時,所有剩下的候選串都被丟棄。
      圖9的流程圖顯示了如何進一步使用本發(fā)明所提供的機會來進一步減少在串匹配應(yīng)用的處理需求。這是在步驟91對每一個候選串都計算下界估計,然后候選串象圖8一樣以它們的下界估計的升序排序。但是接著應(yīng)用一個門限操作步驟93,以便馬上丟棄所有那些具有下界估計距離比某個預(yù)定門限大的候選串。余下的候選串然后在步驟94用前面圖4描述的本發(fā)明方法進行匹配。
      門限可以選擇為某個絕對水平,或者可能是相對水平,例如候選串集合的最低下界估計。這種啟發(fā)式的戰(zhàn)略不能保證找到最佳匹配。下界估計距離的順序不能完全預(yù)測候選串到某個查詢串的串編輯距離,而且一個啟發(fā)式門限有時候可能消除那些下界估計距離較高但對應(yīng)于最小費用的串編輯距離的候選串。但是,這種方法的潛在優(yōu)勢在于有可能以可以接受的匹配錯誤水平而設(shè)置一個適當?shù)拈T限。
      因此能以多種方式使用下界估計來減少串匹配操作的處理需求。
      權(quán)利要求
      1.一個查詢串與一個候選串相匹配的一種串匹配方法,包含計算串之間的串編輯距離的下界估計方法,其特征在于計算下界估計包含通過向較短的串添加填充元素使兩個串等長;根據(jù)其元素的值對查詢串和候選串排序,計算兩個串的相應(yīng)位置元素的替換費用的和。
      2.根據(jù)權(quán)利要求1的方法,它包含如下步驟計算一個查詢串與多個候選串(43)之一之間的串編輯距離并把所述候選串存起來作為當前最佳匹配串;對每一個剩下的候選串計算所述下界估計距離(46)并比較結(jié)果使得如果下界估計距離大于當前最佳匹配距離則該候選串被丟棄;否則計算查詢串與當前候選串(47)之間的串編輯距離,并保持當前候選串或當前最佳匹配串,哪一個離查詢串的串編輯距離更小,哪一個作為當前的最佳匹配候選串;存儲最終的最佳匹配候選串。
      3.根據(jù)權(quán)利要求2的一種方法,包含一個初始步驟來對每一個候選串依次計算離查詢串的下界估計距離(83)將所述候選串按下界估計距離排序(84)。
      4.根據(jù)權(quán)利要求3的一種方法,還包含一個這樣的步驟在執(zhí)行第一個串編輯距離的計算之前丟棄所有所述的下界估計距離大于一個預(yù)定的門限距離的那些候選串(93)。
      5.一個草書匹配設(shè)備(10)實現(xiàn)了根據(jù)前面的權(quán)利要求之一的一種方法。
      全文摘要
      一種改進了的把一個查詢串與多個候選串匹配的方法,是以一低計算強度的下界估計來代替高計算強度的串編輯距離的計算。兩個串間的串編輯距離的下界估計是通過給較短的串加上填充字符來使兩個長度相等來計算的。然后串的元素被排序,并把相應(yīng)元素的替換費用相加。
      文檔編號G06T7/00GK1131302SQ95115969
      公開日1996年9月18日 申請日期1995年10月24日 優(yōu)先權(quán)日1994年10月28日
      發(fā)明者R·赫爾 申請人:惠普公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1