首页> 中国专利> 基于连续笔划字词的文本输入系统和方法

基于连续笔划字词的文本输入系统和方法

摘要

许多便携式电子设备设计成只利用触摸屏来输入文本,一般使用某种形式的记录笔来接触屏幕。这样的设备一般利用某种形式的手写识别或屏上键盘来输入文本,手写识别慢并且经常不精确,而屏上键盘实质上需要用户通常在减小了尺寸的键盘上执行“一指键入”。基于连续笔划字词的文本输入系统允许某人使用小的屏上键盘,通过画连续的顺次通过或接近字词中每个字母的按键的线而不用抬起记录笔(类似于小孩子的连数字画画)来快速输入字词。通过在字词的第一个字母的按键上或其附近接触键盘,然后顺次通过每个字母来描绘,一接触到最后一个字母就从屏幕上抬起记录笔,用户描绘出字词的输入图形。在一个优选实施例中,用户在出现在字词中的每个双字母周围画小圆圈,以减小不确定性。在另一个优选实施例中,依照第一个或最后一个字母来组织字词的数据库,使得只有少量的字词需要对每个输入图形来明确地记下(score)。在另一个优选实施例中,将与每个字词相对应的预期路径的长度存储在数据库中,并将其与输入的实际输入路径长度进行比较,一进一步限定将被明确记下(score)的字词的数量。分析输入图形以识别不同类型的转折点,每个转折点具有与正被输入的字词的字母对应于的较大或较小的可能性。依照从每个字母到最近的转折点的平均距离(如果字词中的字母比输入图形中的探测到的转折点多,或者势道画线的最近的点)将字词记下(score),依照与转折点的类型相关的可能性,从该转折点进行距离测量,对每个这样的距离计权。在一个优选实施例中,根据与字词相关的使用频率,进一步对平均加权了的距离计权。本发明的方法使得系统可以分析每个输入笔划图形,并提供一个或多个相应的字词以供用户选择,其中系统自动输出缺省的字词匹配(被系统视为最可能的匹配),除非用户明确选择了替换的字词选项。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-04-10

    专利权的转移 IPC(主分类):G06F3/02 变更前: 变更后: 登记生效日:20130321 申请日:20040116

    专利申请权、专利权的转移

  • 2008-11-26

    授权

    授权

  • 2006-06-07

    实质审查的生效

    实质审查的生效

  • 2006-04-19

    公开

    公开

说明书

技术领域

本发明涉及文本输入系统,更具体地说,涉及触摸屏文本输入系统。

背景技术

作为从人类向机器输入文本的主要方法的现代键盘的起源回溯到19世纪的早期打印机。随着计算机的产生,采用打字机键盘用作输入文本的主要方法是自然的发展。对于熟练的打字员,其依然是最可能快的向计算机输入文本的方式。

随着正在进行的使计算机更小和更便携的努力,物理键盘已成为在设备能够变得多小方面的最重要限制因素之一:计算机设计人员不能改变人的手指的物理大小。从而,已设计出用于某些便携应用的无物理键盘的计算机,这样的计算机使用基于触摸屏的输入方法作为人-机界面的主要形式(对于人们由于身体原因不能使用键盘(例如具有残障的人们)的一些应用,情况也是如此)。

对于触摸屏输入方法来说,存在经常相互冲突的两种基本要求。

输入方法必须尽可能地快,同时,输入方法必须占用尽可能小的显示屏幕。不幸的是,当显示屏幕上为输入占据的空间被减小时,难以在不利地影响准确度的情况下提高速度。

尽管最近对笔式计算设备的需要猛增,必须产生文本的许多人仍然利用标准键盘产生文本。事实上,已经出现为被设计成没有键盘的笔式计算机提供便携式键盘的整个行业。至今,由于笔式计算机上的文本输入太慢的简单原因,笔式计算设备还没有如最初预测的那样代替常规的便携式膝上型计算机。即使最近提出的“Tablet PC”,主要由于缺少足够准确的手写识别引擎,主要用作一种保存和取回“数字墨水”-用户在触摸屏上描绘的笔迹的实际图形图像的方式-与识别书写了什么,并将其转换成计算机化文本相反。

类似于一指键入,使用虚拟键盘进行输入的现有技术被称为“point and tap”。使笔尖在字母之间移动,并在所需的按键上按下,从而选择该按键。这导致总是需要提起和放下记录笔,使输入变慢。发明了草写体手书,以便允许更好(并且更快)地在字母间移动,减少了提起笔(或鹅毛笔)的次数。按照类似的方式,当前的发明利用屏幕键盘,减少当输入时所需的敲击的次数,从而使文本输入加速。

人类在除机器之外的任何事物上产生文本的自然方式是用手“书写”所述文本。因此,随着触摸屏计算机的出现,开发出手写识别软件,允许用户通过在计算机的屏幕上书写来输入文本并不使人感到意外。

但是自然地,手写较慢。每个字母需要记录笔的几笔,使其效率非常低。此外,由于手写记录笔不断变化,因此该软件的准确度仍然低于用户可接受的水平(参见MacKenzie,I.S.,&Chang,L.(1999),Aperformance comparison of two handwriting recognizers.Interactingwith Computers,11,283-297)。如上所述,即使“最新最强”的计算机触摸屏技术,Tablet Pc对“数字墨水”的使用的依赖清楚地表明手写识别仍然没有好到使多数用户满意的地步。此外,即使存在完全准确的手写识别方法,手写本身也太慢并且累人(尤其是在触摸屏上),以至于不能提供一种令人满意的输入方法。

通过要求用户按照简化的方式书写字母,一些方法使该工作对软件来说较容易(参见Goldberg,US专利申请20020009227,Unistroke;或者如同Palm Computing在他们的名为“Graffiti”的商业产品中普及的那样)。这种方法的优点在于每个字符十分独特,以致易于被软件识别,每个字符被描绘成单一笔划,屏幕上不需要任何虚拟键盘。这种方法的缺点是它需要用户学习新的书写方法,对于每个单个字符,仍然要求记录笔被放下和提起一次(从而使文本输入缓慢)。

同样,把键盘带入计算机显示的虚拟世界的想法也是一种自然进展。Auer等在美国专利#4725694中描述一种系统,其中模拟键盘的一个或多个图像被显示在计算机的触敏屏上,并且响应模拟按键的触摸,产生恰当的控制信号。在这种原理的新近改进中,键盘的图像被浮动显示在正在计算机上运行的其它应用程序之上,而不是占据屏幕的专用部分。用户通过在该“屏幕键盘”或者“虚拟键盘”上指引光标指示器,或者利用手指或记录笔通过触摸屏直接触摸按键,与之交互作用。屏幕键盘一直主要用于缺少标准键盘的设备,例如某些公用信息亭和个人数字助手(PDA),太小以至不能容纳物理键盘的手持式计算机。它们还经常被具有残障,以致不能使用物理键盘的个人使用。

屏幕键盘有两大缺陷:首先,它们占用要求文本输入的任何任务所需的计算机上的有价值的屏幕空间,其次并且更重要的是,它们较慢,因为用户不得不每次敲击一个字母-实际上迫使用户以类似于单手敲击常规的物理键盘的方式输入文本。

在致力于解决利用屏幕键盘键入速度缓慢的问题的过程中,开发了预测软件,所述预测软件根据前面的字词,以及根据关于当前字词键入的起始字母,尝试预测正在键入什么字词,并向用户提供他们可选择的备选字词或短语的列表,作为逐个字母地完成字词或短语的更快速的备选方法。由于需要从手边的任务(键入)转移注意力,以便扫描预测列表并确定预期的字词是否被提供为一个备选者,因此这种“字词预测”方案仅仅稍微提高文本输入的速度,如果有的话(取决于用户)。

随着屏幕键盘的尺寸被减小到超出某一程度,文本输入的速度被急剧降低。这归因于要求提高命中较小目标的准确性和灵巧性。提出了各种方法来使键盘的尺寸降至最小,同时仍然保持准确性,而不会过度牺牲输入速度。

Grover等在美国专利#5818437中描述一种系统,该系统通过在每个按键上分配多个字母,减小所需的不同按键的数目。对于指定大小的键盘,这允许各个按键相对更大,于是易于准确击中各个按键,从而允许用户更快地打字。这种系统中的输入是基于字词的,从而消除二义性软件使用字词的数据库来分析每一序列的键击,并确定与该序列对应的最可能的字词,从而确定每个不明确的键击实际预期哪个字母。虽然Grover等的系统通过降低按键的总数和放大各个按键,使得易于击中预期的按键,但是当在触摸屏设备上实现时,对于输入的每个字母,它仍然要求用户提起并放下记录笔,使文本输入显著变慢。此外,该方法需要用户适应非常不熟悉的键盘布局,在该键盘布局中完全不相关的字母集中在单一的键盘上。即使当依照“字母顺序”布局(与移动电话的键盘上的布局相同),与标准键盘相比,这种安排对于大多数个人来讲是不熟悉的,并且降低了文本输入的进程。

Lee在美国专利#6292179中描述了另一个系统,该系统通过在每个按键上分配多个字母并且通过确定记录笔接触键后的移动方向来确定哪个与接触键相关的字母是想要的,从而减少了触摸屏键盘上所需的不同键的数量。每个与按键相联系的字母进一步与一列接触点可以移动的方向相联系。Lee的方法也允许给定的键盘的每个按键相对较大,并且因而容易初始接触,由于多个字母结合在一个按键上,因而需要较少数量的按键,并且在举起记录笔并结束与屏幕的接触之前需要以特定的方向来移动接触点。

Kaehler在美国专利#5128672中描述了一个系统,该系统通过在给定的时间只显示可以输入的字符的全部集合的一个子集来减少触摸屏键盘所需的不同按键的数量。该试图基于输入的前一个字符或者文本插入点的位置来确定包括有将被输入的下一个字符的字符结合。

当所述的字符没有出现时,用户必须手工转换到不同的键盘,以查找并输入预期的字符。大量的不同(并且经常改变的)不完全键盘将容易使得多数用户感到这是个慢的并且令人沮丧的输入法。

Vargas在美国专利#5748512中试图通过在当按键没有在其中央区域被激活时将两个邻接的按键看作是可能的候选,来减小触摸屏按键上所需的精度(并且因而提高了速度)。基于相对于三个按键键盘被接触的位置,结合正在录入的字词中的前面的字符的统计分析(如果有的话),并且可选地也利用来自字词预测引擎的信息,该系统确定最可能的三个可能候选字符并且响应激活将其显示为将要输入的字符。然而由于一旦输入,每个字符就形成了预测下一个字符的基础,当字符预测不正确时,必须在用户可以键入下一个字符之前将其改正。

在所述的系统中,通过保持在激活期间与键盘的接触、观察预测的字符是否正确、并且如果必要的话以实际预期的字母的方向滑动接触点。

如所述,该发明的优点是其可以使得用户使用钝头物体(诸如指尖而不是笔尖)来激活实际上比激活工具小的键盘按键。然而,提供给用户的反馈的本质以及随后的需要观察每次键击的结果并且在移动到下一次键击之前将其改正,使得生成的系统通常显著地降低了文本输入的速率。

Robinson等在国际专利申请WO 00/74240 A1中描述一种用于触摸屏设备的文本输入系统,它包括具有自动校正区的键盘,所述自动校正区包括与字母联系的一组按键。该系统的优点在于,对于包括在系统数据库中的字词,用户不需要接触与预期字母相关的按键内的区域,而只是需要敲击按键的相邻区域。用户对于正在输入的字词中的每个字母敲击了键盘一次,该系统就记录每次接触的位置。将接触的序列与数据库中的和字词相关的按键的位置进行对比,并将一个或多个最可能的相匹配的字词提供给用户以供选择。该系统是对前面的方法的显著的改进,因为其不再需要在每个预期的按键的区域内精确地接触,使得用户可以在小键盘上更快地打字。然而,对于每次按键激活,用户依然需要利用控制把预期的按键作为目标在屏幕上接触,然后从屏幕上举起记录笔并移动对准下一个按键。对每个字母举起并放下记录笔的额外的运动,以及当记录笔没有与屏幕接触时所需的控制其再定位的额外努力,导致了与本发明的系统相比显著降低了输入的进程。

在触摸屏键盘上文本输入缓慢的另一个因素是在每个按键选择(“敲击”)之间从屏幕举起记录笔并将其放回所花费的时间。美国专利5574482(Niemeier)公开了一种用于在触敏屏幕上输入数据的方法。该Niemeier专利描述了计算机生成的“暂时的”相邻按键,可以使所述按键出现在标准键盘布局的顶部。当用户接触按键时,选择第一个字母,只要保持初始的接触,邻接与被接触的按键来显示一个或多个暂时按键。通过使得在擦拭运动中一个手指或记录笔从第一个被选择的按键滑向邻接的暂时按键,而使在邻接的按键上显示的第二个字母(或一组字母)。可以通过进行称为“擦拭”的运动而被选择,其中擦拭运动中一个手指或记录笔从第一选择键滑向相邻的“暂时”键。

