專利名稱:地理編碼應(yīng)用中的模糊搜索的制作方法
技術(shù)領(lǐng)域:
實(shí)施例一般涉及計(jì)算機(jī)系統(tǒng),并且更加具體來說,涉及用于得到地址的地理編碼(geocoding)信息的方法和系統(tǒng)。
背景技術(shù):
地理編碼一般被稱作根據(jù)諸如街道名稱、郵政編碼等等之類的其它地理數(shù)據(jù)確定地理坐標(biāo)(通常用緯度和經(jīng)度表示)的過程。目前,通過在存儲(chǔ)多個(gè)地址的地理編碼數(shù)據(jù)庫(kù)中搜索對(duì)接收到的輸入地址的匹配來執(zhí)行地理編碼。如果在地理編碼數(shù)據(jù)庫(kù)中發(fā)現(xiàn)輸入地址的精確匹配,則從該地理編碼數(shù)據(jù)庫(kù)中取出與該輸入地址對(duì)應(yīng)的緯度/經(jīng)度對(duì)并且將其提供給用戶。
然而,目前的地理編碼技術(shù)不精準(zhǔn)并且僅當(dāng)接收到的輸入地址在地理編碼數(shù)據(jù)庫(kù)中有精確匹配時(shí)才管用。當(dāng)一個(gè)或多個(gè)下列元素包含于地理編碼過程中時(shí)會(huì)遭遇次最佳(sub-optimal)性能(I)如果接收到的輸入地址中的一個(gè)詞(word)被拼錯(cuò)或者不正確的話,例如,如果地址“SAINT JOHN ROAD”被錯(cuò)拼為“SANT JOHN ROAD”或者錯(cuò)打?yàn)椤癝AINTJOHN STREET”;(2)如果接收到的輸入地址中的一個(gè)詞可以用多于一種的方式來表示的話,例如,詞“HIGHWAY”可以表示為“HWY”,英文單詞“WEST”在法語(yǔ)中可以被表示為“0UEST” ;以及(3)如果輸入地址的詞可以以不同的方式組織但是仍然保持相同的含義的話,例如,地址 “Highway 5” 可以是 “HighwayNo. 5” 或者 “Highway#5” 或者 “No. 5Highway”。因此,根據(jù)各種輸入數(shù)據(jù)中任何一種返回較為精準(zhǔn)的地理編碼結(jié)果的能力是人們所期待的。
發(fā)明內(nèi)容
這里描述了用于地理編碼應(yīng)用中的模糊搜索的系統(tǒng)和方法的各種實(shí)施例。對(duì)輸入地址執(zhí)行詞匯分析以得到輸入地址的部分(portion of the inputaddress)。利用得到的輸入地址的部分對(duì)結(jié)節(jié)序列樹執(zhí)行模糊搜索以識(shí)別通過結(jié)節(jié)序列樹存儲(chǔ)的多個(gè)部分地址(partial address)中的一個(gè)或多個(gè)。針對(duì)識(shí)別出的多個(gè)部分地址計(jì)算匹配和換位(transposition)得分,以確定識(shí)別出的多個(gè)部分地址中的最佳匹配候選。利用最佳匹配候選查詢地理編碼數(shù)據(jù)庫(kù)以得到與輸入地址相關(guān)的地理編碼信息。當(dāng)考慮結(jié)合后面的附圖給出的本發(fā)明優(yōu)選實(shí)施例的以下詳細(xì)說明時(shí),本發(fā)明實(shí)施例的這些及其它好處和特征將變得明顯。
權(quán)利要求利用具體特征闡述了本發(fā)明的實(shí)施例。在附圖中的圖中以示例方式而非以限制方式示出本發(fā)明,附圖中同樣的參考標(biāo)號(hào)表示類似元素。本發(fā)明的實(shí)施例連同其優(yōu)點(diǎn)可以從以下結(jié)合附圖的詳細(xì)說明中得到更好的理解。
圖I是示出根據(jù)實(shí)施例的用于地理編碼應(yīng)用中的模糊搜索的方法的流程圖。圖2是示出根據(jù)實(shí)施例的包括在對(duì)輸入地址執(zhí)行的詞匯分析中的一個(gè)或多個(gè)操作的框圖。圖3是示出根據(jù)實(shí)施例的用于創(chuàng)建結(jié)節(jié)序列樹的方法的流程圖。圖4示出根據(jù)示范性實(shí)施例的示范性參考數(shù)據(jù)。圖5A-5B示出根據(jù)實(shí)施例使用圖4的參考數(shù)據(jù)生成結(jié)節(jié)序列樹。圖6示出根據(jù)實(shí)施例使用圖4的參考數(shù)據(jù)生成的抽象結(jié)節(jié)序列樹。圖7示出根據(jù)實(shí)施例模糊搜索圖5B的結(jié)節(jié)序列樹或者圖6的抽象結(jié)節(jié)序列樹的方法。
圖8是示出根據(jù)實(shí)施例針對(duì)識(shí)別出的多個(gè)部分地址計(jì)算匹配和換位得分的方法的流程圖。圖9示出根據(jù)實(shí)施例用于針對(duì)識(shí)別出的多個(gè)部分地址確定匹配和換位得分的換位權(quán)重表。圖10示出根據(jù)實(shí)施例確定用于計(jì)算匹配和換位得分的字符匹配計(jì)數(shù)器和換位次數(shù)的示范性代碼。圖11是示出根據(jù)實(shí)施例用于重新排列存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的多個(gè)地址的方法的流程圖。圖12A示出根據(jù)實(shí)施例的示范性地理編碼數(shù)據(jù)庫(kù)。圖12B示出根據(jù)實(shí)施例存儲(chǔ)經(jīng)重新排列的多個(gè)地址的、圖12A的示范性地理編碼數(shù)據(jù)庫(kù)。圖13A示出根據(jù)實(shí)施例將確定其地理編碼信息的示范性輸入地址。圖13B-13C示出根據(jù)實(shí)施例在對(duì)圖13A的輸入地址執(zhí)行詞匯分析之后得到的、圖13A的輸入地址的部分。圖13D示出根據(jù)實(shí)施例針對(duì)圖13A的輸入地址的、識(shí)別出的部分地址的列表。圖13E示出根據(jù)實(shí)施例存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的參考數(shù)據(jù)的一部分。圖14是示出根據(jù)實(shí)施例的、可以實(shí)現(xiàn)針對(duì)地理編碼應(yīng)用中的模糊搜索所描述的技術(shù)的計(jì)算環(huán)境的框圖。
具體實(shí)施例方式這里描述了用于地理編碼應(yīng)用中的模糊搜索的技術(shù)的各種實(shí)施例。在下面的描述中,闡述了大量具體細(xì)節(jié)以提供對(duì)本發(fā)明的實(shí)施例的全面理解。然而,本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,可以實(shí)踐本發(fā)明而無需一個(gè)或多個(gè)所述具體細(xì)節(jié),或者利用其它方法、組件、素材等等來實(shí)踐本發(fā)明。在其它實(shí)例中,沒有示出或者詳細(xì)描述公知結(jié)構(gòu)、素材或操作以避免模糊了本發(fā)明的方面。貫穿本說明書,對(duì)“一個(gè)實(shí)施例”、“本實(shí)施例”及類似短語(yǔ)的引用指的是結(jié)合該實(shí)施例描述的特定特征、結(jié)構(gòu)或者特性包括在本發(fā)明的至少一個(gè)實(shí)施例中。因此,貫穿本說明書這些短語(yǔ)在各個(gè)位置的出現(xiàn)并不一定全都指代相同的實(shí)施例。此外,特定特征、結(jié)構(gòu)或者特性可以在一個(gè)或多個(gè)實(shí)施例中以任意適合的方式組合。圖I是示出根據(jù)實(shí)施例的用于地理編碼應(yīng)用中的模糊搜索的方法的流程圖。在一個(gè)實(shí)施例中,地理編碼應(yīng)用可以用于針對(duì)輸入地址尋找地理編碼信息,諸如地理坐標(biāo)。可以從用戶接收輸入地址。輸入地址可以包括一個(gè)或多個(gè)地址分量。例如,輸入地址“3,SAINTJOHN STREET,10001”包括三個(gè)地址分量,它們是房屋號(hào)碼地址分量(3);街道名稱地址分量(SAINTJOHN STREET);和郵政編碼地址分量(10001)。根據(jù)一個(gè)實(shí)施例,最初在塊102處,對(duì)輸入地址執(zhí)行詞匯分析。詞匯分析包括對(duì)輸入地址的地址分量中的一個(gè)執(zhí)行以得到輸入地址的部分的一個(gè)或多個(gè)操作,所述一個(gè)或多個(gè)操作要么單獨(dú)執(zhí)行要么相互結(jié)合執(zhí)行。在一個(gè)實(shí)施例中,可以基于輸入地址的語(yǔ)言定義詞匯分析。例如,如果輸入地址是英語(yǔ)的,那么就可以將詞匯分析定義為根據(jù)空格來劃分輸入地址,因?yàn)橛⒄Z(yǔ)在每個(gè)詞之間都有空格。接下來在塊104處,利用在塊102處得到的輸入地址的部分對(duì)結(jié)節(jié)序列樹執(zhí)行模 糊搜索。在一個(gè)實(shí)施例中,模糊搜索一亦稱近似或不精確匹配一是這樣一種搜索技術(shù)其搜索那些近似或者基本上匹配給定文本串模式(pattern)的文本串。可能在執(zhí)行模糊搜索的同時(shí)不經(jīng)意地發(fā)生了精確匹配。模糊搜索可能有助于找到某個(gè)詞的正確匹配,即使該詞被拼錯(cuò)。例如,對(duì)“appple”的模糊搜索也可能找到“apple”。這是因?yàn)椋:阉魇且环N不精確或近似的匹配技術(shù)。在一個(gè)實(shí)施例中,結(jié)節(jié)序列樹(knot-sequence tree)存儲(chǔ)在存儲(chǔ)器中。結(jié)節(jié)序列樹存儲(chǔ)與存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的多個(gè)部分地址匹配的多個(gè)部分地址。在一個(gè)實(shí)施例中,通過結(jié)節(jié)序列樹存儲(chǔ)的部分地址是存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的多個(gè)地址中的一個(gè)或多個(gè)地址的一部分的精確匹配。部分地址是存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的多個(gè)地址的地址分量。例如,如果存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的地址是“3,SAINT JOHN STREET,10001”,那么存儲(chǔ)在結(jié)節(jié)序列樹中的部分地址可以是街道名稱地址分量,即“SAINT JOHN STREET”。在一個(gè)實(shí)施例中,利用得到的輸入地址的部分模糊搜索結(jié)節(jié)序列樹識(shí)別由結(jié)節(jié)序列樹存儲(chǔ)的部分地址,這些部分地址可以被稱作輸入地址的模糊匹配。在一個(gè)實(shí)施例中,模糊搜索結(jié)節(jié)序列樹可以包括將輸入地址的部分的一個(gè)或多個(gè)字符與存儲(chǔ)在結(jié)節(jié)序列樹的節(jié)點(diǎn)中的信息的一個(gè)或多個(gè)字符相比較,以將輸入地址的這些部分與存儲(chǔ)在結(jié)節(jié)序列樹的節(jié)點(diǎn)中的信息進(jìn)行模糊匹配。接下來在塊106處,針對(duì)在塊104處識(shí)別出的部分地址計(jì)算匹配和換位得分,以確定識(shí)別出的部分地址中的最佳匹配候選。在一個(gè)實(shí)施例中,最佳匹配候選可以是具有最高匹配和換位得分的部分地址。最佳匹配候選可以是識(shí)別出的多個(gè)部分地址當(dāng)中對(duì)輸入地址的最佳匹配。在一個(gè)實(shí)施例中,如果對(duì)于多于一個(gè)的部分地址的匹配和換位得分是相同的,那么多于一個(gè)的部分地址可以被識(shí)別為最佳匹配候選。最后在塊108處,利用在塊106處確定的最佳匹配候選查詢地理編碼數(shù)據(jù)庫(kù)以得到與該輸入地址相關(guān)的地理編碼信息。在一個(gè)實(shí)施例中,存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的參考數(shù)據(jù)包括多個(gè)地址以及與該多個(gè)地址對(duì)應(yīng)的地理編碼信息。查詢地理編碼數(shù)據(jù)庫(kù)以確定該最佳匹配候選是否匹配存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的參考數(shù)據(jù)中多個(gè)地址中的至少一個(gè)。從地理編碼數(shù)據(jù)庫(kù)中取出(retrieved)與存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的、匹配最佳匹配候選的地址相關(guān)的地理編碼信息。在一個(gè)實(shí)施例中,存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的多個(gè)地址具有地址類型以及該地址類型的標(biāo)識(shí)符。例如,對(duì)于地址“SAINT JOHN STREET”,該地址的地址類型是“STREET”并且該地址類型的標(biāo)識(shí)符是“SAINT JOHN”。至少基于該地址類型的標(biāo)識(shí)符重新排列存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的地址。在一個(gè)實(shí)施例中,利用地址分量(即,輸入地址的部分地址)的部分對(duì)結(jié)節(jié)序列樹執(zhí)行模糊搜索,并且對(duì)該輸入地址的地址分量中的一個(gè)確定最佳匹配候選。在這種情況下,該輸入地址的其余地址分量與該最佳匹配候選合并以得到一個(gè)查詢。然后,利用該查詢查詢地理編碼數(shù)據(jù)庫(kù)以得到與該輸入地址相關(guān)的地理編碼信息。在上面討論的例子中,可以利用輸入地址“3,SAINT JOHN STREET,10001 ”的地址分量“SAINT JOHN STREET”的部分執(zhí)行對(duì)結(jié)節(jié)序列樹的模糊搜索,以將“SAINT JOHNROAD”識(shí)別為對(duì)地址分量“SAINT J0HNSTREET”的最佳匹配候選。然后,將其余地址分量“3”和“10001”與最佳匹配候選“SAINT JOHN ROAD”合并以得到查詢“3,SAINT JOHN ROAD,10001”。然后,所得到的查詢“3,SAINT JOHN R0AD,10001”可以用來查詢地理編碼數(shù)據(jù)庫(kù) 以得到輸入地址“3,SAINT JOHN STREET,10001 ”的地理編碼信息。在一個(gè)實(shí)施例中,最佳匹配候選或者所得到的查詢可以相應(yīng)于存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的多個(gè)地址中的多于一個(gè)的地址。在這種情況下,對(duì)存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的多個(gè)地址中的多于一個(gè)的地址中的每一個(gè)確定匹配和換位(transposition)得分。然后,與存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的地址當(dāng)中的、具有最高匹配和換位得分的地址相應(yīng)的地理編碼信息被確定為該輸入地址的地理編碼信息。圖2是示出根據(jù)實(shí)施例的、包括在對(duì)輸入地址執(zhí)行的詞匯分析200中的一個(gè)或多個(gè)操作的框圖。在一個(gè)實(shí)施例中,一個(gè)或多個(gè)操作包括解析操作202、抽象(abstraction)操作204和延伸(stretch)操作206。對(duì)輸入地址單獨(dú)地或者組合地執(zhí)行解析操作202、抽象操作204和延伸操作206。在一個(gè)實(shí)施例中,解析操作202將輸入地址劃分以得到該輸入地址的部分。解析操作202可以根據(jù)輸入地址的語(yǔ)言將輸入地址劃分為多個(gè)部分。例如,如果輸入地址是英文的,那么就可以在每個(gè)空格處對(duì)輸入地址進(jìn)行劃分以得到該輸入地址的多個(gè)部分(詞)。在上面輸入地址“3,SAINT J0HNSTREET,10001”的例子中,對(duì)輸入地址執(zhí)行解析操作在每個(gè)空格處劃分輸入地址,以得到五個(gè)部分,它們是“ 3 ”、“ SAINT ”、“ JOHN”、“ STREET ”和“10001”。如果輸入地址是中文的,那么輸入地址中的詞就不是用空格(white space)來分隔。因此,假如輸入地址是中文的,解析操作可以使用隱馬爾可夫模型(Hidden MarkovModel)以得到輸入地址的部分。在解析操作將輸入地址劃分為部分之后,利用輸入地址的部分對(duì)結(jié)節(jié)序列樹執(zhí)行模糊搜索以識(shí)別與輸入地址匹配的部分地址。在一個(gè)實(shí)施例中,輸入地址的部分中的每一個(gè)都與存儲(chǔ)在結(jié)節(jié)序列樹的節(jié)點(diǎn)中的信息相比較。在上面“3,SAINT JOHN STREET,10001”的例子中,部分“3”、“541見'”、“見順”、“5了1 £1'”和“10001”中的每一個(gè)都與存儲(chǔ)在結(jié)節(jié)序列樹的節(jié)點(diǎn)中的信息相比較。在一個(gè)實(shí)施例中,抽象操作204得到輸入地址的抽象。諸如Metaphone、DoubleMetaphone和Soundex之類的語(yǔ)音學(xué)關(guān)鍵詞算法(phonetic keyalgorithm)是抽象操作的例子。語(yǔ)音學(xué)關(guān)鍵詞算法得到輸入地址的每個(gè)部分(詞)的語(yǔ)音學(xué)表示,作為輸入地址的抽象(abstraction)。然后,利用輸入地址的抽象對(duì)結(jié)節(jié)序列樹執(zhí)行模糊搜索以識(shí)別與輸入地址匹配的部分地址。在上面“3,SAINT JOHN STREET,10001”的例子中,如果所執(zhí)行的抽象操作是語(yǔ)音學(xué)關(guān)鍵詞算法,那么得到的抽象就是“3,SNT JN 5了奶,10001”,其中“5見'”、“邛”和“5了奶”分別是“SAINT”、“JOHN”和“STREET”的語(yǔ)音學(xué)表示。在一個(gè)實(shí)施例中,延伸操作206根據(jù)輸入地址的語(yǔ)言擴(kuò)展輸入地址的字符。地址的擴(kuò)展可以包括將輸入地址中的字符變換為不同的語(yǔ)言。例如,中文拼音生成是將輸入地址中的每個(gè)中文字符翻譯為英文中的拼音單詞的延伸操作。通過延伸操作206擴(kuò)展輸入地址中的字符以得到擴(kuò)展地址。然后,利用擴(kuò)展地址對(duì)結(jié)節(jié)序列樹執(zhí)行模糊搜索以識(shí)別部分地址。例如,如果輸入地址是中文的,那么中文拼音生成器就得到擴(kuò)展的拼音地址,其包括針對(duì)輸入地址中每個(gè)中文字符的拼音單詞。 在一個(gè)實(shí)施例中,相互組合地執(zhí)行解析操作202、抽象操作204和延伸操作206。例如,一開始,可以對(duì)中文的輸入地址應(yīng)用中文拼音生成器(延伸操作206)以得到擴(kuò)展的拼音地址,然后可以對(duì)擴(kuò)展拼音地址應(yīng)用解析操作202以得到經(jīng)擴(kuò)展的拼音地址的部分。然后,利用得到的擴(kuò)展拼音地址的部分對(duì)結(jié)節(jié)序列樹執(zhí)行模糊搜索以針對(duì)該輸入地址識(shí)別部分地址。在另一例子中,一開始可以對(duì)輸入地址應(yīng)用解析操作202以得到輸入地址的部分,然后可以對(duì)得到的部分執(zhí)行抽象操作204。在上面例子中,可以首先通過應(yīng)用解析操作202 將輸入地址“3,SAINT JOHN STREET,10001”劃分為五個(gè)部分“3”、“SAINT”、“J0HN”、“STREET”和“10001”。然后可以對(duì)得到的部分應(yīng)用語(yǔ)音學(xué)關(guān)鍵詞算法,即抽象操作204,以得到表示得到的部分中的每一個(gè)的語(yǔ)音學(xué)關(guān)鍵詞,即“3”、“SNT”、“JN”、“STRT”和“10001”。然后,可以利用輸入地址的部分中的每一個(gè)的抽象對(duì)結(jié)節(jié)序列樹執(zhí)行模糊搜索以針對(duì)該輸入地址識(shí)別多個(gè)部分地址。圖3是示出根據(jù)實(shí)施例的用于創(chuàng)建結(jié)節(jié)序列樹的方法的流程圖300。在一個(gè)實(shí)施例中,在設(shè)計(jì)時(shí)間中創(chuàng)建結(jié)節(jié)序列樹。使用存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的、包括在參考數(shù)據(jù)中的多個(gè)地址創(chuàng)建結(jié)節(jié)序列樹。在一個(gè)實(shí)施例中,使用部分地址創(chuàng)建結(jié)節(jié)序列樹。結(jié)節(jié)序列樹將部分地址存儲(chǔ)在存儲(chǔ)器中。如圖所示,一開始,在塊302處,在存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的地址的詞中識(shí)別公共字符。在一個(gè)實(shí)施例中,搜索地理編碼數(shù)據(jù)庫(kù)以識(shí)別存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的部分地址的詞中的公共字符。識(shí)別存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的地址的詞中的公共字符。例如,如果地址中的一個(gè)詞是“MAIN”并且該地址中的另一個(gè)詞是“MARY”,那么識(shí)別出的公共字符就是“MA”。在一個(gè)實(shí)施例中,搜索地址的部分以識(shí)別它的詞中的公共字符。例如,可以搜索存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的地址的街道名稱地址分量以識(shí)別街道名稱地址分量中的詞中的公共字符。在一個(gè)實(shí)施例中,識(shí)別出的公共字符存儲(chǔ)在結(jié)節(jié)序列樹的父節(jié)點(diǎn)中。識(shí)別出的公共字符是存儲(chǔ)在結(jié)節(jié)序列樹的父節(jié)點(diǎn)中的信息,其將在該結(jié)節(jié)序列樹的模糊搜索期間與輸入地址的部分相比較。接下來在塊304處,在塊302處識(shí)別出的公共字符被存儲(chǔ)在結(jié)節(jié)序列樹的父節(jié)點(diǎn)中。在一個(gè)實(shí)施例中,公共字符存儲(chǔ)在結(jié)節(jié)序列樹的分支序列的父節(jié)點(diǎn)中。在一個(gè)實(shí)施例中,結(jié)節(jié)序列樹包括一個(gè)或多個(gè)父節(jié)點(diǎn),它們各自存儲(chǔ)在塊302處識(shí)別出的公共字符中的一個(gè)。在上面的例子中,識(shí)別出的“MAIN”和“MARY”的公共字符“MA”被存儲(chǔ)在結(jié)節(jié)序列樹的父節(jié)點(diǎn)中。在一個(gè)實(shí)施例中,結(jié)節(jié)序列樹包括分支序列。分支序列可以包括通過指示遍歷該分支序列的方向的分支連接的一個(gè)或多個(gè)節(jié)點(diǎn)。在一個(gè)實(shí)施例中,存儲(chǔ)在分支序列的節(jié)點(diǎn)中的信息的組合可以識(shí)別存儲(chǔ)在結(jié)節(jié)序列樹中的一個(gè)或多個(gè)部分地址。父節(jié)點(diǎn)是分支序列的根節(jié)點(diǎn)。在一個(gè)實(shí)施例中,父節(jié)點(diǎn)是一個(gè)或多個(gè)分支序列的根節(jié)點(diǎn)。接下來在塊306處,與在塊302處識(shí)別出的公共字符相關(guān)聯(lián)的多個(gè)詞當(dāng)中的詞的其余部分被存儲(chǔ)在該分支序列的子節(jié)點(diǎn)中。父節(jié)點(diǎn)和子節(jié)點(diǎn)可以通過指示遍歷該分支序列的方向的分支連接。在上面的例子中,詞“MAIN”和“MARY”的其余部分分別是“IN”和“RY”。其余部分“IN”和“RY”被存儲(chǔ)在分離的子節(jié)點(diǎn)中并且通過分離的分支連接到該父節(jié)點(diǎn),該父節(jié)點(diǎn)存儲(chǔ)公共的一個(gè)或多個(gè)具有分支的字符“MA”。在一個(gè)實(shí)施例中,如果公共字符僅與地址中的一個(gè)詞關(guān)聯(lián),那么其余部分被存儲(chǔ) 在父節(jié)點(diǎn)中。最后在塊308處,地址被存儲(chǔ)在與該分支序列關(guān)聯(lián)的一個(gè)或多個(gè)序列信息塊中。在一個(gè)實(shí)施例中,部分地址被存儲(chǔ)在與該分支序列關(guān)聯(lián)的一個(gè)或多個(gè)序列信息塊中。在一個(gè)實(shí)施例中,與該分支序列關(guān)聯(lián)的序列信息塊存儲(chǔ)部分地址,其包含存儲(chǔ)在該分支序列的父節(jié)點(diǎn)中的公共字符或者存儲(chǔ)在該分支序列的父節(jié)點(diǎn)和子節(jié)點(diǎn)中的公共字符與其余部分的組合。例如,部分地址“STREET MAIN, 10001”被存儲(chǔ)在與這樣的分支序列關(guān)聯(lián)的序列信息塊中該分支序列的父節(jié)點(diǎn)存儲(chǔ)“MA”。在一個(gè)實(shí)施例中,序列信息塊可以與多于一個(gè)的分支序列關(guān)聯(lián)。例如,存儲(chǔ)“SAINTJOHN STREET”的序列信息塊可以與第一序列信息塊、第二信息塊和第三序列信息塊關(guān)聯(lián),其中第一序列信息塊的父節(jié)點(diǎn)存儲(chǔ)“SAINT”,第二信息塊的父節(jié)點(diǎn)存儲(chǔ)“JOHN”,第三序列信息塊的父節(jié)點(diǎn)存儲(chǔ)“STREET”。在一個(gè)實(shí)施例中,序列信息塊弓I用結(jié)節(jié)序列樹的一個(gè)或多個(gè)序列信息塊當(dāng)中的其它序列信息塊。存儲(chǔ)在其它序列信息塊中的部分地址的部分與存儲(chǔ)在該序列信息塊中的部分地址的部分相關(guān)。例如,存儲(chǔ)地址“West Street”的序列信息塊可以引用存儲(chǔ)地址“OuestRoad”的另一序列信息塊。存儲(chǔ)在地址“Ouest Road”的其它序列信息塊中的部分“Ouest”與存儲(chǔ)在序列信息塊中的地址“West Street”的部分“West”相關(guān)。在一個(gè)實(shí)施例中,如果識(shí)別出的部分地址存儲(chǔ)在引用其它序列信息塊的序列信息塊中,那么存儲(chǔ)其它序列信息塊中的部分地址被視為識(shí)別出的部分地址。圖4示出根據(jù)示范性施例的示范性參考數(shù)據(jù)400。正如以上的討論,參考數(shù)據(jù)可以存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中。如圖所示,存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的參考數(shù)據(jù)包括多個(gè)地址402和與地址402相應(yīng)的地理編碼信息404。在一個(gè)實(shí)施例中,地址402包括街道名稱地址分量406、郵政編碼地址分量408和房屋號(hào)碼范圍地址分量410。圖5A-5B示出根據(jù)實(shí)施例使用圖4的參考數(shù)據(jù)400生成結(jié)節(jié)序列樹500。使用部分地址一即圖4的地址402的街道名稱地址分量406—生成結(jié)節(jié)序列樹500。在一個(gè)實(shí)施例中,當(dāng)對(duì)結(jié)節(jié)序列樹的模糊搜索要針對(duì)街道名稱地址分量406來執(zhí)行時(shí),使用街道名稱地址分量406來生成結(jié)節(jié)序列樹500。
一開始,識(shí)別多個(gè)詞——即街道名稱地址分量406中的“MAY”、“STREET”、“AVENUE”、“MARY”、“ SAINT”、“ JOHN”、“LAKE”、“ROAD”、“ 5 ” 和 “ 5X” ——中的公共字符。如圖5A中所示,識(shí)別出的公共字符是相應(yīng)于街道地址分量中的詞“MAY”和“MARY”的“HA”;相應(yīng)于街道地址分量中的“SAINT”和“STREET”的“S” ;相應(yīng)于街道地址分量中的“5”和“5X”的“5” ;相應(yīng)于街道地址分量中的“JOHN”的“J” ;相應(yīng)于街道地址分量中的“ROAD”的“R” ;相應(yīng)于詞“LAKE”的“L” ;以及相應(yīng)于街道地址分量中的“AVENUE”的“A”。接下來如圖5A中所示,識(shí)別出的公共字符“HA”、“S”、“5”、“J”、“R”、“L”和“A”中的每一個(gè)都分別被存儲(chǔ)在父節(jié)點(diǎn)502、504、506、508、510、512和514中。在一個(gè)實(shí)施例中,父節(jié)點(diǎn)中識(shí)別出的公共字符是存儲(chǔ)在父節(jié)點(diǎn)中的信息。如圖5B中所示,父節(jié)點(diǎn)502是分支序列516和518的根節(jié)點(diǎn),父節(jié)點(diǎn)504是分支序列520-528的根節(jié)點(diǎn),父節(jié)點(diǎn)506是分支序列530和532的根節(jié)點(diǎn),父節(jié)點(diǎn)508是分支序列534的根節(jié)點(diǎn),父節(jié)點(diǎn)510是分支序列536的根節(jié)點(diǎn),父節(jié)點(diǎn)512是分支序列538的根節(jié)點(diǎn),以及父節(jié)點(diǎn)514是分支序列540的根節(jié)點(diǎn)。接下來,詞“MAY”的其余部分——即,與存儲(chǔ)在父節(jié)點(diǎn)502中的公共字符“MA”關(guān) 聯(lián)的“Y”——被存儲(chǔ)在分支序列516的子節(jié)點(diǎn)542中。父節(jié)點(diǎn)502和子節(jié)點(diǎn)542通過指示遍歷分支序列516的方向的分支544連接,即,如果對(duì)結(jié)節(jié)序列樹500執(zhí)行模糊搜索的話,那么首先搜索存儲(chǔ)在父節(jié)點(diǎn)502中的信息,然后搜索存儲(chǔ)在子節(jié)點(diǎn)542中的信息。詞“MARY”的其余部分——即,與存儲(chǔ)在父節(jié)點(diǎn)502中的公共字符“MA”關(guān)聯(lián)的“RY”——被存儲(chǔ)在分支序列518的子節(jié)點(diǎn)546中。父節(jié)點(diǎn)502和子節(jié)點(diǎn)546通過指示遍歷分支序列518的方向的分支548連接。詞“SAINT”的其余部分——即,與存儲(chǔ)在父節(jié)點(diǎn)504中的公共字符“S”關(guān)聯(lián)的“AINT”——被存儲(chǔ)在分支序列520的子節(jié)點(diǎn)550中。父節(jié)點(diǎn)504和子節(jié)點(diǎn)550通過指示遍歷分支序列520的方向的分支552連接。詞“STREET”的其余部分——即,與存儲(chǔ)在父節(jié)點(diǎn)504中的公共字符“S”關(guān)聯(lián)的“TREET”——被存儲(chǔ)在分支序列522-528的子節(jié)點(diǎn)554中。父節(jié)點(diǎn)504和子節(jié)點(diǎn)554通過分支556連接。詞“5X”的其余部分一即,與存儲(chǔ)在父節(jié)點(diǎn)506中的公共字符“5”關(guān)聯(lián)的“X”~被存儲(chǔ)在分支序列530的子節(jié)點(diǎn)558中。父節(jié)點(diǎn)506和子節(jié)點(diǎn)558通過指示遍歷分支序列530的方向的分支560連接。父節(jié)點(diǎn)506也通過指示遍歷分支序列532的方向的分支564與子節(jié)點(diǎn)562連接。而且,分別存儲(chǔ)在父節(jié)點(diǎn)508、510、512和514中的公共的一個(gè)或多個(gè)字符J、R、L和A僅相應(yīng)于街道名稱地址分量406中的多個(gè)詞中的一個(gè)詞,即,分別相應(yīng)于“JOHN”、“ROAD”、“LAKE”和“AVENUE”。因此,分別與公共字符J、R、L和A相應(yīng)的其余部分“0HN”、“0AD”、“AKE”和“VENUE”與公共字符一起被分別存儲(chǔ)在父節(jié)點(diǎn)508、510、512和514中。在一個(gè)實(shí)施例中,結(jié)節(jié)序列樹500包括存儲(chǔ)多個(gè)部分地址的序列信息塊。序列信息塊可以與一個(gè)或多個(gè)分支序列關(guān)聯(lián)。在一個(gè)實(shí)施例中,存儲(chǔ)在分支序列的父節(jié)點(diǎn)和子節(jié)點(diǎn)中的信息標(biāo)識(shí)存儲(chǔ)在與該分支序列關(guān)聯(lián)的序列信息塊中的部分地址。如圖所示,分支序列信息塊566存儲(chǔ)部分地址“STREET 5X,20001”。分支序列信息塊566與分支序列528和530關(guān)聯(lián)。分支序列530的父節(jié)點(diǎn)和子節(jié)點(diǎn),分別為506和558,存儲(chǔ)“5X”,其標(biāo)識(shí)存儲(chǔ)在與分支序列530關(guān)聯(lián)的分支序列信息塊566中的部分地址“STREET 5X,20001”。分支序列528的父節(jié)點(diǎn)和子節(jié)點(diǎn),分別為504和554,存儲(chǔ)“STREET”,其也標(biāo)識(shí)存儲(chǔ)在與分支序列528關(guān)聯(lián)的分支序列信息塊566中的部分地址“STREET 5X,20001”。類似地,分支序列信息塊568存儲(chǔ)部分地址“STREET 5,20001”并且與分支序列526和532關(guān)聯(lián)。分支序列信息塊570存儲(chǔ)部分地址“SAINTJOHN STREET”并且與分支序列524和534關(guān)聯(lián)。分支序列信息塊572存儲(chǔ)部分地址“LAKE ROAD”并且與分支序列536和538關(guān)聯(lián)。分支序列信息塊574存儲(chǔ)部分地址“AVENUE MARY”并且與分支序列518和540關(guān)聯(lián)。分支序列信息塊576存儲(chǔ)部分地址“MAY STREET 10001”并且與分支序列516和522關(guān)聯(lián)。在一個(gè)實(shí)施例中,分支序列信息塊574 引用如箭頭578所指的另一分支序列信息塊572。存儲(chǔ)在另一分支序列信息塊572中的部分地址“LAKER0AD”的部分“ROAD”與存儲(chǔ)在序列信息塊574中的部分地址“AVENUEMARY”的部分“AVENUE”相關(guān)。圖6示出根據(jù)實(shí)施例使用圖4的參考數(shù)據(jù)生成的抽象結(jié)節(jié)序列樹(abstractionknot-sequence tree)600。在一個(gè)實(shí)施例中,在設(shè)計(jì)時(shí)間創(chuàng)建抽象結(jié)節(jié)序列樹600并且將其存儲(chǔ)在存儲(chǔ)器中。在一個(gè)實(shí)施例中,抽象結(jié)節(jié)序列樹600的父節(jié)點(diǎn)存儲(chǔ)街道名稱地址分量406的詞中的公共字符的抽象。抽象結(jié)節(jié)序列樹的子節(jié)點(diǎn)存儲(chǔ)與存儲(chǔ)在父節(jié)點(diǎn)中的公共字符關(guān)聯(lián)的詞的其余部分的抽象。正如以上關(guān)于圖5A-5B所討論的那樣,針對(duì)街道名稱地址分量中的多個(gè)詞識(shí)別出的公共字符是“嫩”、“3”、“5”、“1”、1”、“1/’和1”。在一個(gè)實(shí)施例中,如果公共字符與多于一個(gè)的詞關(guān)聯(lián)的話,那么就得到該公共字符的抽象。而且,如果公共字符僅與一個(gè)詞關(guān)聯(lián)的話,那么就得到該詞的抽象。正如以上所討論的,與多于一個(gè)的詞相關(guān)的公共字符是“MA”、“S”和5。公共字符“MA”的抽象是“M”,公共字符“S”和“5”的抽象與輸入相同,即,分別是“S”和5。如圖所示,得到的抽象“M”被存儲(chǔ)在分支序列616的父節(jié)點(diǎn)602中。得到的抽象“S”被存儲(chǔ)在分支序列620-628的父節(jié)點(diǎn)604中。得到的抽象“5”被存儲(chǔ)在分支序列630和632的父節(jié)點(diǎn)606中。公共字符“ J”、“ R”、“ L”和“A”僅與一個(gè)詞關(guān)聯(lián),分別是“ JOHN”、“ ROAD ”、“ LAKE ”和 “AVENUE”。詞 “ JOHN”、“ROAD”、“LAKE” 和 “AVENUE” 的抽象分別是 “ JN”、“RD”、“LKE” 和“AVE”。詞“JOHN”的抽象,即“JN”,存儲(chǔ)在分支序列634的父節(jié)點(diǎn)608中;詞“R0AD”的抽象,即“RD”,存儲(chǔ)在分支序列636的父節(jié)點(diǎn)610中;W“LAKE”的抽象,即“LKE”,存儲(chǔ)在分支序列638的父節(jié)點(diǎn)612中;以及詞“AVENUE”的抽象,即“AVE”,存儲(chǔ)在分支序列640的父節(jié)點(diǎn)614中。接下來,得到與公共字符關(guān)聯(lián)的詞的其余部分的抽象。與公共字符“MA”關(guān)聯(lián)的其余部分分別是“Y”和“RY”。其余部分“Y”和“RY”的抽象與輸入相同,即,分別是Y和RY。其余部分“Y”和“RY”的抽象分別存儲(chǔ)在分支序列616和618的子節(jié)點(diǎn)642和646中。存儲(chǔ)在父節(jié)點(diǎn)604中的公共字符“S”的其余部分是“AINT”和“TREET”。其余部分“AINT”的抽象是“NT”,其存儲(chǔ)在分支序列的子節(jié)點(diǎn)650中。其余部分“TREET”的抽象是“TRT”,其存儲(chǔ)在子節(jié)點(diǎn)654中。與公共字符“5”關(guān)聯(lián)的詞的其余部分是“X”。其余部分“X”的抽象與輸入相同,即“X”,其存儲(chǔ)在分支序列630的子節(jié)點(diǎn)658中。分支644、648、652、656、660 和 664 具有與圖 5B 的分支 544、548、552、556、560 和564類似的特征。分支序列信息塊666-676具有與圖5B的分支序列信息塊566-576類似的特征。
圖7示出根據(jù)實(shí)施例模糊搜索圖5B的抽象結(jié)節(jié)序列樹500或者圖6的抽象結(jié)節(jié)序列樹600的方法700。一開始在塊702處,執(zhí)行校驗(yàn)以確定存儲(chǔ)在結(jié)節(jié)序列樹的父節(jié)點(diǎn)中的信息的第一個(gè)字符是否匹配輸入地址的部分的第一個(gè)字符。在一個(gè)實(shí)施例中,執(zhí)行校驗(yàn)以確定輸入地址的部分中至少其中一個(gè)部分的第一個(gè)字符是否匹配結(jié)節(jié)序列樹的父節(jié)點(diǎn)中存儲(chǔ)的信息。正如以上所討論的那樣 ,存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的多個(gè)地址的每個(gè)詞中的公共字符是存儲(chǔ)在父節(jié)點(diǎn)中的信息。在一個(gè)實(shí)施例中,執(zhí)行校驗(yàn)以確定存儲(chǔ)在結(jié)節(jié)序列樹的父節(jié)點(diǎn)中的公共字符是否匹配輸入地址的每個(gè)部分中的第一個(gè)字符。在一個(gè)實(shí)施例中,得到輸入地址的每一個(gè)部分的抽象。例如,得到輸入地址的每一個(gè)部分的語(yǔ)音學(xué)表示。然后,執(zhí)行校驗(yàn)以確定輸入地址的每一部分的抽象的第一個(gè)字符是否匹配存儲(chǔ)在抽象結(jié)節(jié)序列樹的父節(jié)點(diǎn)中的信息。在一個(gè)實(shí)施例中,確定輸入地址的部分的抽象與存儲(chǔ)在結(jié)節(jié)序列樹的父節(jié)點(diǎn)中的信息,然后執(zhí)行校驗(yàn)以確定存儲(chǔ)在父節(jié)點(diǎn)中的信息的抽象的第一個(gè)字符是否匹配輸入地址的部分的抽象的第一個(gè)字符。例如,如果輸入地址是“SAINT JOHN STREET”,那么輸入地址的部分是“ SAINT”、“ JOHN”和“ STREET”。輸入地址的部分的抽象是“ SNT”、“ JN,,和“ STRT”。這些抽象中的每一個(gè),即“ SNT”、“ JN”和“ STRT”,都與存儲(chǔ)在結(jié)節(jié)序列樹的父節(jié)點(diǎn)中的信息的抽象或者存儲(chǔ)在抽象結(jié)節(jié)序列樹的父節(jié)點(diǎn)中的信息相比較。假如存儲(chǔ)在父節(jié)點(diǎn)中的信息的第一個(gè)字符匹配輸入地址的部分中至少其中一個(gè)部分的第一個(gè)字符,即如果在塊702中的條件為真的話,那么就執(zhí)行校驗(yàn)以確定存儲(chǔ)在父節(jié)點(diǎn)和子節(jié)點(diǎn)中的信息的組合是否匹配輸入地址的部分(塊704)。在一個(gè)實(shí)施例中,在塊702處執(zhí)行校驗(yàn)以確定存儲(chǔ)在父節(jié)點(diǎn)和子節(jié)點(diǎn)中的信息的組合是否匹配輸入地址的一部分、該部分的第一個(gè)字符匹配存儲(chǔ)在父節(jié)點(diǎn)中的信息的第一個(gè)字符。在一個(gè)實(shí)施例中,在父節(jié)點(diǎn)與通過分支連接到該父節(jié)點(diǎn)的每一個(gè)子節(jié)點(diǎn)之間得到信息的組合。在一個(gè)實(shí)施例中,在根節(jié)點(diǎn)是父節(jié)點(diǎn)的分支序列的子節(jié)點(diǎn)和該父節(jié)點(diǎn)之間得到信息的組合。在一個(gè)實(shí)施例中,得到存儲(chǔ)在父節(jié)點(diǎn)與子節(jié)點(diǎn)中的信息的組合的抽象,并且將信息的組合的抽象與輸入地址的部分的抽象相比較。最后,在塊706處,如果存儲(chǔ)在分支序列的父節(jié)點(diǎn)與子節(jié)點(diǎn)中的信息的組合匹配輸入地址的部分中的至少其中一個(gè)部分,那么存儲(chǔ)在與該分支序列關(guān)聯(lián)的序列信息塊中的部分地址就被識(shí)別出來。在一個(gè)實(shí)施例中,從用于計(jì)算匹配和換位得分的存儲(chǔ)器中取出識(shí)別出的部分地址。在一個(gè)實(shí)施例中,如果存儲(chǔ)識(shí)別出的部分地址的其中一個(gè)的序列信息塊引用另一序列信息塊,那么存儲(chǔ)在該另一序列信息塊中的部分地址也被視為識(shí)別出的部分地址。接下來,針對(duì)識(shí)別出的多個(gè)部分地址計(jì)算匹配和換位得分。圖8是示出根據(jù)實(shí)施例針對(duì)識(shí)別出的多個(gè)部分地址計(jì)算匹配和換位得分的方法的流程圖800。在一個(gè)實(shí)施例中,針對(duì)通過模糊搜索結(jié)節(jié)序列樹識(shí)別出的多個(gè)部分地址中的每一個(gè)計(jì)算匹配和換位得分。在一個(gè)實(shí)施例中,匹配和換位得分從識(shí)別出的多個(gè)部分地址當(dāng)中確定最佳匹配候選。一開始在塊802處,將識(shí)別出的多個(gè)部分地址當(dāng)中的一個(gè)識(shí)別出的部分地址與輸入地址相比較。在一個(gè)實(shí)施例中,將識(shí)別出的部分地址中的每一個(gè)與輸入地址相比較以針對(duì)識(shí)別出的部分地址中的每一個(gè)計(jì)算匹配和換位得分。在一個(gè)實(shí)施例中,將識(shí)別出的部分地址與輸入地址相比較包括將識(shí)別出的部分地址中的字符與輸入地址中的字符相比較。在一個(gè)實(shí)施例中,將識(shí)別出的部分地址中的字符中的每一個(gè)與輸入地址中的字符中的每一個(gè)相比較。將識(shí)別出的部分地址中的字符與輸入地址中的字符相比較以匹配在識(shí)別出的部分地址和輸入地址中公用的一個(gè)或多個(gè)字符。在一個(gè)實(shí)施例中,將識(shí)別出的部分地址中的字符按順序與輸入地址中的字符相比較。例如,如果輸入地址是“SAINT JOHN”并且針對(duì)“SAINT JOHN”識(shí)別出的部分地址是 “ SAINT MARK AVENUE”,那么一開始將 “ SAINTJOHN” 的第一個(gè)字符 “ S” 與“ SAINTMARK AVENUE”的所有字符相比較,接下來將“SAINT JOHN”的第二個(gè)字符“A”與“SAINTMARKAVENUE”的所有字符相比較。類似地,將“SAINT JOHN”的字符中的每一個(gè)按順序與“SAINT MARK AVENUE”的所有字符相比較。在本例中匹配的一個(gè)或多個(gè)字符是“SAINT”,其在 “SAINT JOHN” 和 “SAINT MARK AVENUE” 兩者中是公用的。在一個(gè)實(shí)施例中,在完成將識(shí)別出的部分地址中的字符與輸入地址中的字符之間的比較之后,從識(shí)別出的部分地址和輸入地址兩者中去除匹配的字符以得到識(shí)別出的部分地址的其余部分和輸入地址的其余部分。然后,將識(shí)別出的部分地址的其余部分中的字符與輸入地址的其余部分中的字符相比較,以匹配在識(shí)別出的部分地址的其余部分和輸入地址的其余部分中的字符。接下來,在塊804處,針對(duì)在塊802處確定的每個(gè)匹配使字符匹配計(jì)數(shù)器遞增。在一個(gè)實(shí)施例中,字符匹配計(jì)數(shù)器等于匹配的字符的數(shù)目。字符匹配計(jì)數(shù)器可以一開始被設(shè)置為零。在上面“SAINT JOHN”和“SAINTMARK AVENUE”的例子中,字符匹配計(jì)數(shù)器的值是5,這是因?yàn)閷?duì)于匹配的字符“S”、“A”、“I”、“N”和“T”中的每一個(gè)字符匹配計(jì)數(shù)器分別遞增5次。在一個(gè)實(shí)施例中,確定位置彼此鄰近的一個(gè)或多個(gè)匹配字符的數(shù)目是否大于位置彼此鄰近的一個(gè)或多個(gè)匹配字符的預(yù)定最小數(shù)目(M)。在一個(gè)實(shí)施例中,只有當(dāng)位置彼此鄰近的一個(gè)或多個(gè)匹配字符的數(shù)目大于M時(shí)才使字符匹配計(jì)數(shù)器遞增。例如,如果輸入地址是“SAINT JOHN”并且識(shí)別出的部分地址是“SAINT P0PE”,那么匹配字符的數(shù)目就是6,即,“S”、“A”、“I”、“N”、“T”和“O”。然而,位置彼此鄰近的匹配字符的數(shù)目是5,即“S”、“A”、“I”、“N”和“T”。該數(shù)目(5)應(yīng)當(dāng)大于M,否則對(duì)于識(shí)別出的部分地址“SAINT POPE”的字符匹配計(jì)數(shù)器就是O。接下來,在塊806處,執(zhí)行校驗(yàn)以確定在識(shí)別出的部分地址和輸入地址中的匹配的一個(gè)或多個(gè)字符的位置是否不同。在一個(gè)實(shí)施例中,執(zhí)行校驗(yàn)以確定在識(shí)別出的部分地址和輸入地址中的匹配的一個(gè)或多個(gè)字符的位置是否是對(duì)調(diào)的(transposed),S卩,交換的(interchanged)。在一個(gè)實(shí)施例中,匹配字符包括位置彼此相鄰的第一匹配字符集合和位置彼此相鄰的第二匹配字符集合。在一個(gè)實(shí)施例中,如果在識(shí)別出的部分地址和輸入地址其中之一中,第一匹配字符集合和第二匹配字符集合的位置是交換的,那么匹配字符就是對(duì)調(diào)的??紤]輸入地址“STREET MAIN”和識(shí)別出的部分地址“MAIN STREET”的例子?!癝TREET MAIN”和“MAINSTREET”中匹配的一個(gè)或多個(gè)字符是“STREET”和“MAIN”。位置彼此相鄰的一個(gè)或、多個(gè)匹配字符的第一集合是“STREET”,并且位置彼此相鄰的一個(gè)或多個(gè)匹配字符的第二集合是“MAIN”。在“STREET MAIN”和“MAINSTREET”中一個(gè)或多個(gè)匹配字符的第一集合——即“STREET”——與一個(gè)或多個(gè)匹配字符的第二集合——S卩“MAIN”——的位置是交換的。因此,輸入地址“STREET MAIN”是識(shí)別出的多個(gè)部分地址其中之一即"MAINSTREET"的換位。接下來,如果在塊806中條件為真,那么在塊808中確定換位次數(shù)(anumber oftransposition)。在一個(gè)實(shí)施例中, 換位次數(shù)是重新排列一個(gè)或多個(gè)匹配字符的位置以使得識(shí)別出的部分地址和輸入地址中的一個(gè)或多個(gè)匹配字符的位置相同所需要的換位。在上面“STREET MAIN”和“MAIN STREET”的例子中,所需要的換位次數(shù)是1,因?yàn)樾枰狪次轉(zhuǎn)換來將 “STREET MAIN” 中的 “STREET” 和 “MAIN” 的位置改變?yōu)?“MAIN STREET”。在一個(gè)實(shí)施例中,如果塊806中的條件是假,那么換位次數(shù)就是零。在一個(gè)實(shí)施例中,定義函數(shù)transposition_gestalt以返回針對(duì)識(shí)別出的部分地址的字符匹配計(jì)數(shù)器和換位次數(shù)。最后,在塊810處,分別在塊804和808處確定的字符匹配計(jì)數(shù)器和換位次數(shù)被用于計(jì)算識(shí)別出的部分地址的匹配和換位得分。在一個(gè)實(shí)施例中,針對(duì)識(shí)別出的多個(gè)部分地址中的每一個(gè)執(zhí)行塊802-810中描述的過程以計(jì)算多個(gè)部分地址中的每一個(gè)的匹配和換位得分。在一個(gè)實(shí)施例中,識(shí)別出的多個(gè)部分地址當(dāng)中具有最高匹配和換位得分的部分地址被確定為最佳匹配候選。最后,利用該最佳匹配候選查詢地理編碼數(shù)據(jù)庫(kù)以得到與該輸入地址相關(guān)的地理編碼信息。圖9示出根據(jù)實(shí)施例用于確定識(shí)別出的多個(gè)部分地址的匹配和換位得分的換位權(quán)重表900。換位權(quán)重表900包括存儲(chǔ)換位次數(shù)902和與換位次數(shù)相應(yīng)的權(quán)重904的兩個(gè)行。換位權(quán)重表900分配與換位次數(shù)相應(yīng)的權(quán)重。如圖所示,如果換位次數(shù)902是0,則分配的權(quán)重904是1,如果換位次數(shù)902是1,則分配的權(quán)重904是0. 8。如果換位次數(shù)902是2,則分配的權(quán)重904是0. 3,并且如果換位次數(shù)902是3,則分配的權(quán)重904是0. I。在一個(gè)實(shí)施例中,使用匹配和換位得分公式計(jì)算匹配和換位得分
匹配和換位得分.=:縣:;==:。..其中權(quán)重[i]是從換位權(quán)重表中得到的與識(shí)別出的部分地址的換位次數(shù)相應(yīng)的權(quán)重;ret [I] [i]是針對(duì)第i次換位的字符匹配計(jì)數(shù)器的值;串A和串B分別指代識(shí)別出的部分地址和輸入地址;長(zhǎng)度(A)和長(zhǎng)度(B)分別指代識(shí)別出的部分地址和輸入地址中的字符數(shù)目;以及i是換位次數(shù)。匹配和換位得分公式將與特定換位次數(shù)相應(yīng)的權(quán)重和與特定換位次數(shù)相應(yīng)的字符匹配計(jì)數(shù)器的乘積求和。所得到的總和乘以2。最后,所得到的乘積除以識(shí)別出的部分地址與輸入地址中的字符數(shù)目的總和,以得到匹配和換位得分。在一個(gè)實(shí)施例中,計(jì)算存儲(chǔ)識(shí)別出的部分地址的序列信息塊所引用的其它序列信息塊中存儲(chǔ)的部分地址的匹配和換位得分。在這種情況下,在計(jì)算該部分地址的換位和匹配得分之前,將存儲(chǔ)在另一序列信息塊中的該部分地址的、使該部分地址與識(shí)別出的部分地址相關(guān)的部分從該部分地址和輸入地址兩者中去除。考慮將為其確定最佳匹配候選的輸入地址“ST MARY”的例子。針對(duì)輸入地址“STMARY”從結(jié)節(jié)序列樹中識(shí)別出的部分地址是“ST JOHN”和“AVENUE MARY”。部分地址“MAYSTREET”存儲(chǔ)在另一序列信息塊中,該另一序列信息塊被存儲(chǔ)識(shí)別出的部分地址“ST JOHN”的信息塊引用。部分地址“MAY STREET”中的部分“STREET”將部分地址“MAY STREET”與部分地址“ ST JOHN”相關(guān)。因?yàn)椤?STREET”是“ ST”的別名,所以通過用“ STREET”替換輸入地址中的“ST”來計(jì)算“MAY STREET”的匹配和換位得分。為“AVENE MARY”、“ST JOHN”和“MAY STREET”計(jì)算的匹配和換位得分分別是0. 556,0. 429和0. 571??梢钥闯?,從相關(guān)序列信息塊中得到的輸入序列“MAY STREET”的換位和匹配得分是最高的。然而,“MAY STREET”的換位和匹配得分僅僅由于地址“MAY STREET”的部分“ STREET ”而成為最高的,而部分“ STREET ”并不是輸入地址“ ST MARY ”的一部分。因?yàn)椤癕AYSTREET”的匹配和換位得分值由于詞“STREET”而升高,所以在從輸入地址“ST MARY”和存 儲(chǔ)在另一序列信息塊中的部分地址“MAY STREET”中去除“ST”和“STREET”之后重新計(jì)算匹配和換位得分。針對(duì)在從地址“MAY STREET”中去除“STREET”之后得到的“MAY”計(jì)算的匹配和換位得分是0. 444。最后,再次對(duì)部分地址“AVENUE MARY”、“ST JOHN”和“MAYSTREET”的換位和匹配得分求值,并且具有最高匹配和換位得分的部分地址“AVENUE MARY”被確定為用于查詢地理編碼數(shù)據(jù)庫(kù)的最佳匹配候選。圖10示出根據(jù)實(shí)施例確定用于計(jì)算匹配和換位得分的字符匹配計(jì)數(shù)器和換位計(jì)數(shù)器的示范性代碼。如圖10中所示,已經(jīng)將代碼劃分為四個(gè)部分1002、1004、1006和1008,用于說明代碼的功能。一開始,在代碼的部分1002中,定義transposition_gestalt函數(shù),其以下列各項(xiàng)作為輸入具有m+1個(gè)字符的第一串A、具有n+1個(gè)字符的第二串B、變量g和P (其用來識(shí)別串A和串B中一個(gè)或多個(gè)匹配字符是否是位置對(duì)調(diào)的)、表示位置彼此鄰近的一個(gè)或多個(gè)匹配字符的最小數(shù)目的M、表示換位次數(shù)的T以及返回嵌套列表的變量ret,其將換位次數(shù)作為第一元素以及將針對(duì)每個(gè)換位次數(shù)的字符匹配計(jì)數(shù)器作為它后面的元素。在一個(gè)實(shí)施例中,串A是輸入地址并且第二串B是針對(duì)輸入地址的識(shí)別出的部分地址。多個(gè)變量1、」、11、1]^1_1143和口13被設(shè)置為零。變量;[、」和11是迭代子(iterator),max_h存儲(chǔ)h的最大值,pa和pb分別是指向串A和串B的指針。如圖所不,在代碼的部分1004中,嵌套循環(huán)被用于確定串A和串B中的一個(gè)或多個(gè)匹配字符的數(shù)目(字符匹配計(jì)數(shù)器(max_h))。最內(nèi)層的循環(huán)h具有條件“ifA[i+h] <>B[j+h]”,其按順序?qū)⒌谝淮拿總€(gè)字符與第二串的全部字符進(jìn)行比較。如果不滿足該條件,則中斷(break)條件終止最內(nèi)層循環(huán)的運(yùn)行??紤]具有11個(gè)字符(m = 10)的第一串A “STREET MAIN”和具有11個(gè)字符(n =10)的第二串B “MAIN STREET”的例子。位置彼此鄰近的一個(gè)或多個(gè)匹配字符的最小數(shù)目(M)被設(shè)置為3。第一次運(yùn)行內(nèi)部循環(huán)h,串A的第一個(gè)字符“S” (A
)與串B的第一個(gè)字符“M” (B
)相比較。因?yàn)椤癝”和“M”不匹配,所以最內(nèi)層的循環(huán)h中斷,接下來迭代子j的值增加到1,第二次運(yùn)行內(nèi)部循環(huán)h,第一個(gè)字符“S”(A
)與串B的第二個(gè)字符“A”(B[1])相比較。該過程繼續(xù),直到內(nèi)部循環(huán)h運(yùn)行到第六次。在該情形中,j的值是5并且串A的第一個(gè)字符“S” (A
)與串B的第六個(gè)字符“S” (B[5])匹配。字符匹配計(jì)數(shù)器的值(h)增加I。因?yàn)闂l件A[i+h] <>B[j+h]不滿足,所以最內(nèi)層循環(huán)h不中斷。接下來,再次運(yùn)行最內(nèi)層循環(huán)。在這種情況下,第一串A的第二個(gè)字符“T” (A[l])與第二串B的第七個(gè)字符“T”(B[6])匹配。每次運(yùn)行最內(nèi)層循環(huán),迭代子h的值都增加I。該過程繼續(xù)直到第六個(gè)字符“T” (A[5])與第二串B的最后一個(gè)字符“T” (B[10])匹配。在該情況中,迭代子h的值是6,其被賦給字符匹配計(jì)數(shù)器(max_h)。因?yàn)檫€沒有確定是否有換位,所以當(dāng)換位次數(shù)是O時(shí),字符匹配計(jì)數(shù)器(max_h)的值是6。A的指針pa存儲(chǔ)串A的第一匹配字符的位置,即O,并且B的指針pb存儲(chǔ)串B的第一匹配字符的位置,即5。接下來,代碼的部分1006確定第一串A和第二串B中的匹配字符是否位于不同位置,即,匹配字符是否是位置對(duì)調(diào)的。只有當(dāng)字符匹配計(jì)數(shù)器(max_h)大于匹配字符的最小數(shù)目(M)時(shí)才進(jìn)行該確定。定義條件集合(if (pa < g and pb > = p or pb < p and pa > =g)or g in (pa, pa+max_h] or p in (pb, pb+max_h])),其校驗(yàn)串 A 和串 B 中的一個(gè)或多個(gè)匹配字符是否是位置對(duì)調(diào)的。如圖所示,這些條件將串A中的第一匹配字符的位置(pa)以及串B中的第一匹配字符的位置與transposition_gestalt函數(shù)的變量g和p相比較。如果所定義的條件中的任何一個(gè)條件被滿足,那么換位次數(shù)的值(T,ret
)增加I。在上面的例子中,字符匹配計(jì)數(shù)器(max_h)的值6大于最小匹配字符數(shù)目(M)的值3。pa、pb、g和P的值分別是0、5、0和O。在上面的例子中,所有條件均是假(pa(0) < g(0)且pb(5) >= P(O):假;pb(5) < p(0) Jipa(O) >= g(0):假;g(0) in(pa(0), pa(0)+max_h(6)]:假;以及P(O) in(pb(5), pb(5)+max_h(6)]:假),因此ret
的值不增加。提供換位次數(shù)和字符匹配計(jì)數(shù)器的值的變量ret [I] [ret
]按照字符匹配計(jì)數(shù)器(max_h)增加。在上面的例子中,變量ret [I] [ret
]增加6,以得到值
,S卩,換位次數(shù)是0并且當(dāng)換位次數(shù)是0時(shí)字符匹配計(jì)數(shù)器是6。最后,在代碼的部分1008處,再次調(diào)用transposition_gestalt函數(shù)。在一個(gè)實(shí)施例中,從串A和B中去除串A和串B中的一個(gè)或多個(gè)匹配字符以分別得到A’(A’ =A
+A[pa+max_h. m])和 B,(B,= B
+B[pb+max_h. n])。串 A 中的第一匹配字符的位置增加1,即pa+1賦給g,并且串B中的第二匹配字符的位置增加1,即pb+1賦給 P。然后通過 A’ 和 B,、pa+1、pb+1 以及換位次數(shù)(transposition_gestalt (A,,B,,pa+1, pb+1, M, ret
)再次調(diào)用transposition_gestalt函數(shù)。在上面的例子中,在從串A和B中分別去除匹配字符“STREET”之后,A’的值是“< space > MAIN”并且B,是“MAIN< space >”。pa+1和pb+1的值分別是I和6,并且換位次數(shù)是O。因此,通過值(“MAIN”,“MAIN” 1,6, 3,0)調(diào)用 transposition_gestalt 函數(shù)。第二次調(diào)用transposition_gestalt函數(shù),變量i、j、h和max_h再次被設(shè)置為O。m和n的值是4。g的值是I (pa+1)并且p的值是6 (pb+1)。接下來,再次運(yùn)行代碼的部分1004中的嵌套循環(huán)。當(dāng)再次運(yùn)行部分1004時(shí),因?yàn)樵?MAIN"中有四個(gè)匹配字符,所以字符匹配計(jì)數(shù)器(max_h)值為4,因?yàn)樵诖瓵’之前有空格< space >,所以串A'中的第一匹配字符M的位置pa是1,并且第一匹配字符M的位置Pb是O。當(dāng)運(yùn)行代碼的部分1006時(shí),字符匹配計(jì)數(shù)器M(4)大于最小匹配字符數(shù)目3。因此,檢查用于確定換位的條件。在這種情況下,用于確定換位的條件——Pb(O) <p(6)且pa(l) >= g(l)——為真。因此,表示換位次數(shù)的變量ret
增加I。最后,變量ret[l] [ret
]提供與換位次數(shù)和與換位次數(shù)對(duì)應(yīng)的字符匹配計(jì)數(shù)器{I, (6,4)},即換位次數(shù)是1,當(dāng)換位次數(shù)是0時(shí)字符匹配計(jì)數(shù)器是6,并且當(dāng)換位次數(shù)是I時(shí)字符匹配計(jì)數(shù)器是4。然后,該得到的字符匹配計(jì)數(shù)器和換位次數(shù)可以用于計(jì)算多個(gè)部分地址中的每一個(gè)的匹配和換位得分。正如以上的討論,具有最高匹配和換位得分的部分地址被確定為最佳匹配候選。在確定了最佳匹配候選之后,利用最佳匹配候選查詢地理編碼數(shù)據(jù)庫(kù)以得到與該輸入地址相關(guān)的地理編碼信息。正如以上的討論,地理編碼數(shù)據(jù)庫(kù)存儲(chǔ)參考數(shù)據(jù),即多個(gè)地址和與多個(gè)地址相關(guān)的地理編碼信息。地理編碼數(shù)據(jù)庫(kù)將多個(gè)地址中的每一個(gè)存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的、多個(gè)存儲(chǔ)器地址當(dāng)中單獨(dú)的存儲(chǔ)器地址中。當(dāng)查詢地理編碼數(shù)據(jù)庫(kù)時(shí),將讀取多個(gè)存儲(chǔ)器地址以從地理編碼數(shù)據(jù)庫(kù)中取出與最佳匹配候選匹配的地址。
地理編碼數(shù)據(jù)庫(kù)將參考數(shù)據(jù)的多個(gè)地址按字母順序存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)的存儲(chǔ)器地址中。然而,如果可以編組在一起的兩個(gè)地址被存儲(chǔ)在彼此遠(yuǎn)離的兩個(gè)存儲(chǔ)器地址中的話,那么按字母順序存儲(chǔ)地址就可能會(huì)降低地理編碼應(yīng)用的性能。在這種情況下,如果查詢地理編碼數(shù)據(jù)庫(kù),那么就必須讀取存儲(chǔ)可以編組在一起的兩個(gè)地址的存儲(chǔ)器地址之間的每個(gè)存儲(chǔ)器地址以取出這兩個(gè)相關(guān)地址。因此,存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的地址將被重新排列,以使得可以通過讀取最小數(shù)目的存儲(chǔ)器地址從該地理編碼數(shù)據(jù)庫(kù)中取出匹配最佳匹配候選的地址。在一個(gè)實(shí)施例中,定義了一組假定條件以便重新排列存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的多個(gè)地址。第一假定條件是具有最大數(shù)目字符的地址的部分被假定為包含有關(guān)該地址的最重要信息。第二假定條件是如果地址的兩個(gè)部分具有相同長(zhǎng)度,那么第一部分,即位于該地址開頭的地址的部分較為重要。第三假定條件是可能有替換物的地址的部分——例如“STREET”有替換物“ST”——包含較少重要信息。圖11是示出根據(jù)實(shí)施例用于重新排列存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的多個(gè)地址的方法的流程圖。在一個(gè)實(shí)施例中,在設(shè)計(jì)時(shí)間在地理編碼數(shù)據(jù)庫(kù)中重新排列多個(gè)地址。一開始,在塊1102處,得到存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的多個(gè)地址的地址類型的縮寫。在一個(gè)實(shí)施例中,得到存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的地址中的每一個(gè)地址的地址類型的縮寫。在一個(gè)實(shí)施例中,存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的多個(gè)地址中的每一個(gè)都包括地址類型以及該地址類型的標(biāo)識(shí)符。地址的地址類型提供有關(guān)該地址的類型的信息。例如,地址的地址類型可以是“STREET”、“ROAD”和“AVENUE”,它們提供該地址是“STREET”、“ROAD”或者“AVENUE”的信息。在一個(gè)實(shí)施例中,地址的地址類型的縮寫提供該地址類型的縮寫形式。例如,如果地址的地址類型是“AVENUE”,那么該地址類型的縮寫是“AV”。地址類型的標(biāo)識(shí)符標(biāo)識(shí)地址并且將該地址與存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的其它地址區(qū)分開。在一個(gè)實(shí)施例中,地址類型的標(biāo)識(shí)符可以是標(biāo)識(shí)街道的街道名稱。例如,如果地址是“AVENUE JOHN”,那么該地址的地址類型就是“AVENUE”并且地址類型的標(biāo)識(shí)符是“JOHN”。
在一個(gè)實(shí)施例中,將得到的地址類型的縮寫以及地址類型的標(biāo)識(shí)符組合在一起形成與存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的多個(gè)地址中的每一個(gè)相應(yīng)的縮寫地址。在上面“AVENUEJOHN”的例子中,地址類型“AVENUE”的縮寫“AV”與地址類型的標(biāo)識(shí)符“JOHN”組合在一起,以得到與地址“AVENUEJ0HN”相應(yīng)的縮寫地址“AV JOHN”。接下來,在塊1104處,基于縮寫地址的部分中的字符數(shù)目重新排序縮寫地址的部分。在一個(gè)實(shí)施例中,縮寫地址的部分被重新排序以使得在縮寫地址中具有最大數(shù)目字符的部分位于縮寫地址的開頭。在上面的例子中,縮寫地址“AV JOHN”的部分“JOHN”具有最大數(shù)目的字符。因此,縮寫地址“AV JOHN”被重新排序?yàn)椤癑OHN AV”。在一個(gè)實(shí)施例中,對(duì)經(jīng)重新排序的縮寫地址執(zhí)行抽象操作(abstractionoperation)以得到抽象的(abstract)重新排序的縮寫地址。在上面的例子中,抽象的重新排序的縮寫地址是“ JNAV”,對(duì)應(yīng)于經(jīng)重新排序的縮寫地址“ J0HNAV”。接下來,在塊1106處,按字母順序排列所得到的重新排序的縮寫地址。在一個(gè)實(shí)施例中,基于重新排序的縮寫地址的第一個(gè)字符,按字母順序排列經(jīng)重新排序的縮寫地址。在一個(gè)實(shí)施例中,基于抽象的經(jīng)重新排序的縮寫地址的第一個(gè)字符,按字母順序排列抽象的經(jīng)重新排序的縮寫地址。最后,在塊1108處,以與重新排序的縮寫地址的排列相應(yīng)的次序重新排列存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的多個(gè)地址。在一個(gè)實(shí)施例中,以與經(jīng)排列的、抽象的重新排序的縮寫地址相應(yīng)的次序重新排列存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的多個(gè)地址。圖12A示出根據(jù)實(shí)施例的示范性地理編碼數(shù)據(jù)庫(kù)1200。正如以上的討論,地理編碼數(shù)據(jù)庫(kù)1200存儲(chǔ)參考數(shù)據(jù)1202。參考數(shù)據(jù)1202可以包括多個(gè)地址以及地理編碼信息。在一個(gè)實(shí)施例中,地理編碼數(shù)據(jù)庫(kù)1200包括多個(gè)存儲(chǔ)器地址并且參考數(shù)據(jù)存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)1200中的多個(gè)存儲(chǔ)器地址。如圖所示,地理編碼數(shù)據(jù)庫(kù)1200包括三個(gè)存儲(chǔ)器地址塊1204、1206、和1208,其中每個(gè)塊具有OXF存儲(chǔ)器地址。參考數(shù)據(jù)1202包括存儲(chǔ)在存儲(chǔ)器地址塊1204的存儲(chǔ)器位置1212處的地址“AVENUE MARY” 1210,存儲(chǔ)在存儲(chǔ)器地址塊1206的存儲(chǔ)器位置1216處的地址“MAY STREET”1214,和在存儲(chǔ)器地址塊1208的存儲(chǔ)器位置 1220 處的地址 “ST JOHN” 1218。地址“ AVENUE MARY ” 1210的地址類型是“ AVENUE ”并且地址類型的標(biāo)識(shí)符是“MARY”,地址“MAY STREET” 1214的地址類型是“STREET”并且地址類型1214的標(biāo)識(shí)符是“MAY”,地址“ST JOHN”的地址類型是“ST”——其是“STREET”的首字母縮寫,并且地址類型的標(biāo)識(shí)符是“JOHN”。地址“AVENUE MARY” 1210和“MAY STREET” 1214可以編組在一起,因?yàn)榈刂奉愋汀癆VENUE MARY”1210的標(biāo)識(shí)符——即“MARY”——以及地址“MAY STREET214的標(biāo)識(shí)符——即“MAY”——彼此相類似。而且,地址“ST JOHN” 1218和“MAY STREET” 1214相關(guān),因?yàn)榈刂贰癕AYSTREET” 1214的最長(zhǎng)部分——即“STREET”——與其縮寫——即“STJ0HN” 1218中的“ST”——是相同的。當(dāng)利用最佳匹配候選——其與可以編組在一起的這些地址其中之一相匹配——查詢地理編碼數(shù)據(jù)庫(kù)1200時(shí),必須讀取三個(gè)存儲(chǔ)器地址塊1204、1206和1208以便從地理編碼數(shù)據(jù)庫(kù)1200中取得這些地址。這將明顯降低地理編碼應(yīng)用的性能。因此,地理編碼數(shù)據(jù)庫(kù)1200被重新排列,以使得利用盡可能小的存儲(chǔ)器讀取,從地理編碼數(shù)據(jù)庫(kù)1200中取得可以編組在一起的地址1210、1214和1218。
正如以上的討論,對(duì)于重新排列多個(gè)地址來說,一開始得到存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)1200中的多個(gè)地址1210、1214和1218的地址類型的縮寫。地址“AVENUE MARY”1210的地址類型“AVENUE”的縮寫是“AV”,地址“MAY STREET” 1214的地址類型“STREET”的縮寫是“ST”,地址“STJ0HN”1218的地址類型——即“ST”——是“STREET”的縮寫,因此不改變??s寫“AV”與地址類型“MARY”的標(biāo)識(shí)符組合,以得到與地址“AVENUEMARY” 1210相應(yīng)的縮寫地址“AV MARY",縮寫“ST”與地址類型“MAY”的標(biāo)識(shí)符組合,以得到與地址“MAYSTREET^1214相應(yīng)的縮寫地址“MAYST”。正如以上的討論,地址“ST JOHN”的地址類型——即“ST”——已經(jīng)是縮寫形式,因此“ST JOHN”的縮寫地址是“ST JOHN” 1218。接下來,基于縮寫地址的部分中的字符數(shù)目重新排序縮寫地址的部分??s寫地址“AV MARY”的部分“MARY”具有最大數(shù)目的字符。因此,縮寫地址“AV MARY”被重新排序?yàn)?、“MARY AV”。類似地,地址“ST JOHN”和“MAY ST”被分別重新排序?yàn)椤癑OHN ST”和“MAYST”。在對(duì)縮寫地址重新排序之后,經(jīng)重新排序的縮寫地址是“MARY AV”、“J0HN ST”和“MAYST”。在一個(gè)實(shí)施例中,得到與經(jīng)重新排序的縮寫地址相應(yīng)的、抽象的重新排序的縮寫地址。所得到的與重新排序的縮寫地址“MARY AV”相應(yīng)的、抽象的重新排序的縮寫地址是“MRYAV”,與重新排序的縮寫地址“JOHN ST”相應(yīng)的、抽象的重新排序的縮寫地址是“JNST”,以及與重新排序的縮寫地址“MAY ST”相應(yīng)的、抽象的重新排序的縮寫地址是“MYST”。接下來,按字母順序排列所得到的抽象的經(jīng)重新排序的縮寫地址。基于首部的一個(gè)或多個(gè)字符——分別是MR、JN和MY,按字母順序排列抽象的經(jīng)重新排序的縮寫地址“MRYAV”、“ JNST”和“MYST”。所得到的經(jīng)排列的、抽象的重新排序的縮寫地址是“MRYAV”、“MYST” 和 “JNST”。最后,以與抽象的重新排序的縮寫地址“MRYAV ”、“MYST ”和“ JNST ”的排列對(duì)應(yīng)的次序,重新排列存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)1200中的多個(gè)地址1210、1214和1218。在得到經(jīng)排列的抽象的重新排序的縮寫地址之后,將看到,分別與“MRYAV”和“MYST”相應(yīng)的地址“AVENUE MARY”1210和“MAY STREET”1214可以編組在一起。在一個(gè)實(shí)施例中,可以編組在一起的地址被存儲(chǔ)在鄰近的存儲(chǔ)器位置。圖12B示出根據(jù)實(shí)施例存儲(chǔ)經(jīng)重新排列的多個(gè)地址的、圖12A的示范性地理編碼數(shù)據(jù)庫(kù)1200。如圖12B中所示,可以編組在一起的地址“AVENUEMARY” 1210和“MAYSTREET” 1214被存儲(chǔ)在存儲(chǔ)器地址塊1204的相鄰存儲(chǔ)器地址1212和1222中。這保證當(dāng)利用最佳匹配候選查詢地理編碼數(shù)據(jù)庫(kù)時(shí)將僅僅讀取兩個(gè)存儲(chǔ)器地址。這可以提供地理編碼應(yīng)用的性能上的改進(jìn)。圖13A示出根據(jù)實(shí)施例將確定其地理編碼信息的示范性輸入地址。如圖所示,輸入地址1300是“JOHN SANTE AVE”。在一個(gè)實(shí)施例中,從用戶接收輸入地址1300。圖13B-13C示出根據(jù)實(shí)施例在對(duì)圖13A的輸入地址1300執(zhí)行詞匯分析之后得到的、圖13A的輸入地址的部分。對(duì)輸入地址“JOHN SANTE AVE”1300執(zhí)行的詞匯分析是解析操作,其后是抽象操作。解析操作在空格處對(duì)輸入地址“JOHN SANTE AVE”1300進(jìn)行解析以得到輸入地址“JOHN SANTEAVE”1300 的三個(gè)部分“JOHN”13O2、“SANTE”13O0P“AVE”13O6。然后,對(duì)得到的部分“JOHN” 1302、“SANTE” 1304和“AVE” 1306——它們是在解析操作之后得到的——執(zhí)行抽象操作。如圖13C中所示,對(duì)部分“JOHN” 1302得到的抽象是“JN” 1308,對(duì)部分“SANTE” 1304得到的抽象是“SNT” 1310,以及對(duì)部分“AVE” 1306得到的抽象是“AV” 1312。在得到輸入地址1300的部分1302,1304和1306的抽象1308,1310和1312之后,對(duì)圖5B的結(jié)節(jié)序列樹執(zhí)行模糊搜索以識(shí)別出存儲(chǔ)在結(jié)節(jié)序列樹500中的多個(gè)部分地址——它們是輸入地址“JOHN SANTE AVE” 500的模糊匹配。在一個(gè)實(shí)施例中,通過將抽象“JN” 1308、“SNT” 1310和“AV” 1312中的每一個(gè)的第一個(gè)字符與存儲(chǔ)在結(jié)節(jié)序列樹500的父節(jié)點(diǎn)502-514中的信息的第一個(gè)字符相比較,來執(zhí)行對(duì)結(jié)節(jié)序列樹500的模糊搜索。在一個(gè)實(shí)施例中,將抽象“JN” 1308、“SNT” 1310和“AV” 1312的第一個(gè)字符與存儲(chǔ)在抽象結(jié)節(jié)序列樹600的父節(jié)點(diǎn)602-614中的信息的第一個(gè)字符相比較。抽象“JN”1308的第一個(gè)字符與存儲(chǔ)在分支序列534 (圖5B)的父節(jié)點(diǎn)508中的信息“JOHN”的第一個(gè)字符匹配。因此,分支序列534被遍歷,以將存儲(chǔ)在與分支序列534關(guān)聯(lián)的分支序列信息塊570中的部分地址“SAINT JOHN STREET”識(shí)別為輸入地址“JOHN SANTE AVE” 1300的可能匹配中的一個(gè)可能匹配。部分“AV”1312的第一個(gè)字符,即“A”,與存儲(chǔ)在分支序列540的父節(jié)點(diǎn)514中的信息“AVENUE”的第一個(gè)字符匹配。分支序列540被遍歷以將存儲(chǔ)在與分支序列540關(guān)聯(lián)的分支序列信息塊574中的部分地址“AVENUE MARY”識(shí)別為輸入地址“JOHN SANTE AVE” 1300的一個(gè)可能匹配。因?yàn)榇鎯?chǔ)識(shí)別出的部分地址“AVENUE MARY”的分支序列信息塊574引用存儲(chǔ)地址“LAKE ROAD”的分支序列信息塊572。因此,地址“LAKER0AD”也是針對(duì)輸入地址“ JOHN SANTE AVE ” 1300識(shí)別出的部分地址中的一個(gè)。部分“SNT” 1310的第一個(gè)字符“S”匹配存儲(chǔ)在父節(jié)點(diǎn)504(圖5B)中的信息。如圖5B中所示,存儲(chǔ)“S”的父節(jié)點(diǎn)504具有分別存儲(chǔ)“AINT”和“TREET”的兩個(gè)子節(jié)點(diǎn)550和554。因此,得到對(duì)存儲(chǔ)在父節(jié)點(diǎn)和子節(jié)點(diǎn)中的信息的組合的抽象。存儲(chǔ)在父節(jié)點(diǎn)504 “S”和子節(jié)點(diǎn)550 “AINT”中的信息的組合——即,"SAINT"——的抽象是“SNT”。存儲(chǔ)在父節(jié)點(diǎn)504 “S”和子節(jié)點(diǎn)550 “AINT”中的信息的組合——即,"SAINT〃——的抽象是“SNT”。得到的信息組合的抽象兩者一即“SNT”和“STRT”,都與輸入地址1300的部分“SNT” 1310相比較。因?yàn)榇鎯?chǔ)在分支序列520的父節(jié)點(diǎn)504和子節(jié)點(diǎn)550中的、信息組合的抽象“SNT”與輸入地址1300的部分“SNT”1310匹配,所以遍歷包括父節(jié)點(diǎn)504和子節(jié)點(diǎn)550的分支序列520。因此,存儲(chǔ)在與分支序列520關(guān)聯(lián)的分支序列信息塊570中的部分地址“SAINTJ0HN STREET”被識(shí)別為輸入地址“JOHN SANTE AVE” 1300的一個(gè)部分地址。圖13D示出根據(jù)實(shí)施例針對(duì)圖13A的輸入地址1300識(shí)別出的部分地址的匹配部分地址列表1314。如圖所示,列表1314包括通過模糊搜索結(jié)節(jié)序列樹得到的識(shí)別出的部分地址 “SAINT JOHN STREET”、“LAKE ROAD” 和 “AVENUE MARY”。接下來,針對(duì)識(shí)別出的部分地址“SAINT JOHN STREET”、“AVENUEMARY”和“LAKEROAD”中的每一個(gè)計(jì)算匹配和換位得分。針對(duì)“SAINTJ0HN STREET”、“AVENUE MARY”和“LAKEROAD”計(jì)算的匹配和換位得分分別是0. 5290,0. 24和O?;谟?jì)算出的匹配和換位得分,具有最高得分的識(shí)別出的部分地址“SAINT JOHNSTREET”被識(shí)別為最佳匹配候選。最后,利用該最佳匹配候選查詢地理編碼數(shù)據(jù)庫(kù)以得到與圖13A的輸入地址1300相關(guān)的地理編碼信息。圖13E示出根據(jù)實(shí)施例存儲(chǔ)在地理編碼數(shù)據(jù)庫(kù)中的參考數(shù)據(jù)1316的一部分。如圖所示,參考數(shù)據(jù)的該部分包括最佳匹配候選“SAINT J0HNSTREET”和與最佳匹配候選“SAINTJOHN STREET”相關(guān)的地理編碼信息1318。與最佳匹配候選相關(guān)的地理編碼信息1318是輸入地址1300 “JOHNSANTE AVE”的地理編碼信息。從地理編碼數(shù)據(jù)庫(kù)取出地理編碼信息1318并且將其提供給用戶。 上面示出的軟件組件有形地在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上存儲(chǔ)為指令。術(shù)語(yǔ)“計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)”應(yīng)當(dāng)采取包括存儲(chǔ)一個(gè)或多個(gè)指令集的單個(gè)介質(zhì)或者多個(gè)介質(zhì)。術(shù)語(yǔ)“計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)”應(yīng)當(dāng)采取包括能夠承受一組物理改變以物理存儲(chǔ)、編碼或者以另外方式承載用于由計(jì)算機(jī)系統(tǒng)運(yùn)行的指令集的任意物理物品,所述指令集導(dǎo)致計(jì)算機(jī)系統(tǒng)執(zhí)行這里描述、表示或者示出的任何方法或者過程步驟。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的例子包括但是不局限于磁介質(zhì),諸如硬盤、軟盤和磁帶;光介質(zhì),諸如⑶-ROM、DVD和全息設(shè)備;磁光介質(zhì);以及專門配置為存儲(chǔ)和運(yùn)行諸如專用集成電路(“ASIC”)、可編程邏輯器件(“PLD”)以及ROM和RAM設(shè)備的硬件設(shè)備。計(jì)算機(jī)可讀指令的例子包括諸如由編譯器產(chǎn)生的機(jī)器代碼,以及包含由計(jì)算機(jī)使用解釋器運(yùn)行的高級(jí)代碼的文件。例如,可以使用Java、C++或者其它面向?qū)ο蟮木幊陶Z(yǔ)言和開發(fā)工具實(shí)現(xiàn)本發(fā)明的實(shí)施例。本發(fā)明的其它實(shí)施例可以取代機(jī)器可讀軟件指令在硬線電路中實(shí)現(xiàn)或者結(jié)合機(jī)器可讀軟件指令實(shí)現(xiàn)。圖14是示范性計(jì)算機(jī)系統(tǒng)1400的框圖。計(jì)算機(jī)系統(tǒng)1400包括處理器1402,其運(yùn)行存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)1422上的軟件指令或者代碼以執(zhí)行上面所示的本發(fā)明的方法。計(jì)算機(jī)系統(tǒng)1400包括介質(zhì)讀取器1416,用于從計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)1422中讀取指令并且將指令存儲(chǔ)在存儲(chǔ)器1404中或者隨機(jī)存取存儲(chǔ)器(RAM) 1406中。存儲(chǔ)器1404提供較大空間用于保存靜態(tài)數(shù)據(jù),其中至少一些指令可以被存儲(chǔ)用于今后運(yùn)行。所存儲(chǔ)的指令可以進(jìn)一步被編譯以產(chǎn)生這些指令的其它表示并且將其動(dòng)態(tài)地存儲(chǔ)在RAM 1406中。處理器1402從RAM 1406中讀取指令并且根據(jù)指令執(zhí)行動(dòng)作。根據(jù)本發(fā)明的一個(gè)實(shí)施例,計(jì)算機(jī)系統(tǒng)1400還包括輸出設(shè)備1410(例如,顯示器),用于將運(yùn)行結(jié)果的至少一些作為輸出——包括但并不限于視覺信息——提供給用戶;以及輸入設(shè)備1412,用于利用輸入數(shù)據(jù)的裝置提供給用戶或者其它設(shè)備和/或以另外的方式與計(jì)算機(jī)系統(tǒng)1400交互。輸出設(shè)備1410和輸入設(shè)備1412中的每一個(gè)都可以通過一個(gè)或多個(gè)附加的外圍設(shè)備相連,以便進(jìn)一步擴(kuò)展計(jì)算機(jī)系統(tǒng)1400的能力??梢蕴峁┚W(wǎng)絡(luò)通信器1414以將計(jì)算機(jī)系統(tǒng)1400連接至網(wǎng)絡(luò)1420并且依次連接到其它設(shè)備——這些設(shè)備連接到例如包括其它客戶端、服務(wù)器、數(shù)據(jù)存儲(chǔ)和接口的網(wǎng)絡(luò)1420。計(jì)算機(jī)系統(tǒng)1400的模塊經(jīng)由總線1418互連。計(jì)算機(jī)系統(tǒng)1400包括數(shù)據(jù)源接口 1408,用于訪問數(shù)據(jù)源1424??梢越?jīng)由以硬件或者軟件實(shí)現(xiàn)的一個(gè)或多個(gè)抽象層訪問數(shù)據(jù)源1424。例如,可以通過網(wǎng)絡(luò)1420訪問數(shù)據(jù)源1424。在一些實(shí)施例中,可以經(jīng)由諸如語(yǔ)義層之類的抽象層訪問數(shù)據(jù)源1424。數(shù)據(jù)源是信息資源。數(shù)據(jù)源包括啟用數(shù)據(jù)存儲(chǔ)和檢索的數(shù)據(jù)的源。數(shù)據(jù)源可以包括數(shù)據(jù)庫(kù),諸如關(guān)系數(shù)據(jù)庫(kù)、交易數(shù)據(jù)庫(kù)、層級(jí)數(shù)據(jù)庫(kù)、多維數(shù)據(jù)庫(kù)(例如0LAP)、面向?qū)ο蟮臄?shù)據(jù)庫(kù)等等。更多數(shù)據(jù)源包括制表數(shù)據(jù)(例如,電子表格、劃界文本文件)、通過標(biāo)記語(yǔ)言標(biāo)記的數(shù)據(jù)(例如,XML數(shù)據(jù))、交易數(shù)據(jù)、未結(jié)構(gòu)化數(shù)據(jù)(例如,文本文件、抓屏)、層級(jí)數(shù)據(jù)(例如,文件系統(tǒng)中的數(shù)據(jù)、XML數(shù)據(jù))、文件、多個(gè)報(bào)告以及可通過由基礎(chǔ)軟件系統(tǒng)(例如ERP系統(tǒng))等等產(chǎn)生的已建立協(xié)議訪問的任意其他的數(shù)據(jù)源,協(xié)議諸如開放數(shù)據(jù)庫(kù)連接(ODBC)。數(shù)據(jù)源還可以包括這樣的數(shù)據(jù)源其中數(shù)據(jù)沒有被有形地存儲(chǔ)或者以另外方式地短暫存儲(chǔ),諸如數(shù)據(jù)流、廣播數(shù)據(jù),等等。這些數(shù)據(jù)源可以包括關(guān)聯(lián)的數(shù)據(jù)基礎(chǔ)、語(yǔ)義層、管理系統(tǒng)、安全性系統(tǒng)等等。在上面的描述中,闡述了大量具體細(xì)節(jié)以提供對(duì)本發(fā)明的實(shí)施例的全面理解。然而,本領(lǐng)域的技術(shù)人員將看到,可以在沒有一個(gè)或多個(gè)所述具體細(xì)節(jié)的條件下實(shí)踐本發(fā)明,或者利用其它方法、組件、素材等等來實(shí)踐。在其它實(shí)例中,沒有示出或者詳細(xì)描述公知操作或結(jié)構(gòu)以避免模糊了本發(fā)明的方面。盡管這里示出且描述的過程包括一系列步驟,但是將理解,本發(fā)明的不同實(shí)施例不局限于這些示出的步驟次序,因?yàn)橐恍┎襟E可能以不同次序發(fā)生,一些與不同于這里所示和描述的其它步驟同時(shí)發(fā)生。此外,不是所示出的所有步驟都需要來實(shí)現(xiàn)依照本發(fā)明的方法。而且,將理解,所述過程可以結(jié)合這里示出和描述的裝置和系統(tǒng)以及結(jié)合未示出的其它系統(tǒng)來實(shí)現(xiàn)。
本發(fā)明的實(shí)施例的上述描述和圖示——包括抽象中所描述的——并不意為窮舉性或限制本發(fā)明為所公開的準(zhǔn)確形式。盡管這里出于說明性目的描述了本發(fā)明的具體實(shí)施例和例子,但是如本領(lǐng)域技術(shù)人員將看到,在本發(fā)明的范圍內(nèi)各種等效修改是可能的。根據(jù)上面的具體說明可以進(jìn)行這些修改。而是,本發(fā)明的范圍將由后面的權(quán)利要求確定,將依照所建立的權(quán)利要求結(jié)構(gòu)的聲明來解釋權(quán)利要求。
權(quán)利要求
1.一種用于地理編碼應(yīng)用的計(jì)算機(jī)實(shí)現(xiàn)方法,該方法包括 對(duì)輸入地址執(zhí)行詞匯分析以得到輸入地址的部分; 利用得到的輸入地址的部分對(duì)結(jié)節(jié)序列樹執(zhí)行模糊搜索,以便識(shí)別通過結(jié)節(jié)序列樹存儲(chǔ)的多個(gè)部分地址中的一個(gè)或多個(gè); 針對(duì)識(shí)別出的多個(gè)部分地址中的一個(gè)或多個(gè)計(jì)算匹配和換位得分,以從識(shí)別出的多個(gè)部分地址中的一個(gè)或多個(gè)當(dāng)中確定最佳匹配候選;以及 利用所述最佳匹配候選查詢地理編碼數(shù)據(jù)庫(kù),以得到與所述輸入地址相關(guān)的地理編碼信息。
2.根據(jù)權(quán)利要求I所述的計(jì)算機(jī)實(shí)現(xiàn)方法,其中,所述詞匯分析包括解析操作,其根據(jù)輸入地址的語(yǔ)言將輸入地址劃分為輸入地址的部分。
3.根據(jù)權(quán)利要求I所述的計(jì)算機(jī)實(shí)現(xiàn)方法,其中,所述詞匯分析包括抽象操作,其中,模糊搜索所述結(jié)節(jié)序列樹還包括 確定輸入地址以及存儲(chǔ)在結(jié)節(jié)序列樹的父節(jié)點(diǎn)中的信息的抽象;以及 將所述輸入地址的抽象與存儲(chǔ)在所述父節(jié)點(diǎn)中的信息的抽象相比較。
4.根據(jù)權(quán)利要求I所述的計(jì)算機(jī)實(shí)現(xiàn)方法,其中,所述詞匯分析包括延伸操作,其中,所述延伸操作根據(jù)輸入地址的語(yǔ)言擴(kuò)展輸入地址的多個(gè)字符。
5.根據(jù)權(quán)利要求I所述的計(jì)算機(jī)實(shí)現(xiàn)方法,其中,模糊搜索所述結(jié)節(jié)序列樹包括將得到的所述輸入地址的部分與存儲(chǔ)在所述結(jié)節(jié)序列樹的父節(jié)點(diǎn)中的信息相比較。
6.根據(jù)權(quán)利要求5所述的計(jì)算機(jī)實(shí)現(xiàn)方法,其中,如果所述輸入地址的部分中至少其中一個(gè)部分的第一個(gè)字符與存儲(chǔ)在父節(jié)點(diǎn)中的信息的第一個(gè)字符匹配,則識(shí)別所述多個(gè)部分地址中的一個(gè)或多個(gè)。
7.根據(jù)權(quán)利要求5所述的計(jì)算機(jī)實(shí)現(xiàn)方法,其中,所述父節(jié)點(diǎn)是結(jié)節(jié)序列樹的分支序列的根節(jié)點(diǎn),其中,所述分支序列與所述結(jié)節(jié)序列樹的序列信息塊關(guān)聯(lián),并且其中,所述序列信息塊存儲(chǔ)多個(gè)部分地址中至少其中一個(gè)。
8.根據(jù)權(quán)利要求7所述的計(jì)算機(jī)實(shí)現(xiàn)方法,其中,所述序列信息塊引用其它序列信息塊,并且其中,計(jì)算識(shí)別出的多個(gè)部分地址的匹配和換位得分還包括 將所述輸入地址與存儲(chǔ)在所述序列信息塊中的多個(gè)部分地址中的一個(gè)以及存儲(chǔ)在所述其它序列信息塊中的多個(gè)部分地址中的一個(gè)相比較。
9.根據(jù)權(quán)利要求7所述的計(jì)算機(jī)實(shí)現(xiàn)方法,其中,所述分支序列的子節(jié)點(diǎn)通過指示遍歷所述分支序列的方向的分支連接到所述父節(jié)點(diǎn)。
10.根據(jù)權(quán)利要求9所述的計(jì)算機(jī)實(shí)現(xiàn)方法,還包括 將所得到的所述輸入地址的部分與存儲(chǔ)在所述父節(jié)點(diǎn)和子節(jié)點(diǎn)中的信息的組合相比較。
11.根據(jù)權(quán)利要求I所述的計(jì)算機(jī)實(shí)現(xiàn)方法,其中,通過結(jié)節(jié)序列樹存儲(chǔ)的多個(gè)部分地址與存儲(chǔ)在所述地理編碼數(shù)據(jù)庫(kù)中的多個(gè)地址匹配。
12.根據(jù)權(quán)利要求I所述的計(jì)算機(jī)實(shí)現(xiàn)方法,其中,所述輸入地址包括多個(gè)地址分量。
13.根據(jù)權(quán)利要求I所述的計(jì)算機(jī)實(shí)現(xiàn)方法,其中,計(jì)算識(shí)別出的多個(gè)部分地址中的一個(gè)或多個(gè)的匹配和換位得分還包括 將識(shí)別出的多個(gè)部分地址當(dāng)中識(shí)別出的部分地址中的多個(gè)字符與所述輸入地址中的多個(gè)字符相比較,以匹配識(shí)別出的部分地址和所述輸入地址中的一個(gè)或多個(gè)字符; 針對(duì)所確定的每個(gè)匹配使字符匹配計(jì)數(shù)器遞增; 基于所述比較,確定識(shí)別出的部分地址和所述輸入地址中的一個(gè)或多個(gè)匹配字符的位置是否不同;確定重新排列識(shí)別出的部分地址中的所述一個(gè)或多個(gè)匹配字符的位置以使得識(shí)別出的部分地址和所述輸入地址中的一個(gè)或多個(gè)匹配字符的位置相同所需要的換位次數(shù);以及使用所述字符匹配計(jì)數(shù)器和換位次數(shù)來計(jì)算識(shí)別出的部分地址的匹配和換位得分。
14.根據(jù)權(quán)利要求I所述的計(jì)算機(jī)實(shí)現(xiàn)方法,還包括 識(shí)別存儲(chǔ)在所述地理編碼數(shù)據(jù)庫(kù)中的多個(gè)地址的多個(gè)詞中的公共字符;將識(shí)別出的公共字符存儲(chǔ)在所述結(jié)節(jié)序列樹的父節(jié)點(diǎn)中,所述識(shí)別出的公共字符是存儲(chǔ)在所述父節(jié)點(diǎn)中的信息,所述父節(jié)點(diǎn)是所述結(jié)節(jié)序列樹的分支序列的根節(jié)點(diǎn); 將多個(gè)詞當(dāng)中、與所述公共字符關(guān)聯(lián)的詞的其余部分存儲(chǔ)在所述分支序列的子節(jié)點(diǎn)中,所述子節(jié)點(diǎn)和所述父節(jié)點(diǎn)通過指示遍歷所述分支序列的方向的分支連接;以及將所述多個(gè)部分地址存儲(chǔ)在與所述分支序列關(guān)聯(lián)的序列信息塊中。
15.根據(jù)權(quán)利要求I所述的計(jì)算機(jī)實(shí)現(xiàn)方法,其中,存儲(chǔ)在所述地理編碼數(shù)據(jù)庫(kù)中的多個(gè)地址具有地址類型以及該地址類型的標(biāo)識(shí)符,存儲(chǔ)在所述地理編碼數(shù)據(jù)庫(kù)中的多個(gè)地址被至少基于所述地址類型的標(biāo)識(shí)符重新排列。
16.根據(jù)權(quán)利要求15所述的計(jì)算機(jī)實(shí)現(xiàn)方法,還包括 得到所述多個(gè)地址的地址類型的縮寫,該地址類型的縮寫與該地址類型的標(biāo)識(shí)符組合形成縮寫地址; 基于所述縮寫地址的部分中的字符數(shù)目重新排序縮寫地址的部分; 按字母順序排列重新排序的縮寫地址;以及 以與重新排序的縮寫地址的排列相應(yīng)的次序重新排列存儲(chǔ)在所述地理編碼數(shù)據(jù)庫(kù)中的多個(gè)地址。
17.—種包括計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的制造產(chǎn)品,用于有形地存儲(chǔ)指令,所述指令當(dāng)由計(jì)算機(jī)運(yùn)行時(shí)導(dǎo)致計(jì)算機(jī)執(zhí)行以下步驟 對(duì)輸入地址執(zhí)行詞匯分析以得到輸入地址的部分; 利用得到的輸入地址的部分對(duì)結(jié)節(jié)序列樹執(zhí)行模糊搜索,以便識(shí)別通過結(jié)節(jié)序列樹存儲(chǔ)的多個(gè)部分地址中的一個(gè)或多個(gè); 針對(duì)識(shí)別出的多個(gè)部分地址中的一個(gè)或多個(gè)計(jì)算匹配和換位得分,以從識(shí)別出的多個(gè)部分地址中的一個(gè)或多個(gè)當(dāng)中確定最佳匹配候選;以及 利用所述最佳匹配候選查詢地理編碼數(shù)據(jù)庫(kù),以得到與所述輸入地址相關(guān)的地理編碼信息。
18.根據(jù)權(quán)利要求17所述的制造產(chǎn)品,其中,模糊搜索所述結(jié)節(jié)序列樹包括將得到的所述輸入地址的部分與存儲(chǔ)在所述結(jié)節(jié)序列樹的父節(jié)點(diǎn)中的信息相比較。
19.根據(jù)權(quán)利要求18所述的制造產(chǎn)品,其中,如果所述輸入地址的部分中至少其中一個(gè)部分的第一個(gè)字符與存儲(chǔ)在父節(jié)點(diǎn)中的信息的第一個(gè)字符匹配,則識(shí)別所述多個(gè)部分地址中的一個(gè)或多個(gè)。
20.根據(jù)權(quán)利要求18所述的制造產(chǎn)品,其中,所述父節(jié)點(diǎn)是結(jié)節(jié)序列樹的分支序列的根節(jié)點(diǎn),其中,所述分支序列與存儲(chǔ)多個(gè)部分地址中至少其中一個(gè)的序列信息塊關(guān)聯(lián)。
21.根據(jù)權(quán)利要求20所述的制造產(chǎn)品,其中,所述序列信息塊引用其它序列信息塊,其中,所述制造產(chǎn)品還包括當(dāng)由計(jì)算機(jī)運(yùn)行時(shí)還導(dǎo)致計(jì)算機(jī)執(zhí)行以下步驟的指令 將所述輸入地址與存儲(chǔ)在所述序列信息塊中的多個(gè)部分地址中的一個(gè)以及存儲(chǔ)在所述其它序列信息塊中的多個(gè)部分地址中的一個(gè)相比較。
22.根據(jù)權(quán)利要求20所述的制造產(chǎn)品,其中,所述分支序列的子節(jié)點(diǎn)通過指示遍歷所述分支序列的方向的分支連接到所述父節(jié)點(diǎn)。
23.根據(jù)權(quán)利要求22所述的制造產(chǎn)品,還包括當(dāng)由計(jì)算機(jī)運(yùn)行時(shí)還導(dǎo)致計(jì)算機(jī)執(zhí)行以下步驟的指令 將所得到的所述輸入地址的部分與存儲(chǔ)在所述父節(jié)點(diǎn)和子節(jié)點(diǎn)中的信息的組合相比較。
24.—種用于地理編碼應(yīng)用的計(jì)算機(jī)系統(tǒng),該計(jì)算機(jī)系統(tǒng)包括 存儲(chǔ)器,用于存儲(chǔ)程序代碼;以及 處理器,可通信地耦接到所述存儲(chǔ)器,該處理器被配置為運(yùn)行所述程序代碼以便 對(duì)輸入地址執(zhí)行詞匯分析以得到輸入地址的部分; 利用得到的輸入地址的部分對(duì)結(jié)節(jié)序列樹執(zhí)行模糊搜索,以便識(shí)別通過結(jié)節(jié)序列樹存儲(chǔ)的多個(gè)部分地址中的一個(gè)或多個(gè); 針對(duì)識(shí)別出的多個(gè)部分地址中的一個(gè)或多個(gè)計(jì)算匹配和換位得分,以從識(shí)別出的多個(gè)部分地址中的一個(gè)或多個(gè)當(dāng)中確定最佳匹配候選;以及 利用所述最佳匹配候選查詢地理編碼數(shù)據(jù)庫(kù),以得到與所述輸入地址相關(guān)的地理編碼信息。
25.根據(jù)權(quán)利要求24所述的計(jì)算機(jī)系統(tǒng),其中,模糊搜索所述結(jié)節(jié)序列樹包括將得到的所述輸入地址的部分與存儲(chǔ)在所述結(jié)節(jié)序列樹的父節(jié)點(diǎn)中的信息相比較。
26.根據(jù)權(quán)利要求25所述的計(jì)算機(jī)系統(tǒng),其中,如果所述輸入地址的部分中至少其中一個(gè)部分的第一個(gè)字符與存儲(chǔ)在父節(jié)點(diǎn)中的信息的第一個(gè)字符匹配,則識(shí)別所述多個(gè)部分地址中的一個(gè)或多個(gè)。
27.根據(jù)權(quán)利要求25計(jì)算機(jī)系統(tǒng)制造產(chǎn)品,其中,所述父節(jié)點(diǎn)是結(jié)節(jié)序列樹的分支序列的根節(jié)點(diǎn),其中,所述分支序列與存儲(chǔ)所述多個(gè)部分地址中至少其中一個(gè)的序列信息塊關(guān)聯(lián)。
28.根據(jù)權(quán)利要求27所述的計(jì)算機(jī)系統(tǒng),其中,所述序列信息塊引用其它序列信息塊,其中所述處理器還運(yùn)行程序代碼以便 將所述輸入地址與存儲(chǔ)在所述序列信息塊中的多個(gè)部分地址中的一個(gè)以及存儲(chǔ)在所述其它序列信息塊中的多個(gè)部分地址中的一個(gè)相比較。
29.根據(jù)權(quán)利要求27所述的計(jì)算機(jī)系統(tǒng),其中,所述分支序列的子節(jié)點(diǎn)通過指示遍歷所述分支序列的方向的分支連接到所述父節(jié)點(diǎn)。
30.根據(jù)權(quán)利要求29所述的計(jì)算機(jī)系統(tǒng),其中所述處理器還運(yùn)行所述程序代碼以便 將所得到的所述輸入地址的部分與存儲(chǔ)在所述父節(jié)點(diǎn)和子節(jié)點(diǎn)中的信息的組合相比較。
全文摘要
本公開描述了用于地理編碼應(yīng)用中的模糊搜索的系統(tǒng)和方法的各種實(shí)施例。對(duì)要獲得其地理編碼信息的輸入地址執(zhí)行詞匯分析以得到該輸入地址的部分。在一個(gè)方面,所述詞匯分析可以包括解析操作、抽象操作和延伸操作中的至少一個(gè)。接下來,使用所述輸入地址的部分對(duì)結(jié)節(jié)序列樹執(zhí)行模糊搜索,以便識(shí)別匹配所述輸入地址的多個(gè)部分地址。接下來,針對(duì)識(shí)別出的多個(gè)部分地址中的每一個(gè)計(jì)算匹配和換位得分,以確定所述輸入地址的最佳匹配候選。最后,利用該最佳匹配候選查詢地理編碼數(shù)據(jù)庫(kù)以得到該輸入地址的地理編碼信息。
文檔編號(hào)G06F17/30GK102737060SQ20111009383
公開日2012年10月17日 申請(qǐng)日期2011年4月14日 優(yōu)先權(quán)日2011年4月14日
發(fā)明者陳亮 申請(qǐng)人:商業(yè)對(duì)象軟件有限公司