具体实施方式
现将详细参照各个实施例,其示例在附图中示出。每当可能时,将贯穿附图使用相同的标号来指代相同或相似的部分。
本发明涉及一种电子设备,包括有线通信设备(例如具有触摸屏的膝上型计算机)和移动手持无线通信设备(例如蜂窝电话、智能电话、无线组织器、个人数字助理、带无线的上网本计算机、平板电脑以及相似的设备)。电子设备也可以是没有无线通信能力的电子设备,例如手持电子游戏设备、数码相框、数码相机或其它设备。
已经引入基本预测性文本输入解决方案,以协助电子设备上的输入。这些解决方案包括:预测用户正输入的词,并且对于完成该词而提供建议。但这些解决方案可能具有限制,在解决方案建议用户正尝试输入的词之前,通常要求用户输入词中的多数或所有字符。尽管如此,用户一般必须将焦点从键盘转向视图,并且考虑在电子设备的显示器上的其它地方所显示的建议词,此后,回看键盘以继续键入。在电子设备中输入信息的同时相对于键盘的人眼的重新聚焦尤其在撰写长文本时会使眼睛疲劳并且麻烦、令人分心、或低效。此外,由于在用户将注意力聚集在输入区域上然后回到虚拟键盘处的同时处理器待机,处理周期损失并且浪费显示功率。
从设备资源和用户体验的角度来看,预测性文本输入解决方案的效率有时取决于特定用户以及该特定用户与触摸屏的交互的性质。虚拟键盘使用模式可以广泛地分类为两类:“快速”和“精确”。快速键入者典型地是依赖于自动校正的快速两拇指键入者。这种使用模式最接近地对应于有经验的频繁触摸屏用户。精确键入者典型地是谨慎的键入者,其倾向于使用单个手指点来键击虚拟键盘中的键,并且一般根据输入加速器而不是自动校正来选取预测。这种使用模式最接近地对应于新手/新触摸屏用户以及潜在的单手(拇指)使用情况。
相应地,在此所描述的示例实施例允许电子设备的用户输入字符而无需从键盘转移注意力并且后续重新聚焦。在此描述的示例实施例还寻求包容不同的用户类型(例如快速键入者和精确键入者)以及不同用户类型所提出的不同的效率挑战。
说明书以及权利要求书中使用数量词“一个”、“某个”意味着包括其引入的一个或多于一个的特征,除非另外说明。因此,在“生成字符集合”中所使用的“字符集合”可以包括生成一个或多于一个的字符集合。相似地,尤其是在通过数量词已经引入特征之后使用代词“该”或“所述”意味着包括其指代的一个或多于一个的特征(除非另外声明)。因此,在“显示所述已生成字符集合”中所使用的术语“所述已生成字符集合”包括显示一个或多个已生成字符集合。对在此所包含的方位(例如水平和垂直)的引用是相对于图形用户界面的屏幕方位,而不是任何物理方位。
根据一个实施例中,提供一种方法,包括:从在显示器上显示的虚拟键盘接收字符输入;基于输入字符生成一个或多个预测输入字符集合;以及显示预测输入字符集合中的一个或多个。
根据另一实施例,提供了一种用于校正电子设备上的文本输入的方法,所述方法包括:在触摸屏上显示虚拟键盘,所述虚拟键盘包括多个键;从所述虚拟键盘接收输入;根据所接收的输入,生成一个或多个预测字符集合;以及当所接收的输入与所述预测字符集合之一不匹配时,在指定位置显示所述预测字符集合。
根据其他实施例,提供了一种用于校正电子设备上的文本输入的方法,所述方法包括:在触摸屏上显示虚拟键盘,所述虚拟键盘包括多个键;从所述虚拟键盘接收输入;根据所接收的输入,生成一个或多个预测字符集合;当所接收的输入与所述预测字符集合之一不匹配时,在所述显示器的所述虚拟键盘中与最后输入字符相对应的键上显示候选词校正,其中,所述候选词校正还显示在所述虚拟键盘上与<SPACE>键相关联的位置;以及响应于检测到在所显示的候选词校正上或附近的滑动,输入所述候选词校正。
根据其他实施例,提供了触摸屏上的虚拟键盘,所述虚拟键盘包括多个键:从所述虚拟键盘接收输入;根据所接收的输入,生成一个或多个预测字符集合;当所接收的输入与所述预测字符集合之一不匹配时,在所述显示器的所述虚拟键盘中与最后输入字符相对应的键上显示候选词校正;在所述<SPACE>键中显示最高排序预测字符集合;响应于检测到在所显示的候选词校正上或附近的滑动,输入所述候选词校正;以及响应于检测到在所述<SPACE>键上的敲击,输入所述最高排序预测集合。在某些示例中,所述方法还包括:将所接收的输入显示在所述虚拟键盘上与<SPACE>键相关联的位置。在某些示例中,所述候选词校正显示在所述<SPACE>键中,并且所接收的输入显示在所述<SPACE>键之上。在某些示例中,所述方法还包括:响应于检测到在所显示的接收输入上或附近的滑动,输入所述接收输入。
根据其他实施例,提供一种电子设备,所述电子设备包括具有在其上显示有虚拟键盘的显示器,以及处理器。所述处理器可以被配置为执行本文所描述的方法。
根据其他实施例,提供一种在电子设备的显示器上显示的键盘。所述键盘可以包括多个键,每个键与多个字符中的一个或多个不同字符相对应。所述键盘被配置为响应于接收到输入,执行本文所描述的方法。
根据其他实施例,提供一种非瞬时计算机可读存储介质,其包括用于执行本文所描述方法的计算机可执行指令。
这些示例实施例以及以下所描述的内容允许电子设备的用户输入字符集合,而无需从虚拟键盘转移注意力并在后续重新聚焦。预测并且提供用户可能预期的各个选项并且在键盘上适当的位置处进行该操作允许关注点保留在键盘上,这增强了字符输入的效率、精度以及速度。
图1是根据在此公开的示例实施例的电子设备100的框图。电子设备100包括多个组件,例如主处理器102,其控制电子设备100的整体操作。通过通信子***104来执行包括数据通信和语音通信的通信功能。解码器106对电子设备100所接收到的数据进行解压和解密。通信子***104从网络150接收消息并且将消息发送到网络150。网络150可以是任何类型的网络,包括但不限于有线网络、数据无线网络、语音无线网络和支持通过相同物理基站的语音通信和数据通信的双模无线网络。电子设备100可以是电池供电设备,并且包括电池接口142,用于容纳一个或多个电池144。
主处理器102耦合到附加子***并且可以与附加子***交互,该附加子***例如随机存取存储器(RAM)108、存储器110(例如硬驱、CD、DVD、闪存或类似的存储设备)、一个或多个致动器120、一个或多个力传感器122、辅助输入/输出(I/O)子***124、数据端口126、扬声器128、麦克风130、短距离通信132、其它设备子***134以及触摸屏118。
触摸屏118包括显示器112,具有连接到控制器116的触摸感应覆盖层114。通过触摸感应覆盖层114来执行与图形用户界面(GUI)(例如在显示器112上呈现并且显示为用于输入字符的GUI的虚拟键盘、或web浏览器)的用户交互。主处理器102经由控制器116与触摸感应覆盖层114进行交互。字符(例如文本、符号、图像和其它项)经由主处理器102显示在触摸屏118的显示器112上。当用户在与字符关联的位置处对触摸屏进行触摸时,所述字符得以输入。
触摸屏118连接到并且受控于主处理器102。相应地,电子设备100的主处理器102可以执行触摸事件检测和/或触摸事件位置的确定。在一些实施例中,触摸事件包括手指键击、手指滑动、手写笔滑动、手指或手写笔长按或手指按下达到预定时间段等。
虽然已经描述了触摸屏的具体实施例,但可以使用用于电子设备的任何合适类型的触摸屏,包括电容式触摸屏、电阻式触摸屏、表面声波(SAW)触摸屏、嵌入式光电管触摸屏、红外(IR)触摸屏、基于的应变仪的触摸屏、光学成像触摸屏、色散信号技术触摸屏、声脉冲识别触摸屏或受抑全内反射触摸屏,但不限于此。任何给定实施例中所使用的触摸屏技术的类型将取决于电子设备及其特定应用和要求。
主处理器102也可以与定位***136交互,用于确定电子设备100的位置。可以通过多种方式(例如通过计算机、通过包括或不包括于电子设备100中的全球定位***(GPS)、通过Wi-Fi网络或通过使得手动地输入位置)来确定位置。也可以基于日程表条目来确定位置。
主处理器102也可以与方位传感器197交互,以用于感测设备的方位。在一些示例中,方位传感器197可以是一个或多个加速器。在一些示例中,方位传感器可以检测沿着多个正交轴的加速度。主处理器102也可以与一个或多个接近度传感器198交互,以用于检测附近物体的接近度。在一些示例中,接近度传感器可以是一个或多个红外发射机/传感器配对。主处理器102也可以与环境光传感器199交互,用于检测环境光的强度和/或色温。
在一些实施例中,为了识别网络接入的订户,电子设备100使用***到SIM/RUIM接口140的订户身份模块或可移除用户身份模块(SIM/RUIM)卡138,以用于与网络(例如网络150)的通信。或者,用户识别信息可以被编程到存储器110中。
电子设备100还包括主处理器102所执行并且典型地存储在存储器110中的操作***146和程序148。附加应用可以通过网络150、辅助I/O子***124、数据端口126、短距离通信子***132或任何其它合适的子***而加载到电子设备100。
所接收到的信号(例如文本消息、电子邮件消息或网页下载)通过通信子***104处理,并且这种处理过的信息然后提供给主处理器102。主处理器102处理所接收到的信号,以输出到显示器112、辅助I/O子***124或它们二者的组合。用户可以编写数据项(例如电子邮件消息),其可以通过通信子***104在网络150上被发送。对于语音通信,电子设备100的整体操作是相似的。扬声器128输出从电信号转换的可听信息,麦克风130将可听信息转换为电信号进行处理。
文本预测
图2是示出根据在此公开的示例实施例的用于预测字符集合的示例方法200的流程图。如在此所使用的那样,预测器(例如预测算法、程序或固件)包括指令集,当由处理器(例如主处理器102)执行时可以用于对所接收到的歧义文本输入消除歧义,并且提供用户可能预期的各种选项,例如字符集合(例如词或短语、首字母缩写词、姓名、俚语、口语、缩写词或其任何组合)。预测器也可以接收无歧义文本输入,并且基于若干因素(例如上下文、使用频率以及本领域技术人员所理解的其它因素)来预测用户潜在预期的字符集合。预测器可以预测完成所接收的文本输入(被称为完成)的字符集合,校正所接收到的文本输入(被称为校正),或其组合(例如在校正先前所输入的文本输入的同时完成文本输入)。
例如,在预测器中是驻留在电子设备100的存储器110中的程序148。相应地,方法200包括预测器,用于基于所输入的字符来生成与后续候选输入字符相对应的字符集合。应理解,虽然在此所描述的示例实施例针对处理器所执行的预测器程序,但预测器可以由虚拟键盘控制器来执行。
方法200在块210开始,其中,处理器从触摸屏上显示的虚拟键盘接收一个或多个字符输入。然而,如在此使用的那样,字符可以是任何文字数字字符,例如字母、数字、符号、标点符号等。所输入的字符可以显示在输入域(例如以下图3-图9中进一步描述的输入域330)中,输入域显示用户使用虚拟键盘所输入的字符。
在块220,处理器基于在块210中接收到的输入而生成一个或多个字符集合,例如词或短语、首字母缩写词、姓名、俚语、口语、缩写词或其任何组合。字符集合可以包括例如电子设备的存储器的字典中所存储的字符集合(例如词或首字母缩写词)、用户先前所输入的字符集合(例如姓名或首字母缩写词)、基于层级或树形结构的字符集合、其组合、或处理器基于所定义的布置而选择的任何字符集合。
在一些实施例中,处理器可以使用用于生成字符集合的上下文数据。上下文数据考虑输入域中的字符的上下文。上下文数据可以包括关于例如用户先前所输入的字符集合的信息、输入域中所输入的字符的语法属性(例如在句子中是需要名词还是动词作为下一字符集合)、或其任何组合。例如,如果字符集合“the”已经输入到显示器,则处理器可以使用上下文数据来确定名词(而非动词)将是在“the”之后的下一字符集合。类似地,如果输入字符集合“Guy Lafleur played in theNational Hockey”,则基于上下文,处理器可以确定后续字符集合可能是“League”。使用上下文数据,处理器也可以确定所输入的字符是否不正确。例如,给定QWERTY虚拟键盘上的这些字符的接近度,处理器可以确定所输入的字符应为“w”而不是“a”。
处理器102也可以包括后缀作为字符集合的部分,例如动词结尾、形容词结尾、不同动词时态等,或用于构成完全字符集合的任何其它变形。处理器102也可以使用所接收到的输入来生成后缀,例如复数结尾或复数形式。任何已知的预测技术或软件可以用于在块220在生成字符集合中处理所接收到的输入和上下文数据。
在一些示例实施例中,在块220所生成的字符集合可以开始于在块210作为输入而接收的相同字符。例如,如果已经使用虚拟键盘接收字符“pl”作为输入,则这些字符将由处理器接收作为输入。在这些实施例中,在块220所生成的字符集合将全部开始于“pl”,例如“please”或“plot”。对于已生成字符集合的长度没有限制。关于后缀,如果用户已经输入字符“child”,例如,则在块220所生成的后缀可以包括“-ren”,以构成字符集合“children”,或包括“-ish”,以构成字符集合“childish”。
在一些示例实施例中,在块220所生成的字符集合可以简单地包括与在块210作为输入而接收的相同字符。例如,如果所接收到的输入是“x”,则处理器可以生成“example”或“xylophone”作为字符集合。可以使用上下文数据来生成这些字符集合。
在另一示例实施例中,如果尚未接收到输入或已经使用分隔符(例如<SPACE>),则已生成字符集合可以放置在与已生成字符集合的首字母对应的后续候选输入字符上。
接下来,在块230,可以对来自块220的已生成字符集合进行排序。排序反映用户可能期望的候选字符集合或与另一候选字符集合相比用户可能选取的候选字符集合的可能性。
在一些实施例中,在块230,在排序中可以包括上下文数据。在一些实施例中,电子设备可以被配置为基于先前所输入的字符集合,将名词或形容词排序得较高。如果所输入的字符集合建议名词或形容词,则在块230,处理器可以使用上下文数据来将与用户正键入的内容对应的名词或形容词排序得较高。在附加实施例中,也可以对包括形容词后缀(例如“-ish”或“-ful”)、短语、复数或其组合的字符集合进行排序。上下文数据可以增加用户期望较高排序的已生成字符集合的可能性。在一些实施例中,上下文数据可以包括关于用户当前正运行或使用哪些程序或应用的信息。例如,如果用户正运行电子邮件应用,则与用户的电子邮件***相关联的字符集合(例如来自用户的联系人列表的字符集合)可以用于确定排序。N元语法(包括一元语法、二元语法、三元语法等)也可以用在字符集合的排序中。或者,电子设备或用户的地理位置可以用在排序处理中。如果例如电子设备识别出用户位于他/她的办公室,则通常与工作关联的字符集合可以在列表中被排序得较高。另一方面,如果设备确定用户在海滩,则通常与海滩关联的字符集合可以在列表中被排序得较高。
在块240,处理器基于排序来确定显示哪些字符集合。例如,较高排序的字符集合更有可能被确定应显示它们。排序器(例如排序算法、程序或固件)包括当处理器(例如主处理器102)执行时可以执行以对此确定排序的指令集。在一些实施例中,排序器是驻留在电子设备100的存储器110中的程序146。
在块250,所确定的字符集合显示在键盘上与预测为用户可能输入的词中的下一字符的后续候选输入字符相对应的位置处。例如,如果用户输入“pl”,则词“please”将显示在字母“e”——该词的后续候选输入字符——的键上。类似地,词“plus”也将显示在字母“u”——另一后续候选输入字符——的键上。后续候选输入字符可以是任何字母数字字符,例如字母、数字、符号、标点符号等。
在一些实施例中,已生成字符集合显示在虚拟键盘上与后续候选输入字符关联的键处或附近。其在键处或附近的放置方式可以取决于例如词的大小或附近后续候选输入字符的数目以及它们的关联字符集合的大小。
可以通过将会吸引用户注意力的方式来显示字符集合。在一些实施例中,可以通过使得以所显示的字符外观字符集合对于用户更容易看见的方式来增强或改变其外观。例如,可以通过背光、突出显示、加下划线、加粗、斜体、使用其组合或通过用于使得所显示的字符集合更可见的任何其它方式来显示所显示的字符集合。
当在块240识别用于显示的字符集合时,处理器可以将所显示的字符集合限制为顶部少数几个、或在较高排序的字符集合当中进行选取。例如,如果两个字符集合都排序得较高,并且这些字符集合否则将显示在同一键处,则电子设备可以被配置为仅显示最高排序的已生成字符集合。在其它实施例中,这两个字符集合可以显示在同一键处或其周围,或一个字符集合显示在一个键处,而另一字符集合显示在另一键处。在一些示例实施例中,处理器可以考虑显示器大小来限制已生成字符集合的数量。
在一些实施例中,排序可以用于在当显示在邻近后续候选输入字符上时将(例如,因为它们各自的长度)彼此重叠的两个或更多个字符集合之间进行选取。在此情况下,电子设备可以被配置为在键盘上显示较高排序的字符集合。例如,如果在输入字母“E”之后字符集合“establishment”在块240所生成的列表中排序第一,则可以在“S”键处显示“establishment”。然而,当显示在虚拟键盘上时,其长度可能占据“A”键和“D”键上的一些空间,潜在地阻挡了将显示在这些键上或其附近的字符集合。在块240,可以确定将完全显示“establishment”,并且在第一排序的字符集合“establishment”之前,在“A”键或“D”键处将不会放置其它字符集合。仅显示最高排序的字符集合的可选方式将是使用字符集合的缩写词或所识别的缩短形式,有效地允许长字符集合与在虚拟键盘的邻近键上的其它字符集合同时地显示在单个键的边界内或几乎在其之内。
图3A-9示出根据在此公开的示例实施例的具有虚拟键盘320的触摸屏118的一系列示例前视图。开始于图3A,触摸屏118包括触摸感应的虚拟键盘320。虚拟键盘320的位置是可变的,从而虚拟键盘320可以放置在触摸屏118上的任何位置处。触摸屏118可以被配置为同时检测一个或多个对象的位置和可能的按压。触摸屏118包括两个区域:(1)输入域330,其在用户已经输入字符之后显示这些字符;(2)虚拟键盘320,其从用户接收输入。如贯穿本发明所描述的那样,虚拟键盘在该键盘上与可能接收为来自用户的输入的后续候选输入字符相对应的位置处显示字符集合。
可以通过任何字符集合(例如词、短语、首字母缩写词、姓名、俚语、口语、缩写词或其任何组合)来实现图3-9所示的示例和实施例。
如图3A所示,触摸屏118显示标准QWERTY虚拟键盘320;然而,可以显示任何传统键配置,以在设备中使用,例如AZERTY、QWERTZ、或具有键2上的“ABC”、键3上的“DEF”等的基于国际电信联盟(ITU)标准(ITU E.161)的布局。虚拟键盘320包括空格键350以及可以提供不同输入(例如标点、字母、数字、回车或返回键以及功能键)的其它键。虽然虚拟键盘320示出为具有正方形,但其可以具有任何其它形状(例如弧形)。
如图3A所示,触摸屏118显示输入域330,其显示用户使用虚拟键盘320所输入的字符。输入域330包括光标340,其可以是下划线(如所示)或任何其它形状(例如垂直线)。光标340表示将***下一输入字符、所选字符或所选字符集合的字符空间。
如图3B所示,当用户输入字符(在该示例中,“P”)时,该字符显示在输入域330中,光标340移动到将***下一输入字符或词的字符空间。在输入字符之后,如果输入多于一个的字符,则预测器(例如预测算法或电路)可以生成全开始于字符“P”的字符集合360(对于该实施例)。已生成字符集合显示在键盘上与可能接收为来自用户的输入的后续候选输入字符相对应的位置处。如所述那样,已生成字符集合360可以显示在与后续候选输入字符对应的键处或其附近(例如在虚拟键盘320的各个A、E、H和O键之下)。实际上,稍微改变已生成字符集合的显示位置可以解决后续候选输入字符的过度拥挤,有效地允许显示更多的字符集合。
在图3B所示的示例中,“P”接收为输入,预测器生成若干字符集合360,其显示在与每个已生成字符集合的后续候选输入字符相对应的键处。如图3B所示,因为在“People”的“P”之后的下一字母是“E”,所以“People”放置在“E”键处;因为在“Paul”的“P”之后的下一字母是“A”,所以“Paul”将放置在“A”键处;因为在“Phone”的“P”之后的下一字母是“H”,所以“Phone”将放置在“H”键处;诸如此类。应注意,字符集合中的任何字符可以大写或小写。
在图3C所示的实施例中,“L”是触摸屏所接收到的下一输入,对于如输入域330所示的处于第三字符位置中的光标340的当前位置,预测器确定在与后续候选输入字符对应的键处(例如在虚拟键盘320的各个A、E和U键之下)显示的若干已生成字符集合360。在另一实施例中,已生成字符集合360可以呈现为包括后续候选输入字符。例如,可以显示字符集合“Please”,从而字符“Pl”显示在“E”键上的“E”字符之前,字符“ase”可以放置在“E”键上的“E”字符之后。此外,在该实施例或其它实施例中,可以通过不同于“Pl”和“ase”的方式来呈现所显示的“E”,由此在使得其容易可见的同时使得用户能够仍然将其识别为“E”键,从而用户可以输入已生成字符集合“Please”或输入字符“E”。“E”可以大写或小写。在其它实施例中,可以在键处显示后缀。使用以上字符集合“Please”的示例,“ase”可以显示在“E”键处,从而将出现字符集合片段“-ease”或“-Ease”。
如果用户输入已生成字符集合,则该字符集合放置在输入域330中。图3D可见该情况,其中,用户已经输入已生成字符集合“Please”,导致其在输入域中的放置。如果用户想要输入新的字符集合,则在字符集合之后***空格。用户可以通过各种方式来输入已生成字符集合,包括通过与输入字符键的方式不同的方式。例如,为了输入已生成字符集合,用户可以使用手指或手写笔来滑动已生成字符集合。如在此使用的那样,滑动包括滑动字符集合自身或在字符集合附近进行滑动或触摸。对于后一实施例,设备可以检测字符集合附近的滑动或触摸,无论其为已生成字符集合还是预测字符集合(以下将要描述),通过使用预测器,确定用户期望输入的字符集合。在另一实施例中,用户可以按下键达到预定时间段(例如长按)。该键可以是例如与字符集合中的后续候选输入字符对应的键。因此,如果期望输入字符集合“Please”而不是“E”,则电子设备100可以被配置为要求按下“E”键达到预定时间段以触发“Please”的输入。
在已经确定已生成字符集合360之后,如图3D所示,可以显示预测字符集合380,在此示出在空格键350处。预测字符集合380可以不同于已生成字符集合360(如图3A-3C所示),并且是***对于预测用户可能预期的下一字符集合的尝试。预测器用于确定预测字符集合380。至于所显示的已生成字符集合360,可以通过任何多种方式将预测字符集合380接收为输入,包括以手指或手写笔接收预测字符集合的滑动,或在预定时间段内接收键(例如空格键或另一指定键)的按压(长按)。
在图4A中,电子设备100从虚拟键盘320接收“C”作为输入。此外,预测器部分地基于所接收到的输入来确定已生成字符集合460。在图4B中,电子设备100从虚拟键盘接收“O”作为输入,并且在输入域330中输出“O”。如图4A所示,在接收到“C”字符输入之后,在“O”键处显示字符集合“count”。由于以仅输入“O”字符的方式按压“O”键,因此如图4B所示,“O”显示为当前所输入的字符集合的第二字符,用户不输入字符集合“count”。可选地,如果用户想要输入已生成字符集合“count”,则用户可以通过与输入“O”键的方式不同的方式(例如通过滑动字符集合“count”或与键入相反,通过在“O”键上长按)在图4A中输入“O”键。返回图4B,在输入“O”之后,已生成字符集合460显示在与后续候选输入字符对应的键处,如图4B所示。
图5示出显示随后为空格的字符集合“contact”的输入域330。在此情况下,用户在“N”键处输入如图4B所示的已生成字符集合“contact”460。返回参照图5,在输入域中,在所生成的词之后自动***<SPACE>字符。所预测的词“me”580现在显示在空格键350上。
如果接收所预测的词“me”580作为输入,则词“me”580然后显示在后随如图6A所示的空格的输入域330中,然后示出在空格键350上所显示的所预测的词680“immediately”。在完成的词和空格已经显示在输入域330中之后,呈现所预测的词。
图6B示出在用户已经按下“T”键之后触摸屏118已经接收“T”字符作为输入的示例。在此情况下,触摸屏118在输入域330中显示“t”。已生成字符集合660(例如“Tuesday”、“today”和“Thursday”)显示在后续候选输入字符的键处。图6C示出在用户按下“O”键而不是如图6B所示输入已生成字符集合660“today”之后电子设备100已经接收“o”字符作为输入的示例。因此,“o”现在显示在输入域330中。
图7示出在用户选择空格键之后触摸屏118已经接收<SPACE>字符作为输入的示例。在此情况下,触摸屏118***<SPACE>字符,然后在空格键350处显示预测字符集合“talk”780。
图8A示出在用户按下“D”键之后触摸屏118已经接收“d”字符作为输入的示例。在此情况下,触摸屏118在输入域330中显示“d”,并且在与后续候选输入字符对应的键上显示已生成字符集合“discuss”、“divide”和“dinner”860。在该示例实施例中,虽然字符“I”从不被接收作为输入,但电子设备100确定已生成字符集合“discuss”、“divide”和“dinner”860是要显示在触摸屏上的字符集合。在该实施例中,因为这些字符集合中的每一个均具有“i”作为第二字母,所以触摸屏118使用字符集合中的另一后续字母(例如在“S”键之下的“discuss”、在“V”键之下的“divide”以及在“N”键之下的“dinner”)来显示已生成字符集合。在其它实施例中,已生成字符集合“discuss”、“divide”和“dinner”860可以显示在“I”键处或其附近。
图8B示出在用户选取已生成字符集合“discuss”860之后触摸屏118已经接收字符集合“discuss”作为输入的示例。在该示例中,触摸屏118在空格键350处显示预测字符集合“this”880。
图9示出在用户选择“this”作为期望的预测字符集合880之后触摸屏118接收“this”字符集合作为输入的示例。在该示例中,触摸屏118在空格键350处显示预测字符集合“now”980。
触摸屏118也可以在消息的键入期间的任何时间接收标点作为输入。如果用户决定在输入已生成字符集合或预测字符集合之后使用标点,则删除<SPACE>字符(例如,在图9的光标之前的<SPACE>字符),并且***所输入的标点。
校正词预测
图10是根据本公开的一个示例实施例的用于在电子设备100的显示器上呈现和显示的虚拟键盘中提供校正词预测的方法1000的流程图。可以通过处理器102执行的固件或软件(至少部分地)执行方法1000。用于执行这种方法1000的软件的编码在本公开中提供的本领域普通技术人员的范围内。方法1000可以包含与示出的和/或描述的方法相比附加的或更少的处理,并可以以不同顺序执行方法1000。由用于执行方法1000的处理器102可执行的计算机可读代码可以存储在计算机可读介质(例如,存储器110)中。
在1010,在触摸屏118上呈现并显示图11A中示出的虚拟键盘(例如,虚拟键盘1120)。当例如响应于相应输入(例如,键盘按钮或图标的激活),显示或可以要求或调用文本输入模式的输入域时,可以自动地显示虚拟键盘1120。虚拟键盘1120包括多个键,多个键包括多个字符键1122,如上文所述。多个字符键1122中的每个键与输入字符集合中的字符相对应。在至少某些示例中,输入字符集合是英文字母或字母数字字符集合。如在图11A的示例所示,以常见的QWERTY布局来布置多个字符键,但是在其它示例中可以以另一合适格式来进行布置。
在所示示例中,虚拟键盘1120显示在输入域1130下方,输入域1130用于显示使用虚拟键盘1120输入的字符以及响应于所接收的输入选择的预测文本。输入域1130包括可以是水平线(如所示)或其他合适形状(例如如上文所述的下划线)的光标(也被称为是***符号)1140。虚拟键盘1120还包括非字符键,例如“Shift”键1124、在所示示例中具有标签“&%123”的“Symbol”键1125、<SPACE>键1126、“Enter”键1127以及“Backspace”键1128。
在1020,处理器102接收到输入(例如,来自在触摸屏118上显示的虚拟键盘1120的字符)。如本文所使用,字符可以是任意字母数字字符(例如,字母、数字、符号、标点符号等)。所接收的输入(例如,输入字符)一般被显示在输入域1130上。使用输入域1130显示使用虚拟键盘1120输入的字符以及通过选择预定字符集合作为输入而输入的字符。处理器102可以备选地从用户接收删除输入域1130中当前词中的先前字符的退格命令作为输入。如上所述,当前词是光标1140当前位于的输入域1130中的词。
在1030,预测器至少部分基于针对当前词中光标1140的当前位置的所接收的输入(或其他字符集合),生成用户可能想要的一个或多个预测字符集合(即,词)。在至少某些示例中,该生成是响应于步骤1020中所接收的输入而自动发生的。在其他示例中,该生成是响应于检测到针对自动完成或自动校正操作的指定输入而生成的。
当前词是光标1140当前位于的输入域1130中的词。如上所述,词是由定界字符(例如,<SPACE>字符)分开的。基于所接收的输入,预测字符集合可以包括词或短语、首字母缩略词、名称、俚语、口语、缩写词或其任意组合。预测字符集合可以由预测器根据以下各项生成:电子设备100的存储器中存储的字典、之前输入的字符集合(例如,名称或首字母缩略词)、基于层级或树结构的字符集合、其组合或处理器102基于定义的布置所选择的任意字符集合。
在步骤1040,当生成多于一个预测字符集合时,处理器102确定每个预测字符集合的排序。该排序反映了用户想要或用户可能选择一预测字符集合与另一预测字符集合相比的可能性。排序器(例如,排序算法、程序或固件)包括指令集合,当处理器(例如,主处理器102)执行该指令集合时,可以确定就此点排序。在一些实施例中,排序器是驻留在电子设备100的存储器110中的程序146。如上文所述,上下文数据可以包括在排序中。
在步骤1050,处理器102确定所接收的输入是否与一个或多个预测字符集合相匹配。当相同字符处于词或其他字符串中的相同位置时,所接收的输入与一个或多个预测字符集合相匹配。
在步骤1060,当所接收的输入与预测字符集合之一不匹配时,在指定位置显示最高排序的预测字符集合。当所接收的输入与预测字符集合之一不匹配时,所接收的输入可能包含由目标错误或拼写错误导致的错误。预测字符集合代表候选词校正。将理解,所接收的输入与预测字符集合之一缺乏匹配不是确定在所接收的输入中存在错误,而仅是确定预测器不知道所接收的文本。所接收的文本可能是预测器未知的新词或字符串,或有意的拼写错误(例如,俚语)。
在一些示例中,所指定的位置是显示器的虚拟键盘中与用户最后输入字符相对应的键相关联的位置。例如,如果用户输入“teech”并且词“teach”是最高排名的预测字符集合,则词“teach”显示在“H”键的位置。最后输入字符可以是任意字母数字字符(例如,字母、数字、符号、标点符号等)。在其他示例中,所指定的位置是虚拟键盘1120上与<SPACE>键1126相对应的位置。
在某些示例中,预测字符集合显示在虚拟键盘1120上与最后输入字符相关联的键上、处、中或附近。例如,预测字符集合可以显示在网格(例如,水平网格)或间隔或间隔条(例如,水平间隔条)中或虚拟键盘中处于各个键之上(或可能之下)位置的每行键之间。在键上、处、中或附近的放置可以取决于例如预测字符集合的大小。
可以以将吸引用户注意力的方式显示预测字符集合。在某些实施例中,可以以让用户更容易看到该集合的方式加强或改变显示字符集合的外观。例如,可以利用背后照明、突出显示、下划线、粗体、斜体、使用其组合或以用于使显示字符集合更容易被看到的任意其他方式,将显示该显示字符集合。
方法1000提供了用于有利于先前输入文本的校正的校正文本预测方法。当所接收的输入与预测字符集合之一不匹配时,所接收的输入可能包含由目标错误或拼写错误导致的错误。随着每个附加输入字符,用户发起的文本校正变得更加困难,一般需要删除在第一个错误输入字符之后添加的输入字符以及错误输入字符本身。这是不方便的、笨拙的和耗时的,特别是当处于或接近词尾时。方法1100示出了用于在输入错误输入字符之后的任意时间校正文本而不会使用户界面凌乱的解决方案。在某些示例中,这可以通过仅显示最高排序预测字符集合来实现。这可以避免利用较低可能的预测来使用户界面凌乱,这会使用户在打字时从虚拟键盘1120转移注意力。
在其他示例中,可以显示若干预测字符集合。为了限制对用户分散注意力的可能性,处理器102可以基于步骤1040中的排序,确定要显示预测字符集合中的哪个。例如,可以仅显示具有超过可能性阈值等级的可能性的预测字符集合。为了限制所显示的预测字符集合,可以显示预定数目的预测字符集合。
尽管未示出,处理器可以被配置为突出显示虚拟键盘中与字符输入相对应的键。例如,如果所接收的输入是“teech”,则在虚拟键盘1120中突出显示“T”、“E”、“C”和“H”键。突出显示键的示例包括背后照明、高亮、下划线、粗体、斜体、改变颜色、改变大小、使用其组合或以用于使显示字符集合更容易可见的任意其他方式。突出显示可以应用于整个键或应用于键的一部分(例如,围绕每个键的边缘、每个键中所显示的字符、每个键中的区域或围绕每个键的区域)。
在其他示例中,可以突出显示在输入键盘中显示的并与输入字符匹配的每个预测字符中的字符,而不是突出显示键盘中的键。例如,如果所接收的输入是“te”,在以字母“te”开头的所显示的字符集合中,在字母或其他字符串的开头,突出显示字母“te”。
在其他示例中,除了突出显示键盘中的键之外,可以突出显示在输入键盘中显示的并与输入字符匹配的每个预测字符中的字符。
现在参考图11B-E,将描述:在与显示器的虚拟键盘中与用户最后输入字符相对应的键相关联的位置,显示最高排序的预测字符集合。在图11B中,字符集合“teech”被接收为触摸屏118的输入,并被显示在输入域1130中,之后跟随光标1140。处理器102已经生成了若干预测字符集合并将预测字符集合“teach”确定为最高排序预测字符集合。最后输入字符是字母“H”,因此预测字符集合“teach”显示在“H”键的位置。
在图11C中,字符集合“teecher”被接收为触摸屏118的输入,并被显示在输入域1130中,之后跟随光标1140。处理器102已经生成了若干预测字符集合并将预测字符集合“teacher”确定为最高排序预测字符集合。最后输入字符是字母“R”,因此预测字符集合“teacher”显示在“R”键的位置。
在图11D中,字符集合“teeching”被接收为触摸屏118的输入,并被显示在输入域1130中之后跟随光标1140。处理器102已经生成了若干预测字符集合并将预测字符集合“teaching”确定为最高排序预测字符集合。最后输入字符是字母“G”,因此预测字符集合“teaching”显示在“G”键的位置。
在图11E中,字符集合“heklp”被接收为触摸屏118的输入,并被显示在输入域1130中,之后跟随光标1140。处理器102已经生成了若干预测字符集合并将预测字符集合“help”确定为最高排序预测字符集合。最后输入字符是字母“P”,因此预测字符集合“help”显示在“P”键的位置。
当在虚拟键盘1120上的位置处的最高排序预测字符集合与用户最后输入字符相对应时,所接收的文本(不认识并且不与任何预测字符集合匹配)也可以被显示在<SPACE>键1126和/或“Enter”键1127的位置上,用于在继续下一词之前进行确认。在一些示例中,在<SPACE>键1126的内部显示最高排序预测字符集合。在<SPACE>键1126处或附近滑动可以输入最高排序预测字符集合,并可选地添加分隔符输入(例如,<SPACE>)。备选地,敲击<SPACE>键1126可以输入最高排序预测字符集合,并可选地添加分隔符输入(例如,<SPACE>)。
在其他示例中,所接收的输入可以显示在<SPACE>键1126附近,而最高排序预测字符集合可以显示在<SPACE>键1126内。在<SPACE>键1126处或附近滑动输入所接收的输入并可选地添加分隔符输入(例如,<SPACE>),而敲击<SPACE>键1126输入最高排序预测字符集合,并添加分隔符输入(例如,<SPACE>)。备选地,敲击<SPACE>键1126输入所接收的输入并可选地添加分隔符输入(例如,<SPACE>),而在<SPACE>键1126处或附近滑动输入最高排序预测字符集合,并可选地添加分隔符输入(例如,<SPACE>)。
如上所述,用户可以使用手指或触笔来划过在虚拟键盘1120上显示的预测字符集合,以输入此预测字符集合。相反,可以通过使用手指或触笔敲击虚拟键盘1120中的各个键来输入单个字母。触摸屏118使用移动和触摸事件的持续时间来区分敲击和滑动事件,其细节是本领域已知的,本文不需要描述。虚拟键盘1120中的每个键和每个显示预测字符集合具有在触摸屏118上的相关联目标区域。与每个显示预测字符集合相关联的目标区域可以比与其相关联的键以及附近键(例如,相同行中的相邻键)的目标区域大和/或与其相关联的键以及附近键的目标区域重叠。用户仅需要在所显示的预测字符集合上或附近滑动,以输入预测字符集合。这使得可以通过创建更大和更易访问的目标区域来更快地输入预测字符集合,从而节省时间和处理周期。在某些示例中,可以通过检测在所显示的预测字符集合处或附近的任意方向的滑动,来输入预测字符集合。在其他示例中,可以仅通过检测在所显示的预测字符集合处或附近的特定方向上的滑动(例如,向上滑动),来输入预测字符集合。在某些示例中,当滑动的起始触点在与所显示的预测字符集合相关联的目标区域(可以和所显示的预测字符集合相同和比所显示的预测字符集合大)内时,滑动是在所显示的预测字符集合处或附近。
现在参考图12,将描述在<SPACE>键1126位置显示最高排序预测字符集合。在图12中,字符集合“heklp”被接收为触摸屏118的输入,并被显示在输入域1130中,之后跟随光标1140。处理器102已经生成了若干预测字符集合并将预测字符集合“help”确定为最高排序预测字符集合,因此在<SPACE>键1126的位置显示预测字符集合“help”。
在图11B至12所示示例中,预测器预测校正所接收的文本输入的字符集合。候选词校正可以替换所接收的文本中的字母(如图11B至11D所示)和/或移除所接收的文本中的字母(如图11E至12所示)。尽管未在所示示例中示出,候选词校正还可以在校正所接收的文本的同时,完成所接收的文本输入。
方法1000可以与方法200合并,使得可以和不涉及校正所接收的文本的候选词预测一起示出候选词校正。在此示例中,以第一格式示出候选词预测,并且以与第一格式不同的第二格式示出候选词校正。第一格式可以是第一颜色(例如,黑色或白色),而第二格式可以是第二颜色(例如,黄色或红色)。第一格式和第二格式可以在颜色、突出显示、下划线、粗体、斜体、其任意组合方面不同或以其他合适方式区分候选词预测和候选词校正。
可以想到,在其他实施例中,即使当候选词校正不是最高排序预测字符集合时,候选词校正也可以显示在虚拟键盘中相关联键上、处、中或附近。此外,即使当候选词校正不是最高排序预测字符集合时,多于一个候选词校正也可以显示在虚拟键盘中相关联键上、处、中或附近。在这种示例中,所显示的候选词校正具有超过用于在虚拟键盘中显示的阈值,即使候选词校正中没有一个必需是最高排序预测字符集合。可以想到,可以在整个虚拟键盘中与虚拟键盘中的关联键上、处、中或附近,与一个或多个候选词校正一起显示一个或多个候选词预测。例如,可以至少部分基于各个候选词校正和候选词预测的预测可能性,确定关联键。如上所述,在某些示例中,可以突出显示虚拟键盘中与所接收的输入(例如,字符输入)相对应的键。作为突出显示键盘中的键的替代,或者除了突出显示键盘中的键之外,可以突出显示在虚拟键盘中显示的并与输入字符匹配的每个预测字符中的字符。此外,在一些示例中,最高排序预测字符集合可以显示在<SPACE>键内。该最高排序预测可以是候选词校正或候选词预测。此外,在某些示例中,所接收的输入可以显示在<SPACE>键附近,而最高排序预测字符集合可以显示在<SPACE>键内。在<SPACE>键处或附近滑动输入所接收的输入,而敲击<SPACE>键输入最高排序预测字符集合,并添加分隔符输入(例如,<SPACE>)。
尽管已经根据图中分离的方框示出的功能描述了本公开的各种方法,在电子设备处理期间可以合并各种方框的功能。此外,在电子设备处理期间,图中某些功能性方框可以分隔为一个或多个子步骤。
虽然至少部分地关于方法而描述了本发明,但本领域技术人员应理解,本发明还针对用于执行所描述的方法的各方面和特征中的至少一些,无论其通过硬件组件、软件或二者的任何组合的方式还是通过任何另外方式。此外,本发明还针对包括用于执行在此所描述的方法的存储在其上的程序指令的预先记录的存储设备或其它相似计算机可读介质。
在不脱离权利要求的主题内容的情况下,可以通过其它具体形式来实施本发明。因此,所描述的示例实施例被看作在所有方面仅是说明性而非限制性的。本发明意图覆盖并且包括技术的所有合适的改变。因此,本发明的范围由所附权利要求而非前面的描述来描绘。落入权利要求的等同物的意义和范围内的所有改变意图被包括在它们的范围内。