该方法使得不用从屏幕举起记录笔就可以输入两个(或多个)邻接的字母,适当地减少了一半需要从屏幕举起记录笔次数。“暂时”的邻接按键生成了最可能的字母的人工分组以提供更多的“擦拭”输入的机会。

然而,由Niemeier描述的该方法有几个重大的缺陷。一个是用户或者需要记忆26个新的“暂时”子键盘,当每个26个字母被接触时该子键盘出现(为了有效地使用该系统,生成重要的学习曲线),或者是用户需要暂停以观察下一个预期的字母是否出现在暂时按键上以及出现在哪里,这可能取消了“敲击和滑动”方法提供的任何速度优势。为了增加预期字母出现的可能性,当基于在激活按键之前选择的上一个字母的前后关系使用字典或其它数据库改变对每个按键显示的暂时按键时,该方法变得更加糟糕。而且,如上所述,该系统限定于滑向除了初始选择的按键之外的最多一个额外按键,除非后来的字母也碰巧出现在与选定的暂时按键邻接的按键上。而且,可以显示(并因而选择)的按键的数量被限定于在单一一个按键周围可以显示的按键的数量(根据Niemeier建议的对于标准的按键布置是6个,最多8个)。

而且,由于只在记录笔(或手指)实际上接触屏幕时显示暂时按键,大量的可以显示的按键可能部分或全部被记录笔或用户的手指遮掩。

由Niemeier建议的系统也包括活动按键之间的大量空间(用于大写和间隔),减少了实际按键目标的大小,为了影响激活每个按键目标必须接触在确定的按键区域的内部。

Van Kleeckzai在美国专利#6008799中描述了一个类似的系统,其中实际上从不显示“暂时按键”,但是该系统中四个元音字母“o”、“e”、“i”、“a”与每个字母按键隐含地相联系,并且可以通过敲击字符按钮以及以北、南、西或者东的方向拖动笔来添加。而这种方法比Niemeier的方法容易学习(由于只有四个元音字母以及它们相联系的方向必须学习),并且其不受用户的手的潜在的视觉障碍的影响(由于实际上没有暂时按键要显示),其限定于只能添加按键选择之后的四个特定的字母其中之一,因而不能提供比标准键盘非常显著的改进。

Perlin在美国专利#6031525中描述了一种方法,其中记录笔从未从触摸屏上举起,而是指引其从中间的临界点(在perlin的技术中“休止带”)到多个围绕区域的其中之一,每个围绕区域包括多个字母。

用户需要在休止区域接触屏幕并且然后执行连续的滑动动作,对于每个将要输入的字母,该动作从休止区域进入包含有预期字符的临近区域,并且然后或者通过直接返回到休止区域或者通过在返回到休止区域之前先传送到不同的区域,来指示包含在该区域中的哪个字符是想要的。因此,结合从其中休止区域被再次重新加入的区域,通过第一次从休止区域输入的区域的联合,指示预期的字符。结果,用户需要记录笔的最少2笔划通常是3笔划来指示每一预期的字母。这种方法考虑到了较小的键盘,但是需要每个字母多个笔划,这显著降低了文本录入的速度。

在加速文本录入方面的另一个常用方法是修改屏幕键盘的按键上的字符的布局(见www.fitaly.com)。常用的字母设置在屏幕键盘的中央附近,并且常用的字母对偶相邻设置。这样,减小了字母之间记录笔的移动,因而加速了文本录入。该方法的缺点是它需要用户学习新的键盘布局,还需要用户在每个按键激活之间举起记录笔,实质上使用户变为一个手指的打字员。

上述的每个方法具有将文本录入加速到某种程度和/或减小输入所需的屏幕不动产的量的潜力。然而,通过现有的屏幕键盘和书写识别技术的文本录入速度依然比利用物理键盘的慢。书写本身仅仅只是太慢,识别的精确度依然没有达到可接受的标准。上述的所有基于键盘的方法需要一个或多个单独的并且有区别的动作来输入单个字母。

大多数建议的键盘系统是基于敲击某种类型的按键,使得生成单个字符需要合适地定位记录笔、接触屏幕键盘以及在输入下一个字符之前再次从屏幕举起记录笔。

根本问题是(尤其是对于必须使用尺寸减小的触摸屏键盘的设备)以受控制的方式举起记录笔并且将其带回到与屏幕接触的额外动作大大降低了输入进程。其它的建议的用来减少必须从屏幕举起记录笔的次数方法(诸如Niemeier和Perlin)依然不能提供一种可以显著提高文本录入速度的方法。Niemeier建议的系统由于要求用户反应经常变化的键盘布局而增加了很多复杂性,并且限制了在初始字符选择之后可以选择的字符的数量。Perlin的方法不能用的原因是它需要用户执行太多的不同的记录笔运动来输入每个字符。

发明内容

本发明的方法的特点在于在接触屏幕中利用连续运动,显著减少了输入每个字词所必须执行的受控运动的数量。这显著提高了文本输入的速度。本发明使用字词层级的分析,依系统数据库中最可能的字词来匹配键盘上描绘出的输入图形。提供给用户识别匹配字词列表,并且用户或者可以接受缺省的选择(系统将字词标识为最可能的匹配),或者用户选择可选的字词的其中之一,或者如果预期的字词没有出现在列表中,用户请求系统显示更潜在匹配的字词。在前一个输出的字词之后选定立即输出的字词时,在输出选定的字词之前,系统自动输出空格,消除了对于大量的键入的空格字符执行额外动作的需要。该系统也包括简单并且直接的可选的方法来输入新的但还没出现在系统数据库中的字词,并将它们自动添加到数据库中,用于利用连续笔划方法的将来输入。

本发明的方法具有比以前的系统(诸如由Niemeier和Perlin公开的系统)非常突出的优点。一点是由该系统显示的键盘保持不变,相同的字词始终出现在相同的位置。这是与由Niemeier建议的系统相比,在由Niemeier建议的系统中每当接触屏幕时,出现不同的暂时按键的集合,使得用户观察并相应动态变化的布局。此外,这允许本发明的方法与静态的键盘一起使用,所述静态键盘压印在成本更低的触敏薄膜上而不是触敏动态显示器上。第二个优点是其较大地节约了运动。只需要在每个字词的开始使记录笔开始接触,在每个字词的结尾抬起记录笔。以下将会对其描述,在大多数情况下,不需要任何额外的动作来在每个生成的字词之间正确地生成空格。而且,与Perlin的系统相比,只需要直接从正在被输入的字词的字母到字母之间移动记录笔,而不是必须对每个字母执行两到三个不同的笔划。第四个优点是,与Robinson的系统相同,字词的单个字母不需要精确地与记录笔相接触。只需要顺次将记录笔带到每个字词的附近,并不一定需要直接通过与字词相关的按键确定的区域。当以相对较高的使用频率输入字词时,该系统允许用户相应地较不精确(并且从而更快地移动记录笔)。由于其使得用户可以最快地输入那些往往是最常使用的字词,这极大地提高了总体的输入速度。

本发明提供了一种用于具有触敏输入面板或触敏显示屏的设备的键盘文本输入系统。更特别地,本发明提供了一种系统和方法,其可使用户利用显示在或印刷在触敏显示屏上的键盘一个字词一个字词地输入文本,其中相应于接触的位置,与显示器的接触生成对系统的输入信号。通过与屏幕的接触、描绘出连续的图形以及当达到字词的最后一个字母时断开与屏幕的接触,用户输入字词,其中所述的连续图形顺次通过字词的每个字母或在其附近。在另一方面,键盘显示在触敏显示屏上(以下称作触摸屏)并且用户通过记录笔接触显示器。

然而,应当理解的是,该系统可以应用到任何其中用户可以在显示键盘上描绘连续路径的系统,例如与用户的手指接触的触摸屏,或者甚至标准的计算机监视器(不是触摸屏),其中在计算机监视器中“接触”点是屏幕上光标的位置,其中光标在显示器上的位置是由鼠标(或类似的控制设备)控制的,并且其中与屏幕“接触”和“断开接触”的动作是由关闭和打开开关(或执行某种其他的控制动作,诸如在一个位置附近“驻留”而不用移动鼠标长于选定的阈值的一段时间)来指示的。该系统的操作将参照包括有由记录笔接触的触摸屏的方面,但不应当将其视为限定于本发明的范围,而只是作为提供对该方法的一些当前方面的描述的手段。

本发明的系统允许用户输入文本字词,而不必将记录笔放到屏幕上以接触预期的字母并且然后在接触下一个字母之前再次从屏幕举起记录笔-即不必敲击每个字母。由于不必执行举起并放下记录笔的无关的动作,并且由于通过帮助稳定记录笔和屏幕之间的关系,保持记录笔和屏幕之间的接触使得大体上保持了对接触位置更精确的控制,这使得用户可以更快地输入文本。而且,由于由用户描绘的路径不需要精确地接触预期的字词的每个字母,通常其允许显示的键盘总体上较大地减小了尺寸。就在键盘尺寸没有较大地减小的范围内,输入速度可以有助于相应地提高。

用户在触摸屏上描绘的以及由系统记录用于分析的路径称作输入图形。当用户在触摸屏上描绘出了输入图形时,系统记录了由触摸屏控制硬件探测的接触点的顺序。当输入图形被记录时,通过输入图形分析组件对其进行处理。输入图形分析组件体提取由图形匹配组件所需的数据,图形匹配组件将提取的数据与数据库中的字词比较,以识别一个或多个被确定为最可能匹配的候选字词的列表。将一个或多个这些被识别出的字词提供给用户以供选择,并且将被选定的字词添加到正由用户输入的文本。

在另一方面,该文本输入系统包括:设置在触敏显示屏上的键盘,其中每个被显示的文本字符按键的位置是由按键中央的屏幕坐标确定的,其是当从键盘上任何点确定与按键相关的字母的距离时使用的位置;输入图形的记录,其由一系列接触点的坐标位置构成,所述接触是通过记录笔从屏幕上抬起的位置从接触的第一位置探测的;分析输入图形的程序,以确定与一种或多种的一个或多个转折点相关的位置,并计算每个被确定的位置和与文本字符按键相关的位置之间的距离;字词数据库,所述字词可以利用系统来输入;确定那些字词与转折点的被确定的位置最匹配的程序;以及一种装置,其允许用户从被确定为最匹配的候选字词的集合中选择预期的字词。在另一个方面,当输入图形上的点位于按键的界线内时,从输入图形上的点的与按键相关的字母的距离被确定为0,否则被确定为从输入图形上的点到按键的被限定的界线上的最近的点之间的距离。

本发明的上下文中的术语“字母”被理解为包括出现在拼写数据库的一个或多个字词中的任何字符。因此例如,如果字词“can’t”是在系统的数据库中,就可以通过描绘出一个路径来输入该字词,所述路径开始在字母“c”附近,经过或接近“a”和“n”,然后经过或接近与撇号相关的按键,并在字母“t”附近结束。类似地,只要用在数据库中的每个字符与键盘上的至少一个按键相关,用连字符连接的字词、字母与数字混合编排的字词以及其他包括特殊字符的字词就可以全部包括在数据库中,并利用本发明的系统作为文本来输入。

在另一方面,输入图形分析组件首先将平滑过程应用到被记录的接触点的顺序,以减少“波动”的量,其可以是由触摸屏数字转换器中的任何前后不一致而引入的,所述的数字转换器报告每个被记录的接触点的坐标位置。在现有技术中,对数据点的顺序进行平滑的算法是众所周知的,多个这样的算法中的任意一种都可以用于此目的。输入图形分析组件然后分析该路径,以识别路径较大方式改变方向的“转折点”。可以通过多种如下所述的分析方法来探测并提取这样的转折点。

在一个可选的方面,探测多个转折点的方法是与不同的置信水平相关的,不同的置信水平实际上和与正在输入的字词的字母相关的按键的位置有关,并且又与权衡从输入路径的按键的距离的不同的方法有关,其中例如路径中的按键的水平和垂直距离可以被有差别地权衡。因此,当输入图形分析确定转折点是其位置可以精确确定并且存在较高的可能性转折点实际上与正在输入的字词的字母相对应的类型时,将确定数据库中潜在匹配的字词位置,其中所述的数据库中潜在匹配的字词被视为更可能匹配字词的更接近的相应字母。当转折点被确定为较不可靠的类型时,对潜在匹配的字词确定的可能性将会较小地受到从转折点的相应的字母的距离的影响。

