CN105009064B - 使用语言和空间模型的触摸键盘 - Google Patents

使用语言和空间模型的触摸键盘 Download PDF

Info

Publication number
CN105009064B
CN105009064B CN201480011437.3A CN201480011437A CN105009064B CN 105009064 B CN105009064 B CN 105009064B CN 201480011437 A CN201480011437 A CN 201480011437A CN 105009064 B CN105009064 B CN 105009064B
Authority
CN
China
Prior art keywords
gesture
computing device
word
key
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201480011437.3A
Other languages
English (en)
Other versions
CN105009064A (zh
Inventor
翟树民
奇普里安·伊万·凯尔巴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN105009064A publication Critical patent/CN105009064A/zh
Application granted granted Critical
Publication of CN105009064B publication Critical patent/CN105009064B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0237Character input methods using prediction or retrieval techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/263Language identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/06Message adaptation to terminal or network requirements
    • H04L51/063Content adaptation, e.g. replacement of unsuitable content

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

计算设备输出包括多个键的图形键盘以在存在敏感显示器显示,接收用于选择该多个键中的键组的至少一个手势的指示,并且确定与用于选择该多个键中的键组的至少一个手势相关联的至少一个特性。该计算设备至少部分地基于该至少一个特性来修改空间模型并且至少部分地基于该空间模型和语言模型所提供的数据来确定候选词,其中该空间模型至少部分基于该至少一个手势的指示来提供数据,并且其中该语言模型至少部分地基于词典来提供数据。该计算设备输出该候选词以在存在敏感显示器显示。

Description

使用语言和空间模型的触摸键盘
背景技术
一些计算设备(例如移动电话、平板电脑等)可以提供作为图形用户界面的一部分的图形键盘以便使用存在敏感显示器(例如触摸屏)来撰写文本。该图形键盘可以使得计算设备的用户能够输入文本(例如电子邮件、文本消息或文档等)。例如,计算设备的存在敏感显示器可以输出图形(或者“软”)键盘,其使得用户能够通过指示(例如通过轻敲)在存在敏感显示器显示的键来输入数据。
在一些情况下,计算设备可以呈现图形键盘,用户能够利用其通过轻敲该图形键盘上所显示的个体键或者通过在与图形键相关联的区域上连续滑动手指来指示词,所述图形键表示组成该词的字符。以这种方式,图形键盘提供了一种允许用户通过一个或多个手势来输入字符、词或词组的输入方法。这样,图形键盘可以允许用户通过快速且准确地输入文本来实现某种程度的效率。
然而,图形键盘具有某些缺陷。例如,计算设备可能接收到来自没有注意到准确性的用户的一系列轻敲或滑动手势。但是计算设备所输入的字符可能与用户试图选择的字符不同。结果,用户可能需要对所输入的字符进行校正。这样,使用图形键盘利用手势输入文本可能是困难的并且降低了用户可以与计算设备进行交互的速度。
发明内容
在一个示例中,一种方法包括:由计算设备输出包括多个键的图形键盘以便在存在敏感显示器显示;由该计算设备接收用于选择该多个键中的一组键的至少一个手势的指示;以及由该计算设备确定与该用于选择该多个键中的该组键的至少一个手势相关联的至少一个特性。该方法进一步包括由该计算设备至少部分地基于该至少一个特性来修改空间模型;由该计算设备至少部分地基于该空间模型和语言模型所提供的数据来确定候选词,其中该空间模型至少部分地基于该至少一个手势的指示来提供数据的第一部分并且其中该语言模型至少部分地基于词典来提供数据的第二部分;以及由该计算设备输出候选词以便在存在敏感显示器显示。
在另一个示例中,一种计算机可读存储介质编码有指令,该指令在被执行时使得计算设备的一个或多个处理器执行操作,包括:输出包括多个键的图形键盘以便在存在敏感显示器显示;接收用于选择该多个键中的一组键的至少一个手势的指示;以及确定与用于选择该多个键中的该组键的至少一个手势相关联的至少一个特性。该计算机可读存储介质可以编码有进一步的指令,该进一步的指令在被执行时使得计算设备的一个或多个处理器执行操作,包括:至少部分地基于该至少一个特性修改空间模型;至少部分地基于该空间模型和语言模型所提供的数据来确定候选词,其中该空间模型至少部分地基于该至少一个手势的指示来提供数据的第一部分并且其中该语言模型至少部分地基于词典来提供数据的第二部分;以及输出该候选词以便在存在敏感显示器显示。
在另一个示例中,一种计算设备包括至少一个处理器,其操作耦合至存在敏感显示器和至少一个模块,该至少一个模块能够由该至少一个处理器操作以输出包括多个键的图形键盘以便在存在敏感显示器显示,在存在敏感显示器接收用于选择该多个键中的一组键的至少一个手势的指示,并且确定与用于选择该多个键中的该组键的至少一个手势相关联的至少一个特性。该至少一个模块能够进一步由该至少一个处理器进行操作以至少部分基于该至少一个特性来修改空间模型,至少部分地基于该空间模型和语言模型所提供的数据来确定候选词,其中该空间模型至少部分地基于该至少一个手势的指示来提供数据的第一部分并且其中该语言模型至少部分地基于词典来提供数据的第二部分,并且输出该候选词以便在存在敏感显示器显示。
一个或多个示例的细节在附图和以下描述中给出。其它的特征、目标和优势将从该描述和附图以及从权利要求是显而易见的。
附图说明
图1是图示依据本公开的一个或多个方面的示例计算设备和用于提供文本输入的图形用户界面(GUI)的框图。
图2是图示依据本公开的一个或多个方面的用于提供文本输入的示例计算设备的进一步细节的框图。
图3A和3B是图示依据本公开的一个或多个方面的修改空间模型以提供准确文本输入的一个示例的框图。
图4A和4B是图示依据本公开的一个或多个方面的用于修改空间模型以提供准确文本输入的示例GUI的框图。
图5A-C是图示依据本公开的一个或多个方面的图1所示的计算设备的一个示例的进一步细节的框图。
图6是图示依据本公开的一个或多个方面的可以被用来提供文本输入的示例操作的流程图。
图7是图示依据本公开的一个或多个技术的输出图形内容以便在远程设备显示的示例计算设备的框图。
具体实施方式
一般地,本公开涉及用于修改计算设备用于输入确定的空间模型的技术。该技术可以至少部分地基于用户在图形键盘处的文本输入,该图形键盘被输出以便在存在敏感显示器显示。本公开的技术还涉及结合语言模型使用空间模型来基于所接收到的文本输入校正、完成和/或预测文本输入。在一些示例中,诸如平板电脑或智能电话的移动设备可以提供存在敏感显示器,用户可以与其交互。在一些示例中,用户可以在该存在敏感显示器提供一个或多个触摸输入,诸如滑动手势、轻敲手势等。例如,用户可以通过与在存在敏感显示器显示的图形(即软)键盘交互来向该计算设备输入文本。该用户可以通过执行触摸手势与图形键盘交互,所述触摸手势诸如在存在敏感显示器轻敲手势或者将手指连续滑动至存在敏感显示器的不同位置。响应于该触摸手势,该计算设备可以执行一个或多个操作以对输入数据进行生成、选择、修改、删除等。
计算设备(例如智能电话)可以响应于接收到图形键盘处用于选择键序列的轻敲或滑动手势的指示来确定文本输入。在一些示例中,实现本公开的技术的计算设备可以修改对经由图形键盘输入的文本的校正、完成和/或预测方法中所采用的空间模型。具体地,在一些示例中,计算设备可以确定所接收到的用户输入的特性并且基于所确定的特性来修改空间模型的值,这因此可以使得用户能够提供更快的文本输入。以这种方式,实现本公开的技术的计算设备可以基于所确定的特性来修改字符的相关联输入区域的位置和/或区域以考虑速度和不准确性。这样的技术因此可以减少用户缓慢且准确地选择每个字符的需要,并且可以提供用于输入文本的更为容错的过程。以这种方式,本公开的技术可以修改空间模型的各个值并且可以连同语言模型一起使用该空间模型以基于之前所输入的文本来校正、完成和/或预测文本输入。
在本公开的一个方面,一种计算设备(例如移动电话、平板电脑等)可以基于先前的文本输入来修改空间模型的值。该计算设备还可以结合语言模型一起使用空间模型来确定文本的校正、完成和/或预测。在一个示例中,计算设备可以响应于用户轻敲存在敏感显示器的多个位置而接收用户输入的指示序列。在一些情况下,用户输入的指示可能未与作为图形键盘的一部分所显示的键的位置准确对准。因此,在接收到用户输入的指示之后,计算设备可以基于与用户输入的指示相关联的特性(例如输入速度、输入位置等)对空间模型的一个或多个值进行修改。该计算设备随后可以采用经修改的空间模型来确定对应于后续输入的文本。该计算设备可以结合语言模型一起使用经修改的空间模型来确定后续用户输入所预期的字符、词的完成和/或词的预测。基于所接收到的输入来修改空间模型可以允许计算设备例如更为准确地确定:哪些字符更可能被用户在后续所接收的输入中选择,哪些词相对于一个或多个字符的选择是更可能的,以及下一次更可能选择哪些字符和/或词。
本公开的技术可以提高用户能够在计算设备输入文本的便利性。例如,使用本公开的技术,计算设备可以以提高的速度(例如每秒钟更多字符)接收图形键盘处用于输入文本的轻敲手势和/或扫动手势的指示。响应于这样的指示,计算设备可以输出一个或多个字符、字符串等以便在存在敏感显示器显示。用户可以查看计算设备所显示的字符和/或字符串,以及被输出以便由计算设备显示的词(即候选词)的任意校正或完成。在一些示例中,该计算设备可以响应于接收到用户对该校正和完成满意的用户输入指示而提交候选词作为文本输入。例如,该计算设备可以接收图形键盘处用于选择空格键的手势的指示并且提交该候选词。此外,一旦用户已经输入了文本,该计算设备就可以生成未来文本的一个或多个预测以供用户查看。以这种方式,该计算设备可以使得用户能够从预测进行选择而不要求用户通过图形键盘处的轻敲或滑动手势来手动地输入文本。
图1是图示依据本公开的一个或多个方面的示例计算设备102和用于提供文本输入的图形用户界面(GUI)的框图。在一些示例中,计算设备102可以与用户150相关联。与计算设备相关联的用户可以通过向该计算设备中提供各种用户输入来与该计算设备进行交互。在一些示例中,用户150可以具有诸如社交网络服务和/或电话服务的一个或多个服务的一个或多个账户,并且该账户可以利用计算设备102进行注册。
计算设备102的示例可以包括但并不限于诸如移动电话(包括智能电话)的便携式或移动设备、膝上计算机、台式计算机、平板计算机、智能电视平台、个人数字助理(PDA)、服务器、大型机等。如图1的示例中所示,计算设备102可以是智能电话。在一些示例中,计算设备102可以包括用户界面(104)设备104、UI模块106、手势模块108、空间模型110、语言模型111和应用模块112A-112N(统称为“应用模块112”)。实现本公开的技术的计算设备2的其它示例可以包括图1中未示出的另外组件。
计算设备2可以包括UI设备104。在一些示例中,UI设备104被配置为接收触觉、音频或视觉输入。UI设备104的示例可以包括触摸敏感和/或存在敏感显示器,或者用于接收用户输入的任意其它类型的设备。UI设备104可以输出诸如GUI 114和116的内容以便进行显示。在图1的示例中,UI设备104可以是存在敏感显示器,其能够显示GUI并且在该存在敏感显示器处或其附近通过电容、电感或光学检测来接收用户输入。
如图1所示,计算设备102可以包括UI模块106。UI模块106可以执行一个或多个功能以接收诸如用户输入的输入,并且将这样的输入的指示发送至与计算设备102相关联的其它组件,诸如手势模块108。UI模块106还能够从与计算设备102相关联的诸如手势模块108或应用模块112之类的组件接收数据。使用所接收的数据,UI模块106可以使得与计算设备102相关联的诸如UI设备104之类的其它组件基于该数据来提供输出。例如,UI模块106可以接收来自应用模块112中的一个的数据以显示GUI 114和116。
UI模块106可以以各种方式来实现。例如,UI模块106可以被实现为可下载或预安装的应用或“app”。在另一个示例中,UI模块106可以被实现为计算设备106的硬件单元的一部分。在另一个示例中,UI模块106可以被实现为计算设备102的操作系统的一部分。
在一些示例中,计算设备102可以包括手势模块108。手势模块108可以包括用于在计算设备102上执行各种操作的功能。例如,手势模块108可以依据这里所描述的技术结合语言模型一起使用空间模型来确定文本输入。手势模块108可以以各种方式来实现。例如,手势模型108可以被实现为可下载或预安装的应用或“app”。在另一个示例中,手势模块108可以被实现为计算设备102的硬件单元的一部分。在另一个示例中,手势模块108可以被实现为计算设备102的操作系统的一部分。
在一些示例中,手势模块108可以被配置为接收来自UI模块106的手势数据并且从该手势数据确定文本。在一些示例中,手势模块108可以确定与手势相关联的一个或多个特性,诸如触摸手势的位置和键位置之间的欧几里得距离、接收多个手势的速率、手势路径上的两点之间的欧几里得距离、手势路径的长度、手势的方向、手势路径的曲率、以及手势路径上的点之间的最大手势曲率、手势的速度等。手势模块108可以将从手势数据确定的文本发送至计算设备102的其它组件,诸如应用模块112、UI模块106等。例如,手势模块108可以将从所接收到的手势数据确定的文本发送至UI模块106,其使得UI设备104显示如GUI 114中所示的文本。
如图1所示,计算设备102可以包括空间模型110。空间模型110可以存储对应于一个或多个键或者图形键盘的“软按钮”的键数据(即,与向数据实体所声明并分配的唯一键形成对照)。在一些示例中,键数据可以包括与键盘的键相关联的统计值、与键盘中的键相关联的位置值、键的数学定义等。空间模型110可以被存储在各种数据结构之一中,诸如阵列、列表、诸如使用可扩展标记语言(XML)编码的文件的结构文件等。
在一个示例中,空间模型110对于图形键盘的每个键可以包括触摸点的双变量高斯分布的值。在其它示例中,空间模型110可以包括定义输入设备中要与图形键盘的键相关联的区域的任意其它手段,诸如定义键的位置和大小的值,定义键之间的位置和空间的值等。在双变量高斯模型的背景下,可以预先设置或者从数据学习每个键的均值、标准偏差值和/或协方差值。空间模型110中的这种键值也可以至少部分基于之前所输入的字符进行调节。例如,空间模型110可以从计算设备102中诸如手势模块108的其它组件或网络设备接收修改数据以改变与键相关联的一个或多个值。也就是说,手势模块108或其它组件可以修改存储在空间模型110中的与一个或多个键相关联的值或定义以更为准确地校正、完成和/或预测文本。
在一些示例中,计算设备102包括语言模型111。语言模型111可以包括词典。在一些示例中,词典可以包括词列表并且可以包括与所列出的词相关的附加信息,诸如词之间的关系、语法上下文、使用频率等。词典可以由各种数据结构来表示,诸如阵列、列表和/或树。例如,语言模型111可以包括以特里数据结构存储的词典。词典特里数据结构可以包含多个节点,每个节点可以表示字母。词典特里中的第一节点可以被称作入口节点,其可以不对应于字母。在其它示例中,该入口节点可以对应于字母。每个节点可以具有一个或多个孩子节点。例如,该入口节点可以具有26个孩子节点,其中每一个对应于英文字母表中的一个字母。
词典特里中的节点子集每个均可以包括标志,其指示该节点为终端节点。词典特里中的每个终端节点可以指示完整词(例如候选词)。沿着从入口节点到终端节点的节点路径的节点所指示的字母可以拼写出由终端节点所指示的词。在一些示例中,语言模型111可以是安装在计算设备102上的缺省字典。在其它示例中,语言模型111可以包括多个词典源,其可以存储在计算设备102或者存储在一个或多个远程计算设备,并且能够由计算设备102经由一个或多个通信信道进行访问。在一些示例中,语言模型111可以以计算设备102的固件来实现。
语言模型111可以包括语言模型频率信息,诸如词级别的n元(n-gram)语言模型或字典。n元语言模型可以基于序列中之前的项为项的连续序列中的项xi(例如字母或词)提供概率分布(例如,P(xi|xi-(n-1),...,xi-1))。例如,词级别的双元语言模型(其中n=2的n元语言模型)可以提供词“snow”跟在词“white”之后的概率。
本公开的技术可以提高用户能够向计算设备中输入文本的速度和准确性。使用本公开的技术,计算设备可以接收用户执行的用来指示文本的一个或多个手势的指示。在用户执行一个或多个手势时,计算设备可以基于所接收到的一个或多个手势来修改空间模型。该计算设备可以采用包括空间模型和语言模型的统一模型以递增地确定该一个或多个手势所指示的文本输入。通过在手势被执行时递增地对它们进行解码并且适当更新空间模型,计算设备可以利用减少的手势输入后处理时间来更为准确地确定文本校正、文本完成和/或文本预测。此外,通过使得用户能够容易地输入错误更少的更为准确的文本,本公开的技术使得用户能够提高输入文本的速度。现在参考图1的组件对本公开的技术进一步进行描述。
如图1的示例中所示,GUI 114可以是UI模块106所生成的用户界面,其允许用户150与计算设备102进行交互。GUI 114可以包括图形内容。图形内容一般可以包括文本、图像、移动图像组等。如图1所示,图形内容可以包括图形键盘128、文本输入区域126和词建议区域122A-C(统称为“词建议区域122”)。图形键盘128可以包括多个键,诸如“R”键123A、“E”键123B、“P”键123C和空格键123D。在一些示例中,图形键盘128中所包括的多个键中的每一个表示单个字符。在其它示例中,图形键盘128中所包括的多个键中的一个或多个可以分别表示基于多种模式选择的群一组字符。
在一些示例中,文本输入区域126可以包括例如包括在文本消息、文档、电子邮件消息、web浏览器或者其中期望进行文本输入的任意其它情形之中的字符或其它图形内容。例如,文本输入区域126可以包括用户150经由在UI设备104执行的手势而选择的字符或其它图形内容。如GUI 114中所示,文本输入区域126包括所输入的文本118和所预测的文本120。所输入的文本118可以表示用户150(例如经由轻敲或滑动手势)已经输入的文本。
UI模块106可以使得UI设备104显示图形键盘128并且检测在UI设备104执行的一系列轻敲手势。轻敲手势可以包括输入单元(例如用户3的手指、笔、触笔等)移动接近于UI设备104,使得该输入单元临时被UI设备104检测到,并且然后移动远离UI设备104,使得该输入单元不再被检测到。在其它示例中,UI设备104可以检测到滑动手势。滑动手势可以是包括输入单元从UI设备104的第一位置到UI设备104的第二位置的运动使得从第一位置向第二位置所执行的手势贯穿该手势的执行被UI设备104检测到的连续运动手势。
用户150可以执行轻敲手势124A、124B、124C和124D(统称为“轻敲手势124”)以选择多个键中的数个键。UI模块106可以检测在UI设备104执行的每个轻敲手势。手势模块108可以从UI模块106接收指示每个轻敲手势124的数据。例如,手势模块108可以接收指示UI设备104上接收到手势的位置的坐标对。响应于接收到轻敲手势的指示,手势模块108可以确定与该轻敲手势相关联的一个或多个特性。例如,响应于接收到轻敲手势124A的指示,手势模块108可以访问空间模型110以获取与“R”键123A、“E”键123B等相关联的统计位置值(例如,与键相关联的双变量高斯分布的均值或平均值)。手势模块108可以确定轻敲手势124A的位置和每个所获取到的统计位置之间的欧几里得距离。所确定的特性的其它示例包括(例如滑动手势或多轻敲手势的)输入速度、持续时间、压力等。
至少部分地基于所确定的特性,手势模块108可以修改空间模型110的值。在一些示例中,手势模块108可以在接收到每个指示之后确定特性并修改空间模型110。在其它示例中,手势模块108可以以其它间隔—诸如在接收到多个指示之后—确定特性并修改空间模型110。手势模块108可以修改空间模型110的值以便改善特定字符的确定。也就是说,手势模块108可以从所接收到的轻敲手势进行学习。例如,在接收到轻敲手势124A之后,手势模块108可以修改如空间模型110中所定义的“R”键123A的统计位置值。随后,手势模块108可以使用“R”键123A的经更新的统计位置来计算例如手势的第一和第二位置和/或手势的第一位置与关联于给定键的位置之间的欧几里得距离。
此外,手势模块108可以修改空间模型110的值以便改善对特定用户输入(例如,所要接收的下一个用户输入)的确定。例如,在接收到轻敲手势124A的指示之后,手势模块108可以减小与“E”键123B相关联的垂直标准偏差值和/或增大与“E”键123B相关联的水平标准偏差值。在一些示例中,对空间模型110的修改可以是临时的。也就是说,手势模块108可以将空间模型110的经修改的值返回至其原始状态。在其它示例中,修改可以不返回到其之前状态。在任一状况中,手势模块110可以改变与所显示的图形键盘的键相关联的空间模型110的各个值,以更为准确地处理随后所接收到的手势。
手势模块18可以采用如所修改的空间模型110结合语言模型111来确定文本输入。至少部分地基于所接收到的手势的指示,手势模块108可以使用空间模型110来确定候选串的集合。手势模块108可以在接收到轻敲手势的第一指示(例如,轻敲手势124A的指示)时确定候选串的集合。在手势模块108接收到后续指示时,手势模块108可以修改空间模型110,并且使用如所修改的空间模型110来基于所接收到的指示更新候选串的集合(例如添加候选串、修改候选串、移除候选串等)。
候选串可以表示基于用户150在执行轻敲手势124时的输入的假设。候选串可以包含字符串、单个词或者作为短语的部分的多个词。例如,当手势模块108开始接收关联于轻敲输入124的指示时,手势模块108可以创建字符串的集合,当手势模块108接收到后续指示时,手势模块108可以基于该指示来修改空间模型110。手势模块108然后可以采用如所修改的空间模型110来增加、移除和/或更新一个或多个候选串中的字符。
每个候选串可以具有相关联的物理成本值。物理成本值可以至少部分地基于空间模型110,并且可以表示相关联的候选串表示用户的预期输入的可能性(例如概率)。在图1的示例中,较低的物理成本值可以指示相关联的候选串表示用户的预期输入的较高可能性。然而,在其它实施方式中,较高的物理成本值可以表示较高可能性。在任意情形中,候选串的物理成本值可以是该候选串中的每个字符的物理成本值的和。
在图1的示例中,在接收到轻敲输入124A的指示之后,手势模块108可以依据本公开的技术来临时增大与“E”键123B相关联的水平标准偏差值。结果,轻敲输入124B表示“e”字符的物理成本值可以比轻敲输入124B表示“w”字符的物理成本值低(即更好)。响应于接收到轻敲输入124的指示,手势模块108可以对空间模型110执行附加修改。手势模块108可以使用空间模型110来确定候选串的集合,其例如包括串“revo”、“rwvo”、“reco”、“rwco”、“revp”、“rwvp”等。通过采用空间模型110的可修改版本,手势模块108例如可以确定诸如“revo”的以“re”开始的候选串具有比诸如“rwvp”的以“rw”开始的候选串低的物理成本值。也就是说,尽管轻敲手势124B可能在“W”键和“E”键123B之间是等距的,但是由于空间模型110的修改,手势模块108可以确定revo”、“reco”和“revp”具有较低的相关联的物理成本值。手势模块108可以确定在给定所接收到的轻敲手势124的指示的情况下,候选串“revp”具有较低的物理成本值(并且因此在当前示例中具有较高可能性)。
手势模块108可以采用语言模型111的词典以至少部分地基于候选串来确定一个或多个候选词。候选词可以是所确定的候选串的校正和/或完成。手势模块108可以将候选串与语言模型111的词典中所包含的词进行比较以便至少部分地基于候选串中所包含的字符序列来确定可能的候选词。例如,手势模块108可以将候选串revo”、“rwvo”、“reco”、“rwco”、“revp”、“rwvp”与语言模型111中的词进行比较。从诸如“revo”或“reco”的一些候选串,手势模块108可以确定一个或多个候选词,除其它之外,诸如“revolution”、“revolutionary”、“revolt”。“record”和“recompense”。在一些示例中,手势模块108可以在用户150指示轻敲输入124的完成(例如暂停执行轻敲输入)之后确定候选词。在其它示例中,手势模块108可以在从UI模块106接收到轻敲输入124的指示时递增地确定候选词。
在其中候选串不以充分概率对应于词典中的任何词的开始部分(例如前缀)或者候选串自身是词典中的词的示例中,手势模块8可以确定该候选串为候选词自身(例如,针对候选串“revp”的候选词“revp”)。也就是说,语言模型111的词典可能不包含以前缀“revp”开始的词。在其它示例中,候选词可以包括比候选串更多、更少和/或不同的字符。例如,在手势模块8确定候选串可能包含错误时,候选词可能包含比候选串更少的字符(例如,针对候选串“doig”的候选词“dog”)。
语言模型111的词典中的词可以与频率值相关联。该频率值可以表示词在日常使用中的普及性。在一些示例中,该频率值可以是存储在语言模型111中的预先定义的统计值。在其它示例中,频率值可以是动态的并且例如能够由计算设备102的其它组件、其它设备或者基于过去的用户输入行为进行修改。较高的频率值可以对应于在语言中更为经常被使用的相关联的词,并且因此相关联的词可以有更高的可能性成为用户输入的正确预测。
在一些示例中,手势模块108可以采用语言模型111中的词级别的n元语言模型以至少部分地基于之前所输入的文本来确定候选词。例如,手势模块108可以使用语言模型111中包含的词级别的二元语言模型。词级别的双元语言模型可以提供与词对相关联的频率值。手势模块108可以至少部分地基于词级别的频率值来确定候选词。也就是说,手势模块108可以至少部分地基于针对当前词所输入的文本以及来自之前一个或多个词的所输入的文本来确定候选词。在一些示例中,手势模块108可以基于来自之前一个或多个词的所输入的文本来确定候选词而并不需要针对当前词输入任何文本。也就是说,手势模块108可以基于词级别的语言模型和/或语言模型111内所包含的词典来预测候选词而并不采用空间模型110。
在图1的示例中,手势模块108可以确定“revolution”具有比“revolutionary”、“revolt”。“record”、“recompense”等更高的表示用户150的预期输入的可能性。也就是说,语言模型111的词典可以指示“revolution”在语言中更为频繁地被使用和/或语言模型111的词级别的双元语言模型可以指示“French revolution”更为频繁地被使用,并且因此“revolution”更可能出现在用户的文本输入中。结果,虽然候选串“revp”可以具有最低的物理成本值(如使用空间模型110所确定),但是手势模块108可以确定“revo”具有表示用户150的预期输入的最高可能性,因为“revp”不是语言模型111中的任何词的前缀。此外,由于由候选串“revo”所导致的候选词“revolution”具有基于候选串“revo”的那些候选词中的最高频率值,所以手势模块108可以确定“revolution”具有表示用户150的预期未来输入的最高可能性。
手势模块108可以使得UI设备104显示具有最高概率的候选词作为文本输入区域126中的软提交词。软提交词可以用作占位符,并且如果用户150提供了用于选择该软提交词的输入,则手势模块108就将该软提交词作为文本发送至例如应用模块112。响应于接收到指示软提交词的数据,UI设备104可以显示该软提交词作为预测文本120。如图1所示,UI模块106可以接收指示软提交词“revolution”的数据,并且如GUI 114中所包括的,UI设备104可以将该软提交词显示为预测文本120,使得基础候选串“revo”后面紧跟有所确定的候选词的其余部分“lution”。在一些示例中,UI模块106可以使得所输入的字符和候选词或候选短语的预测部分以不同阴影、格式或颜色进行显示,以便向用户指示哪个文本已经通过手势被输入,以及哪个文本是预测的部分。
在一些示例中,手势模块108也可以使得UI设备104输出一个或多个候选词作为自动完成建议。自动完成建议可以被输出至词建议区域122。手势模块108可以向UI模块106发送已经被确定为比其它候选词具有更高概率的那些候选词,由此指示用户150的更为可能的预期输入。例如,UI设备104可以在词建议区域122B和122C中输出具有第二和第三最高概率的两个候选词。例如,第二最为可能的候选词可以位于GUI 114的中心,而不太可能的候选词则位于GUI 114的右侧。
手势模块108还可以使得UI设备104输出一个或多个候选串作为自动完成建议。例如,手势模块108可以向UI模块106发送具有如使用空间模型110确定的最低物理成本值的候选串。也就是说,手势模块108可以输出自动完成建议,其允许用户150选择最可能表示用户150的文字输入的串。在图1的示例中,手势模块108可以在接收到对应于轻敲手势124的数据之后确定具有表示用户150的预期输入的第二和第三最高概率的候选词是“revolutionary”和“revolt”。如之前所指出的,手势模块108可以确定具有最低物理成本值的候选串为“revp”。基于这些确定,手势模块108可以向UI模块106发送数据,并且候选词和候选串可以如GUI 114中所示出地在UI设备104输出。因此,在用户150已经执行了轻敲手势124之后,UI设备104可以显示GUI 114。
在一些示例中,响应于用户150(例如在词建议区域122中的一个中)对于自动完成建议的选择或者接受GUI 114中所包括的软提交词,手势模块108可以将对应于所选择的自动完成建议和/或所选择的软提交词的数据作为文本(即硬提交词)发送至与设备102相关联的其它组件。也就是说,手势模块108可以响应于用户105对软提交词或自动完成建议的选择来确定硬提交词。在其它示例中,手势模块108可以在没有用户150的选择的情况下确定硬提交词,诸如在候选词非常可能是用户150的预期输入时。通常,在当前示例中,硬提交词可以是指被用户所选择并且之前已经作为软提交词被输出以便进行显示的词和/或字符串。
可能情形的其它示例包括手势模块108在用户150在手势执行期间包括特定动作时、在用户150执行特定手势时等确定硬提交词。在一些示例中,在向应用发送文本输入作为硬提交词之后,手势模块108可以丢弃或者以其它方式终止存储所确定的候选串集合。也就是说,在确定硬提交词之后,任何后续输入都会导致手势模块108开始对新的候选串集合进行新的确定。以这种方式,手势模块108可以控制与用户所输入的手势相关联的数据以及文本预测直至出现了硬提交词的触发,此时,手势模块108可以将硬提交词发送至计算设备102的其它组件(例如,应用模块112中的一个)。
在图1的示例中,当利用GUI 114呈现时(即在执行轻敲手势124之后),用户150可以执行轻敲手势125以选择空格键123D。用户150可以执行轻敲手势125作为他或她对如GUI114中所显示的预测文本120满意的指示。响应于用户150在UI设备104执行轻敲手势125,UI模块106可以接收对应于轻敲手势125的数据。UI模块106可以将轻敲手势的指示提供至手势模块108。
依据本公开的一个或多个技术,手势模块108可以确定与轻敲手势125相关联的一个或多个特性并且可以相应地修改空间模型110。手势模块108可以使用如所修改的空间模型110来确定用户150在其执行轻敲手势125时所预期的最为可能的键。基于所接收到的轻敲手势125的指示(例如,所执行的手势的位置),手势模块108可以确定最为可能的键与空格字符相关联。响应于该确定,手势模块108可以确定硬提交。也就是说,手势模块108可以向与计算设备102相关联的诸如UI设备106或者应用112之一的其它组件发送所预测的文本120。
响应于接收到轻敲手势125,与计算设备102相关联的组件可以使得UI设104显示GUI 116。如图1所示,GUI 116包括文本输入区域126和图形键盘128。文本输入区域126包括所输入的文本130和所预测的文本132。换句话说,在通过输入空格字符而提供使得计算设备102执行硬提交的输入之后,UI设备104可以在不执行任何进一步的手势的情况下向用户150呈现未来输入的预测。
所预测的文本132可以是至少部分地基于语言模型111的用户150的未来输入的预测。也就是说,响应于执行硬提交。依据本公开的一个或多个方面,手势模块108可以使用空间模型110和语言模型111来确定候选词的集合。然而,在图1的示例中,可能没有可以针对其使用空间模型110的轻敲输入或滑动输入。结果,手势模块108可以单独基于语言模型111来确定候选词。
例如,手势模块108可以使用语言模型111中词级别的双元字典来确定最可能跟在“revolution”之后的词。在其它示例中,所使用的语言模型可以是三元或四元字典。在这样的情况下,手势模型108可以确定最可能跟随的词分别是“French revolution”或“TheFrench revolution”。在图1的示例中,手势模块108可以访问语言模型111内的词级别的双元字典并且确定词对“revolution timeline”在以词“revolution”开始的所有对中具有最高频率值。基于该确定,手势模块108可以进行发送而使得UI设备104输出“timeline”作为软提交。在一些示例中,手势模块108可以在词建议区域122中提供其它建议词。换句话说,在通过选择空格键123D导致硬提交之后,用户105可以被呈现以一个或多个预测未来文本输入的选项而并不被要求输入任何另外的输入。
在一些示例中,本公开的技术使用图形键盘提供了改进的文本输入的校正、完成和/或预测。本公开的技术还可以通过修改用来确定可能文本输入的空间模型并且使用经修改的空间模型确定通过手势所输入的文本来提高输入准确性。以这种方式,本公开的技术可以通过允许用户使用一个或多个手势输入文本并且在不要求用户紧密关注手势准确性的情况下为用户提供文本输入的校正、完成和/或预测来降低文本输入的时间要求。
图2是图示依据本公开的一个或多个方面的用于提供文本输入的示例计算设备102的框图。图2仅图示了计算设备102的一个特定示例,并且在其它情况下可以使用计算设备102的许多其它示例。
如图2的特定示例中所示,计算设备102包括一个或多个处理器200、一个或多个输入设备202、一个或多个通信单元204、一个或多个输出设备206、一个或多个存储设备210以及用户界面(UI)设备104。在图2的特定示例中,计算设备102进一步包括操作系统212、UI模块106、手势模块108、应用模块112、空间模型110、语言模型111、活动射束(active beam)220以及下一射束(next beam)222。组件200、202、204、206、210和104中的每一个可以互连(物理地、通信地和/或操作地)以便进行组件间通信。如图2中的一个示例,组件200、202、204、206、210和104可以通过一个或多个通信信道208耦合。在一些示例中,通信信道208可以包括系统总线、网络连接、进程间通信数据结构或者用于通信数据的任意其它通道。模块106、108和112以及操作系统212、空间模型110、语言模型111、活动射束220和下一射束222也可以互相以及与计算设备102中的其它组件通信信息。
在一个示例中,处理器200被配置为实现功能和/或过程指令以便在计算设备102内执行。例如,处理器200能够处理存储在存储设备210中的指令。处理器200的示例可以包括微处理器、控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者等同的离散或集成逻辑电路中任意的一个或多个。
一个或多个存储设备210可以被配置为在操作期间存储计算设备102内的信息。在一些示例中,存储设备210被描述为计算机可读存储介质。在一些示例中,存储设备210是临时存储器,这意味着存储设备210的主要用途不是长期存储。在一些示例中,存储设备210被描述为易失性存储器,这意味着存储设备210在计算机关机时不保存所存储的内容。易失性存储器的示例包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)以及本领域已知的其它形式的易失性存储器。在一些示例中,存储设备210被用来存储程序指令以便由处理器200执行。在一个示例中,存储设备210被在计算设备102上运行的软件或应用(例如模块106、108、112等)用来在程序执行期间临时存储信息。
在一些示例中,存储设备210还包括一个或多个计算机可读存储媒体。存储设备210可以被配置为存储比易失性存储器更大数量的信息。存储设备210可以进一步被配置用于信息的长期存储。在一些示例中,存储设备210包括非易失性存储部件。这样的非易失性存储部件的示例包括磁性硬盘、光盘、软盘、闪存、或者电可编程存储器(EPROM)或电可擦除可编程存储器(EEPROM)的形式。
在一些示例中,计算设备102还包括一个或多个通信单元204。在一个示例中,计算设备102利用通信单元204经由诸如一个或多个无线网络之类的一个或多个网络与外部设备进行通信。通信单元204可以是网络接口卡,诸如以太网卡、光学收发器、射频收发器、或者能够发送和接收信息的任意其它类型的设备。这样的网络接口的其它示例可以包括蓝牙、3G和WiFi无线电组件以及通用串行总线(USB)。在一些示例中,计算设备102利用通信单元204与诸如图1中的计算设备102的其它实例的外部设备或者任意其它计算设备进行通信。
在一个示例中,计算设备102还包括一个或多个输入设备202。在一些示例中,输入设备202被配置为通过触觉、音频或视频反馈接收来自用户的输入。输入设备202的示例包括存在敏感显示器、鼠标、键盘、语音响应系统、视频相机、麦克风或者用于检测来自用户的命令的任意其它类型的设备。在一些示例中,存在敏感显示器包括触摸敏感屏幕。
一个或多个输出设备206也可以包括在计算设备102中。在一些示例中,输出设备206被配置为使用触觉、音频或视频刺激向用户提供输出。在一个示例中,输出设备206包括存在敏感显示器、声卡、视频图形适配器卡、或者用于将信号转换为人或机器所能够理解的适当形式的任意其它类型的设备。输出设备206的另外示例包括扬声器、阴极射线管(CRT)监视器、液晶显示器(LCD)、或者能够向用户生成可理解输出的任意其它类型的设备。
在一些示例中,UI设备104可以包括输入设备202和/或输出设备206的功能。在图2的示例中,UI设备104可以是存在敏感显示器。在一些示例中,存在敏感显示器可以检测位于和/或接近存在敏感显示器的屏幕的物体。作为一个示例范围,存在敏感显示器可以检测处于存在敏感显示器的物理屏幕2英寸或更近之内的诸如手指或触控笔的物体。在另一个示例范围中,存在敏感显示器可以检测距存在敏感显示器的物理屏幕6英寸或更近的物体。其它的示例性范围也是可能的。存在敏感显示器可以确定该存在敏感显示器上检测到物体的位置(例如(x,y)坐标)。存在敏感显示器可以使用电容、电感和/或光学识别技术来确定用户手指所选择的显示器的位置。在一些示例中,如关于输出设备206所描述的,存在敏感显示器使用触觉、音频或视频刺激向用户提供输出。
计算设备102可以包括操作系统212。在一些示例中,操作系统212控制计算设备102的组件的操作。例如,在一个示例中,操作系统212促成模块106、108和112与处理器200、通信单元204、存储设备210、输入设备202和输出设备206的通信。模块106、108和112每个均可以包括能够由计算设备102执行的程序指令和/或数据。作为一个示例,UI模块106可以包括使得计算设备102执行本公开中描述的一个或多个操作和动作的指令。
在图2的示例中,计算设备102可以包括空间模型110。如之前在图1中所描述的,空间模型110可以存储对应于图形键盘的一个或多个键或“软按钮”的键数据(即,与针对数据实体所声明并分配的唯一键形成对照)。在一些示例中,键数据可以包括与键盘的键相关联的统计值、与键盘的键相关联的位置值、键的数学定义等。空间模型110可以被存储在各种数据结构中的一个中,诸如阵列、列表、诸如使用可扩展标记语言(XML)编码的文件的结构文件等。
在一个示例中,空间模型110对于图形键盘的每个键可以包括触摸点的双变量高斯分布的值。可以预先设置或者从数据学习每个键的均值、标准偏差值和/或协方差值。空间模型110中的这种键值也可以至少部分基于之前输入的字符进行调节。例如,空间模型110可以从计算设备102的诸如手势模块的其它组件或网络设备接收修改数据以改变与键相关联的一个或多个值。也就是说,手势模块108或其它组件可以修改存储在空间模型110中的与一个或多个键相关联的值或定义以更为准确地校正、完成和/或预测文本输入。
在一些示例中,计算设备102包括语言模型111。语言模型111可以包括词典。在一些示例中,词典可以包括词列表并且可以包括与所列出的词相关的附加信息,诸如词之间的关系、语法上下文、使用频率等。词典可以由各种数据结构来表示,诸如阵列、列表和/或树。例如,语言模型111可以包括以特里数据结构存储的词典。词典特里数据结构可以包含多个节点,每个节点可以表示字母。词典特里中的第一节点可以被称作入口节点,其可以不对应于字母。在其它示例中,该入口节点可以对应于字母。每个节点可以具有一个或多个孩子节点。例如,该入口节点可以具有26个孩子节点,其中每一个对应于英文字母表中的一个字母。
词典特里中的节点的子集每个均可以包括标志,其指示该节点为终端节点。词典特里中的每个终端节点可以指示完整词(例如候选词)。沿着从入口节点到终端节点的节点路径的节点所指示的字母可以拼写出由终端节点所指示的词。在一些示例中,语言模型111可以是安装在计算设备102上的缺省字典。在其它示例中,语言模型111可以包括多个词典源,上述词典可以存储在计算设备102或者存储在一个或多个远程计算设备,并且能够由计算设备102经由一个或多个通信信道进行访问。在一些示例中,语言模型111可以以计算设备102的固件来实现。
如之前在图1中所描述的,语言模型111可以包括语言模型频率信息,诸如词级别的n元字典。n元字典可以基于序列中之前的项为项的连续序列中的项xi(例如字母或词)提供概率分布(例如P(xi|xi-(n-1),...,xi-1))。例如,词级别的双元字典(其中n=2的n元语言模型)可以提供词“snow”跟在词“white”之后的概率。
计算设备102可以包括活动射束220。在一些示例中,活动射束220被配置为存储手势模块108所生成的一个或多个候选串(例如,作为令牌)。活动射束220可以包括在存储设备210内。活动射束220可以由各种数据结构和/或软件对象来表示,诸如阵列对象、列表对象、数据库、表、树等。活动射束220在以下的图5的描述中进一步进行描述。
计算设备102还可以包括下一射束222。在一些示例中,下一射束222被配置为存储手势模块108所生成的一个或多个候选串(例如,作为令牌)。下一射束222可以包括在存储设备210内。下一射束222可以由各种数据结构和/或软件对象来表示,诸如阵列对象、列表对象、数据库、表、树等。下一射束222在以下的图5的描述中进一步进行描述。
依据本公开的技术,计算设备102可以在输出设备206输出包括多个键的图形键盘。用户150可以在输入设备202执行一系列轻敲手势来选择该多个键中的数个键。响应于用户3执行轻敲手势,输入设备202可以检测可以被UI模块106接收的该用户输入,诸如图1的轻敲手势124A。手势模块108可以从UI模块106接收该轻敲手势的指示。在一些示例中,UI模块106可以在接收到每个轻敲手势的指示时将其发送。在其它示例中,UI模块106可以以不同的间隔发送指示。
手势模块108可以确定与所接收到的指示相关联的特性。在各个示例中,手势模块108可以确定所接收到的轻敲手势的位置与图形键盘的一个或多个键之间的欧几里得距离,确定执行轻敲手势的速度(例如,以每秒钟的字符),和/或确定输入单元(例如用户150的手指)与输入设备202之间的接触区域的大小。至少部分地基于所确定的特性,手势模块108可以修改空间模型110的一个或多个值。例如,手势模块108可以至少部分地基于之前轻敲输入的物理位置来修改与图形键盘的键相关联的垂直或水平标准偏差值。在另一个示例中,手势模块108可以修改键的统计位置以包括之前的轻敲输入的物理位置。换句话说,手势模块108可以基于所接收的轻敲输入修改空间模型110以便更为准确地确定来自后续用户输入的文本。
如以下进一步描述的,手势模块108可以使用如所修改的空间模型110以及语言模型111通过对于每个所接收到的轻敲手势确定多个键中的至少两个键中的每个的复合成本值,并且将至少两个键中的每一个的相应复合成本值进行比较来确定一个或多个候选串(例如作为令牌)。复合成本值可以包括物理成本值和词典成本值。虽然关于图1中的轻敲手势124进行描述,但是手势模块108也可以基于诸如滑动或扫动手势之类的其它所接收的手势来确定特性、修改空间模型110并且确定复合成本值。
在一些示例中,手势模块108可以使用如所修改的空间模型110以对于键盘128中所包括的多个键中的至少两个键中的每一个确定相应物理成本值。每个相应的物理成本值可以表示所执行的轻敲手势指示图形键盘的键的概率。在一些示例中,相应的物理成本值可以基于诸如轻敲手势的物理特征和/或键的物理和统计特征之类的特性。例如,相应物理成本值可以参考如空间模型110中所存储的键的统计位置而基于轻敲手势的物理位置。
在一些示例中,词典成本值可以基于语言模型111。例如,相应词典成本值可以基于第二键将在第一键之后被选择的概率(例如,将在“c”键之后选择“o”键的概率)。在其它示例中,相应词典成本值可以基于第二候选词将跟在第一候选词之后的概率,或者基于语言模型111的频率值。在某些示例中,对其确定相应词典成本值的键至少部分地基于语言模型111来选择。在一些示例中,词典成本值在轻敲手势以较大可能性指示键的情况下较低。在其它示例中,词典成本值在轻敲手势以较大可能性指示键的情况下较高。
在图2中,如关于图1所描述的,用户可能想要键入“revolution”。手势模块108可以确定表示轻敲手势124A指示“R”键123A的概率的第一复合成本值以及表示该轻敲手势指示“E”键123B的概率的第二复合成本值。类似地,手势模块108可以确定表示轻敲手势124B指示“E”键123B的概率的第三复合成本值以及表示轻敲手势124B指示“W”键(其可以是接近于在“E”键123B附近所执行的轻敲手势的位置的多个键中的另一个)的概率的第四复合成本值。以这种方式,手势模块108可以递增地确定复合成本值,每个复合成本值表示轻敲手势指示图形键盘128中所包括的多个键中的一个键的概率。例如,手势模块108可以确定表示轻敲手势指示“P”键123C、空格键123D或者多个键中所包括的其它键的概率的复合成本值,所述其它键诸如接近于在“P”键123C附近执行的轻敲手势的“O”键。
手势模块108可以将该多个键中的至少两个键的相应复合成本值进行比较以确定具有满足阈值的复合成本阈值的键组合。键组合的经组合的复合成本值可以表示轻敲手势124共同指示该键组合的概率。手势模块108可以将多个键中的至少两个键的相应复合成本值进行比较以确定轻敲手势指示该至少两个键中的哪一个。手势模块108可以通过确定哪些键被每个轻敲手势指示来确定键组合。
在一些示例中,手势模块108可以将所确定的键组合的经组合的复合成本值与阈值进行比较。在一些示例中,该阈值是不同的所确定的键组合的经组合的复合成本值。例如,手势模块108可以确定具有第一经组合的复合成本值的第一键组合以及具有第二经组合的复合成本值的第二键组合。在这样的情况下,手势模块108可以基于具有较低的经组合的复合成本值的键组合来确定一个或多个候选词。在图2中,如关于图1所描述的,手势模块108可以将所确定的相应复合成本值进行比较以确定具有经组合的复合成本值的键组合(即,“R”、“E”、“V”和“P”)
响应于从UI模块106接收到轻敲手势,手势模块108可以创建候选串的集合。每个候选串可以存储在令牌中。令牌可以被用来存储候选串和附加作为手势模块108所接收到的手势的后续指示的字符。作为示例,手势模块108可以在词典的入口节点处创建令牌,该词典可以包括在语言模型111中。在一些示例中,语言模型111可以被实现为特里数据结构。每个可移动令牌可以表示词典中的节点(即部分词和/或短语)与所接收到的轻敲手势之间的部分对齐。在手势模块108接收到轻敲手势的后续指示时,令牌可以前进至词典中的孩子节点(即,词中的下一个字母)。
如所描述的,词典特里数据结构可以包含多个节点,每个节点表示字母。手势模块108可以将所创建的令牌推入到活动射束220。手势模块108可以在该令牌的每个孩子节点上创建令牌副本。在图2的示例中,手势模块108可以在表示字母“R”的孩子节点(例如,对应于“R”键123A的所预测的键选择)上创建第一令牌副本并且在表示字母“E”的孩子节点(例如,对应于“E”键123B的所预测的键选择)上创建第二令牌副本。每个令牌可以包括单个所预测的字符的串。
对于所接收的每个轻敲手势,手势模块108可以对于多个键中的至少两个键中的每一个确定相应的复合成本值。每个相应复合成本值可以表示该轻敲手势指示多个键中的一个键的概率。手势模块108可以确定表示第一轻敲手势指示表示字母“R”的节点的概率的第一复合成本值以及表示该轻敲手势指示表示字母“E”的节点的概率的第二复合成本值。在一些示例中,手势模块108然后可以利用相应的复合成本值更新该令牌副本并且将该令牌副本推入到下一射束222。手势模块108可以将第一复合成本值添加至第一令牌副本并且将第二复合成本值添加至第二令牌副本。
在一些示例中,如以下进一步描述的,手势模块108通过包括相应物理成本值和相应词典成本值来确定相应成本值。例如,手势模块108可以通过对物理成本值和词典成本值求和来确定复合成本值。在一些示例中,手势模块108可以通过修改空间模型110的特定值来向相应物理成本值应用一个或多个权重因数。例如,通过增大在空间模型110中存储的并且与键相关联的标准偏差值,手势模块108可以降低物理成本值与词典成本值相比的相对重要性。通过减小标准偏差值,手势模块108可以增大物理成本值的相对重要性。
在一些示例中,诸如在以高速率检测轻敲手势的情况下,手势模块108可以使得一个或多个词典成本值加权得高于相应物理成本值。例如,手势模块108可以确定与手势相关联的特性(例如速度)满足一个或多个阈值,诸如在轻敲手势的全局速度大于或等于阈值、小于或等于阈值时等等。响应于该确定,手势模块108可以使得相应候选串的词典成本值加权得高于相应物理成本值。在一些示例中,手势模块108可以使用统计机器学习来对用户风格进行调适并且随时间修改权重。例如,手势模块108可以响应于确定用户在执行手势的同时不准确而将词典成本值加权得高于物理成本值。
在一些示例中,手势模块108可以将物理成本值加权得高于词典成本值。手势模块108可以在存在词典成本值可能不可靠的指示的情况下将物理成本值加权得高于词典成本值,诸如在用户具有输入未包括在词典中的词的历史的情况下。在一些示例中,可以启发式地估计并优化相对权重,诸如通过测量来自多个计算设备的准确性。
在一个示例中,如图1所示,手势模块108可以基于第一轻敲手势124A和“R”键123A之间的欧几里得距离来确定第一物理成本值。在一些示例中,手势模块108可以通过将第一轻敲手势与第二轻敲手势之间的欧几里得距离和第一轻敲手势所指示的第一字母与可能由第二轻敲手势所表示的第二字母之间的欧几里得距离进行比较来确定物理成本值。手势模块108可以确定第二字母的成本值与距离之间的差值成反比(即,第二字母在该距离更类似的情况下具有更大可能)。也就是说,在一些示例中,物理成本值可以对轻敲手势的几何形状而不是轻敲手势的位置进行计算。例如,较小的距离差值可以指示第二手势是第二字母的选择的更大可能性。
手势模块108还可以通过确定多个键中的至少两个键中的每一个的词典成本值来确定相应键的复合成本值。每个相应的词典成本值可以表示多个键中的一个键所表示的字母基于令牌包括在候选词中的概率。该词典成本值可以基于语言模型111。例如,词典成本值可以表示基于语言模型111的词典中所包括的可能词而选择给定字母的可能性。手势模型108可以基于词典中的入口来确定指示字母“R”是词中的第一个字母的概率的第一词典成本值。
作为示例,手势模块108可以接收轻敲手势124A和124B的指示。作为响应,手势模块108可以确定包括预测字符的单个串“re”的第一令牌。手势模块108可以使用该第一令牌来确定该手势所指示的一个或多个候选词。例如,手势模块108可以确定预测字符的单个串是其前缀的一个或多个候选词,诸如词“rest”、“rend”等。
在本示例中,当用户150继续执行轻敲手势时,手势模块108可以接收轻敲手势124C的指示。作为响应,手势模块108可以在该令牌的每个孩子节点上创建令牌副本以包括该手势的所接收到的部分所指示的字符,诸如对应于对“v”键的预测选择的字母“v”。这样,手势模块108可以使得第一令牌前进至包括所预测的字符的单个串“rev”。基于该第一令牌,手势模块108可以确定该手势所指示的一个或多个候选词,诸如词典中所包括的该预测字符的单个串“rev”是其前缀的词(例如,词“review”、“revolve”等)。
在某些示例中,手势模块108可以保存阈值数量的令牌(例如,50个令牌、100个令牌、200个令牌或者其它数量的令牌)并且丢弃其余令牌。例如,手势模块108可以保存包括如基于空间模型110和语言模型111所确定的由接收的手势最可能指示的词的100个令牌的群组。以这种方式,手势模块108可以有效缩放至大的词典。
手势模块108可以确定UI模块106是否已经完成了接收轻敲手势124。在UI模块106继续接收在字符键上的轻敲手势的情况下,手势模块108可以继续递增地处理手势数据。在一些示例中,手势模块108可以在UI模块106完成接收轻敲手势之前输出一个或多个预测。
在接收到每个轻敲手势的指示之后,手势模块108可以确定一个或多个候选词以便作为自动完成建议和/或软提交词在存在敏感显示器显示。在UI模块106已经完成接收对应于轻敲手势124的手势路径数据之后,如在图1的GUI 114所看到的,手势模块108可以确定候选词“revolutionary”和“revolt”以便作为自动完成建议进行显示。如在文本输入区域126所看到的,手势模块108可以进一步确定候选词“revolution”以便作为软提交词进行显示。
手势模块108可以保留所确定的令牌中的一个或多个。也就是说,手势模块108可以在接收到轻敲手势的指示之后保存令牌,并且可以响应于接收到对应于在输入设备202接收的后续手势的手势数据而对该令牌进行修改。这样,响应于接收到用于选择多个键中的下一个字符键的下一个手势的指示,手势模块108可以在之前所确定的令牌的每个孩子节点上创建令牌副本以包括由所接收的手势指示的预测字符。
如果下一个手势被确定为选择空格键123D,手势模块108可以执行硬提交。也就是说,手势模块108可以将所显示的软提交发送至与计算设备102相关联的其它组件(例如应用112)。手势模块108可以响应于接收到对所显示的自动完成建议(即,在词建议区域122之一中显示的候选词)的选择而执行硬提交。在这样的情况下,手势模块108可以将所显示的自动完成建议发送至与计算设备102相关联的一个或多个组件。在一些示例中,手势模块108可以在执行硬提交之后丢弃所确定的候选串和/或候选词。在接收到后续手势的指示时,手势模块108可以创建新的候选串集合。在其它示例中,手势模块108可以不丢弃候选串或候选词。
根据本公开的技术,手势模块108可以动态地修改结合语言模型使用的空间模型的值,以基于所接收到的用于选择图形键盘中的一个或多个键的一个或多个手势的指示来确定一个或多个令牌。模型模块108因此可以使得用户能够通过提供一系列轻敲或滑动手势准确输入词或短语,而不要求用户准确且精确地执行一个或多个手势。此外,通过连同语言模型一起使用如所修改的空间模型,手势模块108可以动态地改变模型的权重,因此使得能够进行更为准确的文本输入。此外,通过允许用户以更高速度且较低的准确性输入手势,本公开的技术可以通过允许用户在不需要过多关注精确输入的情况下输入字符来提高键入速度和效率。
图3A和3B是图示依据本公开的一个或多个方面的修改空间模型以提供文本输入的一个示例的框图。仅出于图示的目的,示例操作在下文中在如图1和2所示的计算设备102的上下文内进行描述。
图3A和3B分别包括分布模型302A和302B(统称为“分布模型302”)的示例图形,它们均显示了沿“E”键123B的水平或x轴的预期触摸点分布。分布模型302可以被存储在空间模型110中。虽然未在图3A和3B中示出,但是空间模型110还可以包括沿“E”键123B的垂直或y轴的预期触摸点分布的分布模型。虽然图3A和3B的示例示出了“E”键123B的分布模型,但是例如图形键盘128的其它键的分布模型可以具有类似的特性。
分布模型302可以结合至高斯分布模式。分布模型302可以包括统计平均值或均值μ以及标准偏差值σ。均值可以表示“E”键123B的统计水平位置。最初,该均值可以如在图形键盘128中所显示地处于“E”键123B的中心。标准偏差值可以关于如图形键盘128所显示的“E”键123B的物理大小进行定义。标准偏差值可以表示预期触摸点分布中的水平变化。也就是说,关于“E”键123B的物理大小的较大的标准偏差值可以指示预期触摸点分布中的较宽变化(即,更多所接收的触摸点预期要更为偏离均值被接收)。关于“E”键123B的物理大小的较小的标准偏差值可以指示预期触摸点分布中的较窄变化(即,更大数量的所接收的触摸点预期更接近于均值被接收)。
在任一种情形中,分布模型302可以由高斯分布的概率分布函数定义,
依据高斯分布,分布模型302可以在均值的一个标准偏差之内包括所有预期触摸点的大约68.2%。分布模型可以在均值的两个标准偏差之内包括所有预期触摸点的大约95.4%等等。因此,通过修改均值和/或标准偏差值,手势模块108可以依据本公开的一种或多种技术更为准确地确定候选串的集合。例如,手势模块108可以修改“E”键123B的水平均值以考虑用户一般尝试通过轻敲键轻微中心的右侧或左侧来选择“E”键123B。在另一个示例中,手势模块108可以如以下所描述地修改水平标准偏差值。手势模块108可以如何利用空间模型110的进一步细节在下文中参考图5进行描述。
图3A包括分布模型302A。分布模型302A可以表示“E”键123B的水平模型的缺省或初始状态。例如,空间模型110可以在计算设备102接收到任何用户输入之前包含分布模型302A。如所示出的,分布模型302A可以包括均值和标准偏差值。如所显示的(即“E”键123B的宽度为.5σ),标准偏差值可以是“E”键123B的物理宽度的两倍。换句话说,基于分布模型302A,预计将有大约38.2%的触摸点落入“E”键123B的左侧和右侧边界之内。在一些示例中,标准偏差值可以基于图形键盘128的键的物理大小。例如,当计算设备102为平板电脑时,该键可能相对大并且键的宽度可以大约为4.13σ。也就是说,大约96%的对“E”键123B的选择会落入该键的左侧和右侧边界之内。当键较小时,诸如在计算设备102是智能电话时,“E”键123B的宽度可以等于2σ。在一个示例实施方式中,对于48像素的键宽度,水平标准偏差可以是该键的宽带的1.2倍。各标准偏差值可以在不同情形中被预先设置或者依经验确定。
302A的标准偏差值可以表示在“E”键123B被选择为第一字符时所接收到的轻敲手势中的预期水平变化。然而,在一些情况下,不同标准偏差值可能更为准确地表示预期变化。例如,当用户选择在图形键盘128内位于与“E”键123B同一行中的键(例如,“P”键或“T”键)时,用于选择“E”键123B的轻敲手势的变化在水平方向会增加。也就是说,在选择了同一行中的键之后,与在选择不同行中的键之后进行轻敲时或者在轻敲“E”键123B并不轻敲任何其它键时相比,用户会更可能轻敲到“E”键123B的中心的左侧或右侧。为了考虑该变化增加(即,在水平方向更为草率的轻敲手势),手势模块108可以修改“E”键123B的水平标准偏差值。
图3B包括分布模型302B。分布模型302B可以表示“E”键123B的水平模型的修改状态。如图3B中所示,分布模型302B的标准偏差值可以增大2.5倍。在一些示例中,标准偏差值的增大或减小可以针对各种标准为预定值。例如,虽然在图3B中示出了增大2.5倍,但是在各种情形中大小的其它增大或减小可以更大或更小。在其它示例中,标准偏差变化可以由计算设备102依经验确定,或者可以由中央服务器根据大量设备确定并且由计算设备102接收(例如经由通信单元204)。
通过增大“E”键123B的标准偏差值,分布模型302B可以减少用户在“E”键123B的水平边界内进行准确轻敲的需要。也就是说,通过使用分布模型302B,与手势模块108使用分布模型302A的情况下所进行的分配相比,手势模块108可以在接收到轻敲输入时向“e”字符分配较低的成本值。以这种方式,手势模块108对空间模型110的修改可以提高文本输入的准确性。
图4A和4B是图示依据本公开的一个或多个方面的用于修改空间模型以提供准确文本输入的示例GUI的框图。仅出于说明的目的,该示例操作在下文中在如图1和2所示的计算设备102的上下文内进行描述。GUI 402和404可以由如图1所示的UI设备104显示。
在一些示例技术中,手势模块108可以通过修改在字符确定中所使用的空间模型来使得用户能够输入文本输入并且接收改进的校正、完成和/或预测服务而不要求提高的准确性。也就是说,计算设备102可以响应于所接收到的文本输入而对于图形键盘的字符修改空间模型的一个或多个属性,并且可以采用经修改的空间模型更为准确地确定哪些字符被用户所预期作为文本输入、哪些词可能被文本输入所预期、以及哪些文本输入可能在接下来被输入。这样的技术进一步在图4A和4B中进行图示。
如图4A所示,GUI 402可以包括文本输入区域426和图形键盘428。最初,文本输入区域426可以不包括文本。图形键盘428的每个键可以与相应键的统计分布模型相关联。例如,在接收任何文本输入之前,“W”键406A、“G”键406B和“L”键406C(统称为“键406”)可以分别与统计模型408A、408B和408C相关联。在图4A和4B的示例中,统计模型408A、408B和408C(统称为“统计模型408”)可以是缺省的,或者是相应键的初始统计模型。也就是说,统计模型408可以在计算设备102已经接收任何文本输入之前被预先定义并且存储在空间模型110之中。
每个统计模型408可以包括相关联的键的一个或多个统计位置、水平(x)和垂直(y)轴二者的标准偏差值、以及水平和垂直轴二者的协方差。在一些示例中,统计模型408可以包括与相关联的键相关的其它信息,诸如相关联的键已经被按压的次数、最近键选择的记录或者其它信息。如图4A和4B中所显示的,统计模型408的位置可以表示相关联的键的统计位置,并且统计模型408的大小和形状可以表示相关联的键的标准偏差值。如图4A中所看到的,与键406相关联的统计位置可以处于其相应键的中心。统计模型408的水平和垂直标准偏差值都可以大致等于相应键的高度。在一些示例中,该水平和垂直标准偏差可以不同。
计算设备102的用户(例如用户150)可以执行轻敲手势410以输入“l”字符。轻敲手势410可能不确切地处于“L”键406C的中心。相反,轻敲手势410可能处于该键的右上角。UI设备104可以接收轻敲手势410,并且UI模块106可以将轻敲手势410的指示发送至手势模块108。依据本公开的一个或多个方面,手势模块108可以基于所接收到的指示修改空间模型110。在一些示例中,空间模型110的修改可以包括与“L”键406C相关联的值(例如统计模型408C)的修改。在一些示例中,手势模块108可以修改空间模型110中存储的其它值,诸如统计模型408A、408B以及其它键的空间模型。
图4B包括GUI 404,其可以表示统计模型408在用户150执行第二轻敲手势412之后的状态。用户150可以执行轻敲手势412以输入“o”字符。手势模块108可以接收轻敲手势412的指示,并且相应地修改空间模型110。由手势模块108对空间模型110所执行的修改会导致如GUI 404中所示的统计模型408。例如,手势模块108可以接收轻敲手势412的指示,并基于所接收到的指示确定一个或多个特性。该特性可以包括输入设备202上接收到轻敲手势412的位置。例如,该输入位置可以包括输入设备202的x坐标以及输入设备202的y坐标。基于该输入位置,手势模块108可以确定在其中接收到轻敲手势412的图形键盘428中的键行。在图4B的示例中,这可以是包括“W”键406A的键行。
响应于确定了键行,手势模块108可以对该键行中的键的统计模型进行修改。例如,手势模块108可以增大与“W”键406A相关联的统计模型408A的水平标准偏差值,由此考虑距当前轻敲手势412主要为水平(即与水平和垂直两者相对)定位的用于选择“W”键406A的下一个轻敲手势可能包括增大的水平误差的可能性。在另一个示例中,手势模块108可能减小统计模型408A的垂直标准偏差值,由此考虑下一个轻敲手势将会包括减小的垂直误差的可能性。也就是说,当用户选择一个键并且然后基本上直接向左或向右滑动手指时,该轻敲手势更可能“超过”或“未达到”(例如,向左或向右)下一个预期键的水平位置,但是可能关于下一个预期键更为准确地垂直放置。在一些示例中,手势模块108可以同时增大键的水平标准偏差值并减小该键的垂直标准偏差值。
如图4B所示,统计模型408A可以继续具有处于“W”键406A上的中心处的均值。然而,响应于接收轻敲手势412的指示,手势模块108可以减小统计模型408A的垂直标准偏差值。此外,手势模块108可以增大统计模型408A的水平标准偏差值。统计模型408A的修改可以考虑用户150更为可能进行从“O”键向“W”键406A的直接水平运动、并且因此可能会增大水平方向的错、同时可能减小垂直方向的错误的高可能性。
在另一个示例中,手势模块108可以基于所接收到的轻敲手势410和412的指示来修改统计模型406B。依据本公开的一个或多个方面,手势模型108可以确定与所接收到的轻敲手势相关联的一个或多个特性。如之前所描述的,该特性可以包括输入设备202上接收到该轻敲手势的位置。基于所确定的位置特性,手势模块108可以确定轻敲手势410和412分别输入了“l”字符和“o”字符。响应于轻敲手势的特性指示特定键的高概率,手势模块108可以使用语言模型111来确定一个或多个键是接下来要选择的键的可能性、并且相应地修改空间模型110。例如,手势模块108可以确定轻敲手势410的位置指示“L”键406C并且轻敲手势412的位置指示“O”键是高概率的。基于这些高概率,手势模块108可以使用语言模型111,并且确定“g”字符将很可能跟在所输入的“l”和“o”字符之后,因为在词典中有很多词以“log”开头的多个词和/或以“log”开头的词具有高的频率值。
基于该确定,手势模块108可以增大统计模型408B的垂直和/或水平标准偏差值,以便增大“G”键406B附近的选择将会导致与向候选串集合添加“g”字符相关联的最低成本值的可能性。在一些示例中,手势模块108可以对于不可能的下一个字符—诸如“y”字符—相关联的键减小垂直和/或水平标准偏差值。也就是说,基于之前所接收的轻敲手势的位置,手势模块108可以使用语言模型111来确定可能的下一个键并且增大标准偏差值。手势模块108还可以确定不可能的下一个键并且减小标准偏差值。以这种方式,在一些示例中,手势模块108可以在接收下一个轻敲输入时确定空间模型110的重要性。
统计模型408A和408B的修改可以是临时的。也就是说,在接收第三个轻敲手势时,手势模型108可以修改空间模型110以将统计模型408A和408B的标准偏差值改变回之前的状态。以这种方式,手势模块108使得计算设备102能够通过使用之前的文本输入来估计未来的文本输入错误而更为准确地确定文本输入。
手势模块108还可以执行非瞬时修改。作为一个示例,响应于接收到轻敲手势410的指示,手势模块108可以修改空间模型110以改变与“L”键206C相关联的统计模型408C的统计位置。例如,响应于接收轻敲手势410的指示,手势模块108可以确定与轻敲手势410相关联的一个或多个特性。该特性可以包括输入设备202上接收到轻敲手势410的位置。该位置可以包括垂直和水平位置,诸如x,y平面中的坐标值对。响应于确定该位置,手势模块108可以修改与图形键盘428的一个或多个键相关联的空间模型110的统计位置值。
修改统计位置可以包括将该统计位置的垂直和水平分量改变基于轻敲手势410的位置所确定的值。例如,手势模块108可以计算“L”键406C的统计位置和轻敲手势410之间的水平和垂直距离。手势模块108然后可以向所计算的距离应用乘数(例如0.5、0.1、0.01等),并且将结果相加至统计位置值。在图4A的示例中,统计模型408C的位置和轻敲手势410之间的差值可以为y方向的.6以及x方向的.4。基于该差值,手势模块108可以通过例如向统计位置的y值相加.06并且向统计位置的x值相加.04来确定统计模型408C的新的统计位置。在一些示例中,手势模块108可以通过计算之前值的平均值来确定统计模型的新的统计位置。例如,统计模型可以表示键的之前水平值和之前垂直值的平均值。响应于确定位置特性,手势模块108例如可以通过继续将水平和垂直统计位置乘以9、将相应水平和垂直特性位置相加、并且将结果除以10而取得统计位置和特性位置的加权平均值。
如图4B所示,作为结果的统计模型408C与“L”键206C的中心相比可以位于稍微偏上并且稍微偏右。该修改可以通过后续轻敲手势的接收而是持久的。也就是说,手势模块108可以不将统计模型408C返回之前的状态。在一些示例中,修改统计模型的统计位置可以对所接收的每个轻敲手势在多于一个键上执行,诸如在物理成本值没有明确指示哪个键为预期的情况下。以这种方式,手势模块108可以使得计算设备102能够考虑用户输入中的重复错误,诸如由于用户150如何握持计算设备102、用户150使用哪个手指输入文本等所导致的那些错误。
在一些示例中,手势模块108可以响应于所确定的文本输入的输入速度而修改空间模型110。也就是说,当用户以高速率输入了多个轻敲输入时,手势模块108可以增大键盘428的一个或多个键的垂直和/或水平标准偏差值。例如,手势模块108可以接收由用户150执行的轻敲手势的一系列指示。依据本发明的一个或多个方面,手势模块108可以确定所接收的轻敲手势的输入速度特性。在一些示例中,所确定的输入速度(例如,每秒钟的轻敲)可以基于某个数量的最近所接收的轻敲手势(例如,最近3个轻敲手势、最近5个轻敲手势等)。在其它示例中,输入速度可以基于自从最近的硬提交起所接收到的所有轻敲手势来确定。在任意情况下,手势模块108可以将输入速度与阈值进行比较。该阈值可以是存储在计算设备102处的预定值,或者可以基于之前从用户接收的输入。在一些示例中,如果轻敲手势的输入速度小于阈值,则手势模块108可以避免基于所确定的速度特性对空间模型110中存储的任何标准偏差值进行修改。在其它示例中,响应于确定输入速度小于阈值,手势模块108可以减小空间模型110中存储的一个或多个标准偏差值。也就是说,当手势模块108确定输入速度低于阈值时,手势模块108可以减小图形键盘428的一个或多个键的水平和/或垂直标准偏差值,由此提高空间模型110在确定复合成本值时的重要性。
然而,如果手势模块108确定所确定的输入速度大于或等于阈值,则手势模块108可以增大图形键盘428的一个或多个键的标准偏差值。增大标准偏差值可以降低空间模型110在对各个候选串确定复合成本值时的重要性。在其它示例中,手势模块108可以通过与所确定的速度特性成比例的因数来修改空间模型110的一个或多个标准偏差值。例如,给定预先设置的平均输入速度(每秒钟的字符)S、所确定的输入速度S'以及缺省标准偏差σ',手势模块108可以计算经修改的标准偏差值,
在一些示例中,诸如在用户正在使用单个手指输入手势的情况下,可以通过确定哪个键被轻敲、最后的键是什么,并且应用费茨法则:T=a+b log(D/4σ'+1)对空间模型110进行更为准确的调节,其中T是从最后键到当前键的时间间隔,并且D是从最后键到当前键(即,与被增大或减小的标准偏差值相关联的键)的物理距离。在每种情况下,手势模块108可以通过基于所确定的所接收的输入的特性对一个或多个键修改空间模型110的值以便使得空间模型110的重要性权重大于或小于语言模型111的重要性来提高预测的文本输入的准确性。该灵活性可以允许计算设备2更为准确地预测文本输入并且提高用户的整体键入速度和准确性。
图5A-C是图示依据本公开的一个或多个方面的图1所示的计算设备的一个示例的进一步细节的框图。图5A-C所示的示例描述了用于提供文本输入的基础统一模型的一个实施方式。如图1-2所示,文本错误校正可以依赖于在这里由空间模型110和语言模型111所表示的两种类型的知识,所述空间模型110对图形键盘528建模并且将所接收到的轻敲手势或滑动手势与图形键盘528的个体键相关联,所述语言模型111给出在给定所接收到的文本输入的情况下接下来的文本输入可能是什么的概率分布。最为一般地,给定在图形键盘528执行的轻敲手势的集合S1,S2,...,SN,通过确定字符串(即候选串)C1,C2,...,CN来实现错误校正,使得
也就是说,给定所接收到的轻敲手势的序列,如在计算设备102中实现的错误校正可以找出具有最佳概率值的候选串。例如,计算设备102可以对以上的等式(3)的条件概率应用贝叶斯定理而获得
换句话说,“最佳”候选串可以是在取得两个概率值的乘积时导致最大值的候选串。第一概率值可以表示在给定候选串的字符为预期输入的情况下接收到所执行的轻敲手势的序列的概率。第二概率值可以表示候选串的字符是预期输入的概率。依据本公开的技术,第一值可以参考空间模型110确定而第二值可以参考语言模型111来确定。
以其来确定相应概率值的轻敲输入的次数N可以基于所接收到的轻敲手势的指示。在一个示例中,手势模块108仅在接收到诸如空格键123D的选择之类的某些指示符之后才可以访问空间模型110和语言模型111。不同于例如在用户不确定预期词中的字符数量时(例如,对于词“access”尝试输入“acess”)限制用户接收即刻文本校正的能力,手势模块108可以在每个所接收到的轻敲手势的指示之后递增地更新候选串的集合。以这种方式,计算设备102可以为用户提供立刻查看可能的校正并且选择所期望的校正的机会。换句话说,由于用户可能期望在执行每个轻敲手势之后都查看建议,所以手势模块108可以使用像1那么小的值N。依据本公开的技术,手势模块108可以预测下一个词,并且因此N可以为零。
在一些示例中,手势模块108可以保留候选串的集合,并且在接收到新指示时更新一个或多个串,在每个所接收到的指示之后执行新的确定。如之前所描述的,该过程可以继续进行直至手势模块108执行硬提交。可能导致手势模块108执行硬提交的示例包括候选串超过阈值置信度值、用户选择了诸如空格字符或标点的词分隔符、或者在候选串的长度超过阈值字符数时。
如所描述的,语言模型111可以包括词典和词级别的N元字典。语言模型111可以通过允许提供字母的文字串作为建议(例如,在词建议区域122之一中)来允许用户输入非词(即不在词典中的词)。在一些示例中,一旦以阈值次数输入了非词,该非词就可以被添加至词典。例如,在与字符级别的N源字典相比时,该词典和词级别的N元字典可以提供更为有效的存储要求以及更好的性能。
使用语言模型111的词典和词级别的N元字典,手势模块108可以通过确定以下来将校正和词完成进行统一
在等式(5)中,(W1,...,WN-1)可以表示已经输入的N-1个词的序列,WN可以表示当前被输入的词,并且(S1,...,SM)可以是尝试输入WN时所执行的M个轻敲手势的序列。在这样的情况下,M的值可以处于1和WN的字符长度之间。计算设备102可以对等式(5)应用贝叶斯定理而得到
也就是说,计算设备102可以确定最佳候选词是导致等式(6)中的两个概率值的最大乘积的词。第一概率值可以表示给定预期词序列为(W1,...,WN)的情况下接收到所输入的轻敲手势的可能性。如所描述的,手势模块108可以基于空间模型110来确定等式(6)的第一概率值。第二概率值可以表示词序列(W1,...,WN)的可能性(即概率值)。如所描述的,手势模块108可以基于语言模型111中的词级别的N元字典来确定等式(6)中的第二概率值。在一些示例中,为了输入WN而执行的轻敲手势可以独立于在前的词。也就是说,手势模块108如何确定当前词可以不被在前词是什么所影响。换句话说,P(S1,...,SM|W1,...,WN)可以被简化为P(S1,...,SM|WN)。结果,对于由L字符C1,...,CL构成的当前词WN,概率P(S1,...,SM|WN)可以被计算设备102表示为P(S1,...,SM|C1,...,CL)。
在图5A-C的当前示例中,手势模块108可以以用户的轻敲手势独立于其未来的轻敲手势的假设进行建模。因此,概率P(S1,...,SM|C1,...,CL)可以被简化为P(S1,...,SM|C1,...,CM)。也就是说,假设用户预期输入相对应的字符,手势模块108可以使用空间模型110来确定接收所执行的轻敲手势的概率。该概率可以取决于用户的输入方法。例如,使用两个拇指在图形键盘528上键入的用户可能与仅利用一个拇指或者利用与握持计算设备102的手相反的手上的食指键入的用户不同地执行轻敲手势。此外,如所描述的,用于选择某些字符的轻敲手势可以取决于一个或多个之前执行的轻敲手势。手势模块108可以通过确定一个或多个所接收的轻敲手势的特性并且相应地修改空间模型111来考虑这样的依赖性。然而,在一些示例中,空间模型110可以基于每个所输入的手势互相独立的假设而被预先确定。也就是说,P(S1,...,SM|C1,...,CM)可以通过P(S1|C1)P(S2|C2)...P(SM|CM)来近似。换句话说,对于每个候选串,手势模块108可以通过确定以下来使用空间模型110确定成本值
依据本公开的技术,空间模型110可以存储与图形键盘528的键相关联的统计模型。每个统计模型可以结合以双变量高斯分布。在一些示例中,垂直和水平高斯概率可以是依存的。也就是说,协方差可能是非零的。在其它示例中,高斯概率可以是独立的,并且因此协方差可以为零。仅是为了便于理解,图3A、3B和3C中所描述的示例假设协方差0。因此,在给定预期键ci的情况下接收给定轻敲手势si的概率可以由手势模块108通过使用以下来确定:
在等式(8)中,(xi,yi)可以表示所执行的轻敲手势si的位置,并且(μxiyi)可以表示与用于字符ci的键相关联的统计位置。如之前所描述的,空间模型110的统计模型可以包括μxi、μyi、σxi和σyi的值。因此,手势模块108可以接收轻敲手势的指示,其包括所执行的轻敲手势的位置(xi,yi)。响应于接收到指示,手势模块108可以访问空间模型110以取得与图形键盘528的一个或多个键相关联的相关值μxi、μyi、σxi和σyi。对于每个键,手势模块108可以应用等式(8)以确定所执行的轻敲手势旨在选择该键的概率。该概率值可以表示将与该键相关联的字符添加至候选串的物理成本值。手势模块108可以基于等式(8)和(6)来确定复合成本值:
手势模块108可以在接收到每个指示之后对等式(9)执行分析以便确定所接收的轻敲输入的群组的物理成本值以及每个候选串的词典成本值(例如频率值)。
在一些示例中,手势模块108可以以对数所发进行操作。通过向等式(9)应用对数函数,该计算可以变为一系列的加法和减法,而使得:
为了便于理解,SWN(词WN的物理成本值)可以被定义为等式(10)的后半段,而LWN(词WN的词典成本值)能够被定义为等式(10)的前半段(即词典成本值)。因此,复合成本值或“总成本”值TWN可以被手势模块108确定为
TWN=LWN+SWN (11)
等式(11)可以为手势模块108提供用于确定输入文本的校正和完成的准确近似。在一些示例中,手势模块108可以通过对于未执行轻敲手势的每个附加键将附加成本(例如0.6σ)添加至每个候选串的物理成本值来将校正和完成模型与预测模型进行统一。在其它示例中,手势模块108可以将当前的空间分值乘以因数(L-M)/M,其中L是词WN中的字符数量且M是所输入的轻敲手势的数量。也就是说,未执行轻敲手势的每个附加键可以被给予等于在候选串中已包含的那些字符的平均物理成本值的物理成本值。换句话说,手势模块108可以预测用户将继续以相同的平均精确度水平来输入轻敲手势。在其它示例中,手势模块108可以向每个词预测中还未选择的字符指定其它成本值,诸如附加词典成本值或总成本值。通过添加预测字符的成本值,在成为词典成本值中的因素之前,较长的词可以依照比例而被排名较低。
手势模块108可以考虑插入和省略错误。插入错误可以表示其中选择了一个或多个附加字符但是其不属于词之中的那些错误(例如,针对“about”输入了“abourt”的轻敲手势)。省略错误可以表示其中一个或多个字符意外未被选择的错误(例如,针对“about”输入了“abot”的轻敲手势)。不同于使用从词w到字符序列spelling(w)的确定性映射,手势模块108可以采用包括插入/删除的概率映射。在一个示例中,一旦已经对当前词输入了多个所接收到的轻敲手势(例如2-4个),则如果最佳候选词的总成本值TC1减去第二最佳候选词的总成本值TC2小于指定阈值,则手势模块108可以运行替选的插入/省略替选假设。例如,手势模块108可以插入一个或多个通配符字符。通配符字符也可以考虑被省略或插入的空格字符。如果假设具有比TC1和TC2高许多的总分值,则该假设可以被呈现给用户(例如在词建议区域122之一中)。可以以类似方式对拼写错误加以考虑。也就是说,在一些示例中,手势模块108可以通过采用概率模型替代确定性模型来考虑拼写错误、插入错误和省略错误。
图5A-C的过程可以表示手势模块108执行的操作的示例。在图5A-C的示例中,计算设备102接收一系列轻敲手势。在其它示例中,本公开的技术可以被应用于滑动或“扫动”手势。例如,计算设备102可以响应于接收手势路径而确定键组。手势模块108可以通过确定手势路径所经过的对准点群组而确定候选词。对准点是沿手势路径的可以指示多个键中的一个键的点。对准点可以包括对应于该对准点的所确定位置的一个或多个坐标。例如,对准点可以包括对应于输入设备202上的点的笛卡尔坐标。也就是说,本公开的技术在这里关于轻敲手势进行描述,但是可以通过使用手势路径的对准点代替轻敲手势的位置来轻易地被应用于滑动手势。
如图5A中的示例所示,在时间560,计算设备102可以包括GUI 512、活动射束220A和下一射束222A。GUI 512可以包括图形键盘528,其可以包括“N”键520A、“B”键520D以及所接收到的轻敲手势526A。虽然在图5A中被示出,但是轻敲手势526A在这里所描述的技术的执行期间可能是不可见的。
用户(例如用户150)可能想要通过在图形键盘528执行一系列轻敲手势来向计算设备102中输入文本。如之前所讨论的,当用户150执行轻敲手势时,计算设备102可以在UI设备104检测到每个手势。在图3A的示例中,计算设备102被示为具有所检测到的轻敲手势526A。
响应于检测到轻敲手势526A,计算设备102可以确定与所接收到的指示相关联的一个或多个特性。基于该特性,在一些示例中,计算设备102可以修改空间模型110的值。为了便于理解,在图5A-C的示例中,计算设备102可以确定不需要修改。响应于检测到轻敲手势526A,计算设备102可以创建令牌并且将该令牌推入到活动射束220A中。在时间560,活动射束220A上的内容可以由以下的表1表示。
表1
索引 父索引 当前节点的字母键 字母链 成本值
0 - - - 0
在表1中,每一行表示个体令牌,索引列表示每个令牌的唯一标识符,父索引列表示所列出的令牌作为其孩子的令牌的索引值,当前节点列的字母键示该令牌的当前节点所表示的字母键,字母链列表示从入口节点到该令牌的当前节点的节点所表示的所有字母键(即候选串),并且成本值列可以表示该令牌的总成本值TWN。如表1所示,所创建的令牌具有索引0(即token0),没有父索引,没有当前节点的字母键,没有字母链,并且总成本值为零。
为了确定手势所指示的文本,计算设备102可以在其孩子节点上创建每个令牌的副本。在一些示例中,入口节点可以具有26个孩子节点(对于英语字母表的每个字母一个节点)。为了简单,在图5A的示例中,入口节点可以仅在字母“B”和“N”上具有两个孩子节点。因此,计算设备102可以在孩子节点“N”(即,token1)和孩子节点“B”(即,token2)上创建具有索引0的令牌的副本。对于每个所创建的令牌副本,计算设备102可以例如通过应用如以上所描述的等式(10)来确定总成本值。在其它示例中,计算设备102可以使用其它计算总成本值的方法。计算设备102可以将每个令牌副本推至下一射束222A,其内容可以由以下的表2表示。
表2
索引 父索引 当前节点的字母键 字母链 成本值
1 0 N N CV1
2 0 B B CV2
表2中所示的条目在格式上与表1中所示的条目相同。在表2中,token1具有总成本值CV1并且token2具有总成本值CV2。计算设备102可以使用现在处于下一射束222A中的个体令牌的字母链(即候选串)来预测一个或多个候选词。计算设备102可以将候选词存储在输出预测的列表中。如所描述的,每个候选词可以将基础候选串中的每个字符的平均总成本值相加至每个附加字符的候选词的总成本值。例如,以下的表3可以表示从活动射束220A中的令牌确定的输出预测的列表。
表3
索引 父索引 字母链 成本值
p0 0 NO CV1+CV1
p1 0 NET CV1+CV1+CV1
p2 1 BE CV2+CV2
p3 1 BOY CV2+CV2+CV2
在表3中,每一行表示输出预测。索引列表示每一项的唯一标识符并且可以独立于令牌的索引值。父索引列表示列出的候选词所基于的令牌的索引值,字母链列表示候选词,并且总成本值列可以表示该候选词的总成本值。如表3所示,所创建的候选词“NO”具有索引p0(即wordp0),其基于token0来预测,并且具有两倍CV1的总成本值。
计算设备102可以输出该输出预测的列表。在一些示例中,计算设备102可以确定包括具有最低成本值的候选词的输出预测的列表(即具有最佳概率的预测)。此外,在一些示例中,计算设备102可以在每个后续所接收的手势之后丢弃输出预测的列表并且基于经更新的令牌来创建新的输出预测列表。在其它示例中,计算设备102可以向输出预测的列表进行添加。例如,计算设备102可以响应于检测到后续轻敲手势而修改之前确定的候选词的成本值(例如可能使得wordp0更大或更小)。
在创建令牌副本以及输出预测的列表之后,计算设备102可以确定token0不是终端节点并且丢弃token0。计算设备102随后可以确定活动射束220A是否为空(即不包含令牌),计算设备102可以将下一射束222A的内容复制到图5B的活动射束220B并且丢弃下一射束222A的内容。
在图5B的示例中,计算设备102被示为已在时间562检测到轻敲手势526B。如以上所描述的,活动射束220B的内容可以由表2表示。计算设备102可以确定与所接收到的指示相关联的一个或多个特性,并且至少部分地基于所确定的特性来修改空间模型110。例如,基于轻敲手势526B的指示所确定的特性可以使得计算设备102对与“O”键520B同一行的其它键相关联的水平和垂直标准偏差值进行修改。例如,如关于图4A和4B所描述的,计算设备102可以增大与“Q”键520F相关联的水平标准偏差值以更准确地表示用户可能的水平误差。除了修改空间模型110之外,计算设备102可以对于活动射束220B中的每个令牌在每个孩子节点上创建副本。在图5B的示例中,token1和token2每个具有有字母键“O”和“P”的孩子节点。对于每个所创建的令牌副本,计算设备102可以如以上所描述地确定总成本值。也就是说,该总成本值可以使用空间模型110和语言模型111来确定。计算设备102可以将每个令牌副本推入下一射束222B,其内容可以由以下的表4所表示。
表4
索引 父索引 当前节点的字母键 字母链 成本值
3 1 O NO CV1+CV3
4 1 P NP CV1+CV4
5 2 O BO CV2+CV5
6 2 P BP CV2+CV6
表4所示的条目在格式上与表1和表2所示的条目相同。在表4中,每个令牌的总成本值包括之前字母的总成本值和当前字母的总成本值。计算设备102可以确定哪些令牌(如果有的话)处于终端节点上。例如,计算设备102可以确定token3处于终端节点上,因为其字母链“NO”是一个词。响应于确定令牌处于终端节点上,计算设备102可以将该令牌复制到输出预测的列表。在一些示例中,计算设备102可以仅将该令牌的字母链复制到候选词的列表。
计算设备102随后可以确定活动射束220B是否为空。响应于确定活动射束220B为空,计算设备102可以将下一射束222B的内容复制到图5C的活动射束220C并且丢弃下一射束222B的内容。
在图5C的示例中,计算设备102被示为已经在时间564检测到轻敲手势526C。如以上所描述的,活动射束220C的内容可以由表4表示。计算设备102可以确定所接收到的手势的特性,并且在一些示例中,可以依据本公开的一个或多个方面修改空间模型110。为了便于理解,计算设备102可以确定不需要修改。计算设备102可以对活动射束220C中的每个令牌在每个孩子节点上创建副本。在图5C的示例中,token3至token6均具有字母键“O”和“P”的孩子节点。如以上所描述的,对于每个所创建的令牌副本,计算设备102可以使用(如所修改的)空间模型110和语言模型111来确定总成本值。计算设备102可以将每个令牌副本推入下一射束222C,其内容可以由以下的表5所表示。
表5
索引 父索引 当前节点的字母键 字母链 成本值
7 3 W NOW CV1+CV3+CV7
8 3 Q NOQ CV1+CV3+CV8
9 4 W NPW CV1+CV4+CV9
10 4 Q NPQ CV1+CV4+CV10
11 5 W BOW CV2+CV5+CV11
12 5 Q BOQ CV2+CV5+CV12
13 6 W BPW CV2+CV6+CV13
14 6 Q BPQ CV2+CV6+CV14
表5中所示的条目在格式上与表1、2和4中所示的条目相同。在表5中,每个令牌的总成本值包括之前字母的总成本值和当前字母的总成本值。计算设备102可以基于表5中所示的令牌来确定输出预测的列表。在确定一个或多个候选串之后,计算设备102可以确定哪些令牌(如果有的话)处于终端节点。例如,计算设备102可以确定token7和token11处于终端节点上,因为其相应词链“NOW”和“BOW”是词。响应于确定令牌处于终端节点上,计算设备102可以将token7和token11作为候选串复制到输出预测的列表。该输出预测的列表可以由以下的表6所表示。
表6
索引 父索引 字母链 成本值
p0 7 NOWHERE CV1+CV3+CV7+4*(CV1+CV3+CV7)/3
p1 11 BOWS CV2+CV5+CV11+(CV2+CV5+CV11)/3
p2 11 BOWED CV2+CV5+CV11+2*(CV2+CV5+CV11)/3
... ... ... ...
p16 7 NOW CV1+CV3+CV7
p17 11 BOW CV2+CV5+CV7
计算设备102随后可以确定活动射束220C是否为空。响应于确定活动射束220C为空,计算设备102可以将下一射束222C的内容复制到活动射束,并且该过程可以如所描述地继续。例如,当接收到选择空格键的指示时,计算设备102可以执行硬提交。也就是说,计算设备102可以使用具有最佳成本值的候选词作为输入,并且可以丢弃或不丢弃活动射束220和下一射束222中的所有令牌。以这种方式,计算设备102可以依据本公开的一个或多个方面使用活动射束220和下一射束222来保存令牌以及相关联的总成本值,以便校正、完成和预测文本输入。
图6是图示依据本公开的一个或多个方面的可以被用来提供文本输入的示例操作的流程图。仅出于说明的目的,如图1和2中所示,该示例操作在下文中在计算设备102的上下文内进行描述。
在图6的示例中,计算设备102最初可以输出图形键盘以在存在敏感显示器进行显示,该图形键盘具有多个键(502)。计算设备102随后可以接收用于选择该多个键中的键组的至少一个手势的指示(504)。计算设备可以确定与该用于选择该多个键中的键组的至少一个手势相关联的至少一个特性(506)。至少部分地基于该至少一个特性,计算设备102可以修改空间模型(508)。计算设备102然后可以至少部分地基于该空间模型和语言模型所提供的数据来确定候选词(510)。在一些示例中,该空间模型至少部分地基于该至少一个手势的指示提供数据的第一部分,并且该语言模型至少部分地基于词典来提供数据的第二部分。计算设备102可以输出该候选词以在存在敏感显示器显示(512)。
在一些示例中,该至少一个特性包括与至少一个手势相关联的输入速度,并且修改该空间模型包括响应于确定该输入速度满足阈值,由该计算设备修改该空间模型的标准偏差值,其中该标准偏差值与该多个键中的一个键相关联。在一些示例中,该操作进一步包括响应于确定该输入速度大于该阈值而增大该标准偏差值。在一些示例中,该至少一个特性包括该存在敏感显示器中检测到该至少一个手势的位置,并且修改空间模型包括由计算设备确定至少一个手势的位置与该空间模型的统计位置之间的距离,其中该统计位置与该多个键中的一个键相关联,并且响应于确定该距离满足阈值而至少部分地基于所确定的位置而修改该统计位置。
在一些示例中,该统计位置是第一统计位置,并且修改该第一统计位置包括由该计算设备通过将该至少一个手势的位置的垂直分量除以一个正整数值来确定垂直修改值,由该计算设备通过将该至少一个手势的位置的水平分量除以该正整数值来确定水平修改值,并且由该计算设备通过将该垂直修改值加至该第一统计位置的垂直分量并且将该水平修改值加至该第一统计位置的水平分量来确定第二统计位置。在一些示例中,该至少一个特性包括该存在敏感显示器中检测到该至少一个手势的位置,并且修改该空间模型包括由该计算设备确定该至少一个手势的位置与该多个键中的一个键的第二位置之间的距离,并且响应于确定该距离满足阈值而由该计算设备至少部分地基于所确定的距离来修改该空间模型的标准偏差值,其中该标准偏差值与该键相关联。在一些示例中,该指示是第一指示,并且该操作进一步包括由该计算设备在该修改之后接收用于选择该多个键中的一个键的第二手势的第二指示,并且由该计算设备响应于接收到该第二指示而修改与该下一个键相关联的标准偏差值。
在一些示例中,该至少一个特性包括该存在敏感显示器中检测到该至少一个手势的位置,该位置对应于该图形键盘中的一行键,并且修改该空间模型包括由该计算设备确定该多个键中的一个键是否位于该图形键盘的该行键中,并且响应于确定该键位于该行键中而由该计算设备修改该空间模型的标准偏差值,其中该标准偏差值与该键相关联。在一些示例中,修改该标准偏差值进一步包括由该计算设备增大与该键相关联的水平标准偏差值。在一些示例中,该候选词是第一候选词,并且该方法进一步包括由该计算设备至少部分地基于在该存在敏感显示器的文本区域中所显示的一个或多个词来确定第二候选词,并且在该文本区域中所显示的一个或多个词之后输出该第二候选词处以在存在敏感显示器显示。
在一些示例中,确定该第二候选词包括由该计算设备至少部分地基于该语言模型确定至少一个频率值,其中该至少一个频率值与词序列相关联,并且其中该频率值表示该词序列在该语言模型的n元字典中出现的频率,并且由该计算设备至少部分地基于该至少一个频率值选择该第二候选词。在一些示例中,确定该候选词进一步包括由该计算设备至少部分地基于该空间模型确定至少一个候选串和至少一个成本值,并且由该计算设备至少部分地基于该语言模型确定候选词,其中该候选词包括至少一个作为前缀的候选串,并且其中该候选词与预测成本值相关联,该预测成本值至少部分地基于该至少一个候选串的至少一个成本值。在一些示例中,
在一些示例中,该至少一个手势包括多个轻敲手势,并且确定多个候选串和相关联的成本值包括确定均与该多个轻敲手势中的一个轻敲手势相关联的多个轻敲位置,对于该多个键中的至少两个键中的每一个确定相应成本值,其中每个相应成本值表示该多个轻敲位置中的一个轻敲位置指示该多个键中的一个键的概率,并且将该多个键中的至少两个键中的每一个的相应成本值进行比较以确定具有组合成本值的候选串。在一些示例中,确定候选词包括由该计算设备至少部分地基于该语言模型确定至少一个频率值,其中该至少一个频率值与字符序列相关联,并且其中该至少一个频率值表示该字符序列在词典中出现的频率,并且由该计算设备至少部分地基于所确定的至少一个频率值来选择候选词。在一些示例中,该语言模型进一步包括词级别的n元字典。
在一些示例中,修改该空间模型包括对以下中的至少一个进行修改:该空间模型的标准偏差值,该空间模型的统计位置值,和该空间模型的协方差值。在一些示例中,该至少一个手势包括至少一个滑动手势。在一些示例中,输出该候选词包括由该计算设备输出与第一视觉风格的键组相关联的候选词的字符以在该存在敏感显示器显示,并且由该计算设备输出不与第二视觉风格的键组相关联的候选词的字符以在该存在敏感显示器显示。
在一些示例中,本公开的技术可以包括由计算设备输出文本区域的表示以在显示设备显示,并且由该计算设备从用户接收用于选择多个字符的输入序列。该技术还可以包括响应于接收到该输入序列而由该计算设备至少部分地基于空间模型和语言模型所提供的数据确定候选词以在该文本区域的第一位置输出,其中该空间模型提供该计算设备用来至少部分地基于与该输入序列相关联的关于该计算设备的空间位置而确定候选词的第一数据部分,其中该语言模型提供该计算设备用来至少部分地基于在该第一位置之前的文本区域中显示的一个或多个词来确定候选词的第二数据部分,并且其中该候选词与多个字符不相同。该技术还可以包括由该计算设备在该文本区域中的第一位置输出该候选词的表示作为第一词以在显示设备显示,并且在输出该第一词的表示之后,由该计算设备至少部分地基于该语言模型所提供的附加数据预测在该文本区域中的第二位置跟在该第一词之后的第二词,其中该附加数据至少部分地基于该文本区域中所显示的一个或多个词,包括在该文本区域中的第二位置之前的第一词。该技术可以进一步包括由该计算设备在该文本区域中的第二位置输出第二词的表示以在该显示设备显示。
图6的示例操作可以进一步通过以下一个或多个示例进行描述。
示例1.一种方法,包括:由计算设备输出包括多个键的图形键盘以在存在敏感显示器显示;由所述计算设备接收用于选择所述多个键中的一组键的至少一个手势的指示;由所述计算设备确定与所述用于选择所述多个键中的所述一组键的所述至少一个手势相关联的至少一个特性;由所述计算设备至少部分地基于所述至少一个特性来修改空间模型;由所述计算设备至少部分地基于由所述空间模型和语言模型提供的数据来确定候选词,其中所述空间模型至少部分地基于所述至少一个手势的指示来提供所述数据的第一部分并且其中所述语言模型至少部分地基于词典来提供所述数据的第二部分;以及由所述计算设备输出所述候选词以在所述存在敏感显示器显示。
示例2.根据示例1所述的方法,其中所述至少一个特性包括与所述至少一个手势相关联的输入速度,并且其中修改所述空间模型包括:响应于确定所述输入速度满足阈值,由所述计算设备修改所述空间模型的标准偏差值,其中所述标准偏差值与所述多个键中的一个键相关联。
示例3.根据示例2所述的方法,进一步包括响应于确定所述输入速度大于所述阈值而增大所述标准偏差值。
示例4.根据示例1-3中的任一项所述的方法,其中所述至少一个特性包括所述存在敏感显示器中检测到所述至少一个手势的位置,并且其中修改所述空间模型包括:由所述计算设备确定所述至少一个手势的位置与所述空间模型的统计位置之间的距离,其中所述统计位置与所述多个键中的一个键相关联;以及响应于确定所述距离满足所述阈值而至少部分地基于所确定的位置来修改所述统计位置。
示例5.根据示例4所述的方法,其中所述统计位置是第一统计位置,其中修改所述第一统计位置包括:由所述计算设备通过将所述至少一个手势的位置的垂直分量除以一个正整数值来确定垂直修改值;由所述计算设备通过将所述至少一个手势的位置的水平分量除以所述正整数值来确定水平修改值;以及由所述计算设备通过将所述垂直修改值加至所述第一统计位置的垂直分量并且将所述水平修改值加至所述第一统计位置的水平分量来确定第二统计位置。
示例6.根据示例1-5中的任一项所述的方法,其中所述至少一个特性包括所述存在敏感显示器中检测到所述至少一个手势的位置,并且其中修改所述空间模型包括:由所述计算设备确定所述至少一个手势的位置与所述多个键中的一个键的第二位置之间的距离;以及响应于确定所述距离满足阈值而由所述计算设备至少部分地基于所确定的距离来修改所述空间模型的标准偏差值,其中所述标准偏差值与所述键相关联。
示例7.根据示例1-6中的任一项所述的方法,其中所述至少一个特性包括所述存在敏感显示器中检测到所述至少一个手势的位置,所述位置对应于所述图形键盘的一行键,并且其中修改所述空间模型包括:由所述计算设备确定所述多个键中的一个键是否位于所述图形键盘的所述一行键中;以及响应于确定所述键位于所述一行键中而由所述计算设备修改所述空间模型的标准偏差值,其中所述标准偏差值与所述键相关联。
示例8.根据示例7所述的方法,其中修改所述标准偏差值进一步包括由所述计算设备增大与所述键相关联的水平标准偏差值。
示例9.根据示例1-8中的任一项所述的方法,其中所述候选词是第一候选词,所述方法进一步包括:由所述计算设备至少部分地基于在所述存在敏感显示器的文本区域中显示的一个或多个词来确定第二候选词;以及在所述文本区域中显示的所述一个或多个词之后输出所述第二候选词以在所述存在敏感显示器显示。
示例10.根据示例9所述的方法,其中确定所述第二候选词包括:由所述计算设备至少部分地基于所述语言模型来确定至少一个频率值,其中所述至少一个频率值与词序列相关联,并且其中所述频率值表示所述词序列在所述语言模型的n元字典中出现的频率;以及由所述计算设备至少部分地基于所述至少一个频率值来选择所述第二候选词。
示例11.根据示例1-10中的任一项所述的方法,其中确定所述候选词包括:由所述计算设备至少部分地基于所述空间模型来确定至少一个候选串和至少一个成本值;以及由所述计算设备至少部分地基于所述语言模型来确定所述候选词,其中所述候选词包括所述至少一个候选串作为前缀,以及其中所述候选词与预测成本值相关联,所述预测成本值至少部分地基于所述至少一个候选串的至少一个成本值。
示例12.根据示例11所述的方法,其中所述至少一个手势包括多个轻敲手势,并且其中确定多个候选串和相关联的成本值包括:确定每个均与所述多个轻敲手势中的一个轻敲手势相关联的多个轻敲位置;对于所述多个键中的至少两个键中的每一个确定相应成本值,其中每个所述相应成本值表示所述多个轻敲位置中的一个轻敲位置指示所述多个键中的一个键的概率;以及将所述多个键中的至少两个键中的每一个的相应成本值进行比较以确定具有组合成本值的候选串。
示例13.根据示例1-12中的任一项所述的方法,其中确定所述候选词包括:由所述计算设备至少部分地基于所述语言模型来确定至少一个频率值,其中所述至少一个频率值与字符序列相关联,并且其中所述至少一个频率值表示所述字符序列在词典中出现的频率;以及由所述计算设备至少部分地基于所确定的至少一个频率值来选择所述候选词。
示例14.根据示例1-13中的任一项所述的方法,其中修改所述空间模型包括对以下中的至少一个进行修改:所述空间模型的标准偏差值,所述空间模型的统计位置值,和所述空间模型的协方差值。
示例15.一种编码有指令的计算机可读存储介质,所述指令在被执行时使得计算设备的一个或多个处理器执行示例1-14中的任一项所记载的方法。
示例16.一种包括用于执行示例1-14中的任一项所述的方法的器件的计算设备。
图7是图示依据本公开的一个或多个技术的输出图形内容以在远程设备显示的示例计算设备的框图。图形内容一般可以包括可以被输出以进行显示的任意视觉信息,诸如文本、图像、运动图像组等。图7所示的示例包括计算设备700、存在敏感显示器701、通信单元710、投影仪720、投影仪屏幕722、平板设备726和视觉显示设备730。虽然在图1和2中出于示例的目的而被示为独立计算设备102,但是计算设备一般可以是任意组件或系统,其包括处理器以及用于执行软件指令的其它适当计算环境,并且例如无需包括存在敏感显示器。
如图7的示例中所示,计算设备700可以是包括如关于图2中的处理器200所描述的功能的处理器。在这样的示例中,计算设备700可以通过通信信道703A操作地耦合至存在敏感显示器701,上述通信信道703A可以是系统总线或其它适当连接。计算设备700还可以通过通信信道703B操作地耦合至以下进一步描述的通信单元710,上述通信信道703B也可以是系统总线或其它适当连接。虽然在图7中被单独作为示例示出,但是计算设备700可以通过任意数量的一个或多个通信信道操作地耦合至存在敏感显示器701和通信单元710。
在诸如之前在图1-2中所图示的其它示例中,计算设备700可以是便携式或移动设备,诸如移动电话(包括智能电话)、膝上计算机等。在一些示例中,计算设备700可以是台式计算机、平板计算机、智能电视平台、相机、个人数字助理(PDA)、服务器、大型机等。
如图7所示,计算设备100还可以包括通信单元110和/或与之操作耦合。通信单元110可以包括如图2所描述的通信单元44的功能。通信单元710的示例可以包括网络接口卡、以太网卡、光学收发器、射频收发器或者能够发送和接收信息的任意其它类型的设备。这样的通信单元的其它示例可以包括蓝牙、3G和WiFi无线电、通用串行总线(USB)接口等。计算设备100还可以包括一个或多个为了简明和说明的目的而未在图7中示出的其它设备和/或与它们操作地耦合,上述其它设备例如输入设备、输出设备、存储器、存储设备等。
图7还图示了投影仪720和投影仪屏幕722。其它这样的投影设备的示例可以包括电子白板、全息显示设备以及用于显示图形内容的任意其它适当设备。投影仪720和投影仪屏幕722可以包括使得相应设备能够与计算设备700通信的一个或多个通信单元。在一些示例中,该一个或多个通信单元可以使得能够在投影仪720和投影仪屏幕722之间进行通信。投影仪720可以从计算设备700接收包括图形内容的数据。投影仪720可以响应于接收到该数据而将该图形内容投影到投影仪屏幕722上。在一些示例中,投影仪720可以使用光学识别或其它适当技术确定投影仪屏幕处的一个或多个用户输入(例如连续手势、多触摸手势、单触摸手势等),并且使用一个或多个通信单元向计算设备700发送这样的用户输入的指示。
在一些示例中,投影仪屏幕722可以包括存在敏感显示器724。存在敏感显示器724可以包括如本公开中所描述的UI设备104的功能子集或其全部功能。在一些示例中,存在敏感显示器724可以包括另外的功能。投影仪屏幕722(例如电子白板)可以从计算设备700接收数据并且显示图形内容。在一些示例中,存在敏感显示器724可以使用电容、电感和/或光学识别技术确定投影仪屏幕722处的一个或多个用户输入(例如连续手势、多触摸手势、单触摸手势等),并且使用一个或多个通信单元向计算设备700发送这样的用户输入的指示。
图7还图示了平板设备726和视觉显示设备730。平板设备726和视觉显示设备730每个均可以包括计算和连接能力。平板设备726的示例包括电子阅读器设备、可翻转笔记本设备、混合平板设备等。视觉显示设备730的示例可以包括电视、计算机监视器等。如图5所示,平板设备726可以包括存在敏感显示器728。视觉显示设备730可以包括存在敏感显示器732。存在敏感显示器728、732可以包括如本公开中所描述的UI设备204的功能子集或其全部功能。在一些示例中,存在敏感显示器728、732可以包括附加功能。在任意情况下,存在敏感显示器732例如可以从计算设备700接收数据并且显示图形内容。在一些示例中,存在敏感显示器732可以使用电容、电感和/或光学识别技术确定投影仪屏幕处的一个或多个用户输入(例如连续手势、多触摸手势、单触摸手势等),并且使用一个或多个通信单元向计算设备700发送这样的用户输入的指示。
如以上所描述的,在一些示例中,计算设备700可以输出图形内容以在存在敏感显示器701显示,存在敏感显示器701通过系统总线或其它适当通信信道耦合至计算设备700。计算设备700还可以输出图形内容以在一个或多个远程设备进行显示,诸如投影仪720、投影仪屏幕722、平板设备726和视觉显示设备730。例如,计算设备700可以执行一个或多个指令以依据本公开的技术而生成和/或修改图形内容。计算设备700可以向计算设备700的通信单元—诸如通信单元710—输出包括图形内容的数据。通信单元710可以将该数据发送至一个或多个远程设备,诸如投影仪720、投影仪屏幕722、平板设备726和/或视觉显示设备730。以这种方式,计算设备700可以输出图形内容以在一个或多个远程设备显示。在一些示例中,一个或多个远程设备可以在包括在相应远程设备中和/或与之操作地耦合的存在敏感显示器输出图形内容。
在一些示例中,计算设备700可以不在操作地耦合至计算设备700的存在敏感显示器701输出图形内容。在其它示例中,计算设备700可以输出图形内容以在通过通信信道703A耦合至计算设备700的存在敏感显示器701以及一个或多个远程设备处显示。在这样的示例中,该图形内容在每个相应设备处可以基本上同时显示。例如,可能由于向远程设备发送包括图形内容的数据的通信延时而引入一定延迟。在一些示例中,计算设备700所生成并且输出以在存在敏感显示器701显示的图形内容可以与被输出以在一个或多个远程设备显示的图形内容显示不同。
计算设备700可以使用任意适当通信技术发送和接收数据。例如,计算设备700可以使用网络链路712A操作地耦合至外部网络714。图7所示的每个远程设备可以通过相应网络链路712B、712C和712D之一操作地耦合至外部网络714。外部网络714可以包括网络集线器、网络交换机、网络路由器等,它们操作地互相耦合因此在计算设备700和图7所示的远程设备之间提供信息交换。在一些示例中,网络链路712A-712D可以是以太网、ATM或其它网络连接。这样的连接可以是无线和/或有线连接。
在一些示例中,计算设备700可以使用直接设备通信718操作地耦合至图7中所包括的一个或多个远程设备。直接设备通信718可以包括计算设备700使用有线或无线通信通过其直接与远程设备发送并接收数据的通信。也就是说,在直接设备通信718的一些示例中,计算设备700所发送的数据在远程设备处被接收之前可以不被一个或多个另外的设备转发,反之亦然。直接设备通信718的示例可以包括蓝牙、近场通信、通用串行总线、WiFi、红外等。图7所示的一个或多个远程设备可以通过通信链路716A-716D与计算设备100操作地耦合。在一些示例中,通信链路712A-712D可以是使用蓝牙、近场通信、通用串行总线、红外等的连接。这样的连接可以是无线和/或有线连接。
依据本公开的技术,计算设备700可以使用外部网络714操作地耦合至视觉显示设备730。计算设备700可以输出图形键盘以在存在敏感显示器732显示。例如,计算设备700可以将包括图形键盘的表示的数据发送至通信单元710。通信单元710可以使用外部网络714将包括图形键盘的表示的数据发送至视觉显示设备730。响应于使用外部网络714接收到该数据,视觉显示设备730可以使得存在敏感显示器732输出该图形键盘。响应于用户在存在敏感显示器732执行一个或多个用于选择该键盘中的键组的手势,视觉显示设备730可以使用外部网络714将该手势的指示发送至计算设备700。通信单元710可以接收到该手势的指示并且将该指示发送至计算设备700。
计算设备700可以确定与该手势相关联的多个特性(例如,速度、位置等)。在一些示例中,计算设备700可以至少部分地基于所确定的特性来修改在确定哪些键被一个或多个手势所选择时使用的空间模型的一个或多个值。例如,如果输入速度高于阈值,则计算设备700可以增大与图形键盘中的至少一个键相关联的标准偏差值。如果该输入速度低于某个阈值,则计算设备700可以减小该标准偏差值。在任意情况下,计算设备700可以依据本公开使用经修改的空间模型来确定至少一个候选词。计算设备700可以将包括候选词的数据发送至通信单元710,其进而使用外部网络714将该数据发送至视觉显示设备730。在接收到该数据时,视觉显示设备730可以使得存在敏感显示器732显示候选词。依据本公开的技术,以这种方式,计算设备700可以输出候选词以在存在敏感屏幕732显示。
本公开中所描述的技术可以至少部分地以硬件、软件、固件或者它们的任意组合来实施。例如,所公开的技术的各个方面可以在一个或多个处理器内实施,其包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA),或者其它等同的集成或离散逻辑电路,以及这样的组件的任意组合。术语“处理器”或“处理电路”一般可以指代单独或者结合其它逻辑电路的任意的上述逻辑电路,或者任意其它等同电路。包括硬件的控制单元也可以执行本公开的一种或多种技术。
这样的硬件、软件和固件可以在相同设备内或分立设备内实施以支持本公开中所描述的各种技术。此外,任何所描述的单元、模块或组件都可以共同或单独被实施为离散但是能够交互操作的逻辑设备内。将不同特征描述为模块或单元意在强调不同的功能方面而并非必然暗示这样的模块或单元必须由分立硬件、固件或软件组件来实现。相反,与一个或多个模块或单元相关联的功能可以由分立硬件、固件或软件组件来执行,或者被集成在共用或分立硬件、固件或软件组件内。
本公开中所描述的技术还可以在包括编码有指令的计算机可读存储介质的制品中体现或编码。嵌入或编码在包括被编码的计算机可读存储介质的制品中的指令可以使得一个或多个可编程处理器或其它处理器实施这里所描述的一种或多种技术,诸如在包括或编码在该计算机可读存储介质中的指令被一个或多个处理器执行时。计算机可读存储介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、硬盘、紧致盘ROM(CD-ROM)、软盘、卡盒、磁性介质、光学介质或者其它计算机可读介质。在一些示例中,制品可以包括一个或多个计算机可读存储介质。
在一些示例中,计算机可读存储介质可以包括非瞬态介质。术语“非瞬态”可以指示该存储介质不以载波或传播信号所体现。在某些示例中,非瞬态存储介质可以存储能够随时间而变化的数据(例如,在RAM或高速缓存中)。
已描述了各个示例。这些和其它示例在所附权利要求的范围内。

