專利名稱::生成拼寫建議的方法和系統(tǒng)的制作方法生成拼寫建議的方法和系統(tǒng)發(fā)明領(lǐng)域本發(fā)明一般涉及拼寫檢查方法和系統(tǒng),尤其涉及被配置成基于輸入串中的單詞對輸入串的單詞建議替換的拼寫檢查方法和系統(tǒng)。
背景技術(shù):
:文字輸入,諸如使用文字處理應(yīng)用程序所生成的文檔中的文字輸入可包含眾多不同類型的錯誤,包括拼寫錯誤。導(dǎo)致無效單詞的拼寫錯誤一般可由基于詞典的拼寫檢査器來處理。這樣的拼寫錯誤可能因排印錯誤或不知道單詞的拼寫而發(fā)生。基于詞典的拼寫檢查器將文字輸入中的單詞與單詞的詞典進(jìn)行比較,并標(biāo)識文字輸入中未在詞典里找到的單詞。通常為拼錯的單詞建議一個或多個替換單詞。例如,在文字輸入"flyfrmBoston"中,拼寫檢査器可將"frm"標(biāo)識為拼錯。其它類型的拼寫錯誤會導(dǎo)致使用傳統(tǒng)拼寫檢查應(yīng)用程序一般無法檢測的有效單詞。例如,可能由文字處理應(yīng)用程序的用戶因排印錯誤或不知道想要的單詞的拼寫而輸入不是想要的有效單詞。例如,在文字輸入"flyformBoston"中,單詞"form"是常規(guī)拼寫檢查應(yīng)用程序不會標(biāo)記的有效單詞,即使該單詞是想要的單詞"from"的錯拼。對這些類型的拼寫錯誤的更正一般需要對使用該單詞的上下文作分析。傳統(tǒng)的拼寫檢查應(yīng)用程序一般基于編輯距離提出對所標(biāo)識的無效單詞所建議的替換單詞。編輯距離表示形成有效替換單詞所需的改變。詞典中與所鍵入的無效單詞編輯距離最短的單詞是向用戶建議的第一替換單詞。例如,在短語"flyfrmBoston"中,大多數(shù)拼寫檢查應(yīng)用程序在建議正確單詞"from"之前都會建議"form"作為替換單詞,因?yàn)楫?dāng)作出建議時沒有考慮單詞的上下文。為了為拼寫錯誤建議最合適的替換單詞,必須對其中找到拼寫錯誤的上下文進(jìn)行分析。從而,需要能夠分析其中使用單詞的上下文以便提供對拼錯單詞的更好建議以及對不正確使用的有效單詞改進(jìn)的檢測的改進(jìn)的拼寫檢査方法和系統(tǒng)。本發(fā)明的實(shí)施例對這些和其它問題提供了解決方案,并提供了優(yōu)于現(xiàn)有技術(shù)的其它優(yōu)點(diǎn)。發(fā)明概述本發(fā)明一般涉及利用包括主題單詞和候選替換單詞對以及每一對的候選得分的候選表并基于該表作出單詞替換建議的拼寫檢査方法和系統(tǒng)。本發(fā)明的一個方面涉及對串中單詞建議替換單詞的計(jì)算機(jī)實(shí)現(xiàn)方法。在該方法中,接收到輸入單詞的輸入串。然后將輸入單詞與候選表的主題單詞進(jìn)行匹配。接著,從候選表中提取對應(yīng)于所匹配的主題單詞的候選替換單詞和候選得分。每一候選得分指示應(yīng)使用相應(yīng)的候選替換單詞替換輸入單詞的概率。最后,基于替換單詞的候選得分選擇性地建議使用其相應(yīng)的候選替換單詞替換輸入單詞。本發(fā)明的另一方面針對用于對輸入串中的輸入單詞建議替換單詞的拼寫檢査系統(tǒng)。該系統(tǒng)包括候選生成器和上下文拼寫引擎。候選生成器包括為匹配候選表的主題單詞的每一輸入單詞輸出候選替換單詞及相應(yīng)的候選得分。每一候選得分指示應(yīng)使用相應(yīng)的候選替換單詞替換輸入單詞的概率。上下文拼寫引擎包括基于相應(yīng)的候選得分為輸入單詞選擇性地輸出候選替換單詞。本發(fā)明的又一方面針對形成供拼寫檢查系統(tǒng)使用來為輸入串中的輸入單詞建議替換單詞的候選表的方法。在該方法中,提供單詞的詞典。接著,將詞典中的主題單詞與詞典中的其它單詞進(jìn)行比較。然后基于比較為主題單詞標(biāo)識候選替換單詞。然后形成包括所標(biāo)識的主題單詞及其相應(yīng)的候選替換單詞對的候選表。最后,在計(jì)算機(jī)可讀介質(zhì)上存儲該候選表。當(dāng)閱讀了以下詳細(xì)描述并審閱了相關(guān)聯(lián)的附圖之后,表現(xiàn)本發(fā)明的實(shí)施例的其它特征和好處將是顯而易見的。附圖簡述圖1是可在其中實(shí)現(xiàn)本發(fā)明的計(jì)算環(huán)境的框圖。圖2是根據(jù)本發(fā)明的實(shí)施例示出為串中的單詞建議替換單詞的方法的流程圖。圖3是根據(jù)本發(fā)明的實(shí)施例的拼寫檢查系統(tǒng)的框圖。圖4是根據(jù)本發(fā)明的實(shí)施例示出生成供拼寫檢査系統(tǒng)使用來為輸入串的輸入單詞建議替換單詞的候選表的方法的流程圖。說明性實(shí)施例的詳細(xì)描述本發(fā)明一般涉及用于為輸入串中的無效輸入單詞提供準(zhǔn)確的替換單詞建議的拼寫檢查方法和系統(tǒng)。此外,本發(fā)明的拼寫檢査方法和系統(tǒng)可為輸入串中不正確使用的有效輸入單詞提供替換單詞建議。本發(fā)明的實(shí)施例基于使用輸入單詞的上下文來作出替換單詞建議。在詳細(xì)描述本發(fā)明之前,將提供可在其中使用本發(fā)明的示例性計(jì)算環(huán)境的討論。示例性計(jì)算環(huán)境圖1示出了可在其上實(shí)現(xiàn)本發(fā)明的合適的計(jì)算系統(tǒng)環(huán)境100的示例。計(jì)算系統(tǒng)環(huán)境IOO只是合適的計(jì)算環(huán)境的一個示例,并不旨在對本發(fā)明的使用范圍或功能提出任何限制。也不應(yīng)該把計(jì)算環(huán)境100解釋為對示例性操作環(huán)境100中示出的任一組件或其組合有任何依賴性或要求。本發(fā)明可用眾多其它通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置來操作。適合在本發(fā)明中使用的公知的計(jì)算系統(tǒng)、環(huán)境和/或配置的示例包括,但不限于,個人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持或膝上型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)者電子產(chǎn)品、網(wǎng)絡(luò)PC、小型機(jī)、大型機(jī)、包含上述系統(tǒng)或設(shè)備中的任一個的分布式計(jì)算機(jī)環(huán)境等。本發(fā)明可在諸如程序模塊等由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的通用語境中描述。一般而言,程序模塊包括例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等,它們執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型。本發(fā)明也可以在分布式計(jì)算環(huán)境中實(shí)現(xiàn),其中任務(wù)由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲器存儲設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲介質(zhì)中。參考圖1,用于實(shí)現(xiàn)本發(fā)明的一個示例性系統(tǒng)包括計(jì)算機(jī)110形式的通用計(jì)算設(shè)備。計(jì)算機(jī)110的組件可以包括,但不限于,處理單元120、系統(tǒng)存儲器130和將包括系統(tǒng)存儲器在內(nèi)的各種系統(tǒng)組件耦合至處理單元120的系統(tǒng)總線121。系統(tǒng)總線121可以是若干類型的總線結(jié)構(gòu)中的任一種,包括存儲器總線或存儲器控制器、外圍總線和使用各種總線體系結(jié)構(gòu)中的任一種的局部總線。作為示例,而非限制,這樣的體系結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線、微通道體系結(jié)構(gòu)(MCA)總線、擴(kuò)展的ISA(EISA)總線、視頻電子技術(shù)標(biāo)準(zhǔn)協(xié)會(VESA)局部總線和外圍部件互連(PCI)總線(也被稱為Mezzanine總線)。計(jì)算機(jī)110通常包括各種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是能夠被計(jì)算機(jī)IIO訪問的任何可用介質(zhì),且包括易失性和非易失性介質(zhì)、可移動和不可移動介質(zhì)。作為示例,而非限制,計(jì)算機(jī)可讀介質(zhì)可以包括計(jì)算機(jī)存儲介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲介質(zhì)包括以任何方法或技術(shù)實(shí)現(xiàn)的用于存儲諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的易失性和非易失性、可移動和不可移動介質(zhì)。計(jì)算機(jī)存儲介質(zhì)包括,但不限于,RAM、ROM、EEPROM、閃存或其它存儲器技術(shù);CD-ROM、數(shù)字多功能盤(DVD)或其它光盤存儲;磁帶盒、磁帶、磁盤存儲或其它磁性存儲設(shè)備;或能用于存儲所需信息且可以由計(jì)算機(jī)100訪問的任何其它介質(zhì)。通信介質(zhì)通常具體化為諸如載波或其它傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號中的計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),且包含任何信息傳遞介質(zhì)。術(shù)語"已調(diào)制數(shù)據(jù)信號"指的是這樣一種信號,其一個或多個特征以在信號中編碼信息的方式被設(shè)定或更改。作為示例,而非限制,通信介質(zhì)包括諸如有線網(wǎng)絡(luò)或直接線連接的有線介質(zhì),以及諸如聲學(xué)、RF、紅外線和其它無線介質(zhì)的無線介質(zhì)。上述中任一個的組合也應(yīng)包括在計(jì)算機(jī)可讀介質(zhì)的范圍之內(nèi)。系統(tǒng)存儲器130包括易失性和/或非易失性存儲器形式的計(jì)算機(jī)存儲介質(zhì),諸如只讀存儲器(ROM)131和隨機(jī)存取存儲器(RAM)132?;据斎?輸出系統(tǒng)133(BIOS)包含有助于諸如啟動時在計(jì)算機(jī)110中元件之間傳遞信息的基本例程,它通常被存儲在ROM131中。RAM132通常包含處理單元120可以立即訪問和/或目前正在操作的數(shù)據(jù)和/或程序模塊。作為示例,而非限制,圖1示出了操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137。計(jì)算機(jī)110也可以包括其它可移動/不可移動、易失性/非易失性計(jì)算機(jī)存儲介質(zhì)。僅作為示例,圖l示出了從不可移動、非易失性磁介質(zhì)中讀取或向其寫入的硬盤驅(qū)動器141,從可移動、非易失性磁盤152中讀取或向其寫入的磁盤驅(qū)動器151,以及從諸如CDROM或其它光學(xué)介質(zhì)等可移動、非易失性光盤156中讀取或向其寫入的光盤驅(qū)動器155。可以在示例性操作環(huán)境下使用的其它可移動/不可移動、易失性/非易失性計(jì)算機(jī)存儲介質(zhì)包括,但不限于,盒式磁帶、閃存卡、數(shù)字多功能盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等。硬盤驅(qū)動器141通常由諸如接口140的不可移動存儲器接口連接至系統(tǒng)總線121,磁盤驅(qū)動器151和光盤驅(qū)動器155通常由諸如接口150的可移動存儲器接口連接至系統(tǒng)總線121。以上描述和在圖1中示出的驅(qū)動器及其相關(guān)聯(lián)的計(jì)算機(jī)存儲介質(zhì)為計(jì)算機(jī)110提供了對計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲。例如,在圖1中,硬盤驅(qū)動器141被示為存儲操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147。注意,這些組件可以與操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137相同或不同。操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147在這里被標(biāo)注了不同的標(biāo)號是為了說明至少它們是不同的副本。用戶可以通過輸入設(shè)備,諸如鍵盤162、麥克風(fēng)163和定點(diǎn)設(shè)備161(諸如鼠標(biāo)、跟蹤球或觸摸墊)向計(jì)算機(jī)110輸入命令和信息。其它輸入設(shè)備(未示出)可以包括操縱桿、游戲墊、圓盤式衛(wèi)星天線、掃描儀等。這些和其它輸入設(shè)備通常由耦合至系統(tǒng)總線的用戶輸入接口160連接至處理單元120,但也可以由其它接口或總線結(jié)構(gòu),諸如并行端口、游戲端口或通用串行總線(USB)連接。監(jiān)視器191或其它類型的顯示設(shè)備也經(jīng)由接口,諸如視頻接口190連接至系統(tǒng)總線121。除監(jiān)視器以外,計(jì)算機(jī)也可以包括其它外圍輸出設(shè)備,諸如揚(yáng)聲器197和打印機(jī)196,它們可以通過輸出外圍接口190連接。計(jì)算機(jī)110可使用至一個或多個遠(yuǎn)程計(jì)算機(jī),諸如遠(yuǎn)程計(jì)算機(jī)180的邏輯連接在網(wǎng)絡(luò)化環(huán)境下操作。遠(yuǎn)程計(jì)算機(jī)180可以是個人計(jì)算機(jī)、手持設(shè)備、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對等設(shè)備或其它常見網(wǎng)絡(luò)節(jié)點(diǎn),且通常包括上文相對于計(jì)算機(jī)IIO描述的許多或所有元件。圖1中所示邏輯連接包括局域網(wǎng)(LAN)171和廣域網(wǎng)(WAN)173,但也可以包括其它網(wǎng)絡(luò)。這樣的聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是常見的。當(dāng)在LAN聯(lián)網(wǎng)環(huán)境中使用時,計(jì)算機(jī)110通過網(wǎng)絡(luò)接口或適配器170連接至LAN171。當(dāng)在WAN聯(lián)網(wǎng)環(huán)境中使用時,計(jì)算機(jī)IIO通常包括調(diào)制解調(diào)器172或用于在諸如因特網(wǎng)等WAN173上建立通信的其它裝置。調(diào)制解調(diào)器172可以是內(nèi)置或外置的,它可以通過用戶輸入接口160或其它合適的機(jī)制連接至系統(tǒng)總線121。在網(wǎng)絡(luò)化環(huán)境中,相對于計(jì)算機(jī)110描述的程序模塊或其部分可以存儲在遠(yuǎn)程存儲器存儲設(shè)備中。作為示例,而非限制,圖1示出了遠(yuǎn)程應(yīng)用程序185駐留在遠(yuǎn)程計(jì)算機(jī)180上??梢岳斫?,所示的網(wǎng)絡(luò)連接是示例性的,且可以使用在計(jì)算機(jī)之間建立通信鏈路的其它手段。應(yīng)注意到,本發(fā)明可在諸如參考圖1描述的計(jì)算機(jī)系統(tǒng)上實(shí)現(xiàn)。然而,本發(fā)明可在服務(wù)器、致力于消息處理的計(jì)算機(jī)、或其中可在分布式計(jì)算系統(tǒng)的不同部分實(shí)現(xiàn)本發(fā)明的不同部分的分布式系統(tǒng)上實(shí)現(xiàn)。拼寫檢查方法和系統(tǒng)如上所述,本發(fā)明一般涉及用于對輸入串中無效的輸入單詞提供準(zhǔn)確的替換單詞建議的拼寫檢查方法和系統(tǒng)。此外,本發(fā)明的拼寫檢查方法和系統(tǒng)可對輸入串中不正確使用的有效輸入單詞提供替換單詞建議。本發(fā)明所提供的替換單詞建議一般基于使用輸入單詞的上下文。此外,本發(fā)明提供對拼寫檢查的數(shù)據(jù)驅(qū)動方法。結(jié)果,拼寫檢査方法和系統(tǒng)的實(shí)施例不要求與基于分析或基于規(guī)則的文法(grammar)檢查器相同類型的理論語言學(xué)專家程序。該實(shí)現(xiàn)比基于規(guī)則的系統(tǒng)的實(shí)現(xiàn)簡單得多,維護(hù)和安全性的成本也較低。此外,生成建議的機(jī)制一般是獨(dú)立于語言的,且可容易地?cái)U(kuò)展到多種語言。將參考圖2和3討論本發(fā)明的實(shí)施例。圖2是根據(jù)本發(fā)明的實(shí)施例對串中的單詞建議替換單詞的方法的流程圖。圖3是根據(jù)本發(fā)明的實(shí)施例被配置成實(shí)現(xiàn)該方法的拼寫檢査系統(tǒng)200的框圖。在該方法的步驟202處,由拼寫檢查系統(tǒng)200接收輸入單詞的輸入串204。輸入串204—開始可由文字處理應(yīng)用程序206的用戶經(jīng)由鍵盤、麥克風(fēng)(即口述)或其它常規(guī)方法來輸入。或者,輸入串204可從預(yù)先存在的文檔、網(wǎng)頁或從另一源中檢索。優(yōu)選地,應(yīng)用程序206以完整的句子將輸入串204提供給系統(tǒng)200。此外,輸入傳204可按照標(biāo)記化(tokenized)的形式或其它可識別格式被提供給拼寫檢查系統(tǒng)200,或者由系統(tǒng)200轉(zhuǎn)換成所述格式。從系統(tǒng)200的上下文拼寫引擎210將輸入串提供給候選生成器208。優(yōu)選地,輸入串204僅包含有效(即,正確拼寫的)單詞。根據(jù)該方法的一個實(shí)施例,使用基于詞典的拼寫檢查器器212更正輸入串204中拼錯的輸入單詞。拼寫檢查器212將輸入串204中的每一輸入單詞與詞典214的單詞進(jìn)行比較。由拼寫檢查器212根據(jù)常規(guī)方法生成對未包含在詞典214中的輸入單詞所建議的替換。拼寫檢查器212生成的所建議的替換可呈現(xiàn)給用戶,以便選擇拼寫檢查器212所標(biāo)識的拼錯單詞的替換,并依此修改輸入串?;蛘?,拼寫檢查器212為拼錯的輸入單詞生成的所建議的更正被提供給候選生成器208,這形成僅包含有效單詞的輸入串。然后由候選生成器208分析僅包含有效單詞的輸入串。候選生成器208的用途在于標(biāo)識與輸入串204中的輸入單詞類似或相關(guān)的候選替換單詞。稍后可將候選替換單詞提供給應(yīng)用程序206作為對輸入單詞所建議的替換單詞。候選替換單詞和輸入單詞對被包含在候選表216中。表1是根據(jù)本發(fā)明的實(shí)施例的候選表216的一部分的示例。候選表216包括各自與一候選替換單詞相關(guān)聯(lián)的主題單詞,以及指示應(yīng)使用候選替換單詞替換該主題單詞的概率的候選得分。表l:示例性候選表<table>tableseeoriginaldocumentpage11</column></row><table>候選表216的一個實(shí)施例包括描述必須對主題單詞執(zhí)行以形成候選替換單詞的變換的每一主題和候選替換單詞對的編輯條目。例如,為了將"aback"變換成"alack","aback"中的"b"必須被改變成"1",這被表示為"b:l"。類似地,刪除"aback"中的第一個"a"來形成候選替換單詞"back"可被表示為"a:"。對abalone's添加"'"可被簡單的表示為"A"。同音詞候選替換單詞,諸如主題單詞"break"的"brake",被表示為"H"。也可使用表示必須執(zhí)行以便將主題單詞變換成相應(yīng)的候選替換單詞的各種編輯的其它方法。可由上下文拼寫引擎210使用候選表中的編輯條目在輸入串的分析期間修改候選替換單詞的得分。編輯條目可被分組成多個類,并被分配反映諸如一類編輯類型的頻率等不同的值。值越高,編輯類型對候選替換單詞的得分的影響越大。這些類或編輯類型得分可附加于候選得分或被包括在候選得分中。例如,刪除主題單詞的首字符來形成候選替換單詞的編輯可導(dǎo)致該候選替換單詞的得分增加。根據(jù)本發(fā)明的一個實(shí)施例,候選表216作為二進(jìn)制文件被存儲在計(jì)算機(jī)可讀介質(zhì)上,它將被加載到計(jì)算環(huán)境的存儲器中以便由拼寫檢查系統(tǒng)200快速訪問。根據(jù)本發(fā)明的一個實(shí)施例,候選表216被存儲為二進(jìn)制文件中的散列表。根據(jù)候選表216的另一實(shí)施例,詞典標(biāo)識符被用于表示主題和候選替換單詞。詞典標(biāo)識符向諸如圖3中所示的詞典214的詞典中的相應(yīng)單詞提供鏈接。本發(fā)明的該實(shí)施例用于減少存儲大型候選表216所需的存儲器量。在該方法的步驟218處,候選生成器208將輸入串204中的輸入單詞與候選表216中的主題單詞進(jìn)行匹配。然后在步驟220處,為輸入串204中的每一輸入單詞基于相應(yīng)的匹配主題單詞從候選表216中提取候選替換單詞222和相應(yīng)的候選得分224。由于可能存在與同一主題或輸入單詞相關(guān)聯(lián)的眾多候選替換單詞,候選生成器208可為每一匹配的輸入單詞生成一個以上的候選替換單詞和得分對。候選替換單詞222和得分224對被輸出給上下文拼寫引擎210以便進(jìn)一步處理。候選表216中的候選得分224—般指示應(yīng)使用相應(yīng)的候選替換單詞替換輸入單詞的概率。此外,候選得分224可反映主題單詞與相應(yīng)的候選替換單詞222之間的錯誤的數(shù)量。根據(jù)本發(fā)明的一個實(shí)施例,候選得分224基于一個或多個因素,優(yōu)選地使每一個因素相乘以形成候選表216中該主題單詞和候選替換單詞對的候選得分。這樣的因素包括主題單詞與候選替換單詞之間的編輯或鍵入距離、直觀推斷(heuristics)、主題單詞與候選替換單詞之間的語音差異、以及可能與候選替換單詞應(yīng)替換主題單詞的可能性相關(guān)的其它因素。取決于主題單詞與候選替換單詞之間的差異,基于編輯類型和直觀推斷的候選得分224可有所變化。例如,單數(shù)主題單詞應(yīng)被變換成復(fù)數(shù)候選替換單詞的可能性可能非常小。結(jié)果是,應(yīng)向這樣的候選替換單詞給予較低的候選得分。另一方面,當(dāng)從主題單詞到候選替換單詞的變換僅涉及對首字符的修改,這與更常遇到的拼寫錯誤有關(guān),這樣的主題和候選替換單詞對會得到較高的候選得分。與編輯距離有關(guān)的還有基于通過向主題單詞添加空格將主題單詞分成兩個單詞的得分。這樣的編輯因其相對較高的頻率而被給予較高的候選得分。當(dāng)候選替換單詞是主題單詞的同音詞或近乎同音詞時,該單詞對的得分要高于當(dāng)候選替換詞在語音上與主題單詞基本上不相似時的得分。在該方法的步驟226處,上下文拼寫引擎210為輸入串204中的輸入單詞基于候選替換單詞222相應(yīng)的得分224選擇性地產(chǎn)生候選替換單詞222的輸出230。根據(jù)本發(fā)明的一個實(shí)施例,系統(tǒng)200包括從上下文拼寫引擎210接收候選替換串242的語言模型240。候選替換串242是經(jīng)修改的輸出串204,各自包括代替相應(yīng)的輸入單詞的候選替換單詞222。語言模型240用于為每一候選替換串242輸出概率得分244。概率得分244一般基于一大段句子的統(tǒng)計(jì)數(shù)據(jù)246(即,單詞相對于其它單詞的出現(xiàn)頻率數(shù)據(jù))給出看到特定候選替換串242的可能性的度量。一般,假定看到特定單詞串的可能性越大,則包含在串中的單詞以正確方式使用的可能性越大。因此,每一候選替換串242的概率得分244反映了該串中輸入單詞與候選替換單詞的組合的準(zhǔn)確程度。可使用統(tǒng)計(jì)數(shù)據(jù)246根據(jù)公式l計(jì)算給定單詞串(即,Wl,w2,W3,...wN)概率得分244(被表示為P(上下文))。一般而言,串的概率等于串中給定其它單詞情況下每一單詞的概率。因此,串的概率等于第一單詞的概率(P(Wl))乘以給定第一單詞的情況下第二單詞的概率(P(W2|Wl))乘以給定第一和第二單詞情況下第三單詞的概率(P(w3|w2,Wl))等等。P(上下文)二P(W^P(W2h"P(W3IW2,W^…承P(WnIWn小Wn-2…W2,W!)公式1根據(jù)本發(fā)明的實(shí)施例,使用公式1的三元(trigram)逼近,這在公式2中提供。對串中的每一單詞,三元逼近使用前兩個單詞(如果存在)而非串中所有N個單詞。P(上下文)P(W,"P(W2|Wl)*P(W3|W2,W1)*..求P(WnIWn小Wn.2)公式2根據(jù)本發(fā)明的一個實(shí)施例,上下文拼寫引擎210基于每一候選替換串的最后得分來選擇所建議的候選替換單詞或串230以輸出給應(yīng)用程序260。最后得分(表示為P(候選i輸入單詞,上下文))各自根據(jù)公式3通過將候選替換串的概率得分(被表示為P(上下文,候選))乘以對應(yīng)于替換輸入單詞以形成候選替換串242的候選替換單詞222(候選)的候選得分224計(jì)算出。例如,候選生成器208為輸入串204"Iseeyouto"的輸入單詞"to"生成候選替換單詞222"too"、"tot"和"two"及其相應(yīng)的得分224。相應(yīng)的候選替換串242然后變成"Iseeyoutoo"、"Iseeyoutot"禾口"Iseeyoutwo"。上下文拼寫引擎210然后對語言模型240迸行若干調(diào)用,后者為每一候選替換串242計(jì)算概率得分。候選替換串242的最后得分然后由上下文拼寫引擎210通過將其概率得分244乘以其相應(yīng)的候選得分224來計(jì)算出。因此,候選替換串242"Iseeyoutoo"的最后得分等于串"Iseeyoutoo"的概率乘以對應(yīng)于從候選表216中獲取的候選替換單詞"too"對輸入單詞"to"的得分224。根據(jù)本發(fā)明的一個實(shí)施例,由上下文拼寫引擎210將具有最高最后得分的候選替換串的候選單詞222作為輸出230向應(yīng)用程序206建議?;蛘?,上下文拼寫引擎210可僅建議對應(yīng)于具有最高最后得分的候選替換串242的候選替換單詞222,如果最后得分超出一閾值。根據(jù)本發(fā)明的另一實(shí)施例,上下文拼寫引擎210將最后得分超出一閾值的多個候選替換單詞222作為輸出230向應(yīng)用程序206建議??筛鶕?jù)主題單詞和候選單詞的概率預(yù)定或動態(tài)計(jì)算閾值。在一個實(shí)施例中,閾值由閾值二aP(主題單詞)+PP(候選單詞)+YlP(輸入單詞)-P(候選單詞)來動態(tài)確定。候選表生成圖4是根據(jù)本發(fā)明的實(shí)施例示出生成供拼寫檢查系統(tǒng)200使用的候選表216的方法的流程圖。在該方法的步驟250處,提供單詞的詞典。優(yōu)選地,該詞典非常大(例如,超過100,000個單詞)。接著,在步驟252處,將詞典中的主題單詞與詞典中的其它單詞進(jìn)行比較。優(yōu)選地,詞典中的每一單詞,或至少詞典中最常用的單詞各自成為與詞典中的其它單詞進(jìn)行比較的主題單詞。在步驟254處,基于步驟252中的比較為主題單詞標(biāo)識候選替換單詞。根據(jù)本發(fā)明的一個實(shí)施例,對主題單詞與詞典中的其它單詞進(jìn)行的比較(步驟252)涉及計(jì)算詞典中每一單詞與主題單詞的編輯或鍵入距離,并將編輯距離與閾值編輯距離進(jìn)行比較。編輯距離滿足閾值編輯距離的候選替換單詞被標(biāo)識為主題單詞的候選替換單詞。應(yīng)理解,取決于如何計(jì)算編輯距離,閾值的"滿足"旨在通過達(dá)到閾值、超過閾值或落在閾值以下來滿足。根據(jù)比較步驟252的另一實(shí)施例,將詞典中每一單詞的含義與主題單詞進(jìn)行比較。標(biāo)識步驟254則包括將詞典中含義與主題單詞的含義相似的單詞標(biāo)識為候選替換單詞。例如,主題單詞的同義詞可被標(biāo)識為候選替換單詞。根據(jù)本發(fā)明的一個實(shí)施例,針對同義詞典(thesaurus)數(shù)據(jù)檢查詞典中的主題單詞,由此在方法的步驟254處將具有相似含義的候選替換單詞標(biāo)識為候選替換單詞。根據(jù)比較步驟252的另一實(shí)施例,將詞典中單詞的語音表示與詞典中的主題單詞進(jìn)行比較。詞典中單詞的語音表示優(yōu)選地通過將單詞提交給常規(guī)的文字到語音引擎來自動生成。在標(biāo)號步驟254中,詞典中語音表示匹配主題單詞的語音表示的單詞被表示為主題單詞的候選替換單詞。這些對的示例包括"bear"和"bare",以及"which"和"witch"。因此,主題單詞的同音詞被標(biāo)識為候選替換單詞。根據(jù)本發(fā)明的另一實(shí)施例,詞典中近乎同音詞的單詞(即,滿足一閾值的單詞)也被表示為候選替換單詞。本發(fā)明的另一實(shí)施例包括對一大段句子中找到的二元組(biple)(即,單詞對)的分析。分析涉及確定移動或刪除位于二元組的第一與第二單詞之間的空格是否會生成至少一個有效單詞。比較步驟252的一個實(shí)施例包括,將主題單詞與由空格移動分析生成的有效單詞進(jìn)行比較。優(yōu)選地,在比較步驟252中僅使用通過移動第一單詞的結(jié)束字符之前的空格、或第二單詞的首字符之后的空格、或刪除空格所形成的有效單詞,因?yàn)樗鼈儗?yīng)于更常見的排字錯誤。然后在步驟254中,將匹配主題單詞的新形成的有效單詞標(biāo)識為主題單詞的候選替換單詞。例如,單詞對"useswords"的候選替換單詞將是"useswords",而單詞對"dogsand"的候選替換單詞將是"dogsand"。類似地,單詞對"anyone"的候選替換單詞將是"anyone",反過來,單詞對"anyone"的候選替換單詞將是"anyone"。在方法的步驟256處,形成包括主題單詞對及其所標(biāo)識的相應(yīng)的候選替換單詞的候選列表216。最后,在步驟258處,在諸如以上參考圖l描述的計(jì)算機(jī)可讀介質(zhì)上存儲候選表216。根據(jù)本發(fā)明的另一實(shí)施例,如上所述,在步驟256中基于候選替換單詞應(yīng)替換相應(yīng)的主題單詞的概率來為每一主題和候選替換單詞對生成候選得分224。候選得分優(yōu)選地基于比較步驟252中所分析以及以上討論的因素中的一個或多個。候選得分被包括在步驟258中存儲在計(jì)算機(jī)可讀介質(zhì)上的候選表216中。候選排除表根據(jù)本發(fā)明的另一實(shí)施例,生成標(biāo)識候選生成器208不應(yīng)向上下文拼寫引擎210提交作為候選替換單詞222的某些候選替換單詞的候選排除表260。因此,候選排除表260阻止上下文拼寫引擎210向應(yīng)用程序206建議不適當(dāng)或不想要的候選替換單詞。優(yōu)選地,候選排除表260包括冒犯性的候選替換單詞。此外,難以消除歧義且通常在相似上下文中出現(xiàn)的單詞可被包括在候選排除表中,諸如"rough"和"tough"。同一主題單詞可接受的拼寫變型,諸如"color"和"colour"、或"goodbye"和"good-bye",可通過將其包括在候選排除表260中被去除。而且,由于產(chǎn)生單數(shù)輸入單詞的復(fù)數(shù)形式的排字錯誤是罕見的,單數(shù)主題單詞及其復(fù)數(shù)對應(yīng)詞優(yōu)選地被包括在候選排除表260中。根據(jù)本發(fā)明的一個實(shí)施例,周期性地更新候選表216以去除在候選排除表260中具有匹配單詞對的主題單詞和候選替換單詞對。此外,也可去除候選表216中候選替換單詞匹配候選排除表260中的單詞的主題單詞和候選替換單詞對。結(jié)果得到的對候選表216的大小的減少使拼寫檢查系統(tǒng)200能更有效地操作。盡管參考特定實(shí)施例描述了本發(fā)明,但本領(lǐng)域的技術(shù)人員可以認(rèn)識到,可在形式和細(xì)節(jié)上作出改變,而不背離本發(fā)明的精神和范圍。權(quán)利要求1.一種用于為串中的單詞建議替換單詞的計(jì)算機(jī)實(shí)現(xiàn)的方法,包括以下步驟a)接收輸入單詞的輸入串;b)將所述輸入單詞與候選表中的主題單詞進(jìn)行比較;c)從所述候選表中提取對應(yīng)于所匹配的主題單詞的候選替換單詞和候選得分,其中每一候選得分指示應(yīng)使用相應(yīng)的候選替換單詞替換所述輸入單詞的概率;以及d)基于所述替換單詞的候選得分選擇性地建議使用相應(yīng)的候選替換單詞替換所述輸入單詞。2.如權(quán)利要求l所述的方法,其特征在于,包括在匹配步驟b)之前更正拼錯的輸入單詞,使所述輸入串僅包含正確拼寫的輸入單詞。3.如權(quán)利要求l所述的方法,其特征在于,包括使用所述候選替換單詞形成候選替換串,這包括使用所述相應(yīng)的候選替換單詞替換所述輸入串的所述輸入單詞o4.如權(quán)利要求3所述的方法,其特征在于,包括為所述候選替換串計(jì)算概率得分,每一概率得分基于所述輸入單詞與包含在所述候選替換串中的所述候選替換單詞,其中所述建議步驟d)包括建議基于所述概率得分使用所述候選替換串中的所述相應(yīng)的候選替換單詞替換所述輸入單詞。5.如權(quán)利要求4所述的方法,其特征在于,所述建議步驟d)包括將所述概率得分乘以相應(yīng)的候選得分以獲取所述候選替換串的每一個的最后得分,其中所述建議步驟d)包括建議使用具有最高最后得分的所述候選替換串的相應(yīng)的候選替換單詞替換所述輸入單詞。6.如權(quán)利要求l所述的方法,其特征在于,所述候選表中所述主題單詞和所述相應(yīng)的候選替換單詞各自是標(biāo)識詞典中的單詞的詞典標(biāo)識符形式的。7.如權(quán)利要求l所述的方法,其特征在于,所述候選表中的所述候選替換單詞包括與相應(yīng)的主題單詞的編輯距離滿足一閾值的單詞。8.如權(quán)利要求l所述的方法,其特征在于,所述候選表中的所述候選替換單詞包括含義類似于相應(yīng)的主題單詞的單詞。9.如權(quán)利要求l所述的方法,其特征在于,所述候選表中的所述候選替換單詞包括語音匹配相應(yīng)的主題單詞的單詞。10.如權(quán)利要求1所述的方法,其特征在于,所述候選表中的所述候選替換單詞包括是相應(yīng)的主題單詞的常見更正的單詞。11.一種用于生成供拼寫檢查系統(tǒng)使用來為輸入串中的輸入單詞建議替換單詞的候選表的計(jì)算機(jī)實(shí)現(xiàn)的方法,所述方法包括以下步驟3)提供單詞的詞典;b)將所述詞典中的主題單詞與所述詞典中的單詞進(jìn)行比較;C)基于所述比較步驟b)為所述主題單詞標(biāo)識候選替換單詞;d)形成包括所述主題單詞及其所標(biāo)識的相應(yīng)的候選替換單詞對的候選表;以及e)將所述候選表存儲在計(jì)算機(jī)可讀介質(zhì)上。12.如權(quán)利要求11所述的方法,其特征在于,所述比較步驟e)包括將所測量的從所述詞典中的單詞到所述主題單詞的編輯距離與閾值編輯距離進(jìn)行比較,其中所述標(biāo)識步驟c)包括為每一個主題單詞標(biāo)識與該主題單詞的編輯距離滿足一閾值編輯距離的候選替換單詞。13.如權(quán)利要求11所述的方法,其特征在于,所述比較步驟b)包括將所述詞典中的每一個其它單詞的含義與每一個主題單詞進(jìn)行比較,其中所述標(biāo)識步驟c)包括為每一個主題單詞標(biāo)識含義類似于該主題單詞的候選替換單詞。14.如權(quán)利要求11所述的方法,其特征在于,所述比較步驟b)包括將所述詞典中的每一個單詞的語音表示與所述主題單詞中的每一個的語音表示進(jìn)行比較,其中所述標(biāo)識步驟c)包括為每一個主題單詞標(biāo)識語音表示匹配該主題單詞的語音表示的候選替換單詞。15.如權(quán)利要求11所述的方法,其特征在于,所述形成步驟d)包括基于所述候選替換單詞應(yīng)替換相應(yīng)的主題單詞的概率,為所述主題和候選替換單詞對中的每一個生成候選得分,并形成所述候選表來包括所述候選得分。16.如權(quán)利要求15所述的方法,其特征在于,所述候選得分基于所述候選替換單詞與相應(yīng)的主題單詞之間的編輯距離。17.如權(quán)利要求11所述的方法,其特征在于,包括分析一段句子中第一單詞與第二單詞由空格分開的單詞對,包括標(biāo)識通過刪除所述空格、將所述空格移動到所述第一單詞的結(jié)束字符之前、以及將所述空格移動到所述第二單詞的開始字符之后中的一種方式來形成的新有效單詞;以及在所述形成步驟d)中,將所述新有效單詞添加到所述候選表作為所述第一和第二單詞中相應(yīng)的一個的候選替換單詞。18.—種用于為輸入串中的輸入單詞建議替換單詞的拼寫檢查系統(tǒng),所述系統(tǒng)包括候選生成器,包括用于與候選表中的主題單詞匹配的所述輸入單詞中的每一個的候選替換單詞和相應(yīng)的候選得分的輸出,其中每一候選得分指示應(yīng)使用所述相應(yīng)的候選替換單詞替換所述輸入單詞的概率;以及上下文拼寫引擎,包括基于所述相應(yīng)的候選得分的用于所述輸入單詞的候選替換單詞的選擇性輸出。19.如權(quán)利要求18所述的系統(tǒng),其特征在于,包括在所述輸入單詞中的至少一個以由所述候選生成器輸出的所述相應(yīng)的候選替換單詞替換的情況下具有對應(yīng)于所述輸入串的候選替換串的概率得分輸出的語言模型,其中所述概率得分輸出是所述候選替換串的正確程度的度量,且其中所述上下文拼寫引擎產(chǎn)生的所述候選替換單詞的選擇性輸出基于所述概率得分輸出以及對應(yīng)于所述候選替換串中所包含的所述候選替換單詞的所述候選得分。20.如權(quán)利要求18所述的系統(tǒng),其特征在于,包括候選排除表,所述表包括從所述候選生成器的輸出和所述上下文拼寫引擎的輸出之一中排除的候選替換單詞的列表。全文摘要為串中的單詞建議替換單詞的一種計(jì)算機(jī)實(shí)現(xiàn)的方法。在該方法中,接收輸入單詞的輸入串。然后將輸入單詞與候選表中的主題單詞匹配。接著,從候選表中提取對應(yīng)于所匹配的主題單詞的候選替換單詞和得分。每一得分指示應(yīng)使用相應(yīng)的候選替換單詞替換輸入單詞的概率。最后,基于替換單詞的得分選擇性地建議使用其相應(yīng)的候選替換單詞替換輸入單詞。本發(fā)明的另一方面針對被配置成實(shí)現(xiàn)該方法的拼寫檢查系統(tǒng)。文檔編號G06F17/28GK101371253SQ200680013480公開日2009年2月18日申請日期2006年3月14日優(yōu)先權(quán)日2005年4月25日發(fā)明者D·W·波特,E·C·小哈特,P·M·舒米德,W·D·拉姆瑟,五十嵐久和申請人:微軟公司