在另一方面,输入图形分析组件确定输入图形中的点的顺序的x-和y-坐标的第一和第二次序差异(相当于变化率)的次序。x和y第一次序差异的比率与每个点的输入图形的“斜率”相对应,使得第二次序差异与斜率中的变化率相对应。停留在0附近的第二次序差异与输入图形的片断相对应,其是相对的直线。小的、相对恒定的第二次序差异表示与具有轻微的常曲率的输入图形的片断相对应的斜率中的变化的恒定比率。第二次序差异中的定点或急剧变化对应于输入图形的方向中相对急剧的变化。在另一个方面,由于第一和第二次序差异也是频率和速度的函数,其中操作系统以所述的频率采样并收集接触位置数据点,用户以所述速度移动接触点,就沿着输入路径的前一个以及后一个给定的点的固定距离的两个点,计算沿输入路径的两个点的第一和第二次序差异。在另外一个方面,为了简化计算的需求,通过对x-和y-第一次序差异的绝对量固定求和,估计固定的距离。在又一个实施例中,当系统探测到在圆圈中输入路径已经穿过自身(如下所限定的在DOUBLE_LETTER光笔指令输入中的小圆圈的输入),将所用的固定距离的量减小到大约圆圈的半径范围,并且依照标准的固定距离对所用的减小了的固定距离的比率衡量已计算的第二次序差异的量。

在另一个实施例中,输入图形分析组件识别输入图形中5个不同类型的转折点:PEN_DOWN,记录笔首先与触摸屏接触的位置;PEN_UP,记录笔与触摸屏断开接触的位置;ANGLE_THRESHOLD,X和y第二次序差异的绝对量的和达到局部极大、超过预定的最小阈值的位置;ROW_CHANGE,其他类型的两个连续转折点之间的位置,其中y坐标达到最大(或最小)值出现在键盘的行中,其中键盘位于两个连续转折点所在的行的上面(或下面);以及TAP,依照一个字母的字词或选择单一功能按键的情况,在接触屏幕后或多或少迅速抬起记录笔的位置。

在另一个方面,输入图形分析组件依照预定的范围的集合,识别不止一种类别的ANGLE_THRESHOLD转折点,通过第二次序差异求和所获得的最大值落在该集合内。可选地,通过第二次序差异求和获得的最大值用在了函数中,所述函数将微分权重应用到了与不同的转折点相关的距离。在另一个方面,依照第二次序差异首次超过预定的最小阈值的点以及其再次降到最小阈值水平之下的点之间的输入图形路径的长度,确定两种或多种类别(或子类别)的ANGLE_THRESHOLD转折点。总的来讲,该片断较短的长度对应于“较尖锐”的角度,该片断较长的长度对应“较圆”的角度。

在另一方面,确定了另外一种类型的转折点,其对应于预定类型的记录笔运动,用户需要执行该运动以只是双字母(DOUBLE_LETTER)的输入。为了对此说明,考虑到字词“feel”和“fell”的可能输入。为了输入任一个字词,用户在与字母“f”相关的按键处或其附近接触触摸屏,经过或接近与字母“e”相关的按键,移动记录笔到或接近与字母“l”相关的按键,并从屏幕上抬起记录笔。对于适当输入的图形,没有这样的DOUBLE_LETTER转折点类型,就不能将它们彼此分开,由于只有一个可以被作为缺省值(自动接受的)来显示,使得用户总是明确地选择两个字词形式的其中之一。当包括有DOUBLE_LETTER转折点类型时,对于字词“feel”的情形,将在与字母“e”相关的按键处或附近执行可区别的运动,对于字词“fell”的情形,是在与字母“l”相关的按键处或附近执行,使得系统可以区分两个字词的输入图形。在另一方面,与DOUBLE_LETTER转折点类型相关的运动是记录笔在与将被重复的字词相关的按键的位置处或其附近的小圆形的运动。DOUBLE_LETTER转折点的位置被确定为由用户描绘的小圆圈的中央。在另一方面,与DOUBLE_LETTER转折点相关的运动的每个连续的额外的重复表示该字母在正被输入的字词中的额外的出现。例如,通过在与字母“a”相关的按键处或其附近接触屏幕来输入字词“AAA”,用记录笔执行两个小圆圈并从触摸屏抬起记录笔。

根据双字母按键输入的方向与当离开按键时输入路径继续的方向之间的关系,对用户来讲难以确定实际上已经执行了多少个“小圆圈光笔指令”。在另一个方面,系统以与单独执行运动相同的方式来处理运动的额外重复。在这一方面,运动的一个或多个重复与任意序列相匹配,所述序列包括有一个字词中同一字母的两次或多次的连续出现,或者同一字母的可选形式的两次或多次的连续出现。在又一个方面,当在输入图形中探测到小圈(loop)时,所述的输入图形在输入路径的斜率中没有完成完整的360°变化时,将由系统匹配的DOUBLE_LETTER2转折点的可选类别识别为ANGLE_THRESHOLD转折点以及DOUBLE_LETTER转折点,为最好地匹配该字词的每个被评估的候选字词选择合适的解释。这样的转折点的实例可以在输入字词“fed”和“feed”的输入路径中找到,其中在描绘的路径是否易于包含双字母光笔指令中可能存在不确定性。改路径可以在“f”按键内开始,继续向上到“e”按键,并且根据用户在描绘输入路径中的习惯,在继续向下到“d”按键中,路径可以不经意地圈结到右侧并向下返回通过自身。假定路径穿过每个按键的中央(对于正确识别的理想路径),在录入“e”与从“e”按键离开之间路径的斜率改变了只有大约220°。同时,由于小的封闭的圆环已描绘在“e”按键上,该路径可以看起来象完美地向想要输入字词“feed”的用户正确执行了DOUBLE_LETTER光笔指令(gesture)。在另一方面,当与单个字母对多个字母匹配时,单独的附加调整因素考虑以DOUBLE_LETTER2转折点的方式使用。当DOUBLE_LETTER2转折点与单个字母匹配时,或者当其与双字母匹配时,标识确定该调整因素是否添加到为候选字词考虑的Matching_Metric。当用户描绘的小圆圈在斜率中没有完成完整的360°变化时,并且字词选择列表包括有对单字母和双字母匹配的字词时,系统确定两个可选的字词中由用户选择哪个用于输出。当用户的选项在选择列表中出现得比相应的可选字词低时,在用于DOUBLE_LETTER2转折点的调整因素(当必要时,相关的标识值)中做出递增变化。这使得系统能更好地适应习惯于在转折点生成小圆圈的用户,在所述的转折点路径“颠倒”了x-和y-组件的方向,如当前实例。在另一个方面,在对不同的度数的范围计算标识的单独的值和调整因素,斜率在完成圆圈光笔指令中根据所述度数变化。

在另一方面,当图形正被输入时,输入图形分析组件分析输入图形,使得一旦记录笔从屏幕上抬起,图形匹配组件可以以较小的延误或没有延误地识别潜在的匹配的候选字词。在系统内将屏幕首先被接触的位置记录为首先探测的转折点,并被识别为PEN_DOWN类型的转折点。在将记录笔再次从屏幕抬起而不用移动大于阈值距离或者保持与屏幕接触大于阈值时间段的情况下,第一个转折点被记录为TAP类型的单独的转折点。在另一个方面,当从触摸屏控制器接受接触位置数据时,通过平滑算法立即进行处理,以消除由触摸屏数字转换器导致的任何抖动。被平滑了的数据然后被用来计算x-和y-坐标中的数据流的第一和第二差异。然后将第二差异数据的数据流通过过滤器以确定什么时候x-和y-第二差异的绝对值的和超过被确定为ANGLE_THRESHOLD类型转折点一个或多个阈值中的任一个。每当超过任何这样的阈值时,在由数据点确定的接触位置识别ANGLE_THRESHOLD类型转折点,在所述的数据点,再次降到超出的阈值以下之前,第二差异的绝对值的和获取其最大值。当记录笔最终从接触屏抬起时,将屏幕最后被接触的位置在系统内记录为最后探测的转折点,并将其识别为PEN_UP类型的转折点。

在另一个方面,在识别第一个PEN_DOWN转折点之后,每当识别额外的转折点时,分析从以前识别的转折点到最近识别的转折点的数据以确定ROW_CHANGE类型的额外转折点是否可以被识别。当以前识别的转折点与最近识别的转折点之间的被记录的输入路径片断穿入键盘行时,所述的行高于(或低于)包含有两个被识别的转折点的行,即使不存在被确定的ANGLE_THRESHOLD转折点,存在合理的可能性路径片断进入的行包括有正被输入的字词的一个或多个字母。该系统识别由路径片断获得的最大(或最小)高度,并且在相应的位置识别ROW_CHANGE类型的转折点。在另一方面,由于环境提供了额外的证据:一个或多个转折点可以沿路径片断出现,首先重新分析路径片断以识别一个或多个ANGLE_THRESHOLD类型的转折点是否可以利用第二差异的较低标准的阈值来识别。如果较低的阈值不超过并且没有识别出ANGLE_THRESHOLD转折点,然后如上所述对ROW_CHANGE类型的转折点进行识别。ANGLE_THRESHOLD转折点与ROW_CHANGE转折点之间的重要的区别在于:在执行图形匹配分析中,不需要ROW_CHANGE转折点来匹配候选字词的字母。为了使得用户可以利用系统以尽可能快的速率来输入文本,需要对如何绘制输入路径施加尽可能多的限制。本发明通过允许用户偏离直接的路径而不用在正确的识别操作中受到惩罚而使得这变得容易。通过沿落入同一行键盘的字母之间的合理直的路径,并通过能够通过相邻行的按键弯曲向上而不必在方向上导致不正常的并且人工的“急剧”变化,录入的速度和输入图形的识别精度都可以得到提高。

在输入图形分析组件识别与输入图形相关的转折点之后,图形匹配组件检查存储在系统数据库中的字词,以确定哪个字词是最可能匹配的候选字词。但这里所描述的方面是简单的并且是计算的方法,以识别数据库中的哪个字词最匹配输入图形,将应理解的是其他可选的方法可以获得这样的目标,并且不应当视为超出了本发明的范围。

在另一个方面,以容易有效地由图形匹配组件搜索的方式组织数据库中的字词。由于每个输入图形具有两个容易并且可靠地识别的转折点——第一(PEN_DOWN)和最后(PEN_UP)——它们两个总是明确地与正被输入的字词的第一个和最后一个字词相匹配,依照按键的对成群地组织数据库中的字词,所述的按键对与包括有每个字词的词首的以及最后一个字母的字母有关。图形匹配组件只是识别了位于从PEN_DOWN转折点的阈值距离内的按键的集合以及位于从PEN_UP转折点的阈值距离内的按键的集合以及,并且只检查了那些具有与被识别的按键集合相关的词首字母以及最后一个字母的字词组。这样,必须被评估的数据库中字词的数量大大减少,允许系统足够有效地运行使用,即使在具有相对较小功率的处理器的设备中。

可以由输入图形分析组件容易并且可靠地识别的输入图形的另外的特点是输入图形的路径的总长度。由于字词可以具有小数目的相隔较大的字母(例如“ape”)或者较大数目的间隔较密的字母(例如“deceased”),就字词中字母的数量而言,输入路径的长度不能可靠地与字词的长度相关。然而,对于任一给定的键盘布局以及屏幕结构,每个字词的平均预期长度是容易计算的。在另一个方面,将字词的预期长度计算为与字词的顺次字母相关的按键的中央之间的距离的和。在字词“ape”的实例中,这将是从“a”按键到“p”按键的距离的和,加上从“p”按键到“e”按键的距离。由于预期的路径长度只是对给定的字词的实际输入图形的预期的近似值,在另一方面,将与数据库的字词相关的预期路径的长度的范围分割成相对小数目的范围,每个这样的范围与其预期的路径长度落入该范围的字词类别相关。与每个字词相关的预期输入路径长度类别可以与字词存储在一起而不用较大地增加数据库的大小,或者可选地,可以依照预期的输入路径长度类别将数据库中的字词成群地存储。在另一种情况下,由于图形匹配组件利用由输入图形分析组件测量的输入图形的实际长度,只是忽略属于显著不同的预期输入路径类别的字词,需要由图形匹配组件详细检查的字词的数量大大减小。在另一个方面,字词选择组件计算输入图形的实际测量长度对选择用于输出的字词的预期输入路径长度类别的比率的移动平均值,图形匹配组件利用该比率确定对于给定的被测量的输入图形路径长度,将会检查哪个预期的输入路径长度类别。

在另一方面,基于将被检查的预期输入路径长度类别以及确定用于当前输入图形的词首字母和最后一个字母的候选对,该系统确定数据库中的哪个字词具有潜在的匹配候选项的资格,其必须由图形匹配组件评估。在另一方面,通过确定被识别为PEN_DOWN、PEN_UP或者ANGLE_THRESHOLD中任一类别的转折点的总数,进一步限制候选字词的数量。转折点的总数与候选字词必须包含的字母的最小数目相对应(由于ROW_CHANGE转折点不需要去匹配字母)。由于输入路径可以通过字词的字母或在其附近而不需要生成转折点,候选字词也可以包含多余该最小数目的字母。