Claims (12)

1.一种提供文本输入的方法,包括:
由计算设备输出包括多个键的图形键盘以供显示;
由所述计算设备接收多个输入指示,所述多个输入指示中的每个相应的输入指示对应于所述图形键盘的相应位置;以及
针对所述多个输入指示中的每个相应的输入指示,递增地:
由所述计算设备至少部分地基于空间模型中的物理成本值和语言模型中的词典成本值两者,确定基于与所述多个输入指示相对应的一组字符的至少一个所预测的当前词,其中所述空间模型包括与所述图形键盘的至少一个相应的键相对应的至少一个相应的触摸点分布,并且其中,所述至少一个所预测的当前词是基于被所述语言模型中的词典成本值修改的所述空间模型中的物理成本值确定的,所述物理成本值表示所述多个输入指示与所述一组字符相对应的第一概率,并且所述词典成本值表示所述一组字符被包括在所述语言模型的词典中的任何词中的第二概率;
由所述计算设备至少部分地基于所述至少一个所预测的当前词来确定跟在所述至少一个所预测的当前词之后的至少一个所预测的下一个词;以及
由所述计算设备输出所述至少一个所预测的当前词和所述至少一个所预测的下一个词以供显示。
2.根据权利要求1所述的方法,进一步包括:
针对所述多个输入指示中的每个相应的输入指示,响应于至少输出所述至少一个所预测的当前词或所述至少一个所预测的下一个词,由所述计算设备至少部分地基于与该相应的输入指示的位置相对的所述键的位置来递增地修改所述空间模型。
3.根据权利要求1所述的方法,其中确定所述至少一个所预测的当前词包括:至少部分地基于所述空间模型和所述语言模型两者,针对每个相应的输入指示执行错误校正和词完成以确定所述至少一个所预测的当前词。
4.根据权利要求1所述的方法,其中所述词典包括词列表和相关联的内容信息,并且其中,所述一组字符是完整词的一部分。
5.根据权利要求1所述的方法,其中所述一组字符是一个完整词的一部分。
6.根据权利要求1所述的方法,其中所述语言模型包括词典,所述词典包括上下文信息。
7.根据权利要求1所述的方法,其中所述语言模型包括词级n元。
8.一种计算设备,包括:
至少一个处理器;以及
被配置成存储指令的存储器,所述指令在执行时使得所述至少一个处理器:
输出包括多个键的图形键盘以供显示;
接收多个输入指示,所述多个输入指示中的每个相应的输入指示对应于所述图形键盘的相应位置;以及
针对所述多个输入指示中的每个相应的输入指示,递增地:
至少部分地基于空间模型中的物理成本值和语言模型中的词典成本值两者,确定基于与所述多个输入指示相对应的一组字符的至少一个所预测的当前词,其中所述空间模型包括与所述图形键盘的至少一个相应的键相对应的至少一个相应的触摸点分布,并且其中,所述至少一个所预测的当前词是基于被所述语言模型中的词典成本值修改的所述空间模型中的物理成本值确定的,所述物理成本值表示所述多个输入指示与所述一组字符相对应的第一概率,并且所述词典成本值表示所述一组字符被包括在所述语言模型的词典中的任何词中的第二概率;
至少部分地基于作为在前词的所述至少一个所预测的当前词来确定跟在所述至少一个所预测的当前词之后的至少一个所预测的下一个词;以及
输出所述至少一个所预测的当前词和所述至少一个所预测的下一个词以供显示。
9.根据权利要求8所述的计算设备,其中所述指令在被执行时使得所述至少一个处理器确定多个组的一个或多个所预测的当前词,所述多个组的一个或多个所预测的当前词中的每个相应组的一个或多个所预测的当前词是基于与所述多个输入指示相对应的相应一组字符。
10.根据权利要求8-9中任一项所述的计算设备,其中所述指令在被执行时,进一步使得所述至少一个处理器针对每个相应的输入指示执行错误校正和词完成以确定所述至少一个所预测的当前词。
11.根据权利要求8所述的计算设备,其中所述词典包括词列表和相关联的内容信息,并且其中,所述一组字符是完整词的一部分。
12.根据权利要求8所述的计算设备,其中所述指令在被执行时,使得所述至少一个处理器:
至少部分地基于词典和词级n元两者,确定与所述一组字符相关联的频率值,其中所述频率值表示所述一组字符在所述词典中出现的频率;以及
至少部分地基于所述频率值确定所述至少一个所预测的当前词。
CN201480011437.3A 2013-01-15 2014-01-14 使用语言和空间模型的触摸键盘 Active CN105009064B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361752790P 2013-01-15 2013-01-15
US61/752,790 2013-01-15
US13/789,106 US8832589B2 (en) 2013-01-15 2013-03-07 Touch keyboard using language and spatial models
US13/789,106 2013-03-07
PCT/US2014/011468 WO2014113381A1 (en) 2013-01-15 2014-01-14 Touch keyboard using language and spatial models

