用于将文本输入到电子设备中的系统和方法

文档序号:10557134阅读:207来源:国知局
用于将文本输入到电子设备中的系统和方法【专利摘要】提供了用于将文本输入到电子设备中的系统。所述系统被配置为接收输入到设备中的字符序列。该系统包括被配置为根据字符序列生成词段序列的单元。该系统还包括文本预测引擎,该文本预测引擎包括存储有词段序列的语言模型。文本预测引擎被配置为接收词段序列。在第一实施例中,文本预测引擎被配置为判定词段序列中的每个词段是否对应于语言模型的存储的词段,以及当词段序列中的每个词段对应于语言模型的存储的词段时将词段序列输出作为候选预测,而不管词段序列是否对应于存储的词段序列。提供了其它各种系统和对应的方法。提供了一种系统,该系统包括词段语言模型,词段语言模型包括存储的词段序列和候选过滤器。候选过滤器用于对由词段语言模型生成的词语预测进行过滤。【专利说明】用于将文本输入到电子设备中的系统和方法
技术领域
[0001]本发明总体上涉及用于将文本输入到电子设备中的系统和方法。特别地,本发明涉及包括具有用于生成文本预测的语言模型的文本预测引擎的系统和利用这样的系统生成文本预测的方法。【
背景技术
】[0002]存在已知的基于用户输入的字符序列来预测词语的系统。该系统的一个示例是题为“用于将文本输入到电子设备中的系统和方法(Systemandmethodforinputtingtextintoelectronicdevices)”的公开号为W02010/112841的国际专利申请,该申请全文通过引用方式合并于此。W02010/112841描述了一种包括文本预测引擎的系统,文本预测引擎被配置为接收用户输入文本且利用多个语言模型生成一个或多个文本预测。[0003]如该申请所描述的,为了输入不存在于语言模型的词汇表中的术语,用户可通过将该术语逐字符地输入到系统的用户界面中来插入该术语。然后将该术语存储在动态语言模型中,使得该术语能够在以后被预测。[0004]虽然逐字的文本能够由用户输入,但如果逐字的文本不对应于语言模型的已知词语,则其将不会作为具有对应的关联概率的候选词而被预测。[0005]许多已知系统存在的问题在于,当逐字的输入不对应于系统的语言模型的已知的词语时,系统自动校正逐字的输入。[0006]通过用系统已知的替选词语建议取代逐字输入来对逐字的输入进行自动校正,会导致令人沮丧的用户文本输入体验。自动校正功能输入最可能的候选,例如当用户输入空格时,除非用户专门地指示预测词语(其是逐字文本的替选)不是他们想要输入的。[0007]已知的系统仅限于预测已知的词语(S卩,存在于系统的语言模型中的词语)。该方法存在的问题在于,系统受训练数据中所见的词汇表限制,并且因此如果逐字输入不对应于语言模型中的词语则永远不能将该逐字输入作为预测候选来提供。[0008]本发明的目的是解决上文指出的问题中的一个或多个。【
发明内容】[0009]本发明提供了根据独立权利要求1、2、3和44的系统,根据独立权利27、28、29、30、43和50的方法以及根据独立权利要求54的计算机程序。[0010]本发明的可选特征是从属权利要求的主题。[0011]参考权利要求1和28,术语‘候选预测’用于指代被提供给用户以便输入到系统中的文本预测。文本预测可对应于语言模型未知的词语或词段组合。【附图说明】[0012]图1a和Ib是根据本发明的高级预测体系结构的示意图;[0013]图2a是根据本发明的预测体系结构的通用词段语言模型的示意图;[0014]图2a’是进一步包括候选过滤器的图2a的词段语言模型的示意图;[0015]图2b是根据本发明的实施例的词段语言模型的示意图;[0016]图2c是根据本发明的实施例的词段语言模型的示意图;[0017]图2d是根据本发明的实施例的词段语言模型的示意图;[0018]图2e是根据本发明的预测体系结构的通用的基于词语的语言模型的示意图;[0019]图3是根据本发明的词段η元语法图的示意图;[0020]图4是根据本发明的‘混合’词段η元语法图的示意图;[0021]图5是根据本发明生成词段语言模型的方法的流程图;[0022]图6是根据本发明来处理电子字符序列的第一方法的流程图;[0023]图7是根据本发明来处理电子字符序列的第二方法的流程图;[0024]图8是根据本发明来处理电子字符序列的第三方法的流程图;[0025]图9是根据本发明来处理电子字符序列的第四方法的流程图;[0026]图10是根据本发明来处理电子字符序列的第四方法的流程图。【具体实施方式】[0027]—般地,而不是排他项,本发明的系统能够实现如图1a和Ib所示。[0028]图1a是根据本发明的第一系统的框图。该系统包括文本预测引擎100,该文本预测引擎100包括词段语言模型10,该词段语言模型被配置为根据用户输入的文本生成一个或多个词段预测40。如下文更详细说明的,词段语言模型10能够被配置为迭代地预测词段,使得来自文本预测引擎的输出是可以显示在电子设备的用户界面上以供用户选择的一个或多个词语预测50。[0029]图1b是根据本发明的第二系统的框图。除了词段语言模型10之外,该实施例的文本预测引擎100’还具有词语语言模型20。文本预测引擎进一步包括多语言模型(多LM)30,以根据由词段语言模型10和词语语言模型20输出的词语预测50,50”生成最终的词语预测集合55。在通过引用并入本文的WO2010/112841的第11页第I行至第12页第2行中描述了使用多LM30来对源自多个语言模型的词语预测进行组合。[0030]图1a和Ib的高级预测体系结构可以包括任意数量的如W02010/112841中所描述的附加语言模型。例如,预测体系结构可以包括通用语言模型、特定于应用的语言模型、特定于用户的(动态的)语言模型、用于不同语言(例如,韩语、芬兰语、英语等)以及任何附加的语言模型中的一个或多个,其中任意一个或多个可对应于根据本发明的词段语言模型10。[0031]词段(wordsegment)是词语中的可以与一种语言中的其它词语共用的任意部分,例如词语‘vest’、‘vesicle’、‘vehicle’、‘vegetable’、have、positive、live、lively、lovely等的词段‘ve’。词段可以包括词素(morpheme),因为很多词语共用词缀和后缀等。然而,词段比词素涵盖更多的字符组合,因为它们不必具有与它们相关联的含义。词段可以如同词素一样是一个字符的长度,例如用于使词语复数化的‘S’,并且当词语没有与其它词语共用的任何部分时可以包括词语。术语“词段”还涵盖了词语连接符,诸如所有格撇号、连字符,无论是单独地还是与其它字符组合。[0032]‘词段语言模型’10是表示在自然语言内出现的词段序列的统计概率的概率分布。因此,词段语言模型包括存储的词段序列。存储的任何给定的序列可以表示词语、词语的序列或词语的部分。在本发明中,术语‘词段语言模型’还涵盖了‘混合’语言模型,其除了存储的词段序列之外还包括存储的词语或词语序列,即使那些词语可以分解成与其它词语共用的词段。词语可嵌入到词段序列中,可以自身设在语言模型中,或者可以存储在词语序列中。词语和词段优选地通过词段语言模型不做区分地对待(S卩,词语被作为词段而对待)。[0033]‘词语语言模型’20是表示在自然语言内出现的词语序列的统计概率的概率分布。在本申请的背景下,词语语言模型仅存储完整词语的序列,即不存在对词语的分段。[0034]使用仅包括词段的语言模型存在一些缺点,因为来自这样的语言模型的词语预测会具有比词语语言模型更低的对于预测常见词语的精度。“混合”语言模型方法受益于把词段用来预测罕见词语(例如,已知词段的未知组合)同时保持对于常见词语的预测的质量。[0035]存在对最好保留不分段(bestleftun-segmented)的词语(例如一种语言的η个最频繁词语可以保留不分段)进行识别的多种方式。可替选地,对哪些词语应当保留不分段的选择可以基于词语的大小来做出,因为较长的词语具有更高的受益于分段的可能性,而较短的词语将趋于不可分段。词语可通过两种方法的组合来识别,保持较短且经常使用的词语不分段。任何其它适合的判定哪些词语应当保留不分段的方式也能够单独地使用或者与所描述的方法相结合使用,取决于预测引擎的应用。[0036]就哪些词语保持为单个单位而哪些词语分段成词段(例如,词素)而进行的选择,可取决于语言的形态拓扑结构。对于一些语言(例如,英语)保持主要存储词语和词语序列同时有一些词段序列的语言模型是有益的;而对于其它语言,具有主要包括词段和词段序列同时具有较少的词语或词语序列的语言模型更有益。[0037]世界上的语言分布在从孤立语(意指,在不同的词中,词素彼此孤立)到黏着语(其中词可包含许多子串,每个子串包含一个意义单位)的谱(spectrum)上。例如,在中国普通话(孤立语)中,人不会说“我打印了”而是说“我过去打印过”;没有任何类型的词形变化(inflect1n),没有动词词形变化(0011]_呢31:;[011)/性别/时态/复数形式/格,等等。然而,在韩语中,韩语是黏着语的示例,动词带有:时态、根据谈话对象而定的礼貌程度、根据所谈到的人而定的礼貌程度、情绪表达,等等。同样,斯瓦希里语动词包含了主语/时态/宾语/受者/否定。[0038]黏着语(包括例如韩语、芬兰语和土耳其语),由于它们的构词本质,具有多得多的词形,并且因此将主要受益于词段语言模型的使用。大多数欧洲语言出现在所述谱的中间范围的某处并且“在一定程度上”受益于词语的分段,而英语的相对简单的词形变化系统意味着,主要基于词语来对语言进行建模的方法可能更适合。[0039]为了训练词段语言模型10,文本语料库(或许多语料库)被通过(passthrough)用于词素识别的已知技术,例如在Morfessor工具箱提供的非监督的类压缩技术(unsupervisedcompress1n-1iketechnique)(http://www.cis.hut.fi/projects/morpho/)。该技术识别文本语料库中的全部词素并且得出词典,该词典能够用于从并非在文本语料库中实际上可见的词语(B卩,词素的新颖组合)中识别词素。该非监督技术使用最小描述长度编码来找到最高效地压缩文本语料库的最佳词素集合。因此,最佳‘词素’集合可能不代表真实(根据语法含义)词素集合。还可以使用替选的算法或技术,例如,监督技术(supervisedtechnique)。然而,监督技术需要带注解的数据库,并且不存在涵盖所需要支持的全部语言的适合的形态分析器或‘词语分段器’。[0040]与其说在文本语料库上利用非监督算法确定语言中的词段(例如,词素),不如说可以使用用于给定语言的预先确定的词段(例如,词素)的列表。可以使用监督算法来根据文本语料库生成语言模型概率,其中词汇表已经预先获知。对于不同的语言,预先确定的词素词汇表在品质和可用性上可能有所变化。该词汇表的品质也难以评估,这使得难以知道词汇表是否适合,或者难以在多个词汇表可用时选择最适合的词汇表。[0041]为了训练词段语言模型10,大的文本语料库被通过词素词典(例如,通过如上所述的监督或非监督技术来创建)以将每个可分词语拆分成其词段(例如,词素)。优选地,在每个词之间还添加分词符(例如4),即广映射成T以在词段和词语之间进行区分。例如,文本“Welcometoweekendspecials”可能被映射成“Weicome$to$weekend$specials$”。然后,新的语言模型10根据n元语法(n-gram)词段序列(例如,6元语法(6-gram)来训练,且包括η元语法词段序列出现的概率。η元语法图的示例以图3所示的方式来训练(其中与词段序列相关联的概率为简明起见而省去)。[0042]如从上文对词段语言模型10的描述中将理解到,对于混合方法,较大的文本语料库通过词素词典以将不是被选为保持作为一个单位的词语的每个词语拆分成其词段(例如,词素)。例如,如果‘weekend’是被选为保留不分段的词语,则对于上述示例所得出的η元语法词段和基于词语的序列将是“Weicome$to$weekend$specials”。然后,新的语言模型根据η元语法词段和词语序列(例如,6元语法)训练,且包括η元语法词段和词语序列出现的概率。以这种方式训练的η元语法图的示例在图4中图示(再一次,该概率为简明起见而被省去)。与图3不同,图4包括完整的词,完整的词在图3中分段,例如,‘wants’、‘wanted’、'means?、'meant,ο[0043]现在参考图2a描述根据词段语言模型10生成的词段预测40以及词语预测50,图2a是图1a和图1b的词段语言模型10的简化框图。[0044]存在到给定语言模型中的两个输入,当前术语输入11和上下文输入12。当前术语输入11包括系统所具有的关于系统正试图预测的术语的信息,即,用户正试图输入的术语以及与用户已经输入的在前术语有关的上下文输入。[0045]对于图2a的词段语言模型10,当前术语输入11涉及到与正在被预测的当前词段有关的任何字符,并且上下文输入12涉及到先前输入的或预测的词段(如下文更详细说明的),该先前输入的或预测的词段涉及到先前输入的词语以及先前预测/输入的当前词语的词段。字符能够由任何适合的方式来输入,可包括例如按下表示字符的单个按钮或者通过在触摸屏用户界面的键盘上的连续手势。初始输入可因此对应于用户界面上的被转换成字符的坐标集合,如通过引用方式以全文并入本文的WO2012/156686中详细描述的。[0046]本发明的语言模型包括输入语言模型,该输入语言模型以当前术语输入11作为输入,以及包括以上下文输入12作为输入的上下文语言模型。[0047]在优选的而非限制的实施例中,输入模型是字典树13,该字典树13被用当前词段输入11来查询,以根据词段输入11生成初始词段预测。如WO2010/112841的第16页第4行至第17页第14行详细描述的,字典树13可以是标准的字典树(参见WO2010/112841的图3)或近似字典树(参见WO2010/112841的图4a),其被用直接的当前词段输入11来查询。可选地,字典树I3可以是概率字典树,该概率字典树被用由当前输入生成的按键向量(KeyPressVector)来查询,如通过引用方式并入本文的WO2010/112841的第17页第16行至第20页第16行详细描述的。[0048]如WO2010/112841中描述的,按键向量能够采取字符序列上的索引概率分布列(indexedseriesofprobabilitydistribut1n)的形式。按键向量可以包括与每次击键相关联的概率分布,以将用户输入的击键中的错误纳入考虑,例如,其中当用户打算按下‘I’时,用户却按下‘k’的情况。此外,除了标点符号省略之外,按键向量和输入模型还能够用于对词语的字符输入中的错误进行校正。按键向量还能够被配置为,如果在输入模型中找到用户省去的重复的字符,则插入该字符,以在将每个字符输入到系统之后将漏掉的字符输入纳入考虑,并且能够被配置为如果用户输入的字符不在输入模型中则忽略该字符。[0049]在优选而非限制的实施例中,上下文模型是η元语法图14。上下文词段12用于查询词段η元语法图14,其示例在上文结合图3和图4进行了说明以根据上下文词段12生成初始词段预测。[0050]该系统优选地包括最终预测机制15以根据由字典树13返回的候选(初始词段预测)和词段η元语法图14来生成最终的预测集合40。最终预测机制15可以是如WO2010/112841的第24页第21行至第25页第7行所详细描述的交集机制(intersect1nmechanism),其中最终预测机制15用于计算由字典树12和词段η元语法图14返回的候选(初始词段预测)的交集而生成一个或多个最终词段预测40。然而,如下文要描述的,最终预测机制15可以取字典树和η元语法图中的一个所预测的预测候选,而不取由另一个所预测的预测候选。最终预测机制15在这方面不同于WO2010/112841的交集机制。[0051]取决于系统的使用,如下文更详细说明的,预测引擎100可被配置为输出词段预测40以供用户选择。术语词段预测40旨在涵盖除了在词段中存在从由用户输入的字符序列中看不到的字符的词段预测之外,还有词段校正/修改,以及词段的验证,如下文更详细说明的。如果词段预测40输出到用户界面以便用户选择,可能需要修改用户界面功能,例如,对于其中预测的词段40对应于在词语中间而不是在开始/结束处的词段的情况,不要插入空格或替换整个当前词语输入。[0052]在优选的实施例中,预测引擎100将输出词语预测50,因为这通常对于用户而言更直观。在该优选的实施例中,词段40迭代地预测从而生成词语预测50。每当预测了词段,词段预测40就作为上下文词段12推送到语言模型10中,以生成构成词语的词段序列中的下一词段。迭代地根据词段构建一个词的过程继续,直到全部的当前输入已经用尽并且已经达到词语边界标记$,表明已经生成完整的词。[0053]例如,如果用户已经将“Iamtranslat”输入到电子设备,上下文词段输入初始地为并且从“translat”取得当前的词段输入11。[0054]字典树13包括字符序列,当字符序列被查询用户输入时,字符序列返回一个或多个词段候选。字典树可以是任何适合的深度,包括长度为η的字符序列。例如,如果字典树具有深度五(η=5),并且用户正试图输入词语‘translated’且已经输入‘translat’,可以用输入的前五个字母‘trans’查询字典树,并且可以返回单词段‘tra’、‘tran’和‘trans’。在字典树中识别字典树的对应于词段边界的节点,使得字典树的查询返回较长词段的子串的词段。[0055]上下文证据(contextevidence)12例如使用分词器(tokeniser)被分词成词段(在“Iam”情况下其是并且语言模型10被配置为将词段序列与存储在η元语法图14中的词段序列进行比较,并且返回序列中下一词段的候选。如在精确相同的上下文需要分词(例如,在输入的每个字符上分析上下文)的许多实例中,能够临时存储上下文到词段的映射(例如,作为存储器中的高速缓存而存储)。这降低了与分析相关联的计算要求以及时间。存储在高速缓存中的数据量是预测期间的效率与可用存储器之间的权衡。[0056]η元语法图14所预测的词段将可能包括对于输入词序列并非有效的词段,例如作为存储的序列‘I$am$alive’的部分的‘ali’。对于具有许多下一词段预测的词段序列,语言模型10可被配置为返回k个最可能的下一词段预测40。为了简化示例,从η元语法图返回的4个最可能的候选可以是‘tran’、‘ali’、‘hun’和‘tired’。[0057]可选地,词段预测由字典树13生成,并且交集机制15搜索η元语法图14中以查找词段预测,来判定是否存在交集(即,它们将由字典树13和图14来预测)并且因此判定是否输出那些词段预测作为最终词段预测40。[0058]最终预测机制15被配置为根据字典树13和η元语法图14生成的预测候选生成最终的预测集合40。如WO2010/112841中详述的,最终预测机制可被配置为,通过仅保留在两个候选集合中都存在的词段(在该情况下是‘tran’),来根据字典树和η元语法图来计算两个候选集合的交集。在不存在上下文输入的情形下,词语边界标记“Γ的开始是用于确定初始上下文的上下文。然而,在优选的实施例中,最终预测机制15被配置为,如果候选也没有被η元语法图预测到,则(经由如下文所描述的后退法(back-offapproach))降低字典树预测的候选的概率(而不是仅保持由两者都生成的候选)。换言之,不存在“构成词语的词段必须对应于在单词段η元语法图14中存储的已知词段序列”的强制的上下文限制(例如,二元语法(b1-gram)限制)。因此,在具有其它词段预测的序列中的η元语法图14中不必找到利用字典树基于当前词语输入生成的词段预测。[0059]最终预测机制15被配置为将取自字典树和η元语法图的概率组合。因此,如果在该上下文之前没有看到词段,但是词段本身已知,则词段将以出现概率来预测,但是该概率将比“词段已知且在找到词段的上下文中词段已知”的情况低。[0060]在优选的实施例中,如果在给定上下文的情况下没有看到词段,则采用‘后退法’。例如,如果给定下面的词段W1W2W3的上下文而正预测词段W4,并且η元语法图不包括存储的对应于W1W2W3W4的序列,则语言模型将搜索对应于缩减上下文序列的逐渐缩短的序列W2W3W4,W3W4,以及随后单独的W4(如果语言模型包括一元语法图)。每当系统必须在要搜索的上下文后退,最终预测机制15将‘后退’惩罚应用于在给定上下文情况下预测W4的概率(其可以是固定惩罚,例如通过乘以固定值)。[0061]然后,从最终预测机制15返回的词段预测40的集合(例如,‘tran’)用作生成下一词段预测40的上下文,例如,η元语法图14将被查询跟随的词段序列“I$a!4tran”,以生成词段序列中的下一词段的预测40。[0062]通过迭代地生成词段,语言模型10能够提供词段序列中的下一词段,其中在词段中存在用户输入的字符中看不到的字符,该字符根据本示例涉及到用户还没有输入但是打算输入的‘ing’。如果最终预测机制15被配置为仅保持在两个集合中都出现的词段,则其迫使词段为在给定当前输入11和上下文12情况下已知的词段,S卩,对应于存储在η元语法图14中的序列的词段序列。[0063]按照相同的示例,语言模型10可能已经基于字符输入序列生成了以下词段序列:“tran-slat”。通过将序列“I$am$translat”与n元语法图14中的存储的词段序列进行比较,η元语法词段图可以返回“ing”和“or”。对于该示例,对于最终词段预测不存在当前输入11,因此词段预测40是通过与η元语法图14中存储的词段序列进行比较而生成的。如果输入已经被以不同方式拆分,例如,如果对于‘translat’预测的迭代词段是‘tr’,‘ans’和‘la’,贝ft’是当前词语输入11,并且最终词段的词段预测40将基于来自输入ll‘t’(使用字典树)和来自上下文13‘transla’(使用η元语法图)的词段预测。[0064]假设词语边界指示符“Γ跟着每个词段预测‘ing’和‘or’,则从语言模型输出的词语预测50将是“translating〗”和“translator〗”。因此,当全部输入已经用尽且词语边界已经被预测到时,语言模型输出词语预测。如上文的示例显而易见的,如果用户仅部分地输入词,则构成词语的词段序列将具有比用户输入的更大数量的字符,因为上述过程继续词段迭代直至达到词语边界。[0065]从上文将理解,词段语言模型10被配置为识别给定的输入证据源11中的多个可能的词段序列,并且预测一个或多个附加的词段40,从而预测一个或多个词语50(其已经根据不同的词段序列构建)。对于任何给定的字符序列,给定的字符序列可以拆分成多个词段序列。[0066]对于采用按键向量的词段语言模型10,语言模型10被配置为能够输出词段序列,其中已经相对于输入字符序列的字符修改词段的字符。这是因为,按键向量考虑到输入字符序列可以不确切地对应于用户所意图的,也即,在用户已经犯错的情况下,不管是因为他们不知道正确的拼写而有意地,或者例如由于按下错误的按键而无意地。因此,语言模型10还被配置为根据与正在被输入的当前词语/词段有关的输入字符序列来预测经修改的或校正后的词段。因此,如果用户已经误拼词语,则语言模型10也可以预测具有比用户输入的字符序列少的字符的词语。例如,如果用户键入“hellno”,则系统将生成“hello$”作为词语预测50。按键向量和字典树13考虑到如下事实:‘η’应当是‘O’,重复的‘o’应当被忽略,或者序列中的‘η’应当忽略。词语边界标记$可以从字典树、η元语法图或两者来预测。如参考下面的图2b所论述的,还可以从本发明的系统来预测“hell$no$”。[0067]预测过程的每次迭代可以得到具有不同概率的多个词段预测候选40。这可能得到大量的可能的词段序列并且因此得到对于识别全部的候选词语50及其概率的显著的计算复杂度。因此,可以采用最小概率的阈值、迭代次数、词段数量等的阈值来防止这样的耗时的词语完成。阈值可以是静态值(例如,4次迭代)或者基于搜索树或其它参数(其可以包括技术设备能力,诸如存储器、处理能力、可供下载的存储,等等)的大小的动态值。[0068]上述过程能够扩展以推导用户输入的字符序列中的空格(或其它术语边界定界符),其中用户打算输入两个以上的词语,但是已经(错误地或者有意地)丢失了两个输入字符之间的空格。图2b示出了图2a的语言模型,通过几个决策步骤示出了词段语言模型1b如何能够被用于生成包括由一个或多个术语边界分开的两个以上词语的文本预测50’,以及单个词语预测。由于两个以上术语的用户字符输入将包括比单个词语多的字符,系统被配置为首先判定是否已经预测到词语的末尾,即是否利用词段预测到术语边界$。如果语言模型1b判定没有达到词语边界(N),则预测的词段被作为上下文输入(连同先前的任何词段)传回到语言模型。如果语言模型1b判定出存在词语边界(Y),则语言模型1b判定已经预测到词语50。语言模型1b被配置为判定是否存在更多的输入。如果不存在另外的输入的文本(N),则预测的词语50被输出作为文本预测50’。如果存在另外的输入(Y),则语言模型1b根据预测的词语50来预测接下来可能是什么词段40,S卩,预测词语50作为上下文12被传回通过η元语法图14。该过程如上所述迭代词段,直到再次达到词语边界并且不存在进一步的输入。例如,如果用户已经输入字符‘homeco’,则图2b的语言模型1b将生成‘homecoming’和‘homecoming’以及其它预测。‘homecoming’将会是已经通过迭代过程生成的从而生成词语50,该词语当全部输入已经用尽且语言模型已经预测到词语边界时被输出。‘homecoming’将会是通过语言模型生成的,语言模型在全部输入用尽之前判定词语中断,并且因此利用预测词语(‘home’)50作为用于下一词段预测的上下文。因此,图2b的文本预测50’可以包括由一个或多个术语边界分开的两个以上词语的序列的预测,以及单个词语预测50。[0069]词段语言模型10(参考图2a和2b所描述的)可以通过上述过程来输出无效词语(即,词段序列中的词段的组合,其没有出现在语言中,但是可能出现在η元语法词段图中),因为该过程依赖于词段组合的统计可能性,而不是依赖于词语的词典。系统的该性质是优选的:自然语言中的词语由词素构成,其中许多重复于不同词语中(例如,常见词缀、词干、前缀)。即使在非常大的文本语料库中(用作训练数据),也可能找不到词素的有效组合,或者频率如此之低以至于不包括在最终词汇表中(例如,由于存储器约束)。对于具有较大词汇表的语言,例如芬兰语和韩语,情况尤其如此。这同样适用于词素关于附近词语(例如,罗曼语族中的词性或名词和形容词的多种匹配)而不同的语言。然而,可以利用候选过滤器60来过滤词语和文本候选50、50’,以去除无效词语。例如,候选过滤器60可被配置为将图2a的候选词语50与词典或词语进行比较以丢弃无效词语,其中候选过滤器输出经过滤的词语预测50’(如图2a’所示)。[0070]在优选的实施例中,候选过滤器60是布隆过滤器。布隆过滤器能够利用有效词语构成,其可以包括利用每个有效词语的字符序列、每个有效词语的词段序列或者与每个有效词语的词段序列对应的标识符序列来构造布隆过滤器。上下文图的每个词段可各自被提供标识符。因此,当词语已经通过语言模型生成时,标识符的组合对应于构成词语的词段的组合。通过利用有效词语的标识符组合来构造布隆过滤器,用户输入的文本可被更高效地处理成最终过滤器词语预测。[0071]然后,通过布隆过滤器60来过滤词段语言模型10输出的词语候选50,其中布隆过滤器60中没有出现的任何词语候选50被作为无效词语而丢弃。[0072]使用布隆过滤器的优点在于,其是存储器高效的,计算上高效的,并且其不会返回伪否定(布隆过滤器的特性)。因此,布隆过滤器50将在词是有效的情况下永不会将该词作为无效的而拒绝。[0073]图2c和2d示出了词段语言模型10b,1c的两种可能的布置,该词段语言模型包括用于处理可包括具有推导的术语边界的两个以上词语的文本预测的候选过滤器60。由于包含了候选过滤器60,语言模型不同于图2b的,并且由于候选词语通过候选过滤器60的阶段而彼此不同。[0074]参考图2c的实施例,语言模型1c将词语预测50通过候选过滤器60。如果词语不是有效词语(N),则词语被丢弃或进一步在点A处理(如稍后论述的)。如果词语预测50被确定为有效词语(Y),则语言模型判定是否存在任何进一步的输入,如图2b的情况。如果存在仍要消费的进一步的输入,则有效词语50被返回作为词段η元语法图14的上下文12以判定下一词段,即下一词语的开始。如果不存在更多的输入(N),则有效词语50被输出作为最终词语预测50’。通过上述过程,用于计算由一个或多个术语边界分开的词语序列的路径被丢弃,如果预测词语50不是候选过滤器50的有效词语,则在其完成之前停止该路径的处理。[0075]参考图2d,语言模型基本上与图2b所示的相同,然而,下一预测50’通过候选过滤器60,候选过滤器60判定下一预测50’的每个词语是否有效,例如,两个以上词语的序列的每个词语是否有效。如果词语预测或词语序列的词语是有效的,则它们作为过滤的文本预测50”被输出。如果词语无效或者词语序列的词语无效,则词语或词语序列被丢弃或者在点B处进一步处理,如稍后将要描述的。[0076]虽然候选过滤器60被描述为语言模型的部分,但候选过滤器60可以是与语言模型分离的文本预测引擎100的部分,其中要过滤的预测从语言模型传递到过滤器,例如,如图2a’和2d所看到的,其中过滤器能够视为与语言模型10a、10d分离,而不改变数据中的结构或数据流。[0077]词段语言模型10,1b,1c,1d优选地被配置为生成对应于逐字用户输入的词语预测50,其中该逐字输入不对应于词段语言模型10的已知词语(S卩,由词语边界标记例如“$”包围的存储词语或存储的词段序列)。[0078]为了验证词语,直接当前输入11(8卩,不经由按键向量)优选地用于搜索字典树13。词段语言模型10迭代地预测如上所述的词段序列中的下一词段。在可选的实施例中,可以提供与逐字输入对应的修改版本的预测候选。在该实例中,字典树将是与按键向量一起使用来根据用户输入的字符序列生成多个可能的词段的概率字典树,其中不要求词段的字符直接匹配原始用户输入的文本的那些词段的字符(例如,语言模型允许字符序列的输入中的用户错误)。[0079]最终预测机制15被配置为将取自字典树和η元语法图的概率组合。因此,如果之前在该上下文中没有看到词段,但是词段本身已知,则词段将以出现概率被预测,但是该概率将比“词段已知且词段在找到该词段的上下文中已知”的情况更低。[0080]如上所述,如果在给定上下文中没有看到词段,则采用‘后退法’(该后退法还能够用于如上所述的正常词段预测,但是对于词段验证最相关)。[0081]由于语言模型10,10b,10c,1d将逐字输入作为词语预测50来验证,所以语言模型10,10b,10c,1d被配置为用出现在序列末尾的词语边界标记(“$”)来确定词段序列的概率。[0082]在一个实施例中,如果与词段语言模型10,10b,10c,1d(或者词语语言模型20,如下文将描述的)生成的词语预测50相关联的概率落到阈值以下,则可以实施逐字输入的验证。[0083]因此,词段语言模型10,1b,1c,1d通过标准的迭代过程来预测词语50,除非与最可能的词语预测50相关联的概率落到预定阈值以下。如果概率落到该预定阈值以下,则词段语言模型10,1b,1c,1d用于验证逐字文本作为词语预测50,如上所述。词段语言模型10,10b,10c,10d被配置为确定置信得分,P(预测)/P(验证)。如果置信得分大于预计算阈值,则语言模型输出由初始过程生成的词语预测50(其中优选地,最终预测机制15仅保留由字典树和η元语法图14两者生成的预测的词段)。如果置信值小于预计算阈值,则逐字输入被输出(具有或不具有由第一过程生成的词语预测50)。阈值优选地根据具有目标性能指标的样本数据集合计算。[0084]在备选的实施例中,预测引擎可被配置为对于每个用户输入的文本输入实施逐字文本的验证。随后,对于最上面的k个预测候选,实施上述的比率比较。比率值判定逐字文本是否作为预测候选(本身或者连同其它预测候选一起)被提供。[0085]参考图2b,图2c和图2d,如果如上所述逐字输入保留在词语预测50中,逐字输入将出现在文本预测50’中,或者作为词语预测,或者作为具有推导的术语边界的词语预测序列中的词语预测。[0086]对于图2a’,2c和2d的情况,由于逐字输入不是已知词语,则其很可能被候选过滤器作为为无效的而被滤出。因此,在图2a’的候选过滤器处或者在图2c的步骤A中,语言模型优选地被配置为判定无效词语预测50(S卩,候选过滤器60丢弃的词语预测)是否对应于逐字输入(例如,通过对与逐字输入相关联的词语预测50加标签或进行识别)。如果无效词语预测不对应于逐字输入,则其被丢弃。然而,如果词语预测50对应于逐字输入,则其被保留。参考图2c,如果没有进一步输入要处理,则逐字输入,连同已经通过候选过滤器60处理步骤的有效文本预测一起被输出作为文本预测50’。如果有进一步的输入要处理,则与逐字输入有关的该词语预测50能够用作用于生成下一词段的上下文12,(在迭代过程后)得出包括逐字预测、一个或多个词语预测和推导的空格在内的序列预测。该序列预测被输出作为文本预测50’,假设序列具有足以被保留的高的关联概率)。[0087]参考图2d,候选过滤器60过滤文本预测50’。在文本预测50’包括预测序列的情况下,两个以上的术语被推导的术语边界分开,如果在通过候选过滤器时序列的一个或多个词语无效,则在步骤B丢弃序列。然而,如果预测的序列被确定为包括逐字输入,则该预测的序列被输出作为过滤的文本预测50”,而不是被丢弃(假设其具有足以被保留的高的关联概率)。[0088]使用布隆过滤器用于候选过滤器60的另一优点在于,文本预测引擎能够以与逐字文本输入有关的预测词语(例如在选择以供用户输入之后)来更新语言模型的布隆过滤器60。在上述系统中,最上面的文本预测(toptextpredict1ns)50’可被输出到显示器以便用户回顾和选择。如果用户选择了包括逐字文本的词语预测50’用于输入,则该词语能够用于更新布隆过滤器。在该词语的随后输入中,词语则会通过过滤器,而不被图2a’中的过滤器丢弃,且不进行到图2c和图2d的步骤A或B。虽然结合布隆过滤器进行了说明,但是可以使用能够更新的任何候选过滤器。[0089]通过提供能够预测逐字文本作为用户希望输入的‘词语’的语言模型10,1b,1c,10d,该系统不自动地将逐字文本校正成语言模型的已知词语,从而提供输入到系统的更精确的词语预测50(自动地或者经由用户选择)。[0090]词段语言模型的格式能够匹配词语语言模型的格式,这允许文本预测引擎使用两种类型的语言模型,如图1b的系统所示。在图1b的系统中,预测引擎100’优选地包括多语言模型30(多LM)以将源自图2a的词段语言模型10的词语预测50和源自图2e的词语语言模型20的词语预测51进行组合,以生成可提供给用户界面以便显示和用户选择的最终预测55(或者可以简单地插入最可能的预测)。最终预测55可以包括总体最可能的预测的一个集合(即,规定数量的)。多LM30通过将来自每个语言模型10,20的预测50,51插入有序关联结构来生成最终预测55,如通过引用并入本文的WO2010/112841的第11页的第I行至第12页的第2行中详细描述的。词语预测50,50”可并发地生成,或者来自词段语言模型10的词语预测50可以在词语预测51’已根据词语语言模型20生成之后生成(或者反之亦然)。虽然描述为包括图2a的词段语言模型,则词段语言模型可以是参考图2a’,2b,2c或2d所描述的。[0091]词段语言模型10因此能够与词语语言模型20相结合使用来增强与逐字文本有关的词语预测50的概率以及因此减少非期望的校正。[0092]如果需要,词段语言模型10仅需要用于验证逐字文本,其它词语预测/校正由词语语言模型20来供给。这会是有益的,因为将输入文本分词为词段更复杂(因为其使用统计算法),与基于词语的分词器不同,在许多语言中,该基于词语的分词器简单地识别词语分离符(例如广’)。如果仅用于验证逐字文本,则语言模型优选地为图2a或图2b的那些,因为不需要候选过滤器。[0093]对于图1b的系统的这样的使用,词语预测51(其可以包括校正候选)从词语语言模型20输出。如果从词语语言模型20输出的词语预测51落在某阈值以下,则如上文详述利用词段语言模型10来确定逐字词语的概率。来自词段语言模型10的逐字文本的概率(S卩,词语预测50是逐字文本的词语预测50的概率)随后能够与预测候选51中的概率合并(其中,如果逐字文本不包含在词语语言模型20内,则预测候选51可以存在或者可以不存在)。如上所述,这可以得到最可能的词语预测55是与逐字输入对应的词语预测50,而不是替选的‘校正的’词语预测51。[0094]可选地,预测引擎100’能够使得词语预测50,51同时源自两个语言模型10,20并且应用两个模型之间的缩放因子(scalingfactor),以提高与来自一个模型的词语预测相关联的概率。逐字验证步骤可因此通过用于每个用户输入文本的词段语言模型10来实施。[0095]包括基于词语的语言模型20和词段语言模型10,10b,10c,1d的系统相对于仅具有词段语言模型10,10b,10c,10d的系统具有一些优势,取决于系统的使用。例如,基于词语的语言模型20可以是在用户输入的文本上训练的动态语言模型。如果包括该系统的设备具有受限制的存储要求,则基于词语的动态语言模型优选于词段动态语言模型10,10b,10c,10d,因为词段动态语言模式将要求系统包括用于将用户输入的文本分段的机制(例如Morfessor工具箱)以训练语言模型。此外,可能存在关注于某些对象的语言模型,如果这样的语言模型被训练为词段语言模型则将失去准确性,例如基于人名和地名的语言模型等等。[0096]通过将词段语言模型10,10b,10c,1d与词语语言模型20组合,能够利用词段语言模型10来验证逐字文本,因为其包括由于词语部分的组合而增加的词语词汇表,而同时避免了由于复制基于词语的上下文所需的词段η元语法数量导致的预测精度的降低(因为词语语言模型20能够用于除了逐字文本的验证之外的全部)。[0097]用于词段语言模型10,10b,10c,1d预测的计算复杂度可以比词语语言模型20的计算复杂度高,因为可能有必要对于给定上下文搜索更多的路径,这使得在一些情形下由基于词语的语言模型生成词语预测且使用词段语言模型仅用于验证是有益的。[0098]最有益的是,当词段语言模型10由没有词的词段构成时,则将词语语言模型20与词段语言模型10组合,S卩非混合方法。创建词段语言模型10的混合方法克服了与纯粹词段语言模型10相关联的许多问题,减少或避免了将其与词语语言模型20组合的需要。此外,混合方法避免了将源自两个不同的语言模型的预测组合的需要,其中因为它们采用不同的证据(即,作为上下文的词语而不是词段)而难以将来自语言模型的预测组合,这会导致不同的概率规模。此外,混合语言模型比包括多个语言模型的系统在存储方面更高效。[0099]参考图2e,词语语言模型20具有与图2a的词段语言模型10相同的格式。词语语言模型20的当前输入是与用户正在输入的当前词语有关的字符。词语语言模型20的上下文12是在当前词语输入之前的被分词为词语的输入文本。[0100]返回参考图lb,多LM30可以将输入的文本分词为词段以及还有词,其将词段和词分别传递到词段语言模型10和词语语言模型20。可选地,与多LM30分离的分词器可被采用(未示出)。[0101]如图2e所示,词语语言模型20包括字典树13’(其可以是标准的字典树,近似查找树或者概率字典树)、词语η元语法图14’和用于生成词语预测50’的最终预测机制15’。在WO2010/112841中论述字典树13’、词语η元语法图14’和交集机制15’。此外,最终预测机制15’可对应于如WO2010/112841中所描述的交集机制。[0102]如上文详细说明的,本发明的词段语言模型10能够由预测引擎100,100’使用用于各种任务。如参考图1a所论述的,词段语言模型10能够用作用于生成词段预测40和/或词语预测50的基于正常词语的语言模型的替换。然而,词段语言模型10还能够与词语语言模型20联合使用,并且被调用以验证逐字文本,如关于图2a所描述的。[0103]通过使用词段语言10模型用于词语预测,整个语言能够以比词语少的词段来表达,这实现更小的语言模型或者允许访问语言的整个词语集合(否则这可能过大),尤其对于具有极大词典(韩语、芬兰语、日耳曼语族等)的语言有用。此外,词段语言模型还实现了已知词段的有效组合的预测,其中词段的该组合尚未出现在用于训练语言模型的数据中。[0104]基于词段的语言模型10将提供与具有更小存储器/存储设备的基于词语的语言模型相同大小的词汇表。因此,对于相同大小的内存容量,基于词段的语言模型10能够在基于词语的语言模型20上提供增加的词汇表。[0105]由于增加的词汇表和词语组合,上述优点可以使得增大预测精度。[0106]现在将参考图5-10来描述本发明的方法,图5-10是根据本发明的方法的示意流程图。[0107]参考图5,本发明提供了生成词段语言模型的方法,在本发明的上下文中,该词段语言模型可以意味着由源文本生成静态语言模型或者由用户输入的文本构建动态用户语言模型。该方法包括:接收文本(500),该文本可以是源文本或用户输入文本,在文本中识别词语边界以将文本拆分成由词语边界分开的词语(510)(例如,通过识别空格字符,使用分词器将文本分成词语),以及将词语拆分成词段(520)(例如,使用Morfessor工具箱)。该方法还包括生成具有词语边界的η元语法词段序列(530)。[0108]图6示出了根据本发明的第一处理方法。特别地,该方法是用于当输入的‘词语’不是词语语言模型20的识别词语或者词段语言模型10的词段的已知组合时,将逐字输入作为‘词语’预测来验证,如上文结合图1a和图1b所示出的系统描述的。该方法包括:根据字符序列生成由一个或多个词段组成的序列(600)。该词段序列优选地通过迭代地预测词段来生成,如上所述。该方法进一步包括判定由一个或多个词段组成的序列中的每个词段是否对应于存储有词段序列的语言模型的词段(610)。[0109]该方法进一步包括:当由一个或多个词段组成的序列中的每个词段都对应于语言模型的词段时,输出由一个或多个词段组成的序列作为候选预测(即,用户要输入的词语),而不管由一个或多个词段组成的序列是否对应于存储的词段序列(620)。因此,该方法能够生成与逐字文本有关的‘词语,预测,该‘词语,预测能够输出给用户,防止逐字文本的自动校正。该方法步骤的细节在上文结合系统进行了说明。[0110]图7示出了根据本发明的处理文本的第二方法。该方法涉及到使用词段语言模型10来预测由一个或多个词段组成的序列中的下一词段,如上文结合图2a所示的语言模型以及图1a的系统中所示的语言模型来描述的。如同第一方法,第二方法包括:根据字符序列生成由一个或多个词段组成的序列(700)。然而,该方法包括:将由一个或多个词段组成的序列与存储的词段序列进行比较(710),以及基于存储的序列来预测序列中的下一词段(720)。[0111]图8示出了根据本发明处理文本的第三方法,其涉及到预测由一个或多个词段组成的序列的修改后或校正的词段。第三方法包括第二方法的生成步骤800以及比较步骤810,但是不同在于,其包括修改由一个或多个词段组成的序列中的至少一个词段,使得经修改的由一个或多个词段组成的序列匹配所述存储的词段序列的步骤820。[0112]如图9所示,根据本发明的处理文本的第四方法涉及到使用词语语言模型20来预测词语50’以及使用词段语言模型20来验证逐字输入,例如如果由词语语言模型20预测的词语的概率落到阈值以下,如上文结合图2b的系统所论述的。该方法因此包括:在第一字符序列中识别由一个或多个词语组成的序列以及第二字符序列(900);利用存储有词语序列的基于词语的语言模型,来判定第二字符串是否对应于基于词语的语言模型的词语(910);将第二字符序列传递到被配置为由第二字符序列生成词段序列的单元(920);根据第二字符序列生成由一个或多个词段组成的序列930;利用存储有词段序列的词段语言模型,来判定由一个或多个词段组成的序列中的每个词段是否对应于语言模型的词段(940);以及当由一个或多个词段组成的序列中的每个词段对应于词段语言模型的词段时,从词段语言模型输出由一个或多个词段组成的序列作为候选预测,而不管由一个或多个词段组成的序列是否对应于存储的词段序列(950)。[0113]如图10所示,处理字符序列的第五方法包括:(1000):利用存储有词段序列的语言模型来根据字符序列预测词语预测;以及(2000):通过使词语预测通过候选过滤器来判定词语预测是否对应于有效词语。如结合本发明的系统所描述的,候选过滤器优选地是布隆过滤器。[0114]本发明的方法的其它方面能够通过类比上面的系统描述来轻易地确定。[0115]本发明还提供了计算机程序,或者包括存储有计算机程序装置的计算机可读介质的计算机程序产品,计算机程序装置用于使得处理器实施根据本发明的一个或多个方法。[0116]计算机程序产品可以是存储有计算机程序手段的数据载体,计算机程序手段用于使得数据载体之外的处理器,即电子设备的处理器,来实施根据本发明的方法。计算机程序或计算机程序产品可供下载,例如通过互联网或其它可用网络从数据载体或者从供应者处,例如作为应用下载到移动设备(诸如移动电话)上,或者下载到计算机、移动设备或包括一旦下载就用于执行计算机程序手段的处理器的计算机。[0117]将理解的是,该说明仅通过示例的方式;可以对所描述的实施例进行改动和修改,而不偏离如权利要求中限定的本发明的范围。【主权项】1.一种用于将文本输入到电子设备中的系统,所述系统被配置为接收由用户输入到所述设备中的字符序列,所述系统包括:被配置为根据所述字符序列生成词段序列的单元;文本预测引擎,包括存储有词段序列的语言模型,所述文本预测引擎被配置为接收所述词段序列并且判定所述词段序列中的每个词段是否对应于所述语言模型的存储的词段;其中,所述文本预测引擎被配置为:当所述词段序列中的每个词段对应于所述语言模型的存储的词段时,输出所述词段序列作为候选预测,而不管所述词段序列是否对应于存储的词段序列。2.—种用于将文本输入到电子设备中的系统,所述系统被配置为接收由用户输入到所述设备中的字符序列,所述系统包括:被配置为根据所述字符序列生成由一个或多个词段组成的序列的单元;文本预测引擎,包括存储有词段序列的语言模型,所述文本预测引擎被配置为:接收所述由一个或多个词段组成的序列;将所述由一个或多个词段组成的序列与存储的词段序列进行比较;以及基于存储的词段序列来预测所述序列中的下一词段。3.—种用于将文本输入到电子设备中的系统,所述系统被配置为接收由用户输入到所述设备中的字符序列,所述系统包括:被配置为根据所述字符序列生成由一个或多个词段组成的序列的单元;文本预测引擎,包括存储有词段序列的语言模型,所述文本预测引擎被配置为:接收所述由一个或多个词段组成的序列;将所述由一个或多个词段组成的序列与存储的词段序列进行比较;以及基于存储的词段序列来修改所述由一个或多个词段组成的序列的至少一个所述词段,使得经修改的由一个或多个词段组成的序列匹配所述存储的词段序列。4.如任一前述权利要求所述的系统,其中所述语言模型包括指示词语的开始/结束的多个词语边界标记。5.如任一前述权利要求所述的系统,其中所述语言模型包括存储有词段序列的上下文模型以及存储有由形成词段的字符组成的序列的输入模型。6.如权利要求5所述的系统,其中所述上下文模型包括存储有词段序列的η元语法图。7.如权利要求6所述的系统,其中所述η元语法图包括指示词语的开始/结束的所述多个词语边界标记。8.如权利要求5、6或7所述的系统,其中所述输入模型包括被配置为根据字符序列生成一个或多个词段的字典树。9.如权利要求8所述的系统,其中所述字典树包括多个词段边界标记。10.如当从属于权利要求1时权利要求8或9所述的系统,其中所述文本预测引擎被配置为判定所述词段序列中的每个词段是否对应于所述字典树的存储的词段。11.如任一前述权利要求所述的系统,其中所述字符序列包括与用户正在输入的当前词语有关的字符以及与该当前词语的上下文有关的字符。12.如权利要求11所述的系统,其中分词器被配置为根据与所述上下文有关的字符生成由一个或多个词段组成的序列。13.如权利要求11或12所述的系统,其中所述语言模型被配置为根据与所述当前词语有关的字符生成由一个或多个词段组成的序列。14.如权利要求2所述的或者如当从属于权利要求2时权利要求4-13中任一项所述的系统,其中所述文本预测引擎被配置为迭代地预测所述序列中的下一词段。15.如当从属于权利要求4或7时权利要求14所述的系统,其中所述文本预测引擎被配置为迭代地预测所述序列中的下一词段直到达到术语边界为止,此时所述文本预测引擎将所述词段序列作为词语输出。16.如权利要求15所述的系统,其中所述文本预测引擎进一步包括候选过滤器,并且其中所述文本预测引擎被配置为使所述词语通过所述候选过滤器以判定所述词语是否为有效词语。17.如权利要求16所述的系统,其中所述候选过滤器被配置为丢弃无效词语除非该无效词语对应于逐字输入,并且其中,有效词语和与逐字输入对应的无效词语从所述文本预测引擎输出。18.如权利要求16或17所述的系统,其中所述语言模型包括所述候选过滤器。19.如权利要求16、17或18所述的系统,其中所述候选过滤器是由有效词语构造的布隆过滤器。20.如权利要求19所述的系统,其中所述布隆过滤器是由与所述有效词语对应的字符串来构造的,或者是由构成所述有效词语的词段组合的标识符组合来构造的。21.如任一前述权利要求所述的系统,其中所述文本预测引擎进一步包括存储有词语序列的基于词语的语言模型。22.如权利要求21所述的系统,其中所述文本预测引擎被配置为接收输入到所述设备的字符序列以及基于存储的词语序列预测一个或多个词语。23.如权利要求1所述的系统,其被配置为接收第一字符序列,其中所述系统进一步包括被配置为在所述第一字符序列中识别由一个或多个词语组成的序列以及第二字符序列的单元;其中所述文本预测引擎进一步包括存储有词语序列的基于词语的语言模型,并且所述文本预测引擎被配置为判定所述第二字符串是否对应于所述基于词语的语言模型中的词语;以及其中,在判定出所述第二字符串不对应于所述基于词语的语言模型中的词语时,所述预测引擎被配置为将所述第二字符序列传递给所述被配置为根据所述字符序列生成词段序列的单元。24.如权利要求8-10中任一项所述的系统,其中所述字典树是概率字典树,并且所述语言模型进一步包括按键向量,其中所述词段的字符对应于用户输入序列的字符的经修改的版本。25.—种电子设备,包括:任一前述权利要求所述的系统;以及用户界面,其被配置为接收用户输入,使得用户能够将字符序列输入到所述设备中。26.如权利要求25所述的设备,包括如权利要求17至20中任一项所述的系统,其中所述用户界面进一步被配置为对由所述文本预测引擎输出的词语进行显示以便用户回顾和选择,其中所述文本预测引擎被配置为,如果选定词语是与逐字输入对应的无效词语,则用所述选定词语更新所述候选/布隆过滤器。27.—种生成词段语言模型的方法,包括:接收文本;在所述文本中识别词语边界;将所述文本拆分成由所述词语边界分开的词语;将所述词语拆分成词段;以及生成具有词语边界的η元语法词段序列。28.—种处理由用户输入到电子设备中的字符序列的方法,所述方法包括:根据所述字符序列生成由一个或多个词段组成的序列;利用包括存储有词段序列的语言模型的文本预测引擎,来判定所述由一个或多个词段组成的序列中的每个词段是否对应于所述语言模型的词段;当所述由一个或多个词段组成的序列中的每个词段都对应于所述语言模型的词段时,从所述文本预测引擎输出所述由一个或多个词段组成的序列作为候选预测,而不管所述由一个或多个词段组成的序列是否对应于存储的词段序列。29.—种处理由用户输入到电子设备中的字符序列的方法,所述方法包括:根据所述字符序列生成由一个或多个词段组成的序列;利用包括存储有词段序列的语言模型的文本预测引擎,来将由一个或多个词段组成的序列与存储的词段序列进行比较;以及利用所述文本预测引擎来预测所述序列中的下一词段。30.—种处理由用户输入到电子设备中的字符序列的方法,所述方法包括:根据所述字符序列生成由一个或多个词段组成的序列;利用包括存储有词段序列的语言模型的文本预测引擎,来将所述由一个或多个词段组成的序列与存储的词段序列进行比较;以及修改所述由一个或多个词段组成的序列中的至少一个词段,使得经修改的由一个或多个词段组成的序列匹配所述存储的词段序列。31.如权利要求28-30中任一项所述的方法,其中根据所述字符序列生成由一个或多个词段组成的序列的步骤以及判定所述由一个或多个词段组成的序列中的每个词段是否对应于所述语言模型的词段的步骤是并发地实施的。32.如权利要求28-31中任一项所述的方法,其中所述语言模型包括指示词语的开始/结束的多个词语边界标记。33.如权利要求28-32中任一项所述的方法,其中所述语言模型包括存储有词段序列的上下文模型以及存储有由形成词段的字符组成的序列的输入模型。34.如权利要求33所述的方法,其中所述上下文模型包括存储有词段序列的η元语法图,并且所述输入模型包括被配置为根据字符序列生成一个或多个词段的字典树,并且其中所述方法包括根据字符序列生成一个或多个词段。35.如权利要求28-34中任一项所述的方法,其中所述字符序列包括与用户正在输入的当前词语有关的字符以及与所述当前词语的上下文有关的字符,并且其中所述方法包括:利用所述分词器来根据与所述上下文有关的字符生成由一个或多个词段组成的序列。36.如权利要求28-35中任一项所述的方法,其中所述字符序列包括与用户正在输入的当前词语有关的字符以及与所述当前词语的上下文有关的字符,并且其中所述方法包括:利用所述语言模型来根据与所述当前词语有关的字符生成由一个或多个词段组成的序列。37.如权利要求29所述的或者如当从属于权利要求29时权利要求30-36中任一项所述的方法,其中所述方法进一步包括利用所述文本预测引擎来迭代地预测所述序列中的下一词段。38.如当从属于权利要求32时权利要求37所述的方法,进一步包括:利用所述文本预测引擎来迭代地预测所述序列中的下一词段直到达到术语边界为止,以及将所述词段序列作为词语输出。39.如权利要求38所述的方法,其中所述预测引擎包括候选过滤器,并且所述方法进一步包括使所述词语通过候选过滤器来判定所述词语是否为有效词语。40.如权利要求39所述的方法,进一步包括丢弃无效词语除非所述无效词语对应于逐字输入,并且从所述预测引擎输出有效词语和与逐字输入对应的无效词语。41.如权利要求28-40中任一项所述的方法,其中所述文本预测引擎进一步包括存储有词语序列的基于词语的语言模型,并且所述方法进一步包括:在所述文本预测引擎处接收输入到所述设备的字符序列;以及利用所述文本预测引擎来基于存储的词语序列预测一个或多个词语。42.如权利要求28所述的方法,其中将所述由一个或多个词段组成的序列中的每个词段与所述语言模型的词段进行比较进一步包括:修改所述由一个或多个词段组成的序列中的至少一个词段,使得经修改的词段匹配所述存储的词段序列中的词段。43.一种处理输入到设备中的第一字符序列的方法,所述方法包括:在所述第一字符序列中识别由一个或多个词语组成的序列以及第二字符序列;利用存储有词语序列的基于词语的语言模型来判定所述第二字符串是否对应于所述基于词语的语言模型中的词语;将所述第二字符序列传递到被配置为根据所述第二字符序列生成词段序列的单元;根据所述第二字符序列生成由一个或多个词段组成的序列;利用存储有词段序列的词段语言模型来判定所述由一个或多个词段组成的序列中的每个词段是否对应于所述词段语言模型的词段;以及当所述由一个或多个词段组成的序列中的每个词段对应于所述语言模型的词段时,从所述词段语言模型输出所述由一个或多个词段组成的序列作为候选预测,而不管所述由一个或多个词段组成的序列是否对应于存储的词段序列。44.一种用于将文本输入到电子设备中的系统,该系统包括:文本预测引擎,包括存储有词段序列的语言模型以及候选过滤器,其中所述文本预测引擎被配置为:接收字符序列;利用存储的词段序列来根据所述字符序列生成词语预测;以及通过使所述词语预测通过所述候选过滤器来判定所述词语预测是否对应于有效词语。45.如权利要求44所述的系统,其中所述语言模型包括所述候选过滤器。46.如权利要求44或45所述的系统,其中所述候选过滤器被配置为丢弃无效词语除非所述无效词语对应于逐字输入,并且其中所述文本预测引擎被配置为输出有效词语和与逐字输入对应的无效词语。47.如权利要求44、45或46所述的系统,进一步包括用于显示从所述文本预测引擎输出的词语预测的用户界面,并且其中,响应于用户选择作为与逐字输入对应的无效词语的词语预测,所述文本预测引擎被配置为更新所述候选过滤器以包括该词语预测。48.如权利要求44或45中任一项所述的系统,其中所述候选过滤器是由有效词语构造的布隆过滤器。49.如权利要求48所述的系统,其中所述布隆过滤器是由与所述有效词语对应的字符串来构造的,或者是由构成所述有效词语的词段组合的标识符组合来构造的。50.一种处理字符序列的方法,所述方法包括:利用存储有词段序列的语言模型来根据所述字符序列生成词语预测;以及通过使所述词语预测通过候选过滤器来判定所述词语预测是否对应于有效词语。51.如权利要求50所述的方法,进一步包括:丢弃无效词语,除非所述无效词语对应于逐字输入;以及输出有效词语和与逐字输入对应的无效词语以便用户回顾和选择。52.如权利要求51所述的方法,进一步包括:当词语预测是与逐字输入对应的无效词语时,响应于用户选择该词语预测而更新所述候选过滤器以包括该词语预测。53.如权利要求50-52中任一项所述的方法,其中所述候选过滤器是布隆过滤器。54.—种用于使处理器实施权利要求28-43或50-53中任一项所述的方法的计算机程序。【文档编号】G06F17/27GK105917327SQ201480067442【公开日】2016年8月31日【申请日】2014年12月11日【发明人】J·伊索-西皮莱,H·李,J·巴利,J·奥斯本【申请人】触摸式有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1