用于限制需要被评估的数据库中的字词的数量的另一个特点是输入图形中的预期的最小数量的转折点。如上所述,具有相同的预期输入图形路径长度的字词可以在字词的字母的数量上有字词的很大差别。字母的数量以及键盘上它们之间的连续的集合关系可以用于确定所需的最小数量的转折点。在另一个方面,对于数据库中的每个字词,分析定向的线段的图形以确定在键盘上输入的和输出的线段之间的角度超过预定阈值的情形的数量,其中所述的定向的线段连接与字词中的字母相关的每个连续的按键对。将该数量与字词记录在一起以作为必须出现在输入图形中的最小数量的ANGLE_THRESHOLD转折点,以使字词取得潜在的匹配候选项的资格。通过计算匹配度量,图形匹配组件评估数据库中每个被确定的候选字词,其中所述度量反映了输入图形与字词的对应程度。匹配度量是从沿输入图形的一系列点的字词的字母距离的函数,其中输入图形的点必须与字词的字母出现在同一序列中,从所述的输入图形的点计算距离。在一方面,PEN_DOWN、PEN_UP或者ANGLE_THRESHOLD类型的转折点必须与候选字词的字母相匹配,使得从字母与其相关的按键到转折点之间的距离包括在匹配度量函数的计算中。如果ROW_CHANGE转折点也被识别,并且在每侧的ROW_CHANGE转折点上的转折点之间存在一个或多个不匹配的字母,则这些不匹配的字母的其中之一必须与ROW_CHANGE转折点相匹配,使得从字母与其相关的按键到ROW_CHANGE转折点之间的距离包括在匹配度量函数的计算中。从沿输入图形最近的点测量到任一额外的不匹配字母的距离,其位于在不匹配的字词紧跟之前和紧接之后测量其到字母的距离的点之间,并且该距离也包括在匹配度量函数的计算中。

在另一方面,从输入图形到任一潜在匹配的字母之间的距离与最大的阈值距离进行比较,使得无论何时发现字母从输入图形中任何可能的匹配点比阈值距离远时,将该字词作为可能的候选项删除。由于只要图形匹配算法从输入图形上的任何可能的匹配点识别了超出阈值距离的字词的字母,这足以加速了评估进程,该算法立即继续评估下一个候选字词。

在一方面,将匹配度量函数计算为从识别出的转折点到与字母相关的按键之间的距离的和,转折点与所述的字母匹配,将该距离加到任何不匹配的字母,其中从沿如上所述的输入图形的最近的点测量每个字母。在另一方面,将该匹配度量函数计算为这些距离的平方和。在另一方面,在计算该和之前,将权重函数应用到每个距离(或平方距离),其中应用到每个距离的权重是依照转折点的类型来确定的,从所述转折点测量距离。为了规范化该结果,使得该度量可以用于有目的地将字词之间的结果与不同数量的字母进行对比,通过用在计算求和中的权重因子的和将加权和分割。在一方面,通过下列的因数,权重函数倍增每个距离:对于PEN_DOWN、PEN_UP或DOUBLE_LETTER类型是3;对于ANGLE_THRESHOLD类型是2;对于ROW_CHANGE类型是1;从输入图形上不同于转折点的点测量的距离是0.5。用在不同的转折点的不同的权重因子反映了不同的预期可信度,该可信度是给定类型的转折点被精确定位,并且实际上被探测的转折点反映了正被输入的字词的字母将被在附近定位的事实。

在另一方面,根据转折点的类型,从所述转折点测量距离,距离的x-和y-组件不同地进行权衡。特别地,在ROW_CHANGE转折点的情况下,期望转折点的位置的垂直y-坐标是预期的字母的垂直位置的相对精确的反映是合理的,但是x-坐标位置有充分的理由可以与预期的字母的显著不同。在这种情况下,距离的y-组件的权重比距离的x-组件的权重更重。当水平位置不能可靠地确定时,显著减小应用到距离的x-组件的权重避免了对转折点的水平位置设置不合适的权重。

在候选字词的M个字母和N个被识别的转折点以及输入图形路径片断之间识别最优匹配的问题是“最短路径”问题的变体,在动态规划领域该问题是众所周知。已经设计了不同的算法,诸如Floyd-Warshall算法来解决寻找最短路径的问题,所述最短路径从指定的开始顶点到指定的结束顶点通过边权图(edge-weighted graph)。

典型的问题是以某种方式模拟在转折点和输入图形的插入路径片断以及与潜在匹配的候选字词的字母相关的按键的位置之间识别最优匹配的问题。这样的算法是相对复杂并且是时间密集的(对于带有N个顶点的图形属于N3的一类)。然而,由于以下的多个重要的附加限制,使得当前的问题更容易处理:

1、候选字词的第一个和最后一个字母必须与PEN_DOWN和PEN_UP转折点分别相匹配,并且在拼写字词中字母的顺序必须与转折点出现的顺序相匹配。

2、每个转折点必须与字母匹配。

3、可以潜在地匹配给定的转折点或路径片段的字母的数量限制到出现在点或片断的MAX_DISTANCE中的字母,大大限制了将被评估的可能的方法的数量。

4、一旦转折点与字母匹配,每个剩余的未匹配的字词必须与路径片段相匹配,所述路径片段连接与最近的前一个和下一个匹配的字母相匹配的转折点。

结合上述的限制,输入方法的本质通常产生M个字母的字词的N个转折点的输入图形的事实使得基于某种试探法设计匹配算法成为可能,其中M并不比N非常大,所述的试探法在操作中展示最少量的递推并且因此甚至有效地运行在具有有限的处理能力的设备上。在这些当中首要的事实是对于(N-2)个需要与字母匹配的转折点,存在至多(M-N)个需要考虑的字母。

在一方面,图形匹配组件利用下列的算法来用确定为输入图形的N个转折点来匹配M个字母的候选字词的字母。第一个(PEN_DOWN)转折点始终与字词的第一个字母相匹配,最后一个(PEN_UP)转折点始终与最后一个字母匹配。变量Match_Lim初始化到(M-N),并且当算法继续时追踪在下一个未匹配的字母之后有多少字母需要看作是每个连续转折点的可能的匹配候选项。将阵列MATCH[]、RECURSE[]、和BACK_TRACK[][]以及变量RECURSION_LEVEL全部初始化到0,并且跟踪当找到多个可能的方法时,系统在那里需要折回。对于每个随后的转折点,系统确定在Match_Lim之后有多少还没有匹配的字母可以与其匹配。如果没有,并且RECURSION_LEVEL被设置为0,则当前的字词不是候选项,并且算法返回失败代码。如果只有一个,则其与转折点相匹配,并且系统确定是否所有的以前还未匹配的字母可以与以前的路径片段相匹配。如果任一以前还未匹配的字母不能与以前的路径片段相匹配,并且RECURSION_LEVEL被设置为0,则当前的字词不是候选项,并且算法返回失败代码。否则,每个以前还未匹配的字母与以前的路径片段相匹配,并且Match_Lim被这样的字母的数量缩减。对于每个匹配的转折点,相应的MATCH[]的输入被设置为字母的索引,其与该索引相匹配。如果转折点J可以与不止一个下列Match_Lim还未匹配的字母相匹配,并且在所有情况下所有的以前任何还未匹配的字母可以与以前的路径片段相匹配,则最匹配的字母暂时与转折点相匹配,将BACK_TRACK[J][0]设置为小于这样的字母数量K的值,剩余的潜在的匹配字母以最匹配程度递增的顺序存储在BACK_TRACK[J][1..K]中,RECURSE[RECURSION_LEVEL]被设置为J,RECURSION_LEVEL增加,该算法继续试图匹配下列的转折点。如果系统确定不可能存在字母对随后的转折点匹配,并且RECURSION_LEVEL没有设置为0,则系统暂时返回,用存储在BACK_TRACK[J][BACK_TRACK[J][0]]中的字母来匹配转折点J=RECURSE[RECURSION_LEVEL-1]。该系统减量BACK_TRACK[J][0],并且如果BACK_TRACK[J][0]被减量到0,RECURSION_LEVEL也被减量。如果系统确定了每个转折点的可能的匹配,则算法停止,即使RECURSION_LEVEL大于0。由于算法首先用可能的匹配对每个转折点选择了最好的匹配,识别出的第一个有效的匹配可能是最优的匹配,在任何情况下,设置在匹配上的限制使得多个方法,即使它们存在,具有显著不同的匹配度量值不太可能。图3D表示优选的匹配算法的流程图,在优选实施例的说明中将会对其详细描述。

另一方面,图形匹配组件使用了另一种算法,该算法执行递归处理,以用确定为输入图形的转折点来匹配候选字词的字母。字词的第一个字母始终与第一个(PEN_DOWN)转折点相匹配,最后一个字母始终与最后一个(PEN_UP)转折点匹配。对于每个随后的字母,该系统确定其是否可以与当前的(下一个未匹配)的转折点相匹配。

如果其不能,或者可选地,如果后面的字母实际上是与当前转折点的更好的(即更接近的)匹配,则确定当前的字母是否可以与位于前一个(已经匹配的)转折点和下一个未匹配的转折点之间的点(如果其也与当前的路径片段匹配,或者是前一个字母匹配的点)处的当前路径片段相匹配。如果不是,则当前的字词不是候选项,但是如果是,在确定的点用当前的路径片段与当前的字母相匹配,并提前到下一个字母以确定其是否可以与依然没有匹配的转折点相匹配。然而如果当前的字母可以与当前的(下一个未匹配的)转折点相匹配,则确定下一个字母是否可以与或者下一个转折点或者路径片段相匹配,但是如果不匹配,确定当前的字母是否可以和位于前一个(已经匹配的)转折点之间的点(如果其也与当前的路径片段匹配,或者是前一个字母匹配的点)处的当前路径片断相匹配,如果是,用当前的片段和当前的字母相匹配,并提前到下一个字母,以确定其是否可以与依然没有匹配的转折点相匹配。

在另一个方面,数据库中的字词也包括有与字词相关的使用频率的指示。在计算匹配度量中,将与字词相关的使用频率与距离的加权和相结合,所述的匹配度量的值用于确定潜在匹配的候选字词的相对等级。在一个方面,将匹配度量计算为:

(Weighted_Sum_of_Distances)*(log(MAX_FREQ/Word_Frequency)+1)

其中Weighted_Sum_of_Distances由图形匹配组件对候选字词计算的值,Word_Frequency是与候选字词相关的使用频率,MAX_FREQ是在数据库的字词中使用频率的最大值。在该公式中,匹配度量越小,候选字词越有可能被考虑为输入图形的预期的匹配。

在另一个方面,被图形匹配组件识别为最可能的候选项的一个或多个字词提供给用户,以供字词选择组件选择。在一个方面,预定数量的最可能的候选项例如4个被显示在字词选择列表中,从该列表用户可以选择预期的字词以插入正在排字的文本。在另一个方面,如果用户没有从字词选择列表中明确地选择候选字词,当执行随后的输入动作时(例如用户开始描绘下一个输入图形或选择确定的字符用于输出),缺省的字词选项(被视为最可能的候选项的字词)就会被自动接受以插入到正在排字的文本。另一方面,在像是字词选择列表后用户没有采取动作达阈值时间时,缺省的字词选项就会被自动接受以插入到正在排字的文本。

在另一方面,当在前一个输出的字词之后立即要输出字词插入到正在排字的文本时,在输出字词之前,单一一个空格会自动插入到输出的文本。由于用户不必再在每个输出的字词之间明确地激活空格键,这显著地加快了散文文本的录入,并且可以接连地输入字词以作为连续的输入图形,字词之间适当的空格被自动生成。由于每个档次之后没有自动输出空格,当用户希望输入标点符号诸如逗号或句号时,在输入标点符号之前没有必要自动删除输出的空格。

在另一方面,当描绘出输入图形时,该系统记录了记录笔与触摸屏接触的时间长度。这使得系统可以估计在描绘输入图形中用户移动记录笔的速度。假定随着实践和熟练,用户在描绘字词的输入图形中将会更快时合理的,由于更通常使用的字词将易于更快地输入用户不太熟悉的字词,在计算数据库中字词的匹配度量值中,用户可以利用将更高的权重应用到字词频率的影响。

另一方面,附加的时间信息与输入图形记录在一起,诸如以固定的间隔的北极路的接触位置的时间戳序列(例如每10msec.),使得可以沿输入图形的每个点估计记录笔移动的速度。

存在当用户认识到他或她在输入当前的字词中犯错误的情形,诸如忽略了字母,记录笔移动到了非预期的位置或一些其他的类似错误。