Publications (2)

Publication Number Publication Date
CN105009064A CN105009064A (zh) 2015-10-28
CN105009064B true CN105009064B (zh) 2018-11-09

Family

ID=51166267

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480011437.3A Active CN105009064B (zh) 2013-01-15 2014-01-14 使用语言和空间模型的触摸键盘

Country Status (4)

Country Link
US (5) US8832589B2 (zh)
EP (1) EP2946280A1 (zh)
CN (1) CN105009064B (zh)
WO (1) WO2014113381A1 (zh)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9021380B2 (en) 2012-10-05 2015-04-28 Google Inc. Incremental multi-touch gesture recognition
US8782549B2 (en) 2012-10-05 2014-07-15 Google Inc. Incremental feature-based gesture-keyboard decoding
US11386257B2 (en) 2012-10-15 2022-07-12 Amaze Software, Inc. Efficient manipulation of surfaces in multi-dimensional space using energy agents
US9501171B1 (en) * 2012-10-15 2016-11-22 Famous Industries, Inc. Gesture fingerprinting
US10908929B2 (en) 2012-10-15 2021-02-02 Famous Industries, Inc. Human versus bot detection using gesture fingerprinting
US10877780B2 (en) 2012-10-15 2020-12-29 Famous Industries, Inc. Visibility detection using gesture fingerprinting
US8843845B2 (en) 2012-10-16 2014-09-23 Google Inc. Multi-gesture text input prediction
US8850350B2 (en) 2012-10-16 2014-09-30 Google Inc. Partial gesture text entry
US8701032B1 (en) 2012-10-16 2014-04-15 Google Inc. Incremental multi-word recognition
US8819574B2 (en) 2012-10-22 2014-08-26 Google Inc. Space prediction for text input
US8832589B2 (en) 2013-01-15 2014-09-09 Google Inc. Touch keyboard using language and spatial models
US9199155B2 (en) * 2013-03-14 2015-12-01 Google Inc. Morpheme-level predictive graphical keyboard
US9672818B2 (en) 2013-04-18 2017-06-06 Nuance Communications, Inc. Updating population language models based on changes made by user clusters
US9081500B2 (en) 2013-05-03 2015-07-14 Google Inc. Alternative hypothesis error correction for gesture typing
US10042543B2 (en) * 2013-09-18 2018-08-07 Lenovo (Singapore) Pte. Ltd. Indicating a word length using an input device
USD752615S1 (en) * 2014-04-17 2016-03-29 Huawei Device Co., Ltd. Display screen or portion thereof with a graphical user interface
US20150309984A1 (en) * 2014-04-25 2015-10-29 Nuance Communications, Inc. Learning language models from scratch based on crowd-sourced user text input
KR102216127B1 (ko) * 2014-08-14 2021-02-16 삼성전자주식회사 문자 입력 방법 및 장치
US9530404B2 (en) * 2014-10-06 2016-12-27 Intel Corporation System and method of automatic speech recognition using on-the-fly word lattice generation with word histories
GB201418402D0 (en) * 2014-10-16 2014-12-03 Touchtype Ltd Text prediction integration
CN104571585B (zh) * 2014-12-30 2017-07-28 北京奇虎科技有限公司 输入法光标操作方法和装置
KR102325724B1 (ko) 2015-02-28 2021-11-15 삼성전자주식회사 다수의 기기에서 텍스트 데이터 동기화
CN105988704B (zh) * 2015-03-03 2020-10-02 上海触乐信息科技有限公司 高效的触摸屏文本输入系统及方法
WO2016161056A1 (en) * 2015-03-31 2016-10-06 Keyless Systems Ltd. Improved data entry systems
US9678664B2 (en) 2015-04-10 2017-06-13 Google Inc. Neural network for keyboard input decoding
US20180329625A1 (en) * 2015-11-05 2018-11-15 Jason Griffin Word typing touchscreen keyboard
US10782859B2 (en) * 2015-12-14 2020-09-22 International Business Machines Corporation Intelligent gesture based word sentence augmentation and systems for the implementation thereof
US10331221B2 (en) 2016-03-29 2019-06-25 SessionCam Limited Methods for analysing user interactions with a user interface
US20180039608A1 (en) * 2016-08-03 2018-02-08 Google Inc. Correction of previously received textual messages based on one or more later received textual messages
US20180074998A1 (en) * 2016-09-13 2018-03-15 Microsoft Technology Licensing, Llc Visual feedback for broken text selection
US10650621B1 (en) 2016-09-13 2020-05-12 Iocurrents, Inc. Interfacing with a vehicular controller area network
US20180101599A1 (en) * 2016-10-08 2018-04-12 Microsoft Technology Licensing, Llc Interactive context-based text completions
GB201619724D0 (en) 2016-11-22 2017-01-04 Microsoft Technology Licensing Llc Trained data input system
US10831366B2 (en) 2016-12-29 2020-11-10 Google Llc Modality learning on mobile devices
CN106802763B (zh) * 2017-01-03 2021-05-28 惠州Tcl移动通信有限公司 一种基于移动终端动态选择功能按键的控制方法和系统
US10747427B2 (en) * 2017-02-01 2020-08-18 Google Llc Keyboard automatic language identification and reconfiguration
US11237635B2 (en) 2017-04-26 2022-02-01 Cognixion Nonverbal multi-input and feedback devices for user intended computer control and communication of text, graphics and audio
US11402909B2 (en) 2017-04-26 2022-08-02 Cognixion Brain computer interface for augmented reality
US20190013016A1 (en) * 2017-07-07 2019-01-10 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Converting speech to text and inserting a character associated with a gesture input by a user
US11079899B2 (en) * 2017-07-26 2021-08-03 Microsoft Technology Licensing, Llc Dynamic eye-gaze dwell times
CN107704102B (zh) * 2017-10-09 2021-08-03 北京新美互通科技有限公司 一种文本输入方法及装置
US20200099634A1 (en) * 2018-09-20 2020-03-26 XRSpace CO., LTD. Interactive Responding Method and Computer System Using the Same
US10852155B2 (en) * 2019-02-04 2020-12-01 Here Global B.V. Language density locator
JP7535845B2 (ja) * 2019-07-22 2024-08-19 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 情報処理方法及び情報処理システム
US11328223B2 (en) * 2019-07-22 2022-05-10 Panasonic Intellectual Property Corporation Of America Information processing method and information processing system
EP4022517A4 (en) 2019-12-04 2022-10-19 Samsung Electronics Co., Ltd. METHODS AND SYSTEMS FOR PREDICTING KEYKEYS USING A UNIFIED NEURONAL NETWORK
US11501067B1 (en) 2020-04-23 2022-11-15 Wells Fargo Bank, N.A. Systems and methods for screening data instances based on a target text of a target corpus
CN111475635B (zh) * 2020-05-18 2023-04-18 支付宝(杭州)信息技术有限公司 语义补全方法、装置和电子设备
US11347352B2 (en) 2020-10-25 2022-05-31 Google Llc Virtual keyboard error correction based on a dynamic spatial model
JP7438238B2 (ja) * 2020-10-25 2024-02-26 グーグル エルエルシー 動的空間モデルに基づく仮想キーボードエラー訂正
US12086542B2 (en) * 2021-04-06 2024-09-10 Talent Unlimited Online Services Private Limited System and method for generating contextualized text using a character-based convolutional neural network architecture
US11347323B2 (en) * 2021-06-10 2022-05-31 Baidu International Technology (Shenzhen) Co., Ltd. Method for determining target key in virtual keyboard
CN113485261B (zh) * 2021-06-29 2022-06-28 西北师范大学 一种基于CAEs-ACNN的软测量建模方法
US11880511B1 (en) * 2023-01-30 2024-01-23 Kiloma Advanced Solutions Ltd Real-time automatic multilingual input correction

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1248333A (zh) * 1997-01-24 2000-03-22 蒂吉通信系统公司 去多义性的简化键盘系统
US6573844B1 (en) * 2000-01-18 2003-06-03 Microsoft Corporation Predictive keyboard
CN1954355A (zh) * 2003-12-22 2007-04-25 美国在线服务公司 自动更正虚拟键盘系统

