用于將文本輸入到電子設(shè)備中的系統(tǒng)和方法【專利摘要】提供了用于將文本輸入到電子設(shè)備中的系統(tǒng)。所述系統(tǒng)被配置為接收輸入到設(shè)備中的字符序列。該系統(tǒng)包括被配置為根據(jù)字符序列生成詞段序列的單元。該系統(tǒng)還包括文本預(yù)測引擎,該文本預(yù)測引擎包括存儲有詞段序列的語言模型。文本預(yù)測引擎被配置為接收詞段序列。在第一實施例中,文本預(yù)測引擎被配置為判定詞段序列中的每個詞段是否對應(yīng)于語言模型的存儲的詞段,以及當詞段序列中的每個詞段對應(yīng)于語言模型的存儲的詞段時將詞段序列輸出作為候選預(yù)測,而不管詞段序列是否對應(yīng)于存儲的詞段序列。提供了其它各種系統(tǒng)和對應(yīng)的方法。提供了一種系統(tǒng),該系統(tǒng)包括詞段語言模型,詞段語言模型包括存儲的詞段序列和候選過濾器。候選過濾器用于對由詞段語言模型生成的詞語預(yù)測進行過濾?!緦@f明】用于將文本輸入到電子設(shè)備中的系統(tǒng)和方法
技術(shù)領(lǐng)域:
[0001]本發(fā)明總體上涉及用于將文本輸入到電子設(shè)備中的系統(tǒng)和方法。特別地,本發(fā)明涉及包括具有用于生成文本預(yù)測的語言模型的文本預(yù)測引擎的系統(tǒng)和利用這樣的系統(tǒng)生成文本預(yù)測的方法?!?br>背景技術(shù):
】[0002]存在已知的基于用戶輸入的字符序列來預(yù)測詞語的系統(tǒng)。該系統(tǒng)的一個示例是題為“用于將文本輸入到電子設(shè)備中的系統(tǒng)和方法(Systemandmethodforinputtingtextintoelectronicdevices)”的公開號為W02010/112841的國際專利申請,該申請全文通過引用方式合并于此。W02010/112841描述了一種包括文本預(yù)測引擎的系統(tǒng),文本預(yù)測引擎被配置為接收用戶輸入文本且利用多個語言模型生成一個或多個文本預(yù)測。[0003]如該申請所描述的,為了輸入不存在于語言模型的詞匯表中的術(shù)語,用戶可通過將該術(shù)語逐字符地輸入到系統(tǒng)的用戶界面中來插入該術(shù)語。然后將該術(shù)語存儲在動態(tài)語言模型中,使得該術(shù)語能夠在以后被預(yù)測。[0004]雖然逐字的文本能夠由用戶輸入,但如果逐字的文本不對應(yīng)于語言模型的已知詞語,則其將不會作為具有對應(yīng)的關(guān)聯(lián)概率的候選詞而被預(yù)測。[0005]許多已知系統(tǒng)存在的問題在于,當逐字的輸入不對應(yīng)于系統(tǒng)的語言模型的已知的詞語時,系統(tǒng)自動校正逐字的輸入。[0006]通過用系統(tǒng)已知的替選詞語建議取代逐字輸入來對逐字的輸入進行自動校正,會導(dǎo)致令人沮喪的用戶文本輸入體驗。自動校正功能輸入最可能的候選,例如當用戶輸入空格時,除非用戶專門地指示預(yù)測詞語(其是逐字文本的替選)不是他們想要輸入的。[0007]已知的系統(tǒng)僅限于預(yù)測已知的詞語(S卩,存在于系統(tǒng)的語言模型中的詞語)。該方法存在的問題在于,系統(tǒng)受訓(xùn)練數(shù)據(jù)中所見的詞匯表限制,并且因此如果逐字輸入不對應(yīng)于語言模型中的詞語則永遠不能將該逐字輸入作為預(yù)測候選來提供。[0008]本發(fā)明的目的是解決上文指出的問題中的一個或多個?!?br/>發(fā)明內(nèi)容】[0009]本發(fā)明提供了根據(jù)獨立權(quán)利要求1、2、3和44的系統(tǒng),根據(jù)獨立權(quán)利27、28、29、30、43和50的方法以及根據(jù)獨立權(quán)利要求54的計算機程序。[0010]本發(fā)明的可選特征是從屬權(quán)利要求的主題。[0011]參考權(quán)利要求1和28,術(shù)語‘候選預(yù)測’用于指代被提供給用戶以便輸入到系統(tǒng)中的文本預(yù)測。文本預(yù)測可對應(yīng)于語言模型未知的詞語或詞段組合?!靖綀D說明】[0012]圖1a和Ib是根據(jù)本發(fā)明的高級預(yù)測體系結(jié)構(gòu)的示意圖;[0013]圖2a是根據(jù)本發(fā)明的預(yù)測體系結(jié)構(gòu)的通用詞段語言模型的示意圖;[0014]圖2a’是進一步包括候選過濾器的圖2a的詞段語言模型的示意圖;[0015]圖2b是根據(jù)本發(fā)明的實施例的詞段語言模型的示意圖;[0016]圖2c是根據(jù)本發(fā)明的實施例的詞段語言模型的示意圖;[0017]圖2d是根據(jù)本發(fā)明的實施例的詞段語言模型的示意圖;[0018]圖2e是根據(jù)本發(fā)明的預(yù)測體系結(jié)構(gòu)的通用的基于詞語的語言模型的示意圖;[0019]圖3是根據(jù)本發(fā)明的詞段η元語法圖的示意圖;[0020]圖4是根據(jù)本發(fā)明的‘混合’詞段η元語法圖的示意圖;[0021]圖5是根據(jù)本發(fā)明生成詞段語言模型的方法的流程圖;[0022]圖6是根據(jù)本發(fā)明來處理電子字符序列的第一方法的流程圖;[0023]圖7是根據(jù)本發(fā)明來處理電子字符序列的第二方法的流程圖;[0024]圖8是根據(jù)本發(fā)明來處理電子字符序列的第三方法的流程圖;[0025]圖9是根據(jù)本發(fā)明來處理電子字符序列的第四方法的流程圖;[0026]圖10是根據(jù)本發(fā)明來處理電子字符序列的第四方法的流程圖?!揪唧w實施方式】[0027]—般地,而不是排他項,本發(fā)明的系統(tǒng)能夠?qū)崿F(xiàn)如圖1a和Ib所示。[0028]圖1a是根據(jù)本發(fā)明的第一系統(tǒng)的框圖。該系統(tǒng)包括文本預(yù)測引擎100,該文本預(yù)測引擎100包括詞段語言模型10,該詞段語言模型被配置為根據(jù)用戶輸入的文本生成一個或多個詞段預(yù)測40。如下文更詳細說明的,詞段語言模型10能夠被配置為迭代地預(yù)測詞段,使得來自文本預(yù)測引擎的輸出是可以顯示在電子設(shè)備的用戶界面上以供用戶選擇的一個或多個詞語預(yù)測50。[0029]圖1b是根據(jù)本發(fā)明的第二系統(tǒng)的框圖。除了詞段語言模型10之外,該實施例的文本預(yù)測引擎100’還具有詞語語言模型20。文本預(yù)測引擎進一步包括多語言模型(多LM)30,以根據(jù)由詞段語言模型10和詞語語言模型20輸出的詞語預(yù)測50,50”生成最終的詞語預(yù)測集合55。在通過引用并入本文的WO2010/112841的第11頁第I行至第12頁第2行中描述了使用多LM30來對源自多個語言模型的詞語預(yù)測進行組合。[0030]圖1a和Ib的高級預(yù)測體系結(jié)構(gòu)可以包括任意數(shù)量的如W02010/112841中所描述的附加語言模型。例如,預(yù)測體系結(jié)構(gòu)可以包括通用語言模型、特定于應(yīng)用的語言模型、特定于用戶的(動態(tài)的)語言模型、用于不同語言(例如,韓語、芬蘭語、英語等)以及任何附加的語言模型中的一個或多個,其中任意一個或多個可對應(yīng)于根據(jù)本發(fā)明的詞段語言模型10。[0031]詞段(wordsegment)是詞語中的可以與一種語言中的其它詞語共用的任意部分,例如詞語‘vest’、‘vesicle’、‘vehicle’、‘vegetable’、have、positive、live、lively、lovely等的詞段‘ve’。詞段可以包括詞素(morpheme),因為很多詞語共用詞綴和后綴等。然而,詞段比詞素涵蓋更多的字符組合,因為它們不必具有與它們相關(guān)聯(lián)的含義。詞段可以如同詞素一樣是一個字符的長度,例如用于使詞語復(fù)數(shù)化的‘S’,并且當詞語沒有與其它詞語共用的任何部分時可以包括詞語。術(shù)語“詞段”還涵蓋了詞語連接符,諸如所有格撇號、連字符,無論是單獨地還是與其它字符組合。[0032]‘詞段語言模型’10是表示在自然語言內(nèi)出現(xiàn)的詞段序列的統(tǒng)計概率的概率分布。因此,詞段語言模型包括存儲的詞段序列。存儲的任何給定的序列可以表示詞語、詞語的序列或詞語的部分。在本發(fā)明中,術(shù)語‘詞段語言模型’還涵蓋了‘混合’語言模型,其除了存儲的詞段序列之外還包括存儲的詞語或詞語序列,即使那些詞語可以分解成與其它詞語共用的詞段。詞語可嵌入到詞段序列中,可以自身設(shè)在語言模型中,或者可以存儲在詞語序列中。詞語和詞段優(yōu)選地通過詞段語言模型不做區(qū)分地對待(S卩,詞語被作為詞段而對待)。[0033]‘詞語語言模型’20是表示在自然語言內(nèi)出現(xiàn)的詞語序列的統(tǒng)計概率的概率分布。在本申請的背景下,詞語語言模型僅存儲完整詞語的序列,即不存在對詞語的分段。[0034]使用僅包括詞段的語言模型存在一些缺點,因為來自這樣的語言模型的詞語預(yù)測會具有比詞語語言模型更低的對于預(yù)測常見詞語的精度。“混合”語言模型方法受益于把詞段用來預(yù)測罕見詞語(例如,已知詞段的未知組合)同時保持對于常見詞語的預(yù)測的質(zhì)量。[0035]存在對最好保留不分段(bestleftun-segmented)的詞語(例如一種語言的η個最頻繁詞語可以保留不分段)進行識別的多種方式??商孢x地,對哪些詞語應(yīng)當保留不分段的選擇可以基于詞語的大小來做出,因為較長的詞語具有更高的受益于分段的可能性,而較短的詞語將趨于不可分段。詞語可通過兩種方法的組合來識別,保持較短且經(jīng)常使用的詞語不分段。任何其它適合的判定哪些詞語應(yīng)當保留不分段的方式也能夠單獨地使用或者與所描述的方法相結(jié)合使用,取決于預(yù)測引擎的應(yīng)用。[0036]就哪些詞語保持為單個單位而哪些詞語分段成詞段(例如,詞素)而進行的選擇,可取決于語言的形態(tài)拓撲結(jié)構(gòu)。對于一些語言(例如,英語)保持主要存儲詞語和詞語序列同時有一些詞段序列的語言模型是有益的;而對于其它語言,具有主要包括詞段和詞段序列同時具有較少的詞語或詞語序列的語言模型更有益。[0037]世界上的語言分布在從孤立語(意指,在不同的詞中,詞素彼此孤立)到黏著語(其中詞可包含許多子串,每個子串包含一個意義單位)的譜(spectrum)上。例如,在中國普通話(孤立語)中,人不會說“我打印了”而是說“我過去打印過”;沒有任何類型的詞形變化(inflect1n),沒有動詞詞形變化(0011]_呢31:;[011)/性別/時態(tài)/復(fù)數(shù)形式/格,等等。然而,在韓語中,韓語是黏著語的示例,動詞帶有:時態(tài)、根據(jù)談話對象而定的禮貌程度、根據(jù)所談到的人而定的禮貌程度、情緒表達,等等。同樣,斯瓦希里語動詞包含了主語/時態(tài)/賓語/受者/否定。[0038]黏著語(包括例如韓語、芬蘭語和土耳其語),由于它們的構(gòu)詞本質(zhì),具有多得多的詞形,并且因此將主要受益于詞段語言模型的使用。大多數(shù)歐洲語言出現(xiàn)在所述譜的中間范圍的某處并且“在一定程度上”受益于詞語的分段,而英語的相對簡單的詞形變化系統(tǒng)意味著,主要基于詞語來對語言進行建模的方法可能更適合。[0039]為了訓(xùn)練詞段語言模型10,文本語料庫(或許多語料庫)被通過(passthrough)用于詞素識別的已知技術(shù),例如在Morfessor工具箱提供的非監(jiān)督的類壓縮技術(shù)(unsupervisedcompress1n-1iketechnique)(http://www.cis.hut.fi/projects/morpho/)。該技術(shù)識別文本語料庫中的全部詞素并且得出詞典,該詞典能夠用于從并非在文本語料庫中實際上可見的詞語(B卩,詞素的新穎組合)中識別詞素。該非監(jiān)督技術(shù)使用最小描述長度編碼來找到最高效地壓縮文本語料庫的最佳詞素集合。因此,最佳‘詞素’集合可能不代表真實(根據(jù)語法含義)詞素集合。還可以使用替選的算法或技術(shù),例如,監(jiān)督技術(shù)(supervisedtechnique)。然而,監(jiān)督技術(shù)需要帶注解的數(shù)據(jù)庫,并且不存在涵蓋所需要支持的全部語言的適合的形態(tài)分析器或‘詞語分段器’。[0040]與其說在文本語料庫上利用非監(jiān)督算法確定語言中的詞段(例如,詞素),不如說可以使用用于給定語言的預(yù)先確定的詞段(例如,詞素)的列表??梢允褂帽O(jiān)督算法來根據(jù)文本語料庫生成語言模型概率,其中詞匯表已經(jīng)預(yù)先獲知。對于不同的語言,預(yù)先確定的詞素詞匯表在品質(zhì)和可用性上可能有所變化。該詞匯表的品質(zhì)也難以評估,這使得難以知道詞匯表是否適合,或者難以在多個詞匯表可用時選擇最適合的詞匯表。[0041]為了訓(xùn)練詞段語言模型10,大的文本語料庫被通過詞素詞典(例如,通過如上所述的監(jiān)督或非監(jiān)督技術(shù)來創(chuàng)建)以將每個可分詞語拆分成其詞段(例如,詞素)。優(yōu)選地,在每個詞之間還添加分詞符(例如4),即廣映射成T以在詞段和詞語之間進行區(qū)分。例如,文本“Welcometoweekendspecials”可能被映射成“Weicome$to$weekend$specials$”。然后,新的語言模型10根據(jù)n元語法(n-gram)詞段序列(例如,6元語法(6-gram)來訓(xùn)練,且包括η元語法詞段序列出現(xiàn)的概率。η元語法圖的示例以圖3所示的方式來訓(xùn)練(其中與詞段序列相關(guān)聯(lián)的概率為簡明起見而省去)。[0042]如從上文對詞段語言模型10的描述中將理解到,對于混合方法,較大的文本語料庫通過詞素詞典以將不是被選為保持作為一個單位的詞語的每個詞語拆分成其詞段(例如,詞素)。例如,如果‘weekend’是被選為保留不分段的詞語,則對于上述示例所得出的η元語法詞段和基于詞語的序列將是“Weicome$to$weekend$specials”。然后,新的語言模型根據(jù)η元語法詞段和詞語序列(例如,6元語法)訓(xùn)練,且包括η元語法詞段和詞語序列出現(xiàn)的概率。以這種方式訓(xùn)練的η元語法圖的示例在圖4中圖示(再一次,該概率為簡明起見而被省去)。與圖3不同,圖4包括完整的詞,完整的詞在圖3中分段,例如,‘wants’、‘wanted’、'means?、'meant,ο[0043]現(xiàn)在參考圖2a描述根據(jù)詞段語言模型10生成的詞段預(yù)測40以及詞語預(yù)測50,圖2a是圖1a和圖1b的詞段語言模型10的簡化框圖。[0044]存在到給定語言模型中的兩個輸入,當前術(shù)語輸入11和上下文輸入12。當前術(shù)語輸入11包括系統(tǒng)所具有的關(guān)于系統(tǒng)正試圖預(yù)測的術(shù)語的信息,即,用戶正試圖輸入的術(shù)語以及與用戶已經(jīng)輸入的在前術(shù)語有關(guān)的上下文輸入。[0045]對于圖2a的詞段語言模型10,當前術(shù)語輸入11涉及到與正在被預(yù)測的當前詞段有關(guān)的任何字符,并且上下文輸入12涉及到先前輸入的或預(yù)測的詞段(如下文更詳細說明的),該先前輸入的或預(yù)測的詞段涉及到先前輸入的詞語以及先前預(yù)測/輸入的當前詞語的詞段。字符能夠由任何適合的方式來輸入,可包括例如按下表示字符的單個按鈕或者通過在觸摸屏用戶界面的鍵盤上的連續(xù)手勢。初始輸入可因此對應(yīng)于用戶界面上的被轉(zhuǎn)換成字符的坐標集合,如通過引用方式以全文并入本文的WO2012/156686中詳細描述的。[0046]本發(fā)明的語言模型包括輸入語言模型,該輸入語言模型以當前術(shù)語輸入11作為輸入,以及包括以上下文輸入12作為輸入的上下文語言模型。[0047]在優(yōu)選的而非限制的實施例中,輸入模型是字典樹13,該字典樹13被用當前詞段輸入11來查詢,以根據(jù)詞段輸入11生成初始詞段預(yù)測。如WO2010/112841的第16頁第4行至第17頁第14行詳細描述的,字典樹13可以是標準的字典樹(參見WO2010/112841的圖3)或近似字典樹(參見WO2010/112841的圖4a),其被用直接的當前詞段輸入11來查詢??蛇x地,字典樹I3可以是概率字典樹,該概率字典樹被用由當前輸入生成的按鍵向量(KeyPressVector)來查詢,如通過引用方式并入本文的WO2010/112841的第17頁第16行至第20頁第16行詳細描述的。[0048]如WO2010/112841中描述的,按鍵向量能夠采取字符序列上的索引概率分布列(indexedseriesofprobabilitydistribut1n)的形式。按鍵向量可以包括與每次擊鍵相關(guān)聯(lián)的概率分布,以將用戶輸入的擊鍵中的錯誤納入考慮,例如,其中當用戶打算按下‘I’時,用戶卻按下‘k’的情況。此外,除了標點符號省略之外,按鍵向量和輸入模型還能夠用于對詞語的字符輸入中的錯誤進行校正。按鍵向量還能夠被配置為,如果在輸入模型中找到用戶省去的重復(fù)的字符,則插入該字符,以在將每個字符輸入到系統(tǒng)之后將漏掉的字符輸入納入考慮,并且能夠被配置為如果用戶輸入的字符不在輸入模型中則忽略該字符。[0049]在優(yōu)選而非限制的實施例中,上下文模型是η元語法圖14。上下文詞段12用于查詢詞段η元語法圖14,其示例在上文結(jié)合圖3和圖4進行了說明以根據(jù)上下文詞段12生成初始詞段預(yù)測。[0050]該系統(tǒng)優(yōu)選地包括最終預(yù)測機制15以根據(jù)由字典樹13返回的候選(初始詞段預(yù)測)和詞段η元語法圖14來生成最終的預(yù)測集合40。最終預(yù)測機制15可以是如WO2010/112841的第24頁第21行至第25頁第7行所詳細描述的交集機制(intersect1nmechanism),其中最終預(yù)測機制15用于計算由字典樹12和詞段η元語法圖14返回的候選(初始詞段預(yù)測)的交集而生成一個或多個最終詞段預(yù)測40。然而,如下文要描述的,最終預(yù)測機制15可以取字典樹和η元語法圖中的一個所預(yù)測的預(yù)測候選,而不取由另一個所預(yù)測的預(yù)測候選。最終預(yù)測機制15在這方面不同于WO2010/112841的交集機制。[0051]取決于系統(tǒng)的使用,如下文更詳細說明的,預(yù)測引擎100可被配置為輸出詞段預(yù)測40以供用戶選擇。術(shù)語詞段預(yù)測40旨在涵蓋除了在詞段中存在從由用戶輸入的字符序列中看不到的字符的詞段預(yù)測之外,還有詞段校正/修改,以及詞段的驗證,如下文更詳細說明的。如果詞段預(yù)測40輸出到用戶界面以便用戶選擇,可能需要修改用戶界面功能,例如,對于其中預(yù)測的詞段40對應(yīng)于在詞語中間而不是在開始/結(jié)束處的詞段的情況,不要插入空格或替換整個當前詞語輸入。[0052]在優(yōu)選的實施例中,預(yù)測引擎100將輸出詞語預(yù)測50,因為這通常對于用戶而言更直觀。在該優(yōu)選的實施例中,詞段40迭代地預(yù)測從而生成詞語預(yù)測50。每當預(yù)測了詞段,詞段預(yù)測40就作為上下文詞段12推送到語言模型10中,以生成構(gòu)成詞語的詞段序列中的下一詞段。迭代地根據(jù)詞段構(gòu)建一個詞的過程繼續(xù),直到全部的當前輸入已經(jīng)用盡并且已經(jīng)達到詞語邊界標記$,表明已經(jīng)生成完整的詞。[0053]例如,如果用戶已經(jīng)將“Iamtranslat”輸入到電子設(shè)備,上下文詞段輸入初始地為并且從“translat”取得當前的詞段輸入11。[0054]字典樹13包括字符序列,當字符序列被查詢用戶輸入時,字符序列返回一個或多個詞段候選。字典樹可以是任何適合的深度,包括長度為η的字符序列。例如,如果字典樹具有深度五(η=5),并且用戶正試圖輸入詞語‘translated’且已經(jīng)輸入‘translat’,可以用輸入的前五個字母‘trans’查詢字典樹,并且可以返回單詞段‘tra’、‘tran’和‘trans’。在字典樹中識別字典樹的對應(yīng)于詞段邊界的節(jié)點,使得字典樹的查詢返回較長詞段的子串的詞段。[0055]上下文證據(jù)(contextevidence)12例如使用分詞器(tokeniser)被分詞成詞段(在“Iam”情況下其是并且語言模型10被配置為將詞段序列與存儲在η元語法圖14中的詞段序列進行比較,并且返回序列中下一詞段的候選。如在精確相同的上下文需要分詞(例如,在輸入的每個字符上分析上下文)的許多實例中,能夠臨時存儲上下文到詞段的映射(例如,作為存儲器中的高速緩存而存儲)。這降低了與分析相關(guān)聯(lián)的計算要求以及時間。存儲在高速緩存中的數(shù)據(jù)量是預(yù)測期間的效率與可用存儲器之間的權(quán)衡。[0056]η元語法圖14所預(yù)測的詞段將可能包括對于輸入詞序列并非有效的詞段,例如作為存儲的序列‘I$am$alive’的部分的‘a(chǎn)li’。對于具有許多下一詞段預(yù)測的詞段序列,語言模型10可被配置為返回k個最可能的下一詞段預(yù)測40。為了簡化示例,從η元語法圖返回的4個最可能的候選可以是‘tran’、‘a(chǎn)li’、‘hun’和‘tired’。[0057]可選地,詞段預(yù)測由字典樹13生成,并且交集機制15搜索η元語法圖14中以查找詞段預(yù)測,來判定是否存在交集(即,它們將由字典樹13和圖14來預(yù)測)并且因此判定是否輸出那些詞段預(yù)測作為最終詞段預(yù)測40。[0058]最終預(yù)測機制15被配置為根據(jù)字典樹13和η元語法圖14生成的預(yù)測候選生成最終的預(yù)測集合40。如WO2010/112841中詳述的,最終預(yù)測機制可被配置為,通過僅保留在兩個候選集合中都存在的詞段(在該情況下是‘tran’),來根據(jù)字典樹和η元語法圖來計算兩個候選集合的交集。在不存在上下文輸入的情形下,詞語邊界標記“Γ的開始是用于確定初始上下文的上下文。然而,在優(yōu)選的實施例中,最終預(yù)測機制15被配置為,如果候選也沒有被η元語法圖預(yù)測到,則(經(jīng)由如下文所描述的后退法(back-offapproach))降低字典樹預(yù)測的候選的概率(而不是僅保持由兩者都生成的候選)。換言之,不存在“構(gòu)成詞語的詞段必須對應(yīng)于在單詞段η元語法圖14中存儲的已知詞段序列”的強制的上下文限制(例如,二元語法(b1-gram)限制)。因此,在具有其它詞段預(yù)測的序列中的η元語法圖14中不必找到利用字典樹基于當前詞語輸入生成的詞段預(yù)測。[0059]最終預(yù)測機制15被配置為將取自字典樹和η元語法圖的概率組合。因此,如果在該上下文之前沒有看到詞段,但是詞段本身已知,則詞段將以出現(xiàn)概率來預(yù)測,但是該概率將比“詞段已知且在找到詞段的上下文中詞段已知”的情況低。[0060]在優(yōu)選的實施例中,如果在給定上下文的情況下沒有看到詞段,則采用‘后退法’。例如,如果給定下面的詞段W1W2W3的上下文而正預(yù)測詞段W4,并且η元語法圖不包括存儲的對應(yīng)于W1W2W3W4的序列,則語言模型將搜索對應(yīng)于縮減上下文序列的逐漸縮短的序列W2W3W4,W3W4,以及隨后單獨的W4(如果語言模型包括一元語法圖)。每當系統(tǒng)必須在要搜索的上下文后退,最終預(yù)測機制15將‘后退’懲罰應(yīng)用于在給定上下文情況下預(yù)測W4的概率(其可以是固定懲罰,例如通過乘以固定值)。[0061]然后,從最終預(yù)測機制15返回的詞段預(yù)測40的集合(例如,‘tran’)用作生成下一詞段預(yù)測40的上下文,例如,η元語法圖14將被查詢跟隨的詞段序列“I$a!4tran”,以生成詞段序列中的下一詞段的預(yù)測40。[0062]通過迭代地生成詞段,語言模型10能夠提供詞段序列中的下一詞段,其中在詞段中存在用戶輸入的字符中看不到的字符,該字符根據(jù)本示例涉及到用戶還沒有輸入但是打算輸入的‘ing’。如果最終預(yù)測機制15被配置為僅保持在兩個集合中都出現(xiàn)的詞段,則其迫使詞段為在給定當前輸入11和上下文12情況下已知的詞段,S卩,對應(yīng)于存儲在η元語法圖14中的序列的詞段序列。[0063]按照相同的示例,語言模型10可能已經(jīng)基于字符輸入序列生成了以下詞段序列:“tran-slat”。通過將序列“I$am$translat”與n元語法圖14中的存儲的詞段序列進行比較,η元語法詞段圖可以返回“ing”和“or”。對于該示例,對于最終詞段預(yù)測不存在當前輸入11,因此詞段預(yù)測40是通過與η元語法圖14中存儲的詞段序列進行比較而生成的。如果輸入已經(jīng)被以不同方式拆分,例如,如果對于‘translat’預(yù)測的迭代詞段是‘tr’,‘a(chǎn)ns’和‘la’,貝ft’是當前詞語輸入11,并且最終詞段的詞段預(yù)測40將基于來自輸入ll‘t’(使用字典樹)和來自上下文13‘transla’(使用η元語法圖)的詞段預(yù)測。[0064]假設(shè)詞語邊界指示符“Γ跟著每個詞段預(yù)測‘ing’和‘or’,則從語言模型輸出的詞語預(yù)測50將是“translating〗”和“translator〗”。因此,當全部輸入已經(jīng)用盡且詞語邊界已經(jīng)被預(yù)測到時,語言模型輸出詞語預(yù)測。如上文的示例顯而易見的,如果用戶僅部分地輸入詞,則構(gòu)成詞語的詞段序列將具有比用戶輸入的更大數(shù)量的字符,因為上述過程繼續(xù)詞段迭代直至達到詞語邊界。[0065]從上文將理解,詞段語言模型10被配置為識別給定的輸入證據(jù)源11中的多個可能的詞段序列,并且預(yù)測一個或多個附加的詞段40,從而預(yù)測一個或多個詞語50(其已經(jīng)根據(jù)不同的詞段序列構(gòu)建)。對于任何給定的字符序列,給定的字符序列可以拆分成多個詞段序列。[0066]對于采用按鍵向量的詞段語言模型10,語言模型10被配置為能夠輸出詞段序列,其中已經(jīng)相對于輸入字符序列的字符修改詞段的字符。這是因為,按鍵向量考慮到輸入字符序列可以不確切地對應(yīng)于用戶所意圖的,也即,在用戶已經(jīng)犯錯的情況下,不管是因為他們不知道正確的拼寫而有意地,或者例如由于按下錯誤的按鍵而無意地。因此,語言模型10還被配置為根據(jù)與正在被輸入的當前詞語/詞段有關(guān)的輸入字符序列來預(yù)測經(jīng)修改的或校正后的詞段。因此,如果用戶已經(jīng)誤拼詞語,則語言模型10也可以預(yù)測具有比用戶輸入的字符序列少的字符的詞語。例如,如果用戶鍵入“hellno”,則系統(tǒng)將生成“hello$”作為詞語預(yù)測50。按鍵向量和字典樹13考慮到如下事實:‘η’應(yīng)當是‘O’,重復(fù)的‘o’應(yīng)當被忽略,或者序列中的‘η’應(yīng)當忽略。詞語邊界標記$可以從字典樹、η元語法圖或兩者來預(yù)測。如參考下面的圖2b所論述的,還可以從本發(fā)明的系統(tǒng)來預(yù)測“hell$no$”。[0067]預(yù)測過程的每次迭代可以得到具有不同概率的多個詞段預(yù)測候選40。這可能得到大量的可能的詞段序列并且因此得到對于識別全部的候選詞語50及其概率的顯著的計算復(fù)雜度。因此,可以采用最小概率的閾值、迭代次數(shù)、詞段數(shù)量等的閾值來防止這樣的耗時的詞語完成。閾值可以是靜態(tài)值(例如,4次迭代)或者基于搜索樹或其它參數(shù)(其可以包括技術(shù)設(shè)備能力,諸如存儲器、處理能力、可供下載的存儲,等等)的大小的動態(tài)值。[0068]上述過程能夠擴展以推導(dǎo)用戶輸入的字符序列中的空格(或其它術(shù)語邊界定界符),其中用戶打算輸入兩個以上的詞語,但是已經(jīng)(錯誤地或者有意地)丟失了兩個輸入字符之間的空格。圖2b示出了圖2a的語言模型,通過幾個決策步驟示出了詞段語言模型1b如何能夠被用于生成包括由一個或多個術(shù)語邊界分開的兩個以上詞語的文本預(yù)測50’,以及單個詞語預(yù)測。由于兩個以上術(shù)語的用戶字符輸入將包括比單個詞語多的字符,系統(tǒng)被配置為首先判定是否已經(jīng)預(yù)測到詞語的末尾,即是否利用詞段預(yù)測到術(shù)語邊界$。如果語言模型1b判定沒有達到詞語邊界(N),則預(yù)測的詞段被作為上下文輸入(連同先前的任何詞段)傳回到語言模型。如果語言模型1b判定出存在詞語邊界(Y),則語言模型1b判定已經(jīng)預(yù)測到詞語50。語言模型1b被配置為判定是否存在更多的輸入。如果不存在另外的輸入的文本(N),則預(yù)測的詞語50被輸出作為文本預(yù)測50’。如果存在另外的輸入(Y),則語言模型1b根據(jù)預(yù)測的詞語50來預(yù)測接下來可能是什么詞段40,S卩,預(yù)測詞語50作為上下文12被傳回通過η元語法圖14。該過程如上所述迭代詞段,直到再次達到詞語邊界并且不存在進一步的輸入。例如,如果用戶已經(jīng)輸入字符‘homeco’,則圖2b的語言模型1b將生成‘homecoming’和‘homecoming’以及其它預(yù)測?!甴omecoming’將會是已經(jīng)通過迭代過程生成的從而生成詞語50,該詞語當全部輸入已經(jīng)用盡且語言模型已經(jīng)預(yù)測到詞語邊界時被輸出。‘homecoming’將會是通過語言模型生成的,語言模型在全部輸入用盡之前判定詞語中斷,并且因此利用預(yù)測詞語(‘home’)50作為用于下一詞段預(yù)測的上下文。因此,圖2b的文本預(yù)測50’可以包括由一個或多個術(shù)語邊界分開的兩個以上詞語的序列的預(yù)測,以及單個詞語預(yù)測50。[0069]詞段語言模型10(參考圖2a和2b所描述的)可以通過上述過程來輸出無效詞語(即,詞段序列中的詞段的組合,其沒有出現(xiàn)在語言中,但是可能出現(xiàn)在η元語法詞段圖中),因為該過程依賴于詞段組合的統(tǒng)計可能性,而不是依賴于詞語的詞典。系統(tǒng)的該性質(zhì)是優(yōu)選的:自然語言中的詞語由詞素構(gòu)成,其中許多重復(fù)于不同詞語中(例如,常見詞綴、詞干、前綴)。即使在非常大的文本語料庫中(用作訓(xùn)練數(shù)據(jù)),也可能找不到詞素的有效組合,或者頻率如此之低以至于不包括在最終詞匯表中(例如,由于存儲器約束)。對于具有較大詞匯表的語言,例如芬蘭語和韓語,情況尤其如此。這同樣適用于詞素關(guān)于附近詞語(例如,羅曼語族中的詞性或名詞和形容詞的多種匹配)而不同的語言。然而,可以利用候選過濾器60來過濾詞語和文本候選50、50’,以去除無效詞語。例如,候選過濾器60可被配置為將圖2a的候選詞語50與詞典或詞語進行比較以丟棄無效詞語,其中候選過濾器輸出經(jīng)過濾的詞語預(yù)測50’(如圖2a’所示)。[0070]在優(yōu)選的實施例中,候選過濾器60是布隆過濾器。布隆過濾器能夠利用有效詞語構(gòu)成,其可以包括利用每個有效詞語的字符序列、每個有效詞語的詞段序列或者與每個有效詞語的詞段序列對應(yīng)的標識符序列來構(gòu)造布隆過濾器。上下文圖的每個詞段可各自被提供標識符。因此,當詞語已經(jīng)通過語言模型生成時,標識符的組合對應(yīng)于構(gòu)成詞語的詞段的組合。通過利用有效詞語的標識符組合來構(gòu)造布隆過濾器,用戶輸入的文本可被更高效地處理成最終過濾器詞語預(yù)測。[0071]然后,通過布隆過濾器60來過濾詞段語言模型10輸出的詞語候選50,其中布隆過濾器60中沒有出現(xiàn)的任何詞語候選50被作為無效詞語而丟棄。[0072]使用布隆過濾器的優(yōu)點在于,其是存儲器高效的,計算上高效的,并且其不會返回偽否定(布隆過濾器的特性)。因此,布隆過濾器50將在詞是有效的情況下永不會將該詞作為無效的而拒絕。[0073]圖2c和2d示出了詞段語言模型10b,1c的兩種可能的布置,該詞段語言模型包括用于處理可包括具有推導(dǎo)的術(shù)語邊界的兩個以上詞語的文本預(yù)測的候選過濾器60。由于包含了候選過濾器60,語言模型不同于圖2b的,并且由于候選詞語通過候選過濾器60的階段而彼此不同。[0074]參考圖2c的實施例,語言模型1c將詞語預(yù)測50通過候選過濾器60。如果詞語不是有效詞語(N),則詞語被丟棄或進一步在點A處理(如稍后論述的)。如果詞語預(yù)測50被確定為有效詞語(Y),則語言模型判定是否存在任何進一步的輸入,如圖2b的情況。如果存在仍要消費的進一步的輸入,則有效詞語50被返回作為詞段η元語法圖14的上下文12以判定下一詞段,即下一詞語的開始。如果不存在更多的輸入(N),則有效詞語50被輸出作為最終詞語預(yù)測50’。通過上述過程,用于計算由一個或多個術(shù)語邊界分開的詞語序列的路徑被丟棄,如果預(yù)測詞語50不是候選過濾器50的有效詞語,則在其完成之前停止該路徑的處理。[0075]參考圖2d,語言模型基本上與圖2b所示的相同,然而,下一預(yù)測50’通過候選過濾器60,候選過濾器60判定下一預(yù)測50’的每個詞語是否有效,例如,兩個以上詞語的序列的每個詞語是否有效。如果詞語預(yù)測或詞語序列的詞語是有效的,則它們作為過濾的文本預(yù)測50”被輸出。如果詞語無效或者詞語序列的詞語無效,則詞語或詞語序列被丟棄或者在點B處進一步處理,如稍后將要描述的。[0076]雖然候選過濾器60被描述為語言模型的部分,但候選過濾器60可以是與語言模型分離的文本預(yù)測引擎100的部分,其中要過濾的預(yù)測從語言模型傳遞到過濾器,例如,如圖2a’和2d所看到的,其中過濾器能夠視為與語言模型10a、10d分離,而不改變數(shù)據(jù)中的結(jié)構(gòu)或數(shù)據(jù)流。[0077]詞段語言模型10,1b,1c,1d優(yōu)選地被配置為生成對應(yīng)于逐字用戶輸入的詞語預(yù)測50,其中該逐字輸入不對應(yīng)于詞段語言模型10的已知詞語(S卩,由詞語邊界標記例如“$”包圍的存儲詞語或存儲的詞段序列)。[0078]為了驗證詞語,直接當前輸入11(8卩,不經(jīng)由按鍵向量)優(yōu)選地用于搜索字典樹13。詞段語言模型10迭代地預(yù)測如上所述的詞段序列中的下一詞段。在可選的實施例中,可以提供與逐字輸入對應(yīng)的修改版本的預(yù)測候選。在該實例中,字典樹將是與按鍵向量一起使用來根據(jù)用戶輸入的字符序列生成多個可能的詞段的概率字典樹,其中不要求詞段的字符直接匹配原始用戶輸入的文本的那些詞段的字符(例如,語言模型允許字符序列的輸入中的用戶錯誤)。[0079]最終預(yù)測機制15被配置為將取自字典樹和η元語法圖的概率組合。因此,如果之前在該上下文中沒有看到詞段,但是詞段本身已知,則詞段將以出現(xiàn)概率被預(yù)測,但是該概率將比“詞段已知且詞段在找到該詞段的上下文中已知”的情況更低。[0080]如上所述,如果在給定上下文中沒有看到詞段,則采用‘后退法’(該后退法還能夠用于如上所述的正常詞段預(yù)測,但是對于詞段驗證最相關(guān))。[0081]由于語言模型10,10b,10c,1d將逐字輸入作為詞語預(yù)測50來驗證,所以語言模型10,10b,10c,1d被配置為用出現(xiàn)在序列末尾的詞語邊界標記(“$”)來確定詞段序列的概率。[0082]在一個實施例中,如果與詞段語言模型10,10b,10c,1d(或者詞語語言模型20,如下文將描述的)生成的詞語預(yù)測50相關(guān)聯(lián)的概率落到閾值以下,則可以實施逐字輸入的驗證。[0083]因此,詞段語言模型10,1b,1c,1d通過標準的迭代過程來預(yù)測詞語50,除非與最可能的詞語預(yù)測50相關(guān)聯(lián)的概率落到預(yù)定閾值以下。如果概率落到該預(yù)定閾值以下,則詞段語言模型10,1b,1c,1d用于驗證逐字文本作為詞語預(yù)測50,如上所述。詞段語言模型10,10b,10c,10d被配置為確定置信得分,P(預(yù)測)/P(驗證)。如果置信得分大于預(yù)計算閾值,則語言模型輸出由初始過程生成的詞語預(yù)測50(其中優(yōu)選地,最終預(yù)測機制15僅保留由字典樹和η元語法圖14兩者生成的預(yù)測的詞段)。如果置信值小于預(yù)計算閾值,則逐字輸入被輸出(具有或不具有由第一過程生成的詞語預(yù)測50)。閾值優(yōu)選地根據(jù)具有目標性能指標的樣本數(shù)據(jù)集合計算。[0084]在備選的實施例中,預(yù)測引擎可被配置為對于每個用戶輸入的文本輸入實施逐字文本的驗證。隨后,對于最上面的k個預(yù)測候選,實施上述的比率比較。比率值判定逐字文本是否作為預(yù)測候選(本身或者連同其它預(yù)測候選一起)被提供。[0085]參考圖2b,圖2c和圖2d,如果如上所述逐字輸入保留在詞語預(yù)測50中,逐字輸入將出現(xiàn)在文本預(yù)測50’中,或者作為詞語預(yù)測,或者作為具有推導(dǎo)的術(shù)語邊界的詞語預(yù)測序列中的詞語預(yù)測。[0086]對于圖2a’,2c和2d的情況,由于逐字輸入不是已知詞語,則其很可能被候選過濾器作為為無效的而被濾出。因此,在圖2a’的候選過濾器處或者在圖2c的步驟A中,語言模型優(yōu)選地被配置為判定無效詞語預(yù)測50(S卩,候選過濾器60丟棄的詞語預(yù)測)是否對應(yīng)于逐字輸入(例如,通過對與逐字輸入相關(guān)聯(lián)的詞語預(yù)測50加標簽或進行識別)。如果無效詞語預(yù)測不對應(yīng)于逐字輸入,則其被丟棄。然而,如果詞語預(yù)測50對應(yīng)于逐字輸入,則其被保留。參考圖2c,如果沒有進一步輸入要處理,則逐字輸入,連同已經(jīng)通過候選過濾器60處理步驟的有效文本預(yù)測一起被輸出作為文本預(yù)測50’。如果有進一步的輸入要處理,則與逐字輸入有關(guān)的該詞語預(yù)測50能夠用作用于生成下一詞段的上下文12,(在迭代過程后)得出包括逐字預(yù)測、一個或多個詞語預(yù)測和推導(dǎo)的空格在內(nèi)的序列預(yù)測。該序列預(yù)測被輸出作為文本預(yù)測50’,假設(shè)序列具有足以被保留的高的關(guān)聯(lián)概率)。[0087]參考圖2d,候選過濾器60過濾文本預(yù)測50’。在文本預(yù)測50’包括預(yù)測序列的情況下,兩個以上的術(shù)語被推導(dǎo)的術(shù)語邊界分開,如果在通過候選過濾器時序列的一個或多個詞語無效,則在步驟B丟棄序列。然而,如果預(yù)測的序列被確定為包括逐字輸入,則該預(yù)測的序列被輸出作為過濾的文本預(yù)測50”,而不是被丟棄(假設(shè)其具有足以被保留的高的關(guān)聯(lián)概率)。[0088]使用布隆過濾器用于候選過濾器60的另一優(yōu)點在于,文本預(yù)測引擎能夠以與逐字文本輸入有關(guān)的預(yù)測詞語(例如在選擇以供用戶輸入之后)來更新語言模型的布隆過濾器60。在上述系統(tǒng)中,最上面的文本預(yù)測(toptextpredict1ns)50’可被輸出到顯示器以便用戶回顧和選擇。如果用戶選擇了包括逐字文本的詞語預(yù)測50’用于輸入,則該詞語能夠用于更新布隆過濾器。在該詞語的隨后輸入中,詞語則會通過過濾器,而不被圖2a’中的過濾器丟棄,且不進行到圖2c和圖2d的步驟A或B。雖然結(jié)合布隆過濾器進行了說明,但是可以使用能夠更新的任何候選過濾器。[0089]通過提供能夠預(yù)測逐字文本作為用戶希望輸入的‘詞語’的語言模型10,1b,1c,10d,該系統(tǒng)不自動地將逐字文本校正成語言模型的已知詞語,從而提供輸入到系統(tǒng)的更精確的詞語預(yù)測50(自動地或者經(jīng)由用戶選擇)。[0090]詞段語言模型的格式能夠匹配詞語語言模型的格式,這允許文本預(yù)測引擎使用兩種類型的語言模型,如圖1b的系統(tǒng)所示。在圖1b的系統(tǒng)中,預(yù)測引擎100’優(yōu)選地包括多語言模型30(多LM)以將源自圖2a的詞段語言模型10的詞語預(yù)測50和源自圖2e的詞語語言模型20的詞語預(yù)測51進行組合,以生成可提供給用戶界面以便顯示和用戶選擇的最終預(yù)測55(或者可以簡單地插入最可能的預(yù)測)。最終預(yù)測55可以包括總體最可能的預(yù)測的一個集合(即,規(guī)定數(shù)量的)。多LM30通過將來自每個語言模型10,20的預(yù)測50,51插入有序關(guān)聯(lián)結(jié)構(gòu)來生成最終預(yù)測55,如通過引用并入本文的WO2010/112841的第11頁的第I行至第12頁的第2行中詳細描述的。詞語預(yù)測50,50”可并發(fā)地生成,或者來自詞段語言模型10的詞語預(yù)測50可以在詞語預(yù)測51’已根據(jù)詞語語言模型20生成之后生成(或者反之亦然)。雖然描述為包括圖2a的詞段語言模型,則詞段語言模型可以是參考圖2a’,2b,2c或2d所描述的。[0091]詞段語言模型10因此能夠與詞語語言模型20相結(jié)合使用來增強與逐字文本有關(guān)的詞語預(yù)測50的概率以及因此減少非期望的校正。[0092]如果需要,詞段語言模型10僅需要用于驗證逐字文本,其它詞語預(yù)測/校正由詞語語言模型20來供給。這會是有益的,因為將輸入文本分詞為詞段更復(fù)雜(因為其使用統(tǒng)計算法),與基于詞語的分詞器不同,在許多語言中,該基于詞語的分詞器簡單地識別詞語分離符(例如廣’)。如果僅用于驗證逐字文本,則語言模型優(yōu)選地為圖2a或圖2b的那些,因為不需要候選過濾器。[0093]對于圖1b的系統(tǒng)的這樣的使用,詞語預(yù)測51(其可以包括校正候選)從詞語語言模型20輸出。如果從詞語語言模型20輸出的詞語預(yù)測51落在某閾值以下,則如上文詳述利用詞段語言模型10來確定逐字詞語的概率。來自詞段語言模型10的逐字文本的概率(S卩,詞語預(yù)測50是逐字文本的詞語預(yù)測50的概率)隨后能夠與預(yù)測候選51中的概率合并(其中,如果逐字文本不包含在詞語語言模型20內(nèi),則預(yù)測候選51可以存在或者可以不存在)。如上所述,這可以得到最可能的詞語預(yù)測55是與逐字輸入對應(yīng)的詞語預(yù)測50,而不是替選的‘校正的’詞語預(yù)測51。[0094]可選地,預(yù)測引擎100’能夠使得詞語預(yù)測50,51同時源自兩個語言模型10,20并且應(yīng)用兩個模型之間的縮放因子(scalingfactor),以提高與來自一個模型的詞語預(yù)測相關(guān)聯(lián)的概率。逐字驗證步驟可因此通過用于每個用戶輸入文本的詞段語言模型10來實施。[0095]包括基于詞語的語言模型20和詞段語言模型10,10b,10c,1d的系統(tǒng)相對于僅具有詞段語言模型10,10b,10c,10d的系統(tǒng)具有一些優(yōu)勢,取決于系統(tǒng)的使用。例如,基于詞語的語言模型20可以是在用戶輸入的文本上訓(xùn)練的動態(tài)語言模型。如果包括該系統(tǒng)的設(shè)備具有受限制的存儲要求,則基于詞語的動態(tài)語言模型優(yōu)選于詞段動態(tài)語言模型10,10b,10c,10d,因為詞段動態(tài)語言模式將要求系統(tǒng)包括用于將用戶輸入的文本分段的機制(例如Morfessor工具箱)以訓(xùn)練語言模型。此外,可能存在關(guān)注于某些對象的語言模型,如果這樣的語言模型被訓(xùn)練為詞段語言模型則將失去準確性,例如基于人名和地名的語言模型等等。[0096]通過將詞段語言模型10,10b,10c,1d與詞語語言模型20組合,能夠利用詞段語言模型10來驗證逐字文本,因為其包括由于詞語部分的組合而增加的詞語詞匯表,而同時避免了由于復(fù)制基于詞語的上下文所需的詞段η元語法數(shù)量導(dǎo)致的預(yù)測精度的降低(因為詞語語言模型20能夠用于除了逐字文本的驗證之外的全部)。[0097]用于詞段語言模型10,10b,10c,1d預(yù)測的計算復(fù)雜度可以比詞語語言模型20的計算復(fù)雜度高,因為可能有必要對于給定上下文搜索更多的路徑,這使得在一些情形下由基于詞語的語言模型生成詞語預(yù)測且使用詞段語言模型僅用于驗證是有益的。[0098]最有益的是,當詞段語言模型10由沒有詞的詞段構(gòu)成時,則將詞語語言模型20與詞段語言模型10組合,S卩非混合方法。創(chuàng)建詞段語言模型10的混合方法克服了與純粹詞段語言模型10相關(guān)聯(lián)的許多問題,減少或避免了將其與詞語語言模型20組合的需要。此外,混合方法避免了將源自兩個不同的語言模型的預(yù)測組合的需要,其中因為它們采用不同的證據(jù)(即,作為上下文的詞語而不是詞段)而難以將來自語言模型的預(yù)測組合,這會導(dǎo)致不同的概率規(guī)模。此外,混合語言模型比包括多個語言模型的系統(tǒng)在存儲方面更高效。[0099]參考圖2e,詞語語言模型20具有與圖2a的詞段語言模型10相同的格式。詞語語言模型20的當前輸入是與用戶正在輸入的當前詞語有關(guān)的字符。詞語語言模型20的上下文12是在當前詞語輸入之前的被分詞為詞語的輸入文本。[0100]返回參考圖lb,多LM30可以將輸入的文本分詞為詞段以及還有詞,其將詞段和詞分別傳遞到詞段語言模型10和詞語語言模型20??蛇x地,與多LM30分離的分詞器可被采用(未示出)。[0101]如圖2e所示,詞語語言模型20包括字典樹13’(其可以是標準的字典樹,近似查找樹或者概率字典樹)、詞語η元語法圖14’和用于生成詞語預(yù)測50’的最終預(yù)測機制15’。在WO2010/112841中論述字典樹13’、詞語η元語法圖14’和交集機制15’。此外,最終預(yù)測機制15’可對應(yīng)于如WO2010/112841中所描述的交集機制。[0102]如上文詳細說明的,本發(fā)明的詞段語言模型10能夠由預(yù)測引擎100,100’使用用于各種任務(wù)。如參考圖1a所論述的,詞段語言模型10能夠用作用于生成詞段預(yù)測40和/或詞語預(yù)測50的基于正常詞語的語言模型的替換。然而,詞段語言模型10還能夠與詞語語言模型20聯(lián)合使用,并且被調(diào)用以驗證逐字文本,如關(guān)于圖2a所描述的。[0103]通過使用詞段語言10模型用于詞語預(yù)測,整個語言能夠以比詞語少的詞段來表達,這實現(xiàn)更小的語言模型或者允許訪問語言的整個詞語集合(否則這可能過大),尤其對于具有極大詞典(韓語、芬蘭語、日耳曼語族等)的語言有用。此外,詞段語言模型還實現(xiàn)了已知詞段的有效組合的預(yù)測,其中詞段的該組合尚未出現(xiàn)在用于訓(xùn)練語言模型的數(shù)據(jù)中。[0104]基于詞段的語言模型10將提供與具有更小存儲器/存儲設(shè)備的基于詞語的語言模型相同大小的詞匯表。因此,對于相同大小的內(nèi)存容量,基于詞段的語言模型10能夠在基于詞語的語言模型20上提供增加的詞匯表。[0105]由于增加的詞匯表和詞語組合,上述優(yōu)點可以使得增大預(yù)測精度。[0106]現(xiàn)在將參考圖5-10來描述本發(fā)明的方法,圖5-10是根據(jù)本發(fā)明的方法的示意流程圖。[0107]參考圖5,本發(fā)明提供了生成詞段語言模型的方法,在本發(fā)明的上下文中,該詞段語言模型可以意味著由源文本生成靜態(tài)語言模型或者由用戶輸入的文本構(gòu)建動態(tài)用戶語言模型。該方法包括:接收文本(500),該文本可以是源文本或用戶輸入文本,在文本中識別詞語邊界以將文本拆分成由詞語邊界分開的詞語(510)(例如,通過識別空格字符,使用分詞器將文本分成詞語),以及將詞語拆分成詞段(520)(例如,使用Morfessor工具箱)。該方法還包括生成具有詞語邊界的η元語法詞段序列(530)。[0108]圖6示出了根據(jù)本發(fā)明的第一處理方法。特別地,該方法是用于當輸入的‘詞語’不是詞語語言模型20的識別詞語或者詞段語言模型10的詞段的已知組合時,將逐字輸入作為‘詞語’預(yù)測來驗證,如上文結(jié)合圖1a和圖1b所示出的系統(tǒng)描述的。該方法包括:根據(jù)字符序列生成由一個或多個詞段組成的序列(600)。該詞段序列優(yōu)選地通過迭代地預(yù)測詞段來生成,如上所述。該方法進一步包括判定由一個或多個詞段組成的序列中的每個詞段是否對應(yīng)于存儲有詞段序列的語言模型的詞段(610)。[0109]該方法進一步包括:當由一個或多個詞段組成的序列中的每個詞段都對應(yīng)于語言模型的詞段時,輸出由一個或多個詞段組成的序列作為候選預(yù)測(即,用戶要輸入的詞語),而不管由一個或多個詞段組成的序列是否對應(yīng)于存儲的詞段序列(620)。因此,該方法能夠生成與逐字文本有關(guān)的‘詞語,預(yù)測,該‘詞語,預(yù)測能夠輸出給用戶,防止逐字文本的自動校正。該方法步驟的細節(jié)在上文結(jié)合系統(tǒng)進行了說明。[0110]圖7示出了根據(jù)本發(fā)明的處理文本的第二方法。該方法涉及到使用詞段語言模型10來預(yù)測由一個或多個詞段組成的序列中的下一詞段,如上文結(jié)合圖2a所示的語言模型以及圖1a的系統(tǒng)中所示的語言模型來描述的。如同第一方法,第二方法包括:根據(jù)字符序列生成由一個或多個詞段組成的序列(700)。然而,該方法包括:將由一個或多個詞段組成的序列與存儲的詞段序列進行比較(710),以及基于存儲的序列來預(yù)測序列中的下一詞段(720)。[0111]圖8示出了根據(jù)本發(fā)明處理文本的第三方法,其涉及到預(yù)測由一個或多個詞段組成的序列的修改后或校正的詞段。第三方法包括第二方法的生成步驟800以及比較步驟810,但是不同在于,其包括修改由一個或多個詞段組成的序列中的至少一個詞段,使得經(jīng)修改的由一個或多個詞段組成的序列匹配所述存儲的詞段序列的步驟820。[0112]如圖9所示,根據(jù)本發(fā)明的處理文本的第四方法涉及到使用詞語語言模型20來預(yù)測詞語50’以及使用詞段語言模型20來驗證逐字輸入,例如如果由詞語語言模型20預(yù)測的詞語的概率落到閾值以下,如上文結(jié)合圖2b的系統(tǒng)所論述的。該方法因此包括:在第一字符序列中識別由一個或多個詞語組成的序列以及第二字符序列(900);利用存儲有詞語序列的基于詞語的語言模型,來判定第二字符串是否對應(yīng)于基于詞語的語言模型的詞語(910);將第二字符序列傳遞到被配置為由第二字符序列生成詞段序列的單元(920);根據(jù)第二字符序列生成由一個或多個詞段組成的序列930;利用存儲有詞段序列的詞段語言模型,來判定由一個或多個詞段組成的序列中的每個詞段是否對應(yīng)于語言模型的詞段(940);以及當由一個或多個詞段組成的序列中的每個詞段對應(yīng)于詞段語言模型的詞段時,從詞段語言模型輸出由一個或多個詞段組成的序列作為候選預(yù)測,而不管由一個或多個詞段組成的序列是否對應(yīng)于存儲的詞段序列(950)。[0113]如圖10所示,處理字符序列的第五方法包括:(1000):利用存儲有詞段序列的語言模型來根據(jù)字符序列預(yù)測詞語預(yù)測;以及(2000):通過使詞語預(yù)測通過候選過濾器來判定詞語預(yù)測是否對應(yīng)于有效詞語。如結(jié)合本發(fā)明的系統(tǒng)所描述的,候選過濾器優(yōu)選地是布隆過濾器。[0114]本發(fā)明的方法的其它方面能夠通過類比上面的系統(tǒng)描述來輕易地確定。[0115]本發(fā)明還提供了計算機程序,或者包括存儲有計算機程序裝置的計算機可讀介質(zhì)的計算機程序產(chǎn)品,計算機程序裝置用于使得處理器實施根據(jù)本發(fā)明的一個或多個方法。[0116]計算機程序產(chǎn)品可以是存儲有計算機程序手段的數(shù)據(jù)載體,計算機程序手段用于使得數(shù)據(jù)載體之外的處理器,即電子設(shè)備的處理器,來實施根據(jù)本發(fā)明的方法。計算機程序或計算機程序產(chǎn)品可供下載,例如通過互聯(lián)網(wǎng)或其它可用網(wǎng)絡(luò)從數(shù)據(jù)載體或者從供應(yīng)者處,例如作為應(yīng)用下載到移動設(shè)備(諸如移動電話)上,或者下載到計算機、移動設(shè)備或包括一旦下載就用于執(zhí)行計算機程序手段的處理器的計算機。[0117]將理解的是,該說明僅通過示例的方式;可以對所描述的實施例進行改動和修改,而不偏離如權(quán)利要求中限定的本發(fā)明的范圍?!局鳈?quán)項】1.一種用于將文本輸入到電子設(shè)備中的系統(tǒng),所述系統(tǒng)被配置為接收由用戶輸入到所述設(shè)備中的字符序列,所述系統(tǒng)包括:被配置為根據(jù)所述字符序列生成詞段序列的單元;文本預(yù)測引擎,包括存儲有詞段序列的語言模型,所述文本預(yù)測引擎被配置為接收所述詞段序列并且判定所述詞段序列中的每個詞段是否對應(yīng)于所述語言模型的存儲的詞段;其中,所述文本預(yù)測引擎被配置為:當所述詞段序列中的每個詞段對應(yīng)于所述語言模型的存儲的詞段時,輸出所述詞段序列作為候選預(yù)測,而不管所述詞段序列是否對應(yīng)于存儲的詞段序列。2.—種用于將文本輸入到電子設(shè)備中的系統(tǒng),所述系統(tǒng)被配置為接收由用戶輸入到所述設(shè)備中的字符序列,所述系統(tǒng)包括:被配置為根據(jù)所述字符序列生成由一個或多個詞段組成的序列的單元;文本預(yù)測引擎,包括存儲有詞段序列的語言模型,所述文本預(yù)測引擎被配置為:接收所述由一個或多個詞段組成的序列;將所述由一個或多個詞段組成的序列與存儲的詞段序列進行比較;以及基于存儲的詞段序列來預(yù)測所述序列中的下一詞段。3.—種用于將文本輸入到電子設(shè)備中的系統(tǒng),所述系統(tǒng)被配置為接收由用戶輸入到所述設(shè)備中的字符序列,所述系統(tǒng)包括:被配置為根據(jù)所述字符序列生成由一個或多個詞段組成的序列的單元;文本預(yù)測引擎,包括存儲有詞段序列的語言模型,所述文本預(yù)測引擎被配置為:接收所述由一個或多個詞段組成的序列;將所述由一個或多個詞段組成的序列與存儲的詞段序列進行比較;以及基于存儲的詞段序列來修改所述由一個或多個詞段組成的序列的至少一個所述詞段,使得經(jīng)修改的由一個或多個詞段組成的序列匹配所述存儲的詞段序列。4.如任一前述權(quán)利要求所述的系統(tǒng),其中所述語言模型包括指示詞語的開始/結(jié)束的多個詞語邊界標記。5.如任一前述權(quán)利要求所述的系統(tǒng),其中所述語言模型包括存儲有詞段序列的上下文模型以及存儲有由形成詞段的字符組成的序列的輸入模型。6.如權(quán)利要求5所述的系統(tǒng),其中所述上下文模型包括存儲有詞段序列的η元語法圖。7.如權(quán)利要求6所述的系統(tǒng),其中所述η元語法圖包括指示詞語的開始/結(jié)束的所述多個詞語邊界標記。8.如權(quán)利要求5、6或7所述的系統(tǒng),其中所述輸入模型包括被配置為根據(jù)字符序列生成一個或多個詞段的字典樹。9.如權(quán)利要求8所述的系統(tǒng),其中所述字典樹包括多個詞段邊界標記。10.如當從屬于權(quán)利要求1時權(quán)利要求8或9所述的系統(tǒng),其中所述文本預(yù)測引擎被配置為判定所述詞段序列中的每個詞段是否對應(yīng)于所述字典樹的存儲的詞段。11.如任一前述權(quán)利要求所述的系統(tǒng),其中所述字符序列包括與用戶正在輸入的當前詞語有關(guān)的字符以及與該當前詞語的上下文有關(guān)的字符。12.如權(quán)利要求11所述的系統(tǒng),其中分詞器被配置為根據(jù)與所述上下文有關(guān)的字符生成由一個或多個詞段組成的序列。13.如權(quán)利要求11或12所述的系統(tǒng),其中所述語言模型被配置為根據(jù)與所述當前詞語有關(guān)的字符生成由一個或多個詞段組成的序列。14.如權(quán)利要求2所述的或者如當從屬于權(quán)利要求2時權(quán)利要求4-13中任一項所述的系統(tǒng),其中所述文本預(yù)測引擎被配置為迭代地預(yù)測所述序列中的下一詞段。15.如當從屬于權(quán)利要求4或7時權(quán)利要求14所述的系統(tǒng),其中所述文本預(yù)測引擎被配置為迭代地預(yù)測所述序列中的下一詞段直到達到術(shù)語邊界為止,此時所述文本預(yù)測引擎將所述詞段序列作為詞語輸出。16.如權(quán)利要求15所述的系統(tǒng),其中所述文本預(yù)測引擎進一步包括候選過濾器,并且其中所述文本預(yù)測引擎被配置為使所述詞語通過所述候選過濾器以判定所述詞語是否為有效詞語。17.如權(quán)利要求16所述的系統(tǒng),其中所述候選過濾器被配置為丟棄無效詞語除非該無效詞語對應(yīng)于逐字輸入,并且其中,有效詞語和與逐字輸入對應(yīng)的無效詞語從所述文本預(yù)測引擎輸出。18.如權(quán)利要求16或17所述的系統(tǒng),其中所述語言模型包括所述候選過濾器。19.如權(quán)利要求16、17或18所述的系統(tǒng),其中所述候選過濾器是由有效詞語構(gòu)造的布隆過濾器。20.如權(quán)利要求19所述的系統(tǒng),其中所述布隆過濾器是由與所述有效詞語對應(yīng)的字符串來構(gòu)造的,或者是由構(gòu)成所述有效詞語的詞段組合的標識符組合來構(gòu)造的。21.如任一前述權(quán)利要求所述的系統(tǒng),其中所述文本預(yù)測引擎進一步包括存儲有詞語序列的基于詞語的語言模型。22.如權(quán)利要求21所述的系統(tǒng),其中所述文本預(yù)測引擎被配置為接收輸入到所述設(shè)備的字符序列以及基于存儲的詞語序列預(yù)測一個或多個詞語。23.如權(quán)利要求1所述的系統(tǒng),其被配置為接收第一字符序列,其中所述系統(tǒng)進一步包括被配置為在所述第一字符序列中識別由一個或多個詞語組成的序列以及第二字符序列的單元;其中所述文本預(yù)測引擎進一步包括存儲有詞語序列的基于詞語的語言模型,并且所述文本預(yù)測引擎被配置為判定所述第二字符串是否對應(yīng)于所述基于詞語的語言模型中的詞語;以及其中,在判定出所述第二字符串不對應(yīng)于所述基于詞語的語言模型中的詞語時,所述預(yù)測引擎被配置為將所述第二字符序列傳遞給所述被配置為根據(jù)所述字符序列生成詞段序列的單元。24.如權(quán)利要求8-10中任一項所述的系統(tǒng),其中所述字典樹是概率字典樹,并且所述語言模型進一步包括按鍵向量,其中所述詞段的字符對應(yīng)于用戶輸入序列的字符的經(jīng)修改的版本。25.—種電子設(shè)備,包括:任一前述權(quán)利要求所述的系統(tǒng);以及用戶界面,其被配置為接收用戶輸入,使得用戶能夠?qū)⒆址蛄休斎氲剿鲈O(shè)備中。26.如權(quán)利要求25所述的設(shè)備,包括如權(quán)利要求17至20中任一項所述的系統(tǒng),其中所述用戶界面進一步被配置為對由所述文本預(yù)測引擎輸出的詞語進行顯示以便用戶回顧和選擇,其中所述文本預(yù)測引擎被配置為,如果選定詞語是與逐字輸入對應(yīng)的無效詞語,則用所述選定詞語更新所述候選/布隆過濾器。27.—種生成詞段語言模型的方法,包括:接收文本;在所述文本中識別詞語邊界;將所述文本拆分成由所述詞語邊界分開的詞語;將所述詞語拆分成詞段;以及生成具有詞語邊界的η元語法詞段序列。28.—種處理由用戶輸入到電子設(shè)備中的字符序列的方法,所述方法包括:根據(jù)所述字符序列生成由一個或多個詞段組成的序列;利用包括存儲有詞段序列的語言模型的文本預(yù)測引擎,來判定所述由一個或多個詞段組成的序列中的每個詞段是否對應(yīng)于所述語言模型的詞段;當所述由一個或多個詞段組成的序列中的每個詞段都對應(yīng)于所述語言模型的詞段時,從所述文本預(yù)測引擎輸出所述由一個或多個詞段組成的序列作為候選預(yù)測,而不管所述由一個或多個詞段組成的序列是否對應(yīng)于存儲的詞段序列。29.—種處理由用戶輸入到電子設(shè)備中的字符序列的方法,所述方法包括:根據(jù)所述字符序列生成由一個或多個詞段組成的序列;利用包括存儲有詞段序列的語言模型的文本預(yù)測引擎,來將由一個或多個詞段組成的序列與存儲的詞段序列進行比較;以及利用所述文本預(yù)測引擎來預(yù)測所述序列中的下一詞段。30.—種處理由用戶輸入到電子設(shè)備中的字符序列的方法,所述方法包括:根據(jù)所述字符序列生成由一個或多個詞段組成的序列;利用包括存儲有詞段序列的語言模型的文本預(yù)測引擎,來將所述由一個或多個詞段組成的序列與存儲的詞段序列進行比較;以及修改所述由一個或多個詞段組成的序列中的至少一個詞段,使得經(jīng)修改的由一個或多個詞段組成的序列匹配所述存儲的詞段序列。31.如權(quán)利要求28-30中任一項所述的方法,其中根據(jù)所述字符序列生成由一個或多個詞段組成的序列的步驟以及判定所述由一個或多個詞段組成的序列中的每個詞段是否對應(yīng)于所述語言模型的詞段的步驟是并發(fā)地實施的。32.如權(quán)利要求28-31中任一項所述的方法,其中所述語言模型包括指示詞語的開始/結(jié)束的多個詞語邊界標記。33.如權(quán)利要求28-32中任一項所述的方法,其中所述語言模型包括存儲有詞段序列的上下文模型以及存儲有由形成詞段的字符組成的序列的輸入模型。34.如權(quán)利要求33所述的方法,其中所述上下文模型包括存儲有詞段序列的η元語法圖,并且所述輸入模型包括被配置為根據(jù)字符序列生成一個或多個詞段的字典樹,并且其中所述方法包括根據(jù)字符序列生成一個或多個詞段。35.如權(quán)利要求28-34中任一項所述的方法,其中所述字符序列包括與用戶正在輸入的當前詞語有關(guān)的字符以及與所述當前詞語的上下文有關(guān)的字符,并且其中所述方法包括:利用所述分詞器來根據(jù)與所述上下文有關(guān)的字符生成由一個或多個詞段組成的序列。36.如權(quán)利要求28-35中任一項所述的方法,其中所述字符序列包括與用戶正在輸入的當前詞語有關(guān)的字符以及與所述當前詞語的上下文有關(guān)的字符,并且其中所述方法包括:利用所述語言模型來根據(jù)與所述當前詞語有關(guān)的字符生成由一個或多個詞段組成的序列。37.如權(quán)利要求29所述的或者如當從屬于權(quán)利要求29時權(quán)利要求30-36中任一項所述的方法,其中所述方法進一步包括利用所述文本預(yù)測引擎來迭代地預(yù)測所述序列中的下一詞段。38.如當從屬于權(quán)利要求32時權(quán)利要求37所述的方法,進一步包括:利用所述文本預(yù)測引擎來迭代地預(yù)測所述序列中的下一詞段直到達到術(shù)語邊界為止,以及將所述詞段序列作為詞語輸出。39.如權(quán)利要求38所述的方法,其中所述預(yù)測引擎包括候選過濾器,并且所述方法進一步包括使所述詞語通過候選過濾器來判定所述詞語是否為有效詞語。40.如權(quán)利要求39所述的方法,進一步包括丟棄無效詞語除非所述無效詞語對應(yīng)于逐字輸入,并且從所述預(yù)測引擎輸出有效詞語和與逐字輸入對應(yīng)的無效詞語。41.如權(quán)利要求28-40中任一項所述的方法,其中所述文本預(yù)測引擎進一步包括存儲有詞語序列的基于詞語的語言模型,并且所述方法進一步包括:在所述文本預(yù)測引擎處接收輸入到所述設(shè)備的字符序列;以及利用所述文本預(yù)測引擎來基于存儲的詞語序列預(yù)測一個或多個詞語。42.如權(quán)利要求28所述的方法,其中將所述由一個或多個詞段組成的序列中的每個詞段與所述語言模型的詞段進行比較進一步包括:修改所述由一個或多個詞段組成的序列中的至少一個詞段,使得經(jīng)修改的詞段匹配所述存儲的詞段序列中的詞段。43.一種處理輸入到設(shè)備中的第一字符序列的方法,所述方法包括:在所述第一字符序列中識別由一個或多個詞語組成的序列以及第二字符序列;利用存儲有詞語序列的基于詞語的語言模型來判定所述第二字符串是否對應(yīng)于所述基于詞語的語言模型中的詞語;將所述第二字符序列傳遞到被配置為根據(jù)所述第二字符序列生成詞段序列的單元;根據(jù)所述第二字符序列生成由一個或多個詞段組成的序列;利用存儲有詞段序列的詞段語言模型來判定所述由一個或多個詞段組成的序列中的每個詞段是否對應(yīng)于所述詞段語言模型的詞段;以及當所述由一個或多個詞段組成的序列中的每個詞段對應(yīng)于所述語言模型的詞段時,從所述詞段語言模型輸出所述由一個或多個詞段組成的序列作為候選預(yù)測,而不管所述由一個或多個詞段組成的序列是否對應(yīng)于存儲的詞段序列。44.一種用于將文本輸入到電子設(shè)備中的系統(tǒng),該系統(tǒng)包括:文本預(yù)測引擎,包括存儲有詞段序列的語言模型以及候選過濾器,其中所述文本預(yù)測引擎被配置為:接收字符序列;利用存儲的詞段序列來根據(jù)所述字符序列生成詞語預(yù)測;以及通過使所述詞語預(yù)測通過所述候選過濾器來判定所述詞語預(yù)測是否對應(yīng)于有效詞語。45.如權(quán)利要求44所述的系統(tǒng),其中所述語言模型包括所述候選過濾器。46.如權(quán)利要求44或45所述的系統(tǒng),其中所述候選過濾器被配置為丟棄無效詞語除非所述無效詞語對應(yīng)于逐字輸入,并且其中所述文本預(yù)測引擎被配置為輸出有效詞語和與逐字輸入對應(yīng)的無效詞語。47.如權(quán)利要求44、45或46所述的系統(tǒng),進一步包括用于顯示從所述文本預(yù)測引擎輸出的詞語預(yù)測的用戶界面,并且其中,響應(yīng)于用戶選擇作為與逐字輸入對應(yīng)的無效詞語的詞語預(yù)測,所述文本預(yù)測引擎被配置為更新所述候選過濾器以包括該詞語預(yù)測。48.如權(quán)利要求44或45中任一項所述的系統(tǒng),其中所述候選過濾器是由有效詞語構(gòu)造的布隆過濾器。49.如權(quán)利要求48所述的系統(tǒng),其中所述布隆過濾器是由與所述有效詞語對應(yīng)的字符串來構(gòu)造的,或者是由構(gòu)成所述有效詞語的詞段組合的標識符組合來構(gòu)造的。50.一種處理字符序列的方法,所述方法包括:利用存儲有詞段序列的語言模型來根據(jù)所述字符序列生成詞語預(yù)測;以及通過使所述詞語預(yù)測通過候選過濾器來判定所述詞語預(yù)測是否對應(yīng)于有效詞語。51.如權(quán)利要求50所述的方法,進一步包括:丟棄無效詞語,除非所述無效詞語對應(yīng)于逐字輸入;以及輸出有效詞語和與逐字輸入對應(yīng)的無效詞語以便用戶回顧和選擇。52.如權(quán)利要求51所述的方法,進一步包括:當詞語預(yù)測是與逐字輸入對應(yīng)的無效詞語時,響應(yīng)于用戶選擇該詞語預(yù)測而更新所述候選過濾器以包括該詞語預(yù)測。53.如權(quán)利要求50-52中任一項所述的方法,其中所述候選過濾器是布隆過濾器。54.—種用于使處理器實施權(quán)利要求28-43或50-53中任一項所述的方法的計算機程序?!疚臋n編號】G06F17/27GK105917327SQ201480067442【公開日】2016年8月31日【申請日】2014年12月11日【發(fā)明人】J·伊索-西皮萊,H·李,J·巴利,J·奧斯本【申請人】觸摸式有限公司