由于系统一直试图找到最好的匹配并识别至少一个缺省的字词选项,用户将不得不从触摸屏抬起记录笔、移动到取消当前字词选择列表的按键并激活该按键。在另一个方面,输入图形分析组件识别“取消”光笔指令(gesture),其可以在描绘输入图形中的任意点做出。另一方面,该光笔指令包括来回移动记录笔阈值次数,其中记录笔移动得比阈值速度要快。在一个方面,移动的缺省次数时3次(例如,右-左-右),并且根据在输入用户接受的字词过程中测量的最快的记录笔移动速度,自动设置移动的最小阈值速度(例如比最快的速度快5%)。

由于“取消”光笔指令不需要精确地控制或执行,高速执行是容易的。

本发明中描述的取消光笔指令是简单的并且直观的,因为其包含有简单地“胡乱地写出”以前描绘的输入图形的感觉。在另一个方面,只要输入图形分析组件识别出Cancel光标指令,该系统提供就视觉的和/或听觉的反馈(例如,有区别的蜂鸣)。用户可以只是从触摸屏抬起笔并再次开始输入预期的字词。当在输入档次中用户中途确定不同的字词更合适时,该特点也是有用的。

如上所述,图形匹配组件将有输入图形分析组件提取的转折点的位置与数据库中字词的转折点的理想化的位置进行对比(对应于每个相关字母的按键的中央),以将潜在的字词匹配分级。在另一方面,依照这些探测的习惯的输入图形,通过调整从输入图形提取的转折点的位置,该算法进一步增加了对为给定用户探测的图形的解释(例如连贯地为命中目标字词但某一百分数的趋势)。每当用户从字词选择组件中选择用于输出的字词时,将每个转折点的位置和与输出的字词中字母相关的按键的中央位置进行对比,该转折点与所述的输出字词相关。爱另一方面,计算两个位置之间的x-坐标差异和y-坐标差异。

 对每个类型的转折点(PEN_DOWN、PEN_UP、ANGLE_THRESHOLD、ROW_CHANGE、TAP和DOUBLELETTER)计算这些差异的移动平均。对于PEN_DOWN和PEN_UP转折点,基于输入图形(起始于PEN_DOWN,或中止于PEN_UP位置)的路径的向量是正向或负向,计算单独的移动平均。

对于ANGLE_THRESHOLD转折点,基于对应的第二个差异时正的还是负的,计算单独的移动平均。然后,当输入每个新的输入图形时,通过添加对该类型的转折点(或其预定的片断)计算的平均差异,调整由输入图形分析组件提取的每个转折点的x-和y-坐标。图形匹配组件然后利用被调整的转折点的位置来识别预期的字词。该方法使得该系统可以识别用户输入图形中的连贯趋势。例如,如果只有当用户移动到右侧来触及键盘右侧的按键时用户超过预期的字母,并且只有当用户移动到左侧来触及键盘左侧的按键时用户未达到预期的字母,由于对出现在记录笔移动到右侧结束时的ANGLE_THRESHOLD转折点单独计算移动平均(导致了在X-坐标的负的第二差异)并且对出现在记录笔移动到左侧结束时的那些转折点单独计算移动平均(导致了在X-坐标的正的第二差异),该图形将会被探测到。当在转折点类型和预期的按键位置之间不存在连续的关系时,该转折点类型的移动平均将接近于0,调整将会有负面影响。

在另一个方面,输入图形分析组件将键盘上的单一敲击识别为TAP类型的转折点。图形匹配组件处理TAP类型的转折点,它是通过首先确定在从转折点的阈值距离内是否存在一个或多个一个字母字词,如果是,生成包含有一个或多个一个字母字词的字词选择列表,具有最好匹配度量分值的一个字母显示为缺省的字词选项。此外,在一个字母字词之后,与按键相关的字母也被添加到字词选择列表(除非该字母已经显示为一个字母字词),其中在所述按键的边界内出现敲击接触(“敲击位置字词”)。如果在TAP接触之后用户继续描绘输入图形,则缺省的字词选项(通常是一个字母字词,但如果没有一个字母字词被确定为候选项,可能是敲击位置字母)作为一个字母字词插入到输出的文本,正好与多字母缺省字词选项相同。然而如果用户继续敲击键盘,则敲击的顺序生成字词对象,其是由以相应的按键被敲击的(“敲击位置字词”)顺序连接的敲击位置字母所组成的。在第二次敲击之后,由敲击位置字母组成的字词作为缺省字词出现在字词选择列表中。用户选择该字词(或者通过明确地从字词选择列表中选择或通过继续描绘输入图形以输入下一个字词,因此选择敲击的字词是根据其是缺省的字词选项),将该字词插入输出文本。在另一方面,无论何时接受由敲击位置字母组成的字词输出到正在生成的文本中时,如果该字词没有出现在数据库中,将其自动添加到由该用户添加到初始出现在该系统的字词数据库的字词的用户字词列表。

在许多语言中,通常使用多种替换形式的某些字母,一般是由具有不同可区分标记的字母所组成的。例如,根据该语言,字母“e”通常使用的其它形式包括“è”、“é”、“ê”和“ё”(其他形式也有可能——这只是一个描述实例)。大多数屏上键盘需要用户选择特殊的替换形式以显示一个或多个替换键盘,必须从所述键盘选择预期的替换字母形式。在本发明中,这样的替换字母形式是以两种明确并且有利的方法来处理的。首先,以数据库中的字词的语言使用的字母的每种替换形式与同一按键相关,字母的基本形式(在当前实例中是“e”)与该按键相关。由于指定字母的哪种替换形式用在字词拼写中的信息包括在数据库中,用户可以象输入不具有替换字母形式的字词一样,输入具有替换字母的形式的字词——即,只是描绘出输出图形,该输出图形通过或接近一系列与字词中所有字母的基本形式相关的按键。在两个字词出现在数据库中对应于恰好是相同顺序的按键(即除了存在一个或多个替换字母形似外,字词是相同的)的情况下,这些字词将一般都添加到字词选择列表,具有更高使用频率的字词出现在字词选择列表中更高的位置。

对替换字母形式以有利的方式进行处理的第二种方式是录入由一系列敲击位置字母组成的新的字词。在本发明中,为了明确选择替换字母形式以拼写出数据库中不存在的新的字词,用户不需要选择替换键盘。在另一方面,可以通过接触与字母的基本形式相关的按键并且保持与按键的接触(而不从其上滑落)达到超过预定的阈值时间长度的时间,来选择替换字母形式。一旦超过阈值时间段,就显示与按键相关的替换字母形式的“pop-up列表”,这时用户可以滑动接触点到列表中字母的预期替换形式,抬起记录笔来选择替换形式作为敲击位置字母。然后将替换字母形式照常添加到敲击位置字词,使得用户可以在拼写新的字词时容易地生成任何预期顺序的字母,而不必改变键盘的模式,其中所述新的字词包括替换字母形式。

在本发明的另一方面,修改键盘布局以增强区分那些可能更难以区别的输入图形的能力。由于大多数用户对其是熟悉的,标准的“QWERTY”键盘设置为多数用户所喜欢。这种布局的缺点是元音字母“u”、“i”和“o”的近似。由于将系统设计成允许用户在描绘图形时可以不准确,并且由于这些元音字母经常在其它方面相同的字词中互换(例如“hut”、“hit”和“hot”),在标准“QWERTY”键盘设置中这些元音字母的近似引起了不能给用户提供预期的字词作为缺省的选项的较大比例的发生率。在另一方面,“i”按键的宽度增加了,有效增加了这三个相邻的原因字母的中央之间的间隔,结果使得用户更容易地迅速定位记录笔相对接近到三个预期的字母。由于“u”和“o”以及其他相邻的字母之间的混淆不是问题,没必要也扩大这些按键的宽度。同样,相邻的鼻辅音字母“n”和“m”经常是可更换的,另一方面,稍微增加与“n”和“m”相关的按键的宽度,以增加这些按键的中央之间的间隔。

另一方面,通过在垂直方向加长键盘,进一步修改键盘布局以提高系统正确分析输入图形的能力。通过增加键盘相邻行之间的距离,用户可以更容易地快速描绘出输入图形,所述输入图形在键盘的实际行内正确定位线段和转折点,其中所述的键盘的实际行包含有预期的字母。由于其大大减小了只是在相邻行中的字母不同的候选字词(例如“hot”和“not”)之间的混淆,这改善了图形匹配组件的性能。然后可以修改图形匹配组件计算的匹配度量,将增加了的权重应用到候选字词的字母的按键与转折点的位置之间的距离的垂直组件。

当系统向用户提供作为缺省字词选项的预期字词时,由于继续描绘输入图形到下一个预期的字词使得缺省的字词选项自动输出插入到正在排字的文本,所以不需要用户的另外的动作。当系统以高精确度识别用户的预期字词时,为了快速从一个字词移动到下一个,加速文本录入,可能存在对字词选择列表不够注意的趋势。结果,可能偶尔存在缺省的字词与用户预期的字词不对应的情形,使得将非预期的字词输入到输出文本,用户必须随后对其进行编辑,将其改变为预期的字词。在另一方面,系统允许用户在输出的文本中选择字词重新编辑,例如通过双击将被编辑的字词或者通过使该字词其突出显示并激活指定的编辑功能键。当选择字词重新编辑时,通过生成路径,该系统生成模拟的输入图形,所述路径顺次连接与组成字词的字母的顺序相关的按键的中央。为了避免生成在原始输入图形中不可能存在的“人造的”转折点,首先将平滑处理应用到生成的输入图形,以避免在输入图形的路径只是稍微改变了方向的按键处生成ANGLE_THRESHOLD转折点。然后由系统以与用户描绘输入图形相同的方式来处理被平滑了的输入图形。在另一方面,生成更长的字词选择列表以增加用户最初预期的字词在选择列表中某处出现的可能性。由于正被重新编辑的字词非常接近将被选择为缺省字词选项的最初输入图形,最初预期的字词非常接近出现在字词选择列表中的生成的输入图形是极有可能的,所述字词选择列表是在处理生成的输入图形中由图形匹配组件生成的。从字词选择列表中选择字词,以选定的字词自动代替被突出显示用以重新编辑的字词。

尽管以上的描述包含有多种技术条件,但这些不应构成对本发明的范围的限制,而只是提供了对该方法的当前的一些方面的描述。例如,可以用其它的方法来分析输入图形,也可以以其他的方式来组织字词数据库,并且图形匹配组件可以使用其它的算法来识别最可能的候选字词。例如,在具有足够处理能力的设备上,形成数据库中每个字词的字母的顺序可以只与输入图形相比较,从输入图形上最近的点顺次测量字词的每个字母的距离,所述的最近的点出现得比进行前一次测量的点要晚。对本发明的基本理解是当可以利用熟悉的并且恒定的键盘布局,但不必在输入每个字词中从触摸屏抬起记录笔,并且不必暂停或执行任何其它动作除了描绘出顺次通过或接近每个字母的路径时,通过利用触摸屏键盘执行文本输入更快更有效。本系统可以使用任何类型的触摸屏,并且输入设备可以是记录笔、手指或任何用作触敏屏上输入设备的工具。触敏屏可以由能够执行所需处理的任何类型的计算机或手提计算机所使用。因此该方法的范围将由附加权利要求以及它们的法律同等物来确定,而不是由上述的特定方面来确定。

附图说明

下面参考附图,详细说明本发明的优选和备选实施例:

图1是表示具体体现如图2A和2B中所示的本发明的方法的系统的典型硬件组件的硬件方框图;

图2A是具有触摸屏显示器的便携式计算机的优选实施例的示意图,本发明的键盘系统被显示在所述触摸屏显示器上;

图2B是表示在用户完成描出输入图案,并从触摸屏提起记录笔之后显示的字词选择列表的一个实施例的相同的示意图;

图2C表示用户触动记录笔在“e”按键上并保持与该键接触超过预定的时间阈值之后显示的替换字体的Pop-up选择列表的实施例;

图2D是表示当用户未能从字词选择列表中选择预期的字词时,帮助用户校正先前输出的字词的“Re-Edit”功能的一个实施例中的第一阶段的相同的示意图;

图2E是图解说明“Re-Edit”功能的操作中的第二阶段的相同的示意图;

图2F是表示在对应于字词“Atlantic”的输入图案中识别的ROW_CHANGE转折点的一个例子的又一个相同的示意图;

图3A-3J表示实现本发明的方法的软件算法的一个优选实施例,以便确定数据库中与用户描出的输入图案匹配的最可能的一个或多个字词。

具体实施方式