Family Cites Families (271)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4534261A (en) 1983-03-30 1985-08-13 Raymond Fabrizio Vent key modification for flute
US4833610A (en) 1986-12-16 1989-05-23 International Business Machines Corporation Morphological/phonetic method for ranking word similarities
US4988981B1 (en) 1987-03-17 1999-05-18 Vpl Newco Inc Computer data entry and manipulation apparatus and method
US4847766A (en) 1988-01-05 1989-07-11 Smith Corona Corporation Dictionary typewriter with correction of commonly confused words
US5075896A (en) 1989-10-25 1991-12-24 Xerox Corporation Character and phoneme recognition based on probability clustering
US5307267A (en) 1990-03-27 1994-04-26 Yang Gong M Method and keyboard for input of characters via use of specified shapes and patterns
DE69032645T2 (de) 1990-04-02 1999-04-08 Koninkl Philips Electronics Nv Datenverarbeitungssystem mit auf Gesten basierenden Eingabedaten
US5604897A (en) 1990-05-18 1997-02-18 Microsoft Corporation Method and system for correcting the spelling of misspelled words
US6094188A (en) 1990-11-30 2000-07-25 Sun Microsystems, Inc. Radio frequency tracking system
US5115482A (en) 1991-06-07 1992-05-19 The United States Of America As Represented By The United States Department Of Energy Optical apparatus for conversion of whispering-gallery modes into a free space gaussian like beam
US5202803A (en) 1991-07-02 1993-04-13 International Business Machines Corporation Disk file with liquid film head-disk interface
US5848187A (en) 1991-11-18 1998-12-08 Compaq Computer Corporation Method and apparatus for entering and manipulating spreadsheet cell data
FR2689290B1 (fr) 1992-03-26 1994-06-10 Aerospatiale Procede et dispositif de communication multimodes et multifonctions entre un operateur et un ou plusieurs processeurs.
CA2089784C (en) 1992-04-15 1996-12-24 William Joseph Anderson Apparatus and method for disambiguating an input stream generated by a stylus-based user interface
JP3367116B2 (ja) 1992-09-02 2003-01-14 ヤマハ株式会社 電子楽器
US5502803A (en) 1993-01-18 1996-03-26 Sharp Kabushiki Kaisha Information processing apparatus having a gesture editing function
US5677710A (en) 1993-05-10 1997-10-14 Apple Computer, Inc. Recognition keypad
US5522932A (en) 1993-05-14 1996-06-04 Applied Materials, Inc. Corrosion-resistant apparatus
US5606494A (en) 1993-11-25 1997-02-25 Casio Computer Co., Ltd. Switching apparatus
US6008799A (en) 1994-05-24 1999-12-28 Microsoft Corporation Method and system for entering data using an improved on-screen keyboard
JPH0844719A (ja) 1994-06-01 1996-02-16 Mitsubishi Electric Corp 辞書アクセスシステム
US5761689A (en) 1994-09-01 1998-06-02 Microsoft Corporation Autocorrecting text typed into a word processing document
WO1996009579A1 (en) 1994-09-22 1996-03-28 Izak Van Cruyningen Popup menus with directional gestures
US5521986A (en) 1994-11-30 1996-05-28 American Tel-A-Systems, Inc. Compact data input device
JP3209870B2 (ja) 1995-01-06 2001-09-17 富士通株式会社 文字間挿入装置および挿入方法
FI97508C (fi) 1995-01-09 1996-12-27 Nokia Mobile Phones Ltd Pikavalinta henkilökohtaisessa matkaviestimessä
US5748512A (en) * 1995-02-28 1998-05-05 Microsoft Corporation Adjusting keyboard
US5797098A (en) 1995-07-19 1998-08-18 Pacific Communication Sciences, Inc. User interface for cellular telephone
JPH0981364A (ja) 1995-09-08 1997-03-28 Nippon Telegr & Teleph Corp <Ntt> マルチモーダル情報入力方法及び装置
US6061050A (en) 1995-10-27 2000-05-09 Hewlett-Packard Company User interface device
US6041292A (en) 1996-01-16 2000-03-21 Jochim; Carol Real time stenographic system utilizing vowel omission principle
USRE37654E1 (en) 1996-01-22 2002-04-16 Nicholas Longo Gesture synthesizer for electronic sound device
US6115482A (en) 1996-02-13 2000-09-05 Ascent Technology, Inc. Voice-output reading system with gesture-based navigation
JP3280559B2 (ja) 1996-02-20 2002-05-13 シャープ株式会社 ジョグダイアルの模擬入力装置
US5917493A (en) 1996-04-17 1999-06-29 Hewlett-Packard Company Method and apparatus for randomly generating information for subsequent correlating
US5963893A (en) 1996-06-28 1999-10-05 Microsoft Corporation Identification of words in Japanese text by a computer system
US5905246A (en) 1996-10-31 1999-05-18 Fajkowski; Peter W. Method and apparatus for coupon management and redemption
JP3889466B2 (ja) 1996-11-25 2007-03-07 ソニー株式会社 文章入力装置及び方法
US6047300A (en) 1997-05-15 2000-04-04 Microsoft Corporation System and method for automatically correcting a misspelled word
US6686931B1 (en) 1997-06-13 2004-02-03 Motorola, Inc. Graphical password methodology for a microprocessor device accepting non-alphanumeric user input
US6278453B1 (en) 1997-06-13 2001-08-21 Starfish Software, Inc. Graphical password methodology for a microprocessor device accepting non-alphanumeric user input
US6141011A (en) 1997-08-04 2000-10-31 Starfish Software, Inc. User interface methodology supporting light data entry for microprocessor device having limited user input
US6160555A (en) 1997-11-17 2000-12-12 Hewlett Packard Company Method for providing a cue in a computer system
US6057845A (en) 1997-11-14 2000-05-02 Sensiva, Inc. System, method, and apparatus for generation and recognizing universal commands
WO1999028811A1 (en) 1997-12-04 1999-06-10 Northern Telecom Limited Contextual gesture interface
US7614008B2 (en) 2004-07-30 2009-11-03 Apple Inc. Operation of a computer with touch screen interface
US8479122B2 (en) 2004-07-30 2013-07-02 Apple Inc. Gestures for touch sensitive input devices
KR100327209B1 (ko) 1998-05-12 2002-04-17 윤종용 첨펜의자취를이용한소프트웨어키보드시스템및그에따른키코드인식방법
US6438523B1 (en) 1998-05-20 2002-08-20 John A. Oberteuffer Processing handwritten and hand-drawn input and speech input
US6424983B1 (en) 1998-05-26 2002-07-23 Global Information Research And Technologies, Llc Spelling and grammar checking system
US6131102A (en) 1998-06-15 2000-10-10 Microsoft Corporation Method and system for cost computation of spelling suggestions and automatic replacement
US6407679B1 (en) 1998-07-31 2002-06-18 The Research Foundation Of The State University Of New York System and method for entering text in a virtual environment
JP4302326B2 (ja) 1998-11-30 2009-07-22 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ テキストの自動区分
US6150600A (en) 1998-12-01 2000-11-21 Buchla; Donald F. Inductive location sensor system and electronic percussion system
US8938688B2 (en) 1998-12-04 2015-01-20 Nuance Communications, Inc. Contextual prediction of user words and user actions
US7712053B2 (en) 1998-12-04 2010-05-04 Tegic Communications, Inc. Explicit character filtering of ambiguous text entry
GB2347247A (en) 1999-02-22 2000-08-30 Nokia Mobile Phones Ltd Communication terminal with predictive editor
US7293231B1 (en) 1999-03-18 2007-11-06 British Columbia Ltd. Data entry for personal computing devices
US20020000468A1 (en) 1999-04-19 2002-01-03 Pradeep K. Bansal System and method for scanning & storing universal resource locator codes
WO2000074240A1 (en) 1999-05-27 2000-12-07 America Online Keyboard system with automatic correction
US7750891B2 (en) 2003-04-09 2010-07-06 Tegic Communications, Inc. Selective input system based on tracking of motion parameters of an input device
US6904405B2 (en) 1999-07-17 2005-06-07 Edwin A. Suominen Message recognition using shared language model
US6396523B1 (en) 1999-07-29 2002-05-28 Interlink Electronics, Inc. Home entertainment device remote control
US6512838B1 (en) 1999-09-22 2003-01-28 Canesta, Inc. Methods for enhancing performance and data acquired from three-dimensional image systems
US6789231B1 (en) 1999-10-05 2004-09-07 Microsoft Corporation Method and system for providing alternatives for text derived from stochastic input sources
US7798417B2 (en) 2000-01-03 2010-09-21 Snyder David M Method for data interchange
DE60025901T2 (de) 2000-01-11 2006-08-24 International Business Machines Corp. Verfahren und Vorrichtung zur Markierung eines Textdokuments mit einem Muster von zusätzlichen Leerstellen zum Zweck der Authentifizierung
US6654733B1 (en) * 2000-01-18 2003-11-25 Microsoft Corporation Fuzzy keyboard
US7028259B1 (en) 2000-02-01 2006-04-11 Jacobson Robert L Interactive legal citation checker
US6630924B1 (en) 2000-02-22 2003-10-07 International Business Machines Corporation Gesture sensing split keyboard and approach for capturing keystrokes
US7047493B1 (en) 2000-03-31 2006-05-16 Brill Eric D Spell checker with arbitrary length string-to-string transformations to improve noisy channel spelling correction
US7035788B1 (en) 2000-04-25 2006-04-25 Microsoft Corporation Language model sharing
EP1303805B1 (de) 2000-07-21 2010-02-10 Speedscript AG Verfahren für ein schnellschreibsystem und schnellschreibgerät
US20020015064A1 (en) 2000-08-07 2002-02-07 Robotham John S. Gesture-based user interface to multi-level and multi-modal sets of bit-maps
US6606597B1 (en) 2000-09-08 2003-08-12 Microsoft Corporation Augmented-word language model
WO2002033582A2 (en) 2000-10-16 2002-04-25 Text Analysis International, Inc. Method for analyzing text and method for builing text analyzers
EP1887451A3 (en) 2000-10-18 2009-06-24 602531 British Columbia Ltd. Data entry method and system for personal computer, and corresponding computer readable medium
AU2002230766A1 (en) 2000-11-08 2002-05-21 New York University System, process and software arrangement for recognizing handwritten characters
US6570557B1 (en) 2001-02-10 2003-05-27 Finger Works, Inc. Multi-touch system and method for emulating modifier keys via fingertip chords
CA2340531C (en) 2001-03-12 2006-10-10 Ibm Canada Limited-Ibm Canada Limitee Document retrieval system and search method using word set and character look-up tables
US7035794B2 (en) 2001-03-30 2006-04-25 Intel Corporation Compressing and using a concatenative speech database in text-to-speech systems
JP4048169B2 (ja) 2001-06-11 2008-02-13 博 石倉 スペースの自動生成によって文章入力を支援するシステム
FI116591B (fi) 2001-06-29 2005-12-30 Nokia Corp Menetelmä ja laite toiminnon toteuttamiseksi
US7042443B2 (en) 2001-10-11 2006-05-09 Woodard Scott E Speed Writer program and device with Speed Writer program installed
US7610189B2 (en) 2001-10-18 2009-10-27 Nuance Communications, Inc. Method and apparatus for efficient segmentation of compound words using probabilistic breakpoint traversal
US7296019B1 (en) 2001-10-23 2007-11-13 Microsoft Corporation System and methods for providing runtime spelling analysis and correction
US6765556B2 (en) 2001-11-16 2004-07-20 International Business Machines Corporation Two-key input per character text entry apparatus and method
US7362243B2 (en) 2001-11-16 2008-04-22 International Business Machines Corporation Apparatus and method using color-coded or pattern-coded keys in two-key input per character text entry
US7075520B2 (en) 2001-12-12 2006-07-11 Zi Technology Corporation Ltd Key press disambiguation using a keypad of multidirectional keys
US7231343B1 (en) 2001-12-20 2007-06-12 Ianywhere Solutions, Inc. Synonyms mechanism for natural language systems
JP4010444B2 (ja) 2002-02-28 2007-11-21 シャープ株式会社 全方位監視制御システム、全方位監視制御方法および全方位監視制御プログラム
US7175438B2 (en) 2002-03-01 2007-02-13 Digit Wireless Fast typing system and method
US7170430B2 (en) 2002-03-28 2007-01-30 Michael Goodgoll System, method, and computer program product for single-handed data entry
US7151530B2 (en) 2002-08-20 2006-12-19 Canesta, Inc. System and method for determining an input selected by a user through a virtual interface
ATE332528T1 (de) 2002-11-20 2006-07-15 Nokia Corp Verfahren und benutzerschnittstelle zur zeicheneingabe
US7199786B2 (en) 2002-11-29 2007-04-03 Daniel Suraqui Reduced keyboards system using unistroke input and having automatic disambiguating and a recognition method using said system
US7251367B2 (en) 2002-12-20 2007-07-31 International Business Machines Corporation System and method for recognizing word patterns based on a virtual keyboard layout
US7098896B2 (en) 2003-01-16 2006-08-29 Forword Input Inc. System and method for continuous stroke word-based text input
US7382358B2 (en) 2003-01-16 2008-06-03 Forword Input, Inc. System and method for continuous stroke word-based text input
US7453439B1 (en) * 2003-01-16 2008-11-18 Forward Input Inc. System and method for continuous stroke word-based text input
SG135918A1 (en) 2003-03-03 2007-10-29 Xrgomics Pte Ltd Unambiguous text input method for touch screens and reduced keyboard systems
NZ529518A (en) 2003-11-13 2005-03-24 Andy Zheng Song Input method, system and device
US20050114115A1 (en) 2003-11-26 2005-05-26 Karidis John P. Typing accuracy relaxation system and method in stylus and other keyboards
DE10357475A1 (de) 2003-12-09 2005-07-07 Siemens Ag Kommunikationsvorrichtung und Verfahren zum Eingeben und Vorhersagen von Text
AU2003300437A1 (en) 2003-12-30 2005-08-03 Google Inc. Methods and systems for text segmentation
US7250938B2 (en) 2004-01-06 2007-07-31 Lenovo (Singapore) Pte. Ltd. System and method for improved user input on personal computing devices
US7706616B2 (en) 2004-02-27 2010-04-27 International Business Machines Corporation System and method for recognizing word patterns in a very large vocabulary based on a virtual keyboard layout
US8095364B2 (en) 2004-06-02 2012-01-10 Tegic Communications, Inc. Multimodal disambiguation of speech recognition
EP2017696A1 (en) 2004-06-02 2009-01-21 2012244 Ontario Inc. Handheld electronic device with text disambiguation
US20060004638A1 (en) 2004-07-02 2006-01-05 Royal Eliza H Assisted electronic product design
JP4284531B2 (ja) 2004-07-06 2009-06-24 オムロン株式会社 実装用基板及びそれを使用した駆動装置
US7207004B1 (en) 2004-07-23 2007-04-17 Harrity Paul A Correction of misspelled words
US20060176283A1 (en) 2004-08-06 2006-08-10 Daniel Suraqui Finger activated reduced keyboard and a method for performing text input
US7508324B2 (en) 2004-08-06 2009-03-24 Daniel Suraqui Finger activated reduced keyboard and a method for performing text input
US20060055669A1 (en) 2004-09-13 2006-03-16 Mita Das Fluent user interface for text entry on touch-sensitive display
US7680648B2 (en) 2004-09-30 2010-03-16 Google Inc. Methods and systems for improving text segmentation
WO2006068250A1 (ja) 2004-12-24 2006-06-29 Japan Science And Technology Agency ナノ黒鉛構造体-金属ナノ粒子複合体
US8552984B2 (en) 2005-01-13 2013-10-08 602531 British Columbia Ltd. Method, system, apparatus and computer-readable media for directing input associated with keyboard-type device
GB0505941D0 (en) 2005-03-23 2005-04-27 Patel Sanjay Human-to-mobile interfaces
US7487461B2 (en) 2005-05-04 2009-02-03 International Business Machines Corporation System and method for issuing commands based on pen motions on a graphical keyboard
US20060256139A1 (en) 2005-05-11 2006-11-16 Gikandi David C Predictive text computer simplified keyboard with word and phrase auto-completion (plus text-to-speech and a foreign language translation option)
US9606634B2 (en) 2005-05-18 2017-03-28 Nokia Technologies Oy Device incorporating improved text input mechanism
US8374846B2 (en) * 2005-05-18 2013-02-12 Neuer Wall Treuhand Gmbh Text input device and method
US8036878B2 (en) 2005-05-18 2011-10-11 Never Wall Treuhand GmbH Device incorporating improved text input mechanism
US7886233B2 (en) 2005-05-23 2011-02-08 Nokia Corporation Electronic text input involving word completion functionality for predicting word candidates for partial word inputs
US20070016862A1 (en) 2005-07-15 2007-01-18 Microth, Inc. Input guessing systems, methods, and computer program products
GB0516246D0 (en) 2005-08-08 2005-09-14 Scanlan Timothy A data entry device and method
US7827484B2 (en) 2005-09-02 2010-11-02 Xerox Corporation Text correction for PDF converters
US20130046582A1 (en) 2005-09-14 2013-02-21 Jumptap, Inc. Realtime surveying within mobile sponsored content
US20070152980A1 (en) 2006-01-05 2007-07-05 Kenneth Kocienda Touch Screen Keyboards for Portable Electronic Devices
WO2007035827A2 (en) 2005-09-20 2007-03-29 Forward Input, Inc. System and method for continuous stroke word-based text input
US7542029B2 (en) 2005-09-20 2009-06-02 Cliff Kushler System and method for a user interface for text editing and menu selection
US20070094024A1 (en) 2005-10-22 2007-04-26 International Business Machines Corporation System and method for improving text input in a shorthand-on-keyboard interface
US20070106317A1 (en) 2005-11-09 2007-05-10 Shelton Frederick E Iv Hydraulically and electrically actuated articulation joints for surgical instruments
US7657526B2 (en) 2006-03-06 2010-02-02 Veveo, Inc. Methods and systems for selecting and presenting content based on activity level spikes associated with the content
US7831911B2 (en) 2006-03-08 2010-11-09 Microsoft Corporation Spell checking system including a phonetic speller
ITRM20060136A1 (it) 2006-03-10 2007-09-11 Link Formazione S R L Sistema multimediale interattivo
US7777728B2 (en) * 2006-03-17 2010-08-17 Nokia Corporation Mobile communication terminal
US8909779B2 (en) 2006-05-03 2014-12-09 Cloud Systems, Inc. System and method for control and monitoring of multiple devices and inter-device connections
EP1860576A1 (en) 2006-05-23 2007-11-28 Harman/Becker Automotive Systems GmbH Indexing big world lists in databases
US7831423B2 (en) 2006-05-25 2010-11-09 Multimodal Technologies, Inc. Replacing text representing a concept with an alternate written form of the concept
JP4170352B2 (ja) 2006-05-29 2008-10-22 シャープ株式会社 光結合半導体装置および電子機器
JP5661279B2 (ja) 2006-07-03 2015-01-28 クシュラー、クリフ テキスト編集およびメニュー選択のためのユーザーインターフェースのシステムおよび方法
US8564544B2 (en) 2006-09-06 2013-10-22 Apple Inc. Touch screen device, method, and graphical user interface for customizing display of content category icons
JP5248845B2 (ja) 2006-12-13 2013-07-31 キヤノン株式会社 文書処理装置、文書処理方法、プログラムおよび記憶媒体
US20080172293A1 (en) 2006-12-28 2008-07-17 Yahoo! Inc. Optimization framework for association of advertisements with sequential media
US7907125B2 (en) 2007-01-05 2011-03-15 Microsoft Corporation Recognizing multiple input point gestures
US8074172B2 (en) 2007-01-05 2011-12-06 Apple Inc. Method, system, and graphical user interface for providing word recommendations
US7957955B2 (en) 2007-01-05 2011-06-07 Apple Inc. Method and system for providing word recommendations for text input
US8225203B2 (en) 2007-02-01 2012-07-17 Nuance Communications, Inc. Spell-check for a keyboard system with automatic correction
US7809719B2 (en) 2007-02-08 2010-10-05 Microsoft Corporation Predicting textual candidates
CA2717265A1 (en) 2007-03-07 2008-09-12 Kannuu Pty Ltd Method system and apparatus for entering text on a computing device
US20080229255A1 (en) 2007-03-15 2008-09-18 Nokia Corporation Apparatus, method and system for gesture detection
US20080232885A1 (en) 2007-03-19 2008-09-25 Giftventure Studios, Inc. Systems and Methods for Creating Customized Activities
US7903883B2 (en) 2007-03-30 2011-03-08 Microsoft Corporation Local bi-gram model for object recognition
US7895518B2 (en) 2007-04-27 2011-02-22 Shapewriter Inc. System and method for preview and selection of words
US8504349B2 (en) 2007-06-18 2013-08-06 Microsoft Corporation Text prediction with partial selection in a variety of domains
US8059101B2 (en) 2007-06-22 2011-11-15 Apple Inc. Swipe gestures for touch screen keyboards
TW200905538A (en) 2007-07-31 2009-02-01 Elan Microelectronics Corp Touch position detector of capacitive touch panel and method of detecting the touch position
US20090058823A1 (en) 2007-09-04 2009-03-05 Apple Inc. Virtual Keyboards in Multi-Language Environment
US8661340B2 (en) 2007-09-13 2014-02-25 Apple Inc. Input methods for device having multi-language environment
CN101174190B (zh) 2007-09-30 2013-06-12 上海触乐信息科技有限公司 电子设备屏幕上实现复合按键的软件键盘输入的方法
US20090100383A1 (en) 2007-10-16 2009-04-16 Microsoft Corporation Predictive gesturing in graphical user interface
US20090119376A1 (en) 2007-11-06 2009-05-07 International Busness Machines Corporation Hint-Based Email Address Construction
US8232973B2 (en) 2008-01-09 2012-07-31 Apple Inc. Method, device, and graphical user interface providing word recommendations for text input
US8456425B2 (en) 2008-01-30 2013-06-04 International Business Machines Corporation Self-adapting keypad
US20090198691A1 (en) 2008-02-05 2009-08-06 Nokia Corporation Device and method for providing fast phrase input
US8280886B2 (en) * 2008-02-13 2012-10-02 Fujitsu Limited Determining candidate terms related to terms of a query
US8289283B2 (en) 2008-03-04 2012-10-16 Apple Inc. Language input interface on a device
JP5438909B2 (ja) 2008-03-14 2014-03-12 ソニーモバイルコミュニケーションズ株式会社 文字入力装置、文字入力支援方法及び文字入力支援プログラム
US20090249198A1 (en) 2008-04-01 2009-10-01 Yahoo! Inc. Techniques for input recogniton and completion
US20090292527A1 (en) 2008-05-22 2009-11-26 Travelocity.Com Lp Methods, Apparatuses and Computer Program Products for Receiving and Utilizing Multidimensional Data Via A Phrase
US20100021871A1 (en) 2008-07-24 2010-01-28 Layng Terrence V Teaching reading comprehension
US8619048B2 (en) 2008-08-08 2013-12-31 Moonsun Io Ltd. Method and device of stroke based user input
BRPI0917964A2 (pt) 2008-08-12 2015-11-17 Keyless System Ltd sistema de entrada de dados
US20100070908A1 (en) 2008-09-18 2010-03-18 Sun Microsystems, Inc. System and method for accepting or rejecting suggested text corrections
US20140372119A1 (en) 2008-09-26 2014-12-18 Google, Inc. Compounded Text Segmentation
US20100079382A1 (en) 2008-09-26 2010-04-01 Suggs Bradley N Touch-screen monitoring
CN101382844A (zh) 2008-10-24 2009-03-11 上海埃帕信息科技有限公司 一种输入间隔分词的方法
WO2010053437A1 (en) 2008-11-04 2010-05-14 Saplo Ab Method and system for analyzing text
US7996369B2 (en) 2008-11-14 2011-08-09 The Regents Of The University Of California Method and apparatus for improving performance of approximate string queries using variable length high-quality grams
US20100131447A1 (en) 2008-11-26 2010-05-27 Nokia Corporation Method, Apparatus and Computer Program Product for Providing an Adaptive Word Completion Mechanism
US20100141484A1 (en) 2008-12-08 2010-06-10 Research In Motion Limited Optimized keyboard for handheld thumb-typing and touch-typing
US20100199226A1 (en) 2009-01-30 2010-08-05 Nokia Corporation Method and Apparatus for Determining Input Information from a Continuous Stroke Input
US20100194694A1 (en) * 2009-01-30 2010-08-05 Nokia Corporation Method and Apparatus for Continuous Stroke Input
AU2010212022A1 (en) 2009-02-04 2011-08-11 Benjamin Firooz Ghassabian Data entry system
US8605039B2 (en) 2009-03-06 2013-12-10 Zimpl Ab Text input
US9684521B2 (en) 2010-01-26 2017-06-20 Apple Inc. Systems having discrete and continuous gesture recognizers
US20100235780A1 (en) 2009-03-16 2010-09-16 Westerman Wayne C System and Method for Identifying Words Based on a Sequence of Keyboard Events
US8566044B2 (en) 2009-03-16 2013-10-22 Apple Inc. Event recognition
US8566045B2 (en) 2009-03-16 2013-10-22 Apple Inc. Event recognition
US9311112B2 (en) 2009-03-16 2016-04-12 Apple Inc. Event recognition
US20100238125A1 (en) 2009-03-20 2010-09-23 Nokia Corporation Method, Apparatus, and Computer Program Product For Discontinuous Shapewriting
KR101844366B1 (ko) 2009-03-27 2018-04-02 삼성전자 주식회사 터치 제스처 인식 장치 및 방법
US9189472B2 (en) * 2009-03-30 2015-11-17 Touchtype Limited System and method for inputting text into small screen devices
GB0905457D0 (en) 2009-03-30 2009-05-13 Touchtype Ltd System and method for inputting text into electronic devices
JP5392348B2 (ja) 2009-04-16 2014-01-22 株式会社島津製作所 放射線断層撮影装置
US20100315266A1 (en) 2009-06-15 2010-12-16 Microsoft Corporation Predictive interfaces with usability constraints
BRPI0924002B1 (pt) 2009-06-16 2021-03-02 Intel Corporation teclado virtual adaptativo para dispositivo portátil
CN202142005U (zh) * 2009-07-22 2012-02-08 罗技欧洲公司 用于远程、虚拟屏幕输入的系统
DE212009000220U1 (de) 2009-08-04 2012-05-07 Google, Inc. Erzeugung von Suchanfrage-Vorschlägen
US9317116B2 (en) 2009-09-09 2016-04-19 Immersion Corporation Systems and methods for haptically-enhanced text interfaces
US20110063231A1 (en) 2009-09-14 2011-03-17 Invotek, Inc. Method and Device for Data Input
US8341558B2 (en) 2009-09-16 2012-12-25 Google Inc. Gesture recognition on computing device correlating input to a template
US8135582B2 (en) 2009-10-04 2012-03-13 Daniel Suraqui Keyboard system and method for global disambiguation from classes with dictionary database from first and last letters
US8386574B2 (en) 2009-10-29 2013-02-26 Xerox Corporation Multi-modality classification for one-class classification in social networks
US8365059B2 (en) 2009-11-03 2013-01-29 Oto Technologies, Llc E-reader semantic text manipulation
US8884872B2 (en) 2009-11-20 2014-11-11 Nuance Communications, Inc. Gesture-based repetition of key activations on a virtual keyboard
US8358281B2 (en) 2009-12-15 2013-01-22 Apple Inc. Device, method, and graphical user interface for management and manipulation of user interface elements
US8587532B2 (en) 2009-12-18 2013-11-19 Intel Corporation Multi-feature interactive touch user interface
US9417787B2 (en) 2010-02-12 2016-08-16 Microsoft Technology Licensing, Llc Distortion effects to indicate location in a movable data collection
US8782556B2 (en) 2010-02-12 2014-07-15 Microsoft Corporation User-centric soft keyboard predictive technologies
US8515969B2 (en) 2010-02-19 2013-08-20 Go Daddy Operating Company, LLC Splitting a character string into keyword strings
US9965165B2 (en) 2010-02-19 2018-05-08 Microsoft Technology Licensing, Llc Multi-finger gestures
KR101557358B1 (ko) 2010-02-25 2015-10-06 엘지전자 주식회사 문자열 입력 방법 및 그 장치
US20110210850A1 (en) 2010-02-26 2011-09-01 Phuong K Tran Touch-screen keyboard with combination keys and directional swipes
CN101788855B (zh) 2010-03-09 2013-04-17 华为终端有限公司 一种获取用户输入信息的方法、装置及通信终端
JP5642809B2 (ja) 2010-03-12 2014-12-17 ニュアンス コミュニケーションズ, インコーポレイテッド 携帯電話のタッチスクリーンとの使用等のためのマルチモーダルテキスト入力システム
US8542195B2 (en) 2010-03-30 2013-09-24 International Business Machines Corporation Method for optimization of soft keyboards for multiple languages
CN101788550B (zh) 2010-04-06 2013-10-30 中国石油化工股份有限公司 气雾喷雾剂点火距离试验装置
US8266528B1 (en) 2010-06-24 2012-09-11 Google Inc. Spelling suggestions based on an input sequence including accidental “delete”
US8918734B2 (en) 2010-07-28 2014-12-23 Nuance Communications, Inc. Reduced keyboard with prediction solutions when input is a partial sliding trajectory
US20120036468A1 (en) 2010-08-03 2012-02-09 Nokia Corporation User input remapping
US20120036485A1 (en) 2010-08-09 2012-02-09 XMG Studio Motion Driven User Interface
EP2616908A2 (en) * 2010-09-15 2013-07-24 Jeffrey R. Spetalnick Methods of and systems for reducing keyboard data entry errors
US8898586B2 (en) 2010-09-24 2014-11-25 Google Inc. Multiple touchpoints for efficient text input
GB201200643D0 (en) 2012-01-16 2012-02-29 Touchtype Ltd System and method for inputting text
US9465798B2 (en) 2010-10-08 2016-10-11 Iq Technology Inc. Single word and multi-word term integrating system and a method thereof
US8810581B2 (en) 2010-10-20 2014-08-19 Blackberry Limited Character input method
EP2636149A4 (en) 2010-11-04 2016-10-05 Nuance Communications Inc WRITE CHECK FOR A KEYBOARD SYSTEM WITH AUTOMATIC CORRECTION
US20120113008A1 (en) 2010-11-08 2012-05-10 Ville Makinen On-screen keyboard with haptic effects
WO2012068407A2 (en) 2010-11-17 2012-05-24 Imerj LLC Multi-screen email client
US9870141B2 (en) 2010-11-19 2018-01-16 Microsoft Technology Licensing, Llc Gesture recognition
KR20140001957A (ko) 2010-11-20 2014-01-07 뉘앙스 커뮤니케이션즈, 인코포레이티드 입력된 텍스트를 이용하여 상황 정보에 액세스하여 이를 처리하기 위한 시스템들 및 방법들
US20120166428A1 (en) * 2010-12-22 2012-06-28 Yahoo! Inc Method and system for improving quality of web content
US8730188B2 (en) 2010-12-23 2014-05-20 Blackberry Limited Gesture input on a portable electronic device and method of controlling the same
US8922489B2 (en) * 2011-03-24 2014-12-30 Microsoft Corporation Text input using key and gesture information
US8914275B2 (en) 2011-04-06 2014-12-16 Microsoft Corporation Text prediction
CN102178855B (zh) 2011-04-22 2012-05-23 山西黄河中药有限公司 一种治疗颈椎病的药物及其制备方法
US8570372B2 (en) 2011-04-29 2013-10-29 Austin Russell Three-dimensional imager and projection device
US8587542B2 (en) 2011-06-01 2013-11-19 Motorola Mobility Llc Using pressure differences with a touch-sensitive display screen
US9471560B2 (en) 2011-06-03 2016-10-18 Apple Inc. Autocorrecting language input for virtual keyboards
US20130212515A1 (en) 2012-02-13 2013-08-15 Syntellia, Inc. User interface for text input
JP5508359B2 (ja) 2011-08-03 2014-05-28 シャープ株式会社 文字認識装置、文字認識方法及びプログラム
US8751972B2 (en) 2011-09-20 2014-06-10 Google Inc. Collaborative gesture-based input language
US20130082824A1 (en) 2011-09-30 2013-04-04 Nokia Corporation Feedback response
US8490008B2 (en) 2011-11-10 2013-07-16 Research In Motion Limited Touchscreen keyboard predictive display and generation of a set of characters
US9122672B2 (en) 2011-11-10 2015-09-01 Blackberry Limited In-letter word prediction for virtual keyboard
US9310889B2 (en) 2011-11-10 2016-04-12 Blackberry Limited Touchscreen keyboard predictive display and generation of a set of characters
CN102411477A (zh) 2011-11-16 2012-04-11 鸿富锦精密工业(深圳)有限公司 电子设备及其文本导读方法
CN102508553A (zh) 2011-11-23 2012-06-20 赵来刚 电子产品手持输入数据和指令的技术
US8436827B1 (en) 2011-11-29 2013-05-07 Google Inc. Disambiguating touch-input based on variation in characteristic such as speed or pressure along a touch-trail
FR2986100B1 (fr) 2012-01-20 2016-09-30 Aerazur Gaine de protection notamment pour cables electriques et son procede de fabrication
CN104160361A (zh) 2012-02-06 2014-11-19 迈克尔·K·科尔比 字符串完成
CN102629158B (zh) 2012-02-29 2015-04-08 广东威创视讯科技股份有限公司 基于触摸屏系统的文字输入方法及装置
US9223497B2 (en) 2012-03-16 2015-12-29 Blackberry Limited In-context word prediction and word correction
US8667414B2 (en) 2012-03-23 2014-03-04 Google Inc. Gestural input at a virtual keyboard
CN102693090B (zh) 2012-05-16 2014-06-11 刘炳林 一种输入方法和电子设备
US10296581B2 (en) 2012-06-06 2019-05-21 Apple Inc. Multi-word autocorrection
US9779080B2 (en) * 2012-07-09 2017-10-03 International Business Machines Corporation Text auto-correction via N-grams
US9063653B2 (en) * 2012-08-31 2015-06-23 Blackberry Limited Ranking predictions based on typing speed and typing confidence
US9021380B2 (en) 2012-10-05 2015-04-28 Google Inc. Incremental multi-touch gesture recognition
US8782549B2 (en) 2012-10-05 2014-07-15 Google Inc. Incremental feature-based gesture-keyboard decoding
US9026428B2 (en) 2012-10-15 2015-05-05 Nuance Communications, Inc. Text/character input system, such as for use with touch screens on mobile phones
US8843845B2 (en) 2012-10-16 2014-09-23 Google Inc. Multi-gesture text input prediction
US8701032B1 (en) 2012-10-16 2014-04-15 Google Inc. Incremental multi-word recognition
US8850350B2 (en) 2012-10-16 2014-09-30 Google Inc. Partial gesture text entry
US8819574B2 (en) 2012-10-22 2014-08-26 Google Inc. Space prediction for text input
US8832589B2 (en) 2013-01-15 2014-09-09 Google Inc. Touch keyboard using language and spatial models
WO2015061761A1 (en) 2013-10-24 2015-04-30 Fleksy, Inc. User interface for text input and virtual keyboard manipulation
CA3168047A1 (en) 2017-06-14 2018-12-20 Shanghai United Imaging Healthcare Co., Ltd. System and method for image processing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1248333A (zh) * 1997-01-24 2000-03-22 蒂吉通信系统公司 去多义性的简化键盘系统
US6573844B1 (en) * 2000-01-18 2003-06-03 Microsoft Corporation Predictive keyboard
CN1954355A (zh) * 2003-12-22 2007-04-25 美国在线服务公司 自动更正虚拟键盘系统

