专利名称:拼写检查功能以及相关的手持电子设备的制作方法
拼写检査功能以及相关的手持电子设备技术领域该披露和要求的概念大体上涉及手持电子设备,更为特别地,涉 及手持电子设备上的拼写检査功能。
背景技术:
已知众多类型的手持电子设备。这样的手持电子设备的例子包括,例如,个人数字助理(PDA)、手持电脑、双向寻呼机、移动电话等。 许多手持电子设备也具有无线通信能力的特征,尽管许多这样的手持 电子设备是单机设备,其无需和其它设备通信即可运行。拼写检查功能尤其难以在手持电子设备上实现。由于存储容量的 限制和处理能力的限制,拼写检查功能的实现通常非常有限或者根本 没有实现。以前的在手持电子设备上实现拼写检查技术的努力并非没 有限制,由于它们时常地产生不完善的和/或不适当的结果,这些结果 时常地使发生所生产的设备难以使用。因此,需要提供一种改进的手 持电子设备和在其上实现的改进的拼写检査功能。
该披露和要求的概念的完全理解可以通过结合附图阅读以下的描述而获得,在附图中-图1是根据披露和要求的概念的示例的手持电子设备的前视图,基于该概念执行根据披露和要求的概念的改进方法; 图2是图1的手持电子设备的示意性的描述; 图3是图1的手持电子设备的存储器的示意性的描述; 图4是描述在图1的改进的手持电子设备上实现的根据披露和要求概念的拼写检查功能的某些方面的示例流程图;图5是描述当第一应用程序在手持电子设备上激活时,由改进的拼写检査功能提供的用户界面的某些方面的示例屏幕截图-,图6是描述当第一应用程序在手持电子设备上激活时,由改进的拼写检查功能提供的用户界面的某些方面的另一个屏幕截图;图6A是描述当第二应用程序在手持电子设备上激活时,由改进的拼写检查功能提供的用户界面的某些方面的另一个屏幕截图;图7A和图7B描述示出了关于文本输入(entry)的建议拼写检查解释的识别的拼写检查功能的某些方面的示例流程图;图8描述关于针对语言数据在存储器中搜索的数据源的拼写检査功能的其它方面;图9描述关于向某些建议拼写检查解释应用优先选择(preference)的拼写检查功能的其它方面;图10描述关于改变文本输入的后缀部分的一种方式的拼写检査功能的其它方面;图IOA描述关于改变文本输入的后缀部分的另一种方式的拼写检查功能的其它方面;以及图11描述关于向由特定拼写检査算法产生的建议拼写检查解释 应用优先选择的拼写检査功能的其它方面。在整个说明书中,类似的数字代表类似的元件。
具体实施方式
根据披露和要求的概念的改进的手持电子设备4大体示出在图1 中,并且示意性地在图2中进行了描述。改进的手持电子设备4包括 外壳6,在外壳6上具有输入装置8、输出装置12和处理器装置16。 输入装置8提供输入到处理器装置16。处理器装置16提供输出信号 到输出装置12。输入装置8包括键盘20和轨迹球24。这里描述的实施例中的键 盘20包括多个键26,每个键26都可驱动以提供输入到处理器装置16。 轨迹球24在所有方向上可自由旋转,以提供所有方向上的导航输入和 其它输入到处理器装置16,并且另外地,在通常朝向手持电子设备的 方向上是可平移的,以提供其它输入,例如选择输入。键26和指轮24作为输入构件,其可驱动以提供输入到处理器装置16。键26包括多个键26,键26分配有例如拉丁字母和/或阿拉伯数字 的字符。键26进一步包括〈MENU〉键52、 〈ESCAPE〉键56、和 〈ENTER〉键60。示例输出装置12包括显示器32。其它没有在此特别描述的输入构件的例子包括例如鼠标或滚轮, 用于提供导航输入,诸如可以通过显示器32上光标的移动反映的导航 输入,以及例如选择输入的其它输入。其它示例输入构件还可以包括 触摸敏感显示器、用于在显示菜单选项的触摸敏感显示器上进行菜单 输入选择的记手写笔和/或图形用户界面(GUI)的软按钮、位于手持 电子设备4表面上的硬按钮等。其它输出设备的例子可以包括触摸敏 感显示器、音频扬声器等。处理器装置16包括处理器36和存储器40。处理器36可以是例 如且不限于与存储器40接口连接的微处理器(pP)。存储器40可以是 多种类型中的任何一种或多种的内和/或外存储介质,例如不限于 RAM、 ROM、 EPROM(s)、 FLASH等,提供存储寄存器以用于数据存 储,例如,以计算机的内存区的方式,并且可以是易失性存储器和非 易失性存储器。存储器40中存储了许多可以在处理器36上执行的例 程44。如这里所使用的,表述"许多"及其变形应该广泛地指非零数量, 包括数量一。程序44包括拼写检査功能44和其它功能。图3是存储器40的示意性描述。可以看出,存储器40包括一般 词(generic word)列表104、新词数据库108和地址簿112以及其它 数据源116,该其它数据源116在这里统称语言数据源。 一般词列表 104中存储有多个语言对象120和多个频率对象124。在当前的示例实 施例中,语言对象120具有词的形式。每个语言对象120和具有指示 语言对象120在语言中的相对频率的频率值的频率对象124相关联。 在当前的实施例中,示例描述的语言是英语, 一般词列表104具有大 概35,000个语言对象120。 一般词列表104是完全不受侵犯的,意味 着存储于其中的数据是静态的且不可变更的。 一般词列表104的静态 性质便于在其中进行搜索。新词数据库108中同样地存储有多个语言对象120和多个相关联的频率对象124。该语言对象120表示拼写检查功能44"学习"的新词。 例如,新词数据库108中的新的语言对象120可以是尚未作为一般词 列表104中的语言对象120己经存在的词,而是被用户在手持电子设 备4上输入一次或多次的词。 一旦在新词数据库108中存储了新的语 言对象120,系统典型地也存储具有相对较大频率值的相关联的频率 对象124,所述相对较大频率值是在可适用的频率范围的前1/3或1/4 的频率值。在当前的实施例中,频率范围是0 — 65,535,即,可以以两 字节数据存储的量。地址簿112是其中存储有语言对象120和相关联的频率对象124 的数据源。其它数据源116是可选的,并可涉及其中存储有语言对象 120和相关联的频率对象124的其它语言数据源中的任何一个或多个。 新词数据库108、地址簿112和其它数据源116具有动态存储性质, 这意味着它们是可以变更的。也就是说,数据可以被增加、改变、删 除等。新词数据库108、地址簿112和其它数据源116通常在尺寸上 比一般词列表104小的多。如以下将更为详细阐明的,当检查输入到 在手持电子设备4上执行的多个应用程序的任意一个中的各种文本输 入的拼写时,存储器40中的所有语言数据源,也就是一般词列表104、 新词数据库108、地址簿112和其它数据源116被搜索以用于识别语 言结果,该语言结果也就是存储于其中的语言对象120和相关联的频 率对象124。图3描述了一示例的情况,其中语言数据源被存储在位于手持电 子设备上的存储器中,可以理解的是,任何一个或多个语言数据源可 以远离手持电子设备4而存储,这不脱离所披露和要求的概念。也就 是说,图3并不限制当前的概念,并且可以理解的是,任何一个或多 个语言数据源可供手持电子设备4使用而不必物理地存储到其上。例 如, 一个或多个语言数据源可以被存储到服务器上或可供手持电子设 备4使用的其它设备上。图4总体上描述了拼写检查功能44的基本操作。具体地,当拼写 检查功能44启动时,在204首先确定给定的文本输入是否拼错。如果 该文本输入(也就是输入的词)在存储器40中的任一语言数据源中都找不到,则确定拼错。如果可以在存储器40中的语言数据源中识别与给定文本输入相对应的语言对象120,则处理返回到204以继续确定 另一个文本输入,如同在204 —样,确定这样的另一个文本输入是否 拼错。另一方面,如果在204确定文本输入拼错,例如如果在存储器 40中不能找到与该文本输入相对应的语言对象120,则关于该拼错的 文本输入的拼写校正功能启动,如同在208 —祥。以下更为详细地描 述拼写校正功能。之后处理继续,如同在204 —样,在此评估另一个 文本输入的拼写正确性。图5大体上描述了当手持电子设备4上的词处理应用程序激活时, 由拼写检查功能44提供的拼写检查用户界面300的一些方面。图5描 述输入到由手持电子设备4上激活的特定应用程序提供的数据输入域 306的多个文本输入302。图5进一步描述了高亮显示拼错的词 "SPELLIN"的用户界面300,如同在304 —样。 一旦确定文本输入 302"SPELLIN"拼错,也就是,确定在存储器40中找不到相对应的语 言对象120,则拼写检査功能44识别拼错的文本输入302"SPELLIN" 的多个建议拼写检查解释312。建议拼写检查解释312被输出到显示器32上的列表308中。最上 面的建议拼写检査解释312被高亮显示,如同在316—样。<ENTER> 键60的驱动将导致拼错的文本输入302"SPELLIN"被替换为如同在 316—样当前被高亮显示的建议拼写检查解释312。之后,拼写检查功 能44继续另一个文本输入302的评估。另一方面,代替〈ENTER〉键60, 〈MENU〉键52的驱动将导致拼 写检查功能44在菜单320中显示多个可选的拼写检查选项,如同在图 6中通常描述的一样。有利地,与建议拼写检查解释312的列表308 同时输出可选的拼写检查选项的示例菜单320。可选的拼写检查选项 包括例如〈GNORE ONCE>选项324、 <IGNORE ALL〉选项328、 <ADD TO DICTIONARY〉选项332、禾口〈CANCEL SPELL CHECK〉选 项336。可以看出,<ADD TO DICTIONARY〉选项332当前被高亮显 示,如同在图6中340 —样,并且可通过〈ENTER〉键60的驱动或通 常朝向手持电子设备4的轨迹球24的驱动选择该选项。有利地,菜单320中的许多可选的拼写检查选项可通过轨迹球24 的导航输入而驱动,结合轨迹球24的驱动以高亮显示所需的拼写检查 选项,如同在340 —样,并且通过特定键26的驱动也可被驱动。例如, <IGNORE ONCE>选项324可以通过〈ESCAPE〉键56的按压-释放驱 动被驱动。CANCEL SPELL CHECK〉选项336可以通过〈ESCAPE〉键 56的按压-保持驱动被输入。如同上面所提到的,<ADD TO DICTIONARY〉选项340可以通过〈ENTER〉键60的按压一释放驱动被 驱动。其它键的驱动是显而易见的。图6A描述了当不同的例程44 (例如地址簿应用程序)在手持电 子设备4上激活时,拼写检查功能44的操作。例如,用户界面346描 述〈NAME〉数据输入域350、 〈ADDRESS〉数据输入域354 、和 〈COMMENTS〉数据输入域358 。图6A描述了拼错的文本输入 "SMITG"362被高亮显示,如同在366 —样,并且拼写检查功能44输 出拼错的文本输入"SMITG"362的建议拼写检查解释312的列表308。 拼写检査程序44在例如图6A所示的地址簿应用程序的任何数据输入 域350、 354和358都是可运行的。同样地,拼写检査功能在图5和图 6的词处理应用程序的数据输入域306中是可运行的。从而可以看出, 有利地,拼写检査功能44在许多不同应用程序的许多不同数据输入域 中都是可以运行的。当建议拼写检查解释312的列表308被输出时,如同图5和图6A 一样,关于已经被确定拼错的文本输入的编辑对话被自动打开。也就 是,除了选择一个建议拼写检查解释312来替换拼错的文本输入或驱 动〈MENU〉键52来获得可选的拼写检查选项的菜单320之外,用户还 可以仅仅驱动分配有字符的一个或多个键26来添加字符,比方说,向 词的末尾添加字符。轨迹球24向左滚动或旋转将使字符输入指针向左 移动到可输入附加字符的位置。同样地,有利地,拼写检査功能44不 需要用户专门进入编辑模式来打开拼错的文本输入的编辑对话,而是 在拼写检査功能44确定文本输入拼错时编辑对话就被自动打开。如上关于图4提到的,如果拼写检査功能44在204确定文本输入 拼错,处理继续到208,在208,拼写检查功能44的拼写校正功能启动。通常,披露和要求的概念的拼写校正功能提供文本输入要经历的 一系列有序拼写检查算法。 一旦例如通过拼写检查算法的处理,预定 数量的识别语言对象120被识别,则停止使该文本输入经历其它的拼 写检査算法。然而,可以理解,可以采用不基于一系列拼写检查算法 的其它拼写检查方法学,而不脱离本发明的概念。拼写检查算法以特定的顺序依次排列,这意味着首先根据第一拼 写检查算法处理文本输入,并且,如果被识别为文本输入的建议拼写 检査解释的语言对象120没有达到预定的数量,则根据第二拼写检査 算法处理文本输入。如果则根据第二拼写检查算法处理之后,被识别为建议拼写检查解释的语言对象120仍然没有达到预定的数量,则根据第三拼写检査算法处理文本输入,如此等等。被依次有序排列的拼写检查算法可以进一步被如下分组文本输 入将首先经历涉及字符结构的一个或多个拼写检査算法,在当前的实 施例中,该拼写检查算法是涉及忽略大小写和重音的拼写检査算法。如果被识别的语言对象120没有达到预定的数量,之后,文本输入经历涉及拼错的一个或多个拼写检查算法,在当前的实施例中,该拼写检査算法是涉及语音替换的拼写检查算法。如果被识别的语言对象120 没有达到预定的数量,之后,文本输入经历涉及输错(mistype)的一 个或多个拼写检查算法。在这一点上,"拼错"通常指的是用户关于如 何拼写一个特定词的错误,例如,用户不正确地认为词their实际上被 拼写为"thier"。相反,"输错"通常指的是用户敲错键,例如,如果用户键入了并非所需的其它输入。如果被识别的语言对象120没有达到预定的数量,之后,文本输入经历涉及特定附加规则的一个或多个拼写检查算法,该特定附加规 则通常是场合特定的附加规则。例如,在德语中有两个已知的词是 A:a/7/tow和pafeW。这两个词可以被合成一个表达式,但是为了这样做, 一个s必须被附加到两个词之间,这样得到了 b/ /to^/^/e"Z。其它类型的附加规则也是显而易见的。如果被识别的语言对象120没有达到预定的数量,之后,文本输 入经历涉及变音位(metaphone)分析的一个或多个拼写检査算法。通常,变音位是通过声音来索引词的语音算法。变音位和语音规则都是 语言特定的。从而,变音位能够使语言表达式以本质上按照语音的标 准化方式被特征化。变音位的使用可以帮助克服某些拼错错误。如果被识别的语言对象120仍旧没有达到预定的数量,之后,文 本输入经历涉及改变文本输入后缀部分的拼写检査算法。如以下将详 细描述的,可以选择性地采用用于改变文本输入后缀部分的修改算法。 同样,可以在执行前述的变音位分析之前执行后缀改变的拼写检查算 法,这也不脱离披露的和要求的概念。也就是,尽管在算法序列内的 任何时间执行后缀改变的拼写检查算法都是可以的,但是典型地,它被最后执行以作为一个退路(fallback)算法。然而,由于它们需要大 量处理功率,可能需要在执行变音位分析算法之前执行这样的退路机 制。为了更为详细地描述该过程,使给定的文本输入(例如一串字符) 经历给定的拼写检查算法,这导致一表达式(即修改的文本输入)的 产生。例如,该拼写检查算法可能关注于用语音替换取代给定的字符 串。这样,当文本输入被该算法处理时,所产生的"表达式"或修改的 文本输入将成为该文本输入的特征。例如,字符串"ph"可能按照发音 被替换为"f'和/或"gh"。然后查阅存储器20中的语言源将以观察是否 可以识别与并入了语音替换的文本输入相对应的任何语言对象120。然而,可以注意到,这样的描述仅仅是概念上的,并且这样被处 理或"产生的"字符串通常不单独被搜索。而是,使文本输入经历拼写 检查算法的结果可以多次产生"正规表达式(regular expression)",该 表达式是处理过的文本输入的全局特征。例如,"正规表达式"可以包 括通配符字符,实际上,该通配符字符描述了根据特定拼写检查算法 的文本输入的所有可能排列的结果的特征。该结果通常是可以针对"正 规表达式"执行的单一搜索,结果节约了处理能力和效率。作为示例,如果用户输入〈OPxGHo〈ASxBN、例如可能拼写 phan,根据示例的语音替换拼写检查算法的phan的处理将产生正规表 达式,该正规表达式例如被特征化为(fHphlghlHaleiley)n。 "ph"可以被 语音替换为"f'、 'V,、 "ph"、和"gh"中的任一个,"a"可以被替换为"a"、"ei"、和"ey"中的任一个。"n"没有任何语音等价物。可以检査一般词 列表104、新词数据库108、地址簿112、和其它数据源116以观察是 否有任何语言对象120可以被识别为与表达式(f]vlphlghlKaidley)n — 致。任何这样的被识别的语言对象120可以被当作原始文本输入的建 议拼写检查解释。在这样的语言源搜索之后,如果被识别的语言对象 120的数量没有达到预定的数量,例如,文本输入phan之后将经历按 顺序排列的下一个拼写检査算法,该算法将产生一不同的正规表达式 或其它被处理的字符串,之后该正规表达式或字符串将成为用于搜索 与其一致的语言对象120的语言数据源的一个或多个新搜索的对象。如上面所提到的,第一拼写检查算法是忽略大小写和/或重音的算 法。可以关于包括在文本输入中的大小写和/或重音来执行大小写和/ 或重音的忽略,该文本输入是搜索的对象和/或包括在被搜索的存储语 言对象120中的对象。按顺序的下一个拼写检查算法是前述的语音替换算法。在正规表 达式中,某些字符串被替换,以识别与文本输入发音类似的语言对象 120。 一些示例的语音替换被列在表1中。表h示例的英语语音规则,其中,每一行的两个字符串按照发 音是可互换的。a""eia,,"ey"ai""ie,,'air,,"ear"air,,"ere"air""are"are""ear"ars,,"eir"加s,,"air";cc,,"k";ch,,"te";ch,,"ti"ch""k,,ch""tu,,ch""s"ci,,"s,,ear""air"'sW"are":ear,,"ere"ear""ier";eau,,"0";ee,,'ei""a"'eir,,"are"'eir""ere"'ere""ear"'ere""air"'ere,,"eir"'ew,,"00"'ew,,"ue"'ew,,"u,,'ew,,"。,,'ew,,"ui".'ey,,"a""ph""f,"gh""ge,,"gg""j""gh,,"f,"「"igh,"i""ee"、""uy"<image>image see original document page 14</image>;tu,,"ch";u,,"ieu,,;u""oo"u,,"ew,,"oe,,;ue,,"ew,,;uff'"oughui,,"ew,,ui"'W,uy,,;w,,"qu"z,,"ss,,文本输入中的每个串被用该串的所有语音等价物替换。如同在上 面的例子中描述的,如果存在多个语音等价物,有利地,有时采用正 规表达式。按顺序的接下来的五个拼写检査算法落入"输错"拼写检查算法的 组内。第一个是遗漏字符插入算法。在文本输入的每个字符后添加字 母表的每个字母,如同可以被以正规表达式特征化一样。按照顺序接下来的算法是字符交换算法,其中,文本输入中的每对连续字符的字符被彼此交换。从而,文本输入phan将导致字符串 hpan、 pahn和phna。之后这三个字符串将是语言数据源的分别搜索的 对象。按照顺序接下来的算法是字符省略算法,其中,单独地省略每个 字符。从而,文本输入phan将导致字符串han、 pan、 phn和pha。之 后这四个字符串将是语言数据源的分别搜索的对象。按照顺序接下来的算法将文本当作两个单独的词。例如,这可以 通过在相邻的字母间插入〈SPACE〉来完成,或者,例如,通过简单地搜索文本输入的第一部分和第二部分作为单独的词,也就是,作为单 独的子输入来完成。搜索文本输入作为两个单独的词的其它方式将是显而易见的。按照顺序接下来的算法以及最后的"输错"算法是字符替换算法, 其中,每个字符被字母表中的其它字符分别替换。可以使文本输入经 历算法可以得到正规表达式。如以下将更为详细地描述的,可以基于 文本输入的替换字符和原始字符在键盘20上邻近度,选择性地向某些 被识别的语言对象120应用优先选择。按照顺序接下来的算法是涉及特定附加规则的拼写检查算法,附 加规则典型地是场合特定的。如上所述,在德语中,必须在两个已知单词h;^aw禾B pa&"f之间添加s以形成它们的组合,就是 /to^p^e"f 。其它类型的附加规则将是显而易见的。接下来的规则与变音位分析有关。第一规则涉及变音位正规表达 式的产生,然后识别语言源中与变音位正规表达式一致的语言对象 120。以下将更为详细地描述的四个另外的和可选的变音位相关拼写检 査算法涉及变音位操作。关于第一变音位相关拼写检查算法,可以注意到,通常,可以通 过从文本输入中删除所有元音并通过用标准变音位"键(key)"替代所 有发音相同的字符串来形成变音位正规表达式。例如,不同的字符串 "ssia"、 "ssio"、 "sia"、 "sio"、 "sh"、 "cia"、 "sh"、 "tio"、 "tia"和"tch,, 每个都将被变音位键"X"替换。字符串"f,、 "v"和"ph"每个都将被变音 位键"F"替换。然后,变音位正规表达式通过在每个变音位键之间放置 一个可选的元音通配符来创建,该元音通配符可以构成任何数量的不 同的元音或非元音。使用变音位正规表达式的搜索可以产生极好的拼 写检査结果,也就是,可输出作为文本输入的建议拼写检查解释的极 好的被识别的语言对象120,但是所需的搜索可能消耗大量处理资源。 同样地,有利地,仅在需要较少处理资源且产生少量拼写检查结果的 许多其它拼写检查算法执行之后执行变音位正规表达式拼写检査算 法。接下来的四个拼写检查算法是可选的,且涉及变音位操作,并与 以上描述的字符"输错"拼写检查算法有些类似。更为具体地,在变音 位正规表达式生成之后,这四个变音位操作拼写检查算法涉及变音位正规表达式中的变音位键的操作。特别地,顺次地,最后的四个拼写 检查算法是遗漏变音位键插入拼写检査算法、变音位键交换拼写检查 算法、变音位键省略拼写检查算法和变音位键调换拼写检查算法。这 些都以与上面提到的相应的基于字符的"输错"算法的那些算法相似的 方式操作,只是操作涉及变音位正规表达式中的变音位键。如果被识别的语言对象120的数量仍然不够,之后文本输入经历 后缀改变的拼写检査算法。例如,文本输入的末端字符可能被替换为 通配符元素,也就是,通配符字符,其可以是任何字符或字符的缺失。 之后,搜索语言数据源以找到相应的语言对象120。将这样的一个拼写检查算法称为"占位符(place holder)"算法。如果对应于修改文本 输入的被识别的语言对象120不够,重复该过程,原始文本输入的两 个末端字符的每一个被替换为一个通配符元素。如果原始文本输入的 两个末端字符被替换为通配符元素的被识别的语言对象120不够,原 始文本输入的最后三个字符被替换为通配符元素,如此等等。产生这 样修改的文本输入,并进行搜索,直到足够的相应语言对象120被识 别作为原始文本输入的可能的拼写检查解释。在当前的实施例中,对于任何给定的拼错的文本输入,拼写检查 功能44试图找到15个建议拼写检査解释。也就是,依次执行连续的 拼写检査算法,直到识别了 15个建议拼写检査解释。而且,在当前的 实施例中,如图7B中的406所示,拼写检查功能44最终输出最多十 五个被识别的建议拼写检査解释中的八个。数量十五和八是任意的, 可以使用不同的数量,而不脱离本发明的概念。可以选择性地采用用于改变文本输入的后缀部分的修改算法,其 中仅删除一个或多个末端字符而不被替换为通配符元素。将这样的修 改的且可选的拼写检查算法称为"后缀斩断(chop)"算法或"斩断"算 法。这样的情形具有将一个或多个末端字符仅仅替换为通配符元素的 "字符缺失"的效果。从而,该修改的算法通常产生比采用通配符元素 的算法更少的建议拼写检査解释。然而,算法的该修改版本可以更易 于实现,可能需要较少的处理器能力,并且可能仍能提供有用的结果。 如以上所述的,可以在执行前述的变音位分析之前执行任一个后缀改变的拼写检查算法,这都不脱离披露的和要求的概念。除了采用"占位符"和"斩断"算法来找到直接相应于修改的文本输 入的语言对象120之外,修改的文本输入本身可以经历上面提到的拼 写检查算法序列。这样的处理可能提供另外的有用的建议拼写检查解 释。该拼写检査过程大体如图7A和图7B所示,这里将对其进行描述。 该处理在402开始,在402,文本输入经历涉及忽略大小写和/或重音 的拼写检査算法,并且针对相应的语言对象120来搜索语言数据源。 将任何被找到的相应的语言对象120添加到列表中。之后,在404, 确定列表中的被识别的语言对象120的数量是否达到预定的数量。如 果已经达到了预定的数量,处理继续到406,在406,输出被识别的语 言对象120中的至少一些,之后处理返回到图4中的204处的主过程。另一方面,如果在404确定尚未达到预定的数量,则处理继续到 408,在408,文本输入经历涉及语音替换的拼写检查算法,并且针对 相应的语言对象120来搜索语言数据源。将任何被识别的语言对象120 添加到列表中。之后,在412确定列表中的被识别的语言对象120的 数量是否达到预定的数量。如果已经达到了预定的数量,则处理继续 到406,在406,输出被识别的语言对象120中的至少一些。否则,处理继续到416,在416,文本输入经历涉及遗漏字符插入 的拼写检査算法,并且针对相应的语言对象120来搜索语言数据源。 将任何被识别的相应的语言对象120添加到列表中。之后,在420确 定列表中的被识别的语言对象120的数量是否达到预定的数量。如果 已经达到了预定的数量,则处理继续到406,在406,输出被识别的语 言对象120中的至少一些。否则,过程继续到424,在424,文本输入经历涉及字符交换的拼 写检查算法,并且针对相应的语言对象120来搜索语言数据源。将任 何被识别的相应的语言对象120添加到列表中。之后,在428确定列 表中的被识别的语言对象120的数量是否达到预定的数量。如果已经 达到了预定的数量,则处理继续到406,在406,输出被识别的语言对 象120中的至少一些。否则,处理继续到432,在432,文本输入经历涉及字符省略的拼 写检查算法,并且针对相应的语言对象120来搜索语言数据源。将任 何被识别的相应的语言对象120添加到列表中。之后,在436确定列 表中的被识别的语言对象120的数量是否达到预定的数量。如果已经 达到了预定的数量,则处理继续到406,在406,输出被识别的语言对 象120中的至少一些。否则,处理继续到440,在440,文本输入经历涉及把文本输入当 作分离的词的拼写检查算法,并且针对相应的语言对象120来搜索语 言数据源。将任何被识别的相应的语言对象120添加到列表中。之后, 在444确定列表中的被识别的语言对象120的数量是否达到预定的数 量。如果已经达到了预定的数量,则处理继续到406,在406,输出被 识别的语言对象120中的至少一些。否则,处理继续到448,在448,文本输入经历涉及字符调换的拼 写检查算法,并且针对相应的语言对象120来搜索语言数据源。将任 何被识别的相应的语言对象120添加到列表中。如以下将更为详细地 描述的,可以优选一些被识别的语言对象120,在这些语言对象120 中,文本输入中的替换字符和原始字符(即,被替换的字符)在键盘 20上位于预定的邻近度内。之后,在452确定列表中的被识别的语言 对象120的数量是否达到预定的数量。如果已经达到了预定的数量, 则处理继续到406,在406,输出被识别的语言对象120中的至少一些。否则,处理继续到456,在456,文本输入经历涉及附加规则的拼 写检查算法,并且针对相应的语言对象120来搜索语言数据源。将任 何被识别的相应的语言对象120添加到列表中。之后,在460确定列 表中的被识别的语言对象120的数量是否达到预定的数量。如果已经 达到了预定的数量,则处理继续到406,在406,输出被识别的语言对 象120中的至少一些。否则,处理继续到464,在464,文本输入经历涉及变音位正规表 达式的形成的拼写检査算法,并且针对相应的语言对象120来搜索语 言数据源。将任何被识别的相应的语言对象120添加到列表中。之后, 在468确定列表中的被识别的语言对象120的数量是否达到预定的数量。如果已经达到了预定的数量,则处理继续到406,在406,输出被 识别的语言对象120中的至少一些。否则,处理继续到472,在472,文本输入经历涉及遗漏变音位键 插入的拼写检查算法,并且针对相应的语言对象120来搜索语言数据 源。将任何被识别的相应的语言对象120添加到列表中。之后,在476 确定列表中的被识别的语言对象120的数量是否达到预定的数量。如 果已经达到了预定的数量,则处理继续到406,在406,输出被识别的 语言对象120中的至少一些。否则,处理继续到480,在480,文本输入经历涉及变音位键交换 的拼写检查算法,并且针对相应的语言对象120来搜索语言数据源。 将任何被识别的相应的语言对象120添加到列表中。之后,在484确 定列表中的被识别的语言对象120的数量是否达到预定的数量。如果 已经达到了预定的数量,则处理继续到406,在406,输出被识别的语 言对象120中的至少一些。否则,处理继续到488,在488,文本输入经历涉及变音位键省略 的拼写检査算法,并且针对相应的语言对象120来搜索语言数据源。 将任何被识别的相应的语言对象120添加到列表中。之后,在492确 定列表中的被识别的语言对象120的数量是否达到预定的数量。如果 已经达到了预定的数量,则处理继续到406,在406,输出被识别的语 言对象120中的至少一些。否则,继续到494,在494,文本输入经历涉及变音位键调换的拼 写检查算法,并且针对相应的语言对象120来搜索语言数据源。将任 何被识别的相应的语言对象120添加到列表中。之后,在496确定列 表中的被识别的语言对象120的数量是否达到预定的数量。如果已经 达到了预定的数量,则处理继续到406,在406,输出被识别的语言对 象120中的至少一些。否则,处理继续到498,在498,文本输入经历涉及改变文本输入 后缀的拼写检查算法,也就是,"占位符"算法或可选地"斩断"算法, 以生成修改的文本输入。针对相应于修改的文本输入的语言对象120 来搜索语言数据源。如在别处提到的,文本输入可以在经历变音位分析拼写检查算法之前经历后缀改变的拼写检查算法,这不脱离披露和 要求的概念。同样如这里所提到的,由"占位符"算法或"斩断"算法而 形成的修改的文本输入本身可以被这一系列的拼写检查算法处理,例如,从图7A的402开始处理修改的文本输入本身,之后如图7A和图 7B所描绘的以及如以上所描述的,继续进行处理。修改的文本输入的 这样的进一步处理可能会产生另外的有用的建议拼写检查解释。不管修改的文本输入本身是否经历该拼写检査算法序列,处理最 终继续到406,在406,输出被识别的语言对象120中的至少一些。之 后,处理返回到图4中的204的主过程。如在别处所提到的,当试图识别与拼写校正功能操作期间由各种 拼写检查算法生成的修改的文本输入相对应的语言对象120时,搜索 存储器40中的所有的语言数据源。特别地,并且如图8所示,文本输 入要经历的拼写检查算法产生修改的文本输入,如在504 —样。可以 理解,该修改的文本输入可能实际上具有正规表达式的形式。之后,如在508 —样,搜索一般词列表104,如在512 —样,搜 索新词数据库108,如在516—样,搜索地址簿112,并且,如在520 一样,搜索其它数据源116。之后,处理返回到504,在504,可以通 过同样的拼写检查算法或者适当时通过不同的拼写检査算法,生成另 外的修改的文本输入。搜索各种语言数据源的特定顺序不是那么重要 的,并且可以使用与图8描绘的顺序不同的搜索顺序,而不会脱离披 露和要求的概念。各种被识别的语言对象120被收集在列表中,如在 图7B中的406 —样,最终输出其中的至少一部分。如上面所提到的,可以基于键盘20上被替换字符和替换字符之间 的邻近度,向通过执行字符调换拼写检査算法而识别的语言对象120 应用优先选择。例如,在图6A所示的例子中,对于拼错的文本输入 362"SMITG",用户可能本想输入"SMITH",也就是,原始文本输入中 的字符"G"被替换为字符"H"。字符调换拼写检查算法可能是将语言对 象120"SMITH"识别为"SMITG"的建议拼写检查解释的第一算法。字 符调换拼写检查算法也可能将语言对象120" SMITS"识别为"SMITG" 的建议拼写检查解释。然而,从图1中可以看出,"G"键26和"H"键26彼此相邻布置。另一方面,"G"键26和"S"键26布置为分开三个键。 如果假设"G"可能是用户"输错"的结果,也就是,用户打算驱动"H"键 26,但是错误地驱动了"G"键26,当与"SMITS"进行比较时,优先选 择"SMITH"将具有实际意义,因为相比于"S"键26 , "G"键26更邻近 "H"键26。可以釆用任何邻近度阈值,并且可以应用任何类型的优先选择。 邻近度阈值的例子可以是原始的和替换的字符将必须布置在相邻的键 26上,也就是,键26并排布置。例如,键26"R""T""Y""F""H""C""V" 和"B"可以被认为是邻近"G"键26。通常,按照相关联的频率对象124的频率值减小的顺序输出被识 别作为文本输入的建议拼写检査解释的语言对象120,尽管也可采用 其它的优先顺序方法。因此,由相关联的频率对象124的频率值提供 的"额定频率"可以乘以另一个数达到总频率(即,调整过的频率)。一 个示例的另一个数可以是整数值三,结果是"SMITH"的额定频率值将 乘以三以获得调整过的频率,用于对建议拼写检査解释进行输出排序 的目的。当然,可以设想其它类型的优先选择,而不脱离披露和要求 的概念。描绘这样的优先选择的示例的流程图示出在图9中。如同在604 一样,字符调换拼写检査算法将产生修改的文本输入,也就是修改的 文本输入"SMITH",代替拼错的文本输入"SMITG"。之后,如同在608 一样,系统确定将原始文本输入中的一个字符替换为键盘20上预定邻 近度内的字符是否产生修改的文本输入。如果预定邻近度是字符必须 相邻,那么在608的结果将是肯定的,因为"G"和"H"键26在键盘20 上彼此相邻布置。如果60S的答案是肯定的,处理将继续,如同在612 一样,在612,将向被识别的语言对象120应用优先选择。否则,处 理将返回604,在604,适当时,将生成另一个修改的文本输入。当如 同在图7B中的406 —样,输出"SMITG"的各种建议拼写检査解释时, 当与其它的建议拼写检查解释312相比较时,"SMITH"的三倍的额定 频率值可能将在建议拼写检查解释312的列表308中给它一个优先的 位置,如在图6A中可以看出的。如上面所提到的,拼错的文本输入可以经历后缀改变的拼写检查 算法,例如"占位符"算法,其中,原始文本输入的一个或多个末端字 符的每一个被替换为一个通配符字符,也就是通配符元素,其可以指 代相关字母表中的任何字符或字符的缺失。描绘该算法的示例的流程图示出在图10中。处理开始,如同在704 —样,在704,通过将一个 附加的末端字符替换为通配符元素而形成修改的文本输入。通过"占位 符"算法相对于给定的拼错的文本输入的第一操作,该第一修改的文本 输入将仅有单个末端字符被替换为通配符元素。之后,处理将继续,如同在708 —样,在708,将从存储器20中 的各种语言数据源中搜索与修改的文本输入相对应的语言对象120。 在这点上, 一个建议拼写检査解释可以是与原始文本输入具有相同个 数的字符且与原始文本输入中除末端字符之外的所有字符匹配的语言 对象。另一个建议拼写检査解释可以是比原始文本输入少一个字符且 与原始文本输入中除末端字符之外的所有字符匹配的语言对象。之后如同在712—样,确定是否识别了足够的语言结果,也就是, 足够数量的语言对象120。如果已识别了足够的语言对象120,则处理 结束,如同在716—样。之后,如在图7B中的406 —样,输出结果。 然而,如果没有识别足够的语言对象120,则处理继续,如同在704 一样,在704,产生另一个修改的文本输入,该修改的文本输入将原 始文本输入的另一个末端字符替换为通配符元素,也就是,原始文本 输入具有一对通配符元素代替它的两个末端字符。之后,处理继续, 如同在708 —样,在708,可以识别另外的语言对象120,并且在712, 评估被识别的语言对象120的数量是否足够。可选的修改的后缀改变的拼写检査算法(即,"斩断"算法)大体 上在图10A所示的流程图中描绘。以与图IO的"占位符"拼写检查算法 类似的方式,处理开始,如同在804 —样,在804,通过删除一个另 外的末端字符而产生修改的文本输入。通过"斩断"算法相对于给定的 拼错的文本输入的第一操作,该第一修改的文本输入将仅仅删除一个 末端字符。之后,处理继续,如同在808 —样,在808,将从存储器20中的各种语言数据源中搜索与修改的文本输入相对应的语言对象120。建 议拼写检查解释的每一个都是比原始文本输入少一个字符的语言对 象,并且除删除的末端字符之外的所有字符都与原始文本输入相匹配。 之后如同在812 —样,确定是否已识别了足够数量的语言对象120。如果已识别了足够的语言对象120,则处理结束,如同在816 — 样。之后如在图7B中的406 —样,输出结果。然而,如果没有识别足 够的语言对象120,则处理继续,如同在804 —样,在804,产生另一 个修改的文本输入,该修改的文本输入将原始文本输入的另一个末端 字符删除,也就是,原始文本输入有两个末端字符被删除。之后,处 理继续,如同在808 —样,在808,可以识别另外的语言对象120,并 且如同在812—样,在812,评估被识别的语言对象120的数量是否 足够。如图11中的流程图所描绘的,拼写检査功能44可以额外地提供 己知补偿,偏袒按顺序执行的拼写检査算法中使用得相对频繁的拼写 检查算法。例如,如果确定用户打算调换文本输入中的字符对,则字 符交换拼写检査算法可能产生由用户以比其它拼写检査算法产生的建 议拼写检查解释更大规律性(regularity)选择的建议拼写检查解释。 随着时间的过去,系统将确定用户正在以相对大规律性选择由字符交 换拼写检查算法产生的建议拼写检査解释,结果,将优先选择应用于 由字符交换拼写检查算法产生的未来的建议拼写检查解释。用户选择的这种高规律性可能以各种方式被确定。例如,系统可 能等待,直到用户己经选择了大量的建议拼写检查解释来替换拼错的 文本输入。例如,系统可能等待,直到已经积累了关于一千个拼写检 查选择、或一万个拼写检查选择的数据。可选地,系统可能等待,直 到单个拼写检査算法产生了特定数量(比方说100或500)的被用户 选择的建议拼写检查解释。或者,系统可能在使用一个月或一年之后 评估累积的关于拼写检查选择的数据,而不管选择的总量。无论如何, 系统存储数据,该数据是关于最终被用户选择的每个建议拼写检查解 释是由哪个拼写检查算法产生的。如同在图11中的904 —样,一旦达到累积点,则如同在908 —样,系统确定是否任一拼写检查算法的选择历史满足任一预定的使用标 准。例如, 一个使用标准可能是给定的拼写检查算法产生的建议拼写 检查解释的选择频率处于或大于预定阈值,例如由特定算法产生的建 议拼写检査解释被用户选择的次数20%或比20%更多。作为另一个例 子,系统可能确定是否用户选择由特定拼写检査算法产生的建议拼写 检查解释的—速率处于或大于所有词语输入总量中的某一阈值频率。例 如,如果用户选择由特定拼写检查算法产生的建议拼写检查解释比每 一百个输入词语多三倍,则可能满足预定的使用标准。从而可以看出, 可以使用任何一个或多个使用标准,不管其是否在此被描述。如果在卯8确定没有满足预定的使用标准,则处理结束,如同在910 —样。然而,如果相对于特定的拼写检查算法,在908满足一个 或多个预定的使用标准,则处理继续,如同在912 —样,在912,向 该特定的算法应用优先选择,并且,尤为特别地,应用向随后由该特 定的算法产生的建议拼写检查解释应用优先选择。例如,系统可能将 与被识别的语言对象100相关联的频率对象124的额定频率值乘以确 定乘法因数。 一旦在图7B中的406输出,首选的语言对象120 (即由 该特定的算法产生的语言对象)可能在优先位置被输出。在一个实施例中,通过执行任一给定拼写检查算法而识别的语言 对象120的额定频率值与对该算法特定的因数相乘。例如,在序列中 靠前的拼写检查算法比序列中靠后的拼写检查算法可能具有更大的乘 法因数。这将倾向于使由序列中靠前的拼写检查算法产生的语言对象 比序列中靠后的拼写检查算法更优先输出。来自912的、将应用到由 特定拼写检查算法产生的建议拼写检查解释的优先选择可以具有另外 的乘法器的形式,或者通过增加该算法的原有乘法因数。其它优选的 配置将是显而易见的。
权利要求
1. 一种能够管理手持电子设备上的拼写检查功能的方法,所述拼写检查功能包括存储在手持电子设备上的用于当使文本输入经历所述拼写检查功能时在其上执行的多个拼写检查算法,所述方法包括针对多个文本输入中的每一个,执行至少一些算法,以产生所述文本输入的建议拼写检查解释;输出至少一些建议拼写检查解释;检测关于被输出的至少一些建议拼写检查解释的选择输入;确定针对由特定拼写检查算法产生的建议拼写检查解释而作出的选择输入的累积量满足多个预定使用标准;以及响应于所述确定,并且关于后续文本输入向由所述特定算法产生的建议拼写检查解释应用优先选择,并且在所述输出中采用所述优先选择。
2. 如权利要求1所述的方法,其中,手持电子设备包括处理器装 置,所述处理器装置包括处理器和其中存储有多个语言对象和多个频 率对象的存储器,每个语言对象与具有指示该语言对象在语言中的相对频率的频率值的频率对象相关联,并且所述方法进一步包括采用一数值乘数,作为所述优先选择,所述数值乘数应用于被识别为由特 定算法响应于后续文本输入而产生的建议拼写检査解释的语言对象的 频率值。
3. —种手持电子设备,包括处理器装置,包括处理器和其中存储有多个语言对象的存储器, 所述存储器中进一步存储有多个例程,所述例程包括提供拼写检査功 能的拼写检查例程,所述拼写检査功能包括存储在存储器中的、用于 当使文本输入经历拼写检查功能时在处理器上执行的多个拼写检查算法;输入装置,包括多个输入构件,所述输入装置被构造用于向处理 器装置提供输入;输出装置,被构造用于从处理器装置接收输出信号;所述例程具有指令,当在处理器上执行指令时,所述指令使手持电子设备执行以下操作针对多个文本输入中的每一个,执行至少一些算法,以产生所述 文本输入的建议拼写检查解释;输出至少一些建议拼写检査解释;检测关于被输出的至少一些建议拼写检查解释的选择输入; 确定针对由特定拼写检査算法产生的建议拼写检查解释而作出的 选择输入的累积量满足多个预定使用标准;以及 响应于所述确定,并且关于后续文本输入向由特定算法产生的建议拼写检査解释应用优先选择,并且 在所述输出中采用所述优先选择。
4.如权利要求3所述的手持电子设备,其中,存储器中进一步存 储有多个频率对象,每个语言对象与具有指示该语言对象在语言中的 相对频率的频率值的频率对象相关联,并且,其中,所述操作进一步包括采用一数值乘数,作为所述优先选择,所述数值乘数应用于被识别为由特定算法响应于后续文本输入而产生的建议拼写检查解释的 语言对象的频率值。
全文摘要
一种改进的拼写检查功能和手持电子设备提供一种拼写检查特征,该特征包括基于用户针对由算法产生的拼写检查结果的广泛选择,向拼写检查算法提供优先选择。
文档编号G06F17/27GK101281517SQ200810100398
公开日2008年10月8日 申请日期2008年3月24日 优先权日2007年3月30日
发明者瓦迪姆·富克斯, 香农·拉尔夫·怀特 申请人:捷讯研究有限公司