图1表示其中实现基于连续笔划字词的文本输入的系统和方法的典型设备100的硬件组件的简化方框图。设备100包括触摸屏120,触摸屏120向CPU(处理器)110提供输入,当触摸屏幕时所述输入把屏幕被触摸时的接触事件通知CPU(处理器)110,典型地由硬件控制器来调解,所述的硬件控制器解释从触摸屏接受的原始信号并利用已知的通信协议通过可用的数据端口将信息传播到CPU110。同样,对于显示器130,CPU110与硬件控制器通信,以在显示器上绘画。任意地,扬声器140也连接到处理器使得任何合适的听觉信号可以作为导引(主要是对于错误信号)转到用户。处理器110可以使用存储器150,存储器150可以包括暂时的和/或永久存储器的联合,以及只读的和可写的存储器(随机存储器或RAM)、只读存储器(ROM)、可写的永久性存储器(诸如闪存、硬盘、软盘等)。存储器150包括程序存储器160,存储器160包含有所有的程序和软件诸如操作系统161、基于连续笔划字词的文本输入软件162以及其他的应用程序163。存储器150也包括数据存储器170,数据存储器170包括基于连续笔划字词的文本输入软件162所需的数据库171、用于维护用户选项和优选项记录的存储器,以及由设备100的任何器件所需的任何其他数据173。

图2A是表示典型的手提式便携式计算机2100(通常称作“个人数字助理”或PDA)的示意图,设计并用在依照本发明中的键盘2104系统被显示在所述触摸屏2102上。当用在本发明中时,键盘2104生成文本,该文本被输出到文本显示区域2106的文本插入点2108。本申请中的术语“键盘”指的是在触敏表面上实现的任何键盘,包括如图2A中所示在触敏显示器上呈现的键盘,以及在触敏表面上压印的键盘。键盘2104明确地在大致安排成多数键盘上的标准“QWERTY”排列的26个按键上表示英语字母表的26个字母。根据一个优选实施例,一些按键,例如键盘2104上所示的“i”键明显宽于普通按键,以便在其它相邻的按键,例如通常含糊的“u”、“i”和“o”按键(在本发明的上下文中“含糊”是因为存在字词集合的常用的实例,除了将这些元音的其中之一代替为另一个以外,所述的字词是相同的)之间具有更大的间隔。同样,由于同样的原因,以稍微大于平均宽度来显示“n”和“m”按键2112。

通过在与正被输入的字词的第一个字母相关的按键上或其附近接触键盘2104、顺次描绘经过字词的每个字母或其附近的连续的图形以及当字词的最后一个字母完成时断开与触摸屏的接触来生成文本。图2B表示计算机2100的相同的示意图,其中具有代表性的输入图形2200附加显示在被显示的键盘2104上。在一个优选的实施例中,用户可以将输入图形的路径是否实际上逐字地画在显示器上以及当从显示区域2106中显示的选择列表2208中选择字词时或取消选择列表2208时删除输入图形作为一种选择。在如图2B所示的实例中,为了描述的目的打开该选项。在该实施例中,用户试图输入字词“text”,系统成功地匹配了字词“word”作为最可能的候选字词,使得其显示在选择列表2208中的缺省字词选择位置2210。由用户利用触摸设备诸如记录笔输入的输入图形的路径开始在初始接触点2212,初始接触点的位置是由处理器接收的并由输入图形分析组件记录的,所述输入图形分析组件由处理器执行为输入图形的PEN_DOWN转折点。用户移动记录笔使得路径首先移动到与字母“e”相关的的按键,然后突然移向与字母“x”相关的按键,生成ANGLE_THRESHOLD转折点,该转折点由位置2214处的输入图形分析组件识别。然后,在与字母“x”相关的按键的附近(尽管没在其上),路径突然退到与字母“t”相关的按键,生成ANGLE_THRESHOLD转折点,该转折点由位置2216处的输入图形分析组件识别。最后,将记录笔从位置2218处的触摸屏抬起,输入图形分析组件将其记录为输入图形的PEN_UP转折点。在另一个优选实施例中,选择列表2208也显示三个额外的候选字词,这三个候选字词具有次最高的匹配度量值,在如图2B所示的实例中其为“test”、“rest”和“great”。在优选实施例中,当字词的字母或多或少沿前一个和后一个字母之间的垂直路径存在时(如字母“r”在“great”中的情况),没必要做任何事情,除了通过或在预期的字母附近继续输入图形的路径。从而,依照另一个优选的实施例,在附图2B的实例中,尽管只有四个转折点由输入图形分析组件识别,处理器识别其具有多于四个字母的字词“great”。

在另一个优选的实施例中,选择列表2208也包括“(more)”功能2220,该功能的选择使得处理器识别并显示下四个额外的候选字词,这四个额外的候选字词具有数据库中的剩余字词的匹配的度量值。在图2B的实例中,尽管没有示出,接下来的4个这样候选字词是“fear”、“tear”、“year”和“feat”,并且响应“(more)”功能2220的选择将其显示在选择列表2208中。如果由于任何原因用户选定不在被显示的选择列表2208中选择任何字词,可以通过选择“Cancel”功能2222来关闭选择列表显示。

在另一个优选实施例中,当用户以足够的精度录入输入图形并且发现,缺省值实际上一直是预期的字词时,用户可以选择关闭选择列表显示,这样只有缺省实际上一直是预期的字词,用户可以选择关闭选择列表显示使得只有缺省的字词显示在插入点。为了以轮流的字词选项显示选择列表,在进程之前,必须激活出现于键盘2104中的Re-Edit功能键2224。可选地,在另一个优选的实施例中,用户可以只选择减少显示在选择列表2208中的字词选项的数量。

依照另一个优选的实施例,尽管没有正常明确地显示在键盘2104的按键上,不同的替换的字母形式(诸如具有可区分标识的字母)与每个按键相关,每个按键与具有替换形式的字母的基本形式相关并显示具有替换形式的字母的基本形式。依照另一个优选的实施例,附图2C表示字母“e”的替换字母形式的“Pop-up”菜单2300,在用户在“e”按键上触摸记录笔后显示字母“e”,并且保持与该键接触超过预定的时间阈值。在附图2C所示的实例中,用户滑动记录笔的接触点2302一直到包含有替换字母形式“é”的列表行2304,替换字母形式“é”相应地被突出显示,使得当用户从屏幕举起记录笔时,通过传统的“敲击”,字母“é”将被明确地添加到当前正被拼写的字词。该实施例使得用户可以明确地输入字母的替换形式,以拼写出还没有出现在系统的数据库中的字词,而不用转换到替换键盘布局显示。在附图2C所示的实例中,用户处于拼写出字词“café”的过程中,并已“敲击”了Shift按键,继之以“c”、“a”和“f”按键,生成TAP位置字词对象“Caf”,其作为列表中的缺省的(并且是唯一的)字词对象出现在文本插入点处的字词选择列表2306中。当用户从位置2302处的屏幕举起记录笔时,字母“é”将被增补到TAP位置字词以形成字词“café”,依照本发明的另一个优选实施例,可以通过敲击箭头2308处的选择列表2306明确地将其选择,或者可以通过继续输入连续的下一个字词的笔划输入图形将其隐含地选择。可选地,用户可以通过选择与Cancel功能相关的箭头2310来取消当前的选择。

在另一个优选实施例中,如图2D所示,当用户无意中地接受了用于输出的缺省的字词到文本区域2106,而该缺省的字词与预期的字词并不符合,可以利用由Re-Edit功能键2224激活的Re-Edit功能来纠正以前输出的字词。或者通过双击该字词以使其突出显示,或者通过多种已知技术中的任何一种来选择无意输出的字词。一旦目标字词(附图2D种的“great”)被选定,用户就通过双击该字词激活了RE-Edit功能键2224。通过生成路径,处理器然后生成仿真的输入图形2402,所述路径顺次连接与字母顺序相关的按键的中央,其中字母顺序包括有目标字词。附图2D表示由处理器生成的目标字词“great”2400的模拟输入图形。为了避免生成“人为的”转折点,其中它们不可能存在于原始的输入图形中,首先将平滑过程应用到生成的输入图形2402,以避免在输入图形的路径实际上只是轻微改变了方向的按键处生成假的ANGLE_THRESHOLD转折点。附图2E表示通过对附图2D的初始的模拟输入图形2402应用平滑过程生成的平滑的输入图形2500。然后系统以与由用户描绘输入图形相同的方式对平滑的输入图形2500进行处理,导致位置2502处的PEN_DOWN转折点的标识;位置2504处的ROW_CHANGE转折点;位置2506处ANGLE_THRESHOLD转折点以及位置2508处的PEN_UP转折点。图形与由处理器执行的组件相匹配,然后处理平滑的输入图形2500,生成了如图2E所示的选择列表。在该实例中,原始的预期字词“heat”作为第二个字词出现在选择列表2510中。选定选择列表2510中的字词会以输出文本区域2106中的原始的预期字词“heat”自动代替突出显示的目标字词“great”。

附图2F描述了ROW_CHANGE转折点的实例。该图表示描绘在键盘上的输入图形,以输入字词“Atlantic”。给定“a”键和“l”键之间相对较大的距离,以及在键盘上向上移动所需的相对小的偏差,以在从“a”向“l”键移动中经过“t”键,不奇怪的是在“t”键附近的方向没有迅速的变化,其可以被识别为ANGLE_THRESHOLD转折点。在一个优选实施例中,由于每个新的转折点由输入图形分析组件识别,再次检查将前述的转折点连接到最新识别的转折点的部分。当输入图形分析组件确定当前的以及以前的转折点位于同一行中(在附图2F的实例中,在包含有“a”键和“l”键的行中的转折点2602和2604),以及确定插入的输入路径偏离该行,以通过按键的更高的或更低的行(在当前实例中该行包含“t”),然后在偏离包含有周围转折点的行的更远的点处识别ROW_CHANGE转折点。在附图2F中,ROW_CHANGE转折点由位置2606处的输入图形分析组件识别。对附图2E的输入图形确定的转折点的结果集是与预期的目标字词“Atlantic”密切匹配的。

在另一个优选实施例中,如附图2F中的选择列表2608所描述,当为一个候选字词计算得到的匹配的度量值与为下一个最匹配候选字词计算得到的匹配度量值之间的差超过预定阈值时,在该选择列表中潜在的匹配候选字词的显示被截取成排除下一最好匹配候选字词和具有更低匹配度量值记分的所有其他字词。这通过执行不可能是该预期字词的字词会使该显示的选择列表的尺寸最小化,使得该被限制的文本输出区域通常几乎不能通过该选择列表观察得到。从该显示中截取的任何候选字词响应于该“(more)”功能的启动而照常被显示。

图3A至3J表示软件162的优选实施例的流程图,以实现响应于用户接触屏幕并进入连续笔划输入图形或敲打接触而生成并管理字词选择列表的基于连续笔划字词文本输入的方法。图3A表示基于连续笔划字词文本输入软件162的主处理例程3100的优选实施例的流程图。在方框3105处,当第一次启动该过程时,各种不同的系统变量被初始化。在方框3110,该过程等候被通知在该键盘2104区域发生接触。

当操作系统检测到键盘区域2104中的接触,在方框3115控制返回至主处理例程3100,在那里图3B的输入图形分析例程3200被调用,以对用户的接触操作的本质作出分析和分类。一旦该接触操作被分析,在方框3120图3C的图形匹配例程3300被调用,以确定响应于该被分析的接触操作,将出现什么字词候选,生成什么文本,或调用什么功能。在方框3125,图3J的显示选择列表例程31000被调用,以生成字词选择列表显示,如果需要的话,使用户选择预期字词。在从显示选择列表例程31000返回后,控制返回方框3110,在那里该过程等候被通知在该键盘2104区域内发生下一接触操作。

图3B表示输入图形分析例程的优选实施例的流程图。在方框3205,请求的变量被初始化,用于存储平滑地输入图形数据的数组以及对应的索引连同转折点列表(IPT)一起被清除,关于每个识别的转折点的被确定的信息诸如其类型、位置以及发生时间被存储在该转折点列表(IPT)中。在一个优选实施例中,为了减少由图形匹配例程3300执行的计算的数量,在IPT中的每个转折点入口还包括数组IP_Distance[],其填充有从该转折点至与字母相关的键盘的每个按键的距离。在另一优选实施例中,当从转折点至该键盘的按键的距离超过预定最大阈值时,该IP_Distance[]数组中的对应入口被设定成唯一MAX_DISTANCE标志值。在为了进一步减少由该图形匹配例程3300执行的计算数量的另一优选实施例中,每个转折点的数组IP_Distance[]数组中的每个有效距离入口存储在数组中,作为由转折点类型的权重因数成倍增加的距离。相似的,在IPT中的每个转折点入口(除了第一PEN_DOWN)包括数组Path_Distance[2],其填充有从与字母相关的键盘的每个按键至该前一输入路径分段上的最近点(前一转折点和当前转折点之间)的距离,在此再次乘以从路径分段中测量的距离所确定的权重因数PATH WEIGHT(如果该距离大于路径分段的对应最大阈值距离或者至MAX_DISTANCE标志值)。另外,对于设定了有效距离值的Path-Distance[][0]中的每一个入口,Path-Distance[][1]设定一序数值,其表示沿测量的该距离的点的输入路径分段的顺序位置,相对于沿测量的路径分段的其它有效按键的距离被测量的点。为了候选字词中的两个相邻字母与统一路径分段相匹配,该第二个字母的序数值必须大于在前字母的序数值。当相关的按键的位置与沿输入路径的记录笔的运动方向相反时,这种要求防止一个字词的两个相邻字母与路径分段相匹配。照这样,在方框3210,接收的第一接触位置被记录成IPT中的第一(PEN_DOWN)转折点。