Also Published As

Publication number Publication date
US20200081974A1 (en) 2020-03-12
EP2946280A1 (en) 2015-11-25
US10528663B2 (en) 2020-01-07
US20180046612A1 (en) 2018-02-15
US20220229988A1 (en) 2022-07-21
US20140372880A1 (en) 2014-12-18
WO2014113381A1 (en) 2014-07-24
US11334717B2 (en) 2022-05-17
CN105009064A (zh) 2015-10-28
US11727212B2 (en) 2023-08-15
US20140201671A1 (en) 2014-07-17
US9830311B2 (en) 2017-11-28
US8832589B2 (en) 2014-09-09

Similar Documents

Publication Publication Date Title
CN105009064B (zh) 使用语言和空间模型的触摸键盘
CN105431809B (zh) 用于国际语言的虚拟键盘输入
CN104718544B (zh) 部分手势文本输入的方法、计算设备及系统
US20190087084A1 (en) User-centric soft keyboard predictive technologies
CN104718543B (zh) 一种用于建议校正的方法和计算系统
CN110083254A (zh) 多手势文本输入预测
CN105378606B (zh) 用于手势键入的备选假设错误修正
AU2014212844B2 (en) Character and word level language models for out-of-vocabulary text input
CN104020943B (zh) 字符串替换
US9552080B2 (en) Incremental feature-based gesture-keyboard decoding
CN105164616B (zh) 用于输出候选字符串的方法、计算设备及存储介质
CN105074643B (zh) 非词典字符串的手势键盘输入
CN104685451A (zh) 姿势适应选择
CN104123012A (zh) 使用替代评分的非字典字符串的姿态键盘输入
CN107850950A (zh) 基于时间的分词
CN104756062B (zh) 解码用于图形键盘的不准确手势

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: American California

Applicant after: Google limited liability company

Address before: American California

Applicant before: Google Inc.

GR01 Patent grant
GR01 Patent grant