接着,在方框3215,该过程等候确定该接触位置是否从与第一接触位置所在的按键相关的区域退出,或者记录笔是否被提起,并且触摸屏幕是否在退出按键之前结束,其中情况语句执行继续至方框3220,在那里类型TAP的单个转折点被加入IPT,并且该例程结束。

此外,在另一优选实施例中,尽管在图3B中未示出,当该过程在方框3214检测到该接触点并没有从接触第一次发生的按键退出,并且该被接触的按键与一个或多个交替的字体相关,并且由于该接触被启动使得预定阈值的时间已经过去,只是类型TAP_AND_HOLD的单个转折点加入到IPT中,控制从输入图形分析例程返回,不等候接触从触摸屏提起。当图形匹配例程接收并处理TAP_AND_HOLD转折点时,与该按键相关的交替字体的“上推列表”被显示,并且该过程一直等到用户将接触点滑至该列表中字母的理想交替字体,将记录笔提起来选择该敲击位置字母的交替字体。然后设定标记,使得该交替字体然后加入到敲击位置字词中(如图3F所示),如果当前TAP_Word_Len设定成0,该选择的交替字体也变成该字词选择列表中的缺省一个字母的字词。这使得用户可以在拼写一个包括交替字体的新字词时很容易生成这些字母的任意理想序列,而不需要改变该键盘的图形。

如果在方框3215该接触点从首次接触的按键退出(或DOUBLE_LETTER手势被检测到),然后如果存在前一输入图形所当前显示的待决选择列表,那么在方框3230调用字词输出例程3900(图31中所示),来输出缺省字词选择。然后在方框3233,所有未处理的数据点被采集直到触摸屏的时间,其序列被适宜的平滑算法处理,以形成追加到输入图形数据缓存器中的数据点的平滑序列,在方框3235,第一和第二顺序差被计算,特别是x和y第二顺序差的绝对值的和被追加到单个输入图形数据缓存器中。然后在方框3240,该过程确定DOUBLE_LETTER手势是否在刚处理过的数据序列中被检测到。如果被检测到,在方框3245,确定该手势的大致的中心,并加入到IPT中作为DOUBLE_LETTER转折点,在方框3250和3255如上所述。此外,在方框3250,每次转折点加入到IPT中,该转折点类型的权重因数被求和成不同IP-WEIGHT,其用于计算每个候选字词的匹配度量值。

然后,在方框3260,该过程确定该ROW_CHANGE转折点是否可以沿前一输入路径分段被识别,如果被识别,以之前描述的方式给IPT加1。在这种情况下,预先确定的路径分段被分成两个分段,一个在新识别的ROW_CHANGE转折点之前,一个在新识别的ROW_CHANGE转折点之后。预先确定的Path_Distance[][]入口被重新指定给该ROW_CHANGE转折点之后的入口的新Path_Distance[][]数组。

在方框3265,该过程确定所有输入路径数据是否已经被处理,直到记录笔从触摸屏提起的位置,如果已经被处理,在方框3295,最后的PEN_UP转折点被以之前所述的方式加入到IPT中,在方框3298,进行最后的检查,以确定ROW_CHANGE转折点是否可以沿最后的输入路径分段被识别。

如果在方框3240在数据序列中没有检测到DOUBLE_LETTER,然后在方框3270该过程确定在分析过的数据序列中的一些点处x和y第二差的绝对值的和是否超过预定阈值。如果超过,然后在方框3275,该过程确定第二差的绝对值的和在落回最小阈值之前得到其最大值的点,并且该点然后以上述方式加入到IPT中成为ANGLE_THRESHOLD转折点。由于CANCLE手势可以表示被限定成以加快的速度键入的三个或更多个连续ANGLE_THRESHOLD转折点的意思,接着每个ANGLE_THRESHOLD转折点的检测,在方框3280该过程检查CANCLE手势是否已经被键入。如果被键入,在方框3285,生成CANCEL信号,以通知用户CANCEL手势已经被识别,该过程等候记录笔从触摸屏提起,然后在返回到主例程3100之前,该IPT和输入图形数据缓存器被清除。如果在方框3280没有检测到CANCEL手势,在方框3250该过程继续完成添加ANGLE_THRESHOLD转折点,在DOUBLE_LETTER转折点之前继续。

在从该调用返回到输入图形分析例程3200之后,在方框3120在主处理例程3100中,该图形匹配例程被调用,以处理对输入图形分析的结果。如图3C所示,在方框3305通过将候选数(Num Candidates)设定成0,该字词候选列表被清除,最大度量值(Max Metrix Value)被初始化成标志值MAX_FLAG,表示字词候选列表仍然是空的。然后,在方框3307,该过程检查CANCEL手势是否被键入,如果被键入,返回方框3320,字词候选列表仍然是空的。如果没有键入CANCEL手势,然后在方框3310,该过程检查转折点列表是否含有单个TAP转折点,如果含有,在方框3315该过程TAP转折点例程3600被调用,以处理检测过的TAP。否则,在方框3325该过程识别按键的每个唯一定顺序的对,使得每对的第一按键位于从PEN_DOWN转折点开始的预定阈值MAX_DISTANCE内,每对的第二按键位于从PEN_DOWN转折点开始的MAX_DISTANCE内。然后在方框3330,该过程识别与数据库中的字词相关的输入路径长度分类的范围,其可以被认为是与基于输入图形分析例程所检测并存储在IPT中的实际长度的输入图形潜在匹配。在方框3335,各种不同的MIN_LETTERS被设定成必须与字母相匹配的转折点数,考虑到必须与两个字母相匹配的DOUBLE_LETTER转折点而调整。相似地,N_DOUBLE被设定成DOUBLE_LETTER转折点的数量。然后对在方框3325识别的每个顺序对按键执行从方框3340至方框3350的循环,在方框3345数据库中的这组字词对应于当前顺序对按键被识别。然后对在方框3345识别的该组字词的每个字词执行从方框3360至方框3390的循环。在方框3365、3370和3373,该过程检查该字词是否具有作为基于其输入路径长度分类、该字词中的字母个数以及该字词中的双字母的候选的资格。如果任意这些资格限定条件都不满足,然后跳过该字词,考虑下一字词。在另一优选实施例(图3C中未示出)中,数据库中的每个字词基于与形成字词拼写的序列字母相关的按键之间的几何关系以希望转折点数被存储。如果在当前输入图形中识别的转折点数少于希望转折点数,候选字词并不具有资格。如果该字词符合所有这些初步条件,那么在方框3375该字词被复制到数组WORD[],WORD_Len设定成其长度。在方框3380,匹配度量值计算例程3400(图3D中示出)被调用,以计算该当前字词的匹配度量值。然后在方框3385,调用更新候选字词列表例程3700(图3G中示出),以确定该计算过的匹配度量值是否好到可以使当前字词具有资格被临时加入到在该数据库中被识别的最顶端匹配字词候选的Word_Candidates[]列表中,如果匹配度量值很好,就将其加入到列表中。一旦所有被识别的具有资格的候选字词被计算,该例程在返回方框3355返回主处理例程3100,其中在方框3125该显示选择列表例程31000(图3J中示出)被调用,在文本显示2106上的文本插入点处或在文本显示2106上的文本插入点附近显示在该选择列表中的被识别的字词候选。

图3D表示在图案匹配例程3300的方框3380被调用的匹配度量值计算例程3400的一个优选实施例的流程图。图3D中所描述的过程确定是否可以识别输入图形的转折点(如果必须的话是路径分段)和与候选字词的字母相关的按键之间的有效匹配。如果这种匹配是可能的,图3D的例程识别最佳或接近最佳的匹配,使得在方框3475被调用的设定匹配度量值例程3700可以迅速并简单地根据该识别的匹配配置来计算该匹配度量值的实际值。

这是对候选字词的字母几何匹配的优选实施例,该候选字词具有输入图形所确定的Number_of_IP转折点的WORD-Len字母(存储在WORD[]中)的长度。在方框3405,由于第一(PEN_DOWN)转折点总是与该字词的第一个字母相匹配,最后一个(PEN_UP)转折点总是与最后一个字母相匹配,因此各种不同的IP_Index(用于通过匹配的每个转折点的步骤)被初始化成1,Last_IP(用于限定处理过的转折点数)被初始化成(Number_of_IPs-1)。相似的,对WORD[]的字母进行索引,LTR索引被初始化成1,Last LTR被设定成(WORD_Len-1)。各种不同的Match-Lim被初始化成(WORDLen-Number_of_IP),继续多少随后的字母需要被看作作为算法的每个转折点的潜在匹配候选的轨迹。数组MATCH[]、RECURSE[]以及BACK_TRACK[][]以及各种不同的RECURSION_LEVEL被初始化成0,并且当结果增倍时该过程必须退回处的轨迹被发现。

在方框3410,对于每个随后的转折点,该过程确定有多少接下来的Match_Lim仍未匹配的字母是潜在匹配的,并且给这个数量设定N_Match。为了潜在匹配的字母,与该字母相关的按键必须在转折点的MAX_DISTANCE内,任何之前的仍未匹配的字母必须可以与其固有的序列中的在前的路径分段相匹配。在方框3415不可能匹配,但是在方框3417确定当前转折点是ROW_CHANGE转折点(因此不需要与字母相匹配),然后在方框3463MATCH[IP_Index]被设定成标志值ROW_CHANGE_SKIP,其表示ROW_CHANGE转折点被留下未匹配,LTR_Index减少,使得在方框3465进行的随后的增加将其恢复到其固有的值(由于当前字母仍未与转折点匹配)。但是如果在方框3415不存在潜在匹配,在方框3417确定当前转折点不是ROWCHANGE转折点,并且如果在方框3420RECURSION_LEVEL被设定成0,然后该当前字词不是候选,并且算法在方框3440返回错误代码。如果在方框3450确定存在一个潜在匹配,然后在方框3460,Best-Match被设定成该匹配字母的索引,并且与该转折点的匹配通过将MATCH[IP_Index]设定成Best_Match而被记录,并且由于直到Best-Match的所有字母现在均已经临时匹配,因此所有LTR_Index被设定成Best-Match。在方框3465,LTR_Index被更新成紧接着与在前的转折点相匹配的字母的索引,IP_Index增1,继续识别下一转折点的匹配。在方框3470,由于与路径分段相匹配的每个字母减少了可与每个随后的转折点相匹配的字母的个数,因此Match_Lim的值考虑到已经与路径分段相匹配任意字母而被更新。在方框3473,该过程检查需要被匹配的所有转折点和字母是否已经被匹配,如果被匹配,在方框3475调用设定匹配度量值例程3700,根据在MATCH[]中建立的转折点-字母对来计算匹配度量值的数值,并且该例程最终在方框3480返回。

如果在方框3450该过程确定转折点索引可以成功地与多于一个的接下来的Match-Lim仍未匹配的字母相匹配,然后该最匹配字母(具有索引Best_Match)临时与该转折点相匹配。在方框3455,BACKTRACK[IP_Index][0]被设定成(N_Match-1),一个小于仍未尝试的潜在匹配字母的个数,余下的潜在匹配字母以最匹配的增加的顺序存储在BACKTRACK[IP_Index][l…N_Match],RECURSE[RECURSION_LEVEL]被设定成IP_Index,RECURSION_LEVEL递增。将余下的潜在匹配存储在BACKREACK[]中,使得如果算法基于当前转折点与Best_Match的临时匹配而达到死点,其可以通过将该转折点与其它潜在匹配中的一个相匹配而回退到该点并且再试一次。因此,在方框3415,如果对于随后的转折点没有发现潜在匹配,在方框3420RECURSION_LEVEL并没有设定成0,那么在方框3425,该过程从RECURSE[]和BACKTRACK[]检索(并除去)对于具有多重匹配的最近识别的转折点的预先识别的下一最好匹配,将IP_Index和LTR_Index恢复到其恰当值,并且再从该点向前工作,尝试发现有效、完整的匹配方案。

在方框3430,该过程确定最后存储的潜在匹配是否已经被从该BACKTRACK[]改组的当前活动级中除去,如果被除去,那么在方框3435RECURSION_LEVEL递减,使得算法将向前移动(由于在当前级所有潜在匹配已经都尝试了)。如果该过程确定对于每个转折点的潜在匹配,即使RECURSION_LEVEL大于0(表示实际上可能存在其它可行的更好的方案),在方框3473该算法移到终止处。由于在每个点算法3400首先选择对具有多重潜在匹配的每个转折点的最好匹配,因此识别的第一有效匹配可能是最优匹配,在任何一种情况下,基于匹配设置的限制范围使如果存在的多重方案不可能具有显著的不同匹配度量值。在另一优选实施例中,图3D的算法改变,使得在从第一PEN_DOWN转折点向前移动的下一转折点的匹配和在最后一个PEN_UP转折点向后移动的下一转折点的匹配之间交替。在另一优选实施例中,任一被识别的DOUBLE_LETTER转折点(或点)首先与候选字词中双字母的必须出现(或多重出现)匹配,图3D的算法从每个在前匹配的PEN DOWN、PEN_UP和DOUBLE_LETTER转折点交替地向前移动和向后移动。

一旦该匹配度量值matching_metric计算例程3400识别到识别的转折点和候选字词的字母之间的有效对,就直接向前确定在图3E中所示的设定匹配度量值例程3500中的匹配度量值的实际数量值(在匹配度量值计算例程3400中从方框3475被调用)。在方框3505,匹配度量值的被初始化成在最初的PENDOWN转折点和该字词第一字母之间的权重距离。当最初识别每个转折点时,总权重被初始化成由输入图形分析例程3200计算的转折点距离的总和,NEXT_LTR被初始化成1,该字词的下一字母的索引将被匹配。然后从方框3510至3540的循环继续每个剩余转折点。在方框3515,如果当前转折点已经与将要匹配的转折点匹配了,那么在方框3530从当前转折点得到的当前字母的权重距离加入到累计在匹配度量值(Matching_Metric)中的总和中。如果当前转折点还没有与将要匹配的下一字母匹配,那么在方框3517,如果发现当前转折点是已经被跳过(未与任何字母匹配)的ROW_CHANGE转折点,那么在方框3527总权重被调整,使得ROW_CHANGE转折点已经在当前字词的匹配过程中被跳过,在循环3540的末端继续执行过程,向上移动到下一转折点i。如果在3517发现当前转折点不是跳过的ROW_CHANGE转折点,那么当前字母必须已经与在前的路径分段相匹配,从而在方框3520从在前的路径分段得到的当前字母的权重距离被加入到累计在Matching_Metric中的总和中,Total_Weight被调整,以计算应用于该距离的加权。然后在方框3525,由于当前字母已经被计算,所以Next_LTR递增,在方框3515检查接下来的字母,以确定是否已经与当前转折点相匹配。一旦所有转折点已经被处理,在方框3540该循环终止,在方框3545通过将权重距离计算的总和乘以频率调整因数来计算Matching_Metric的最终的值,在一个优选实施例中频率调整因数被计算成(1+log(MAX_FREQ/WORD_Frequency)),其中MAx_FREQ是可以与数据库中的字词相关的使用值的最大可能频率,WORD_Frequency是于该当前字词相关的使用频率的特定当前值。最后在方框3545,通过除以在计算求和的距离总和过程中使用的所有权重因数的总和,使Matching_Metric的最后的值标准化,使得该最后的值是从当前输入图形的该转折点(可能是路径分段)得到的该字词的字母的平均频率权重距离。

图3F表示处理TAP转折点例程3600的实施例,该例程3600在方框3315从图形匹配例程3300中被调用。在方框3603,该过程确定TAP位置是否在与字母生成相关的按键的边界内出现。如果出现,那么在方框3605该过程检查敲击的字词是否已经开始,或者这是否是潜在新敲击序列的第一次敲击(即TAP_Word_Len当前设定成0)。如果TAP_Word_Len是0,那么在方框3610该过程识别数据库中的所有一个字母的字词,其与识别过的TAP位置的MAX_DISTANCE内的按键相关。然后在从方框3615至3630的循环中,对于每个识别的单字母字词计算Matching_Metric值,该字词存储在WORD[]和WORD_Len中,在方框3625,调用更新字词候选列表例程3700,将每个识别的一个字母字词在合适位置加入到Word_Candidates[]列表中,使得可以显示具有恰当优先次序的选择列表。

如果在方框3605发现TAP_Word_Len并没有设定成0(因此这是字母-按键TAP序列中的第二或更后的TAP事件),同样在方框3630紧跟在一个字母字词的另一个之后,在方框3635该过程识别与出现TAP位置的按键相关的缺省字母。

在方框3640这个缺省字母添加到正形成的当前TAP-WORD[]中,在方框3645和3650其被添加到当前Word Candidates[]列表中作为指定TAP字词。

如果在方框3603该TAP位置不在与字母生成相关的按键内,那么在方框3660,该过程确定该TAP位置是否出现在显示的字词选择列表的边界内,如果出现,在方框3663调用字词选择例程3800来处理字词的选择或字词选择列表功能。如果在方框3603该TAP位置不在字词选择列表内,那么在方框3670该过程确定TAP位置是否出现在BackSpace按键的边界内,如果出现,如果在方框3673还发现TAPWord Len大于0,那么在方框3675,TAP_Word_Len递减。如果在方框3677发现TAP_Word_Len仍大于0,那么就像之前在方框3645那样继续该过程,将当前TAP_WORD[]添加到Word_Candidates[]列表中。如果在方框3690发现TAP_Word_Len并没有大于0,那么调用BackSpace功能进行其标准字词处理功能(即删除字符直到文本光标的左侧,或如果存在突出显示的文本字节片就删除该突出显示的文本字节片,等等)。之后,在方框3693,由于假定用户在下一选择的字词之前不再想要一段时间的自动输出,因此将Word_Output设定成FALSE。

如果在方框3670该TAP位置不在BackSpace按键上,那么在方框3680该过程确定TAP位置是否出现在与引起选择列表的缺省字词输出的功能相关的按键的边界内,如果出现,在方框3685字词选择被设定成缺省值0,在方框3687调用字词输出例程3900向文本输出区域中的插入点输出缺省字词选择。如果在方框3680发现的该功能没有引起缺省字词的输出,那么在方框3690调用与该敲击的按键相关的功能,进行其标准字词处理功能。根据调用的该功能的实质内容,在方框3693如果恰好在下一选择字词之前自动输出一时间段(例如在BackSpace功能之后),那么该标志字词输出被设定成FALSE。

图3G表示更新Word Candidates[]列表例程3700的优选实施例,该例程在图形匹配例程3300的方框3385以及处理TAP转折点例程3600的方框3626和3650中被调用。在方框3705,Matching_Metric值被检查,以确定该值是否已经被设定成表示该当前字词不可以与输入图形相匹配的标志值,如果被设定成标志值,该例程不添加候选字词而返回。如果没有设定成标志值,则检查Num-Candidates来确定候选字词列表是否已经填充有最大数量的有效候选,如果没有,在方框3740当前字词自动加入到字词候选列表中,在方框3745检查匹配度量值,以确定Max_Metric_Value的当前值是否需要被更新。如果在方框3710该Word_Candidates[]列表已经填充有一组有效入口,那么在方框3715当前字词的匹配度量值与Max_Metric_Value作比较,以确定当前字词是否比数据库中当前存在的一个(或多个)字词更匹配。如果是更匹配,那么在方框3720具有最高Matching_Metric值的字词从字词候选列表中被除去,在方框3725当前WORD[]加入到Word-Candidates[]中,根据对每个入口的Matching_Metric值以递减的顺序被存储。在3730,更新Max_Metric_Value,以表现在Word_Candidates[]列表内的Matching_Metric的最高值。在方框3755,控制返回被调用程序。

图3H表示字词选择例程3800的优选实施例,该字词选择例程3800是在处理TAP转折点例程3600的方框3663处被调用的。在方框3805,显示字词选择列表区域,在该区域中发生的TAP接触被识别,并且与该区域相关的候选字词或列表功能被确定。如果在方框3810该区域与字词相关,那么在方框3815该索引变量Word_Choice被设定成(First_Display+选择区域的索引),其中First_Display含有用于在Word_Choice列表的顶(缺省)行中显示的入口的WordCandidates[]数组的索引值,使得Word_Choice被设定成该已选择的字词的Word_Candidates[]数组的索引。在方框3820,调用字词输出例程3900来在插入点2108处向文本显示区域2106输出该选择的字词。在方框3825,该过程确定该选择的字词是否是被构建的TAP-位置字词,如果是TAP-位置字词,在方框3827,如果该选择的字词还不在数据库中,或者如果已经形成了区别利用,那么其被加入到数据库中作为用户定义字词。该例程然后在方框3829处终止。

如果在方框3810该选择的列表区域与字词选择无关,然后如果在方框3830确定该区域与“(more)”功能相关,那么在方框3835,索引变量First_Display增加值LIST_MAX,该值LIST_MAX是在完全填充Word Choice列表中显示的字词的预定最大数量。如果在方框3840First_Display增加的值超过在Word_Candidates[]数组中被识别的候选字词的总量,那么在方框3845First_Display被设定成0,生成信号(诸如与众不同的警报声),来通知用户Word Choice列表已经循环过了所有的可能候选,并且已经返回到列表的起点。然后,在方框3850调用显示选择列表例程31000,显示在更新的Word Choice列表显示中的新一组字词候选。然后在方框3855终止该例程。

如果在方框3830该选择列表区域与“(more)”功能无关,然后在方框3860确定该区域与“CANCEL”功能相关,那么在方框3835,然后在方框3865清除Word_Candidates[]列表,Num-Candidates被设定成0,Max_MetricFlag被设定成MAX_FLAG值,使得Word_Candidates[]列表准备具有新一组确定的候选加入其中。相似的,在方框3870TAP_Word_Len被设定成0,使得可以开始构建新TAP字词,在方框3875,取消Word Choice列表显示,该显示屏被刷新,从屏幕上除去Word Choice列表显示,First_Display被重新初始化成0。然后在方框3880终止该例程。

图3I表示字词输出例程3900的优选实施例,从输入图形分析例程3200的方框3230中、在处理TAP转折点例程3600的方框3687以及在字词选择例程3800的方框3820处来调用该字词输出例程3900。在方框3905,如果当前Word_Candidates[]列表含有至少一个候选,那么在方框3910该过程将该索引Word Choice点认为成有效候选,如果不是这样,在方框3915Word_Choice复位到缺省候选索引0。在方框3917,如果自动时间段标志Word_Output被设定成TRUE,那么在方框3920输出选择的Word_Candidates[]列表入口(通过Word_Choice的值来确定)之前在方框3919给文本插入点输出时间段。此外,根据现有技术中已知的用于追踪字词使用频率的算法中的其中一个算法来调整存储在数据库中的使用频率,Word_Output被设定成TRUE,使得如果下一个字词随后被输出,在下一字词之前将自动生成时间段。然后在方框3925,如果在方框3905发现当前Word_Candidates[]列表被清空,那么还可以重新开始该执行过程,该Word_Candidates[]列表被清除,Num-Candidates被设定成0,MaxMetric_Flag被设定成MAXFLAG值,使得Word_Candidates[]列表准备具有新一组确定的候选加入其中。然后在方框3930TAP_Word_Len被设定成0,使得可以开始构建新TAP字词,在方框3935,取消Word Choice列表显示,该显示屏被刷新,从屏幕上除去Word Choice列表显示,First_Display被重新初始化成0。然后在方框3940终止该例程3900。

图3J表示显示选择列表例程31000的优选实施例,从主处理例程3100的方框3125以及从字词选择例程3800的方框3850来调用该显示选择列表例程31000。在方框31005,Num-Display被初始化成LIST_MAX,该LIST_MAX是在完全填充的Word_Choice列表中显示的字词的预定最大数量。如果在方框31010没有可用来显示的候选,该例程不做任何事,从方框31040返回。如果存在至少一个候选,那么在方框31015该索引变量First_Display被检查,以确定其是有效值,其中该索引变量First_Display含有用于在Word Choice列表的顶(缺省)行中显示的入口的Word_Candidates[]数组的索引值。如果不是这样,在方框31020First_Display被设定成0,即缺省候选的索引。在方框31025,该过程确定是否在First_Display之外存在足够的字词候选来形成满Word Choice列表,如果字词候选不够,那么在方框31030Num_Display被复位成可利用的候选的数量。最后,在方框31025在文本插入点生成并显示Word Choice列表,其表示在索引First_Display处开始的Num_Display Word_Candidates[],后面是标准的Word Choice列表功能“(more)”和“CANCEL”。

虽然已举例说明了本发明的优选实施例,不过如上所述,在不脱离本发明的精神和范围的情况下,可做出许多变化。因此,本发明的范围并不受优选实施例的公开所限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号