CN105378606A - 用于手势键入的备选假设错误修正 - Google Patents

用于手势键入的备选假设错误修正 Download PDF

Info

Publication number
CN105378606A
CN105378606A CN201480038018.9A CN201480038018A CN105378606A CN 105378606 A CN105378606 A CN 105378606A CN 201480038018 A CN201480038018 A CN 201480038018A CN 105378606 A CN105378606 A CN 105378606A
Authority
CN
China
Prior art keywords
computing equipment
alternative
mark
gesture
word
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.)
Granted
Application number
CN201480038018.9A
Other languages
English (en)
Other versions
CN105378606B (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 CN105378606A publication Critical patent/CN105378606A/zh
Application granted granted Critical
Publication of CN105378606B publication Critical patent/CN105378606B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/0489Interaction 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 dedicated keyboard keys or combinations thereof
    • G06F3/04897Special input arrangements or commands for improving display capability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/232Orthographic correction, e.g. spell checking or vowelisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs
    • 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/0236Character input methods using selection techniques to select from displayed items
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query augmenting and refining, e.g. inexact access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access

Abstract

在一个示例中,一种方法可包括由计算设备输出包括多个键的图形键盘以用于显示,并接收手势的指示。所述方法可包括确定至少部分地基于单词前缀和手势所穿过的对准点的对准分数。所述方法可以包括确定至少一个备选字符,其至少部分地基于包括单词前缀的至少一部分的错误拼写。所述方法可包括确定至少部分地基于备选字符的备选对准分数;以及由计算设备至少部分地基于备选对准分数来输出至少部分地基于备选字符的候选单词以用于显示。

Description

用于手势键入的备选假设错误修正
背景技术
某些计算设备(例如,移动电话、平板计算机等)可提供图形键盘作为用于编写文本的图形用户界面的一部分(例如,使用存在敏感输入设备和/或显示器,诸如触摸屏)。图形键盘可使得计算设备的用户能够录入文本(例如,电子邮件、文本消息或文档等)。例如,计算设备的存在敏感显示器可输出图形(或“软”)键盘,其使得用户能够通过指示在存在敏感显示器处显示的键(例如,通过敲击)来录入数据。
在某些情况下,计算设备可呈现连续手势图形键盘(有时称为“手势键盘”或“组合手势键盘”),用户可以通过在与图形键盘的键相关联的存在敏感显示器的区域上滑动他或她的手指来与之相交互,从而本质上向计算设备做出要输入单词的手势。换言之,用户可通过描绘在存在敏感显示器处输出的单词的字母来以单个手势输入整个单词。这样,连续手势图形键盘提供允许用户用手势来录入单词或单词群组的输入方法。同样地,连续手势图形键盘可允许用户实现一定程度的效率,尤其是与存在敏感屏幕的单手敲击相比(例如,被操作耦合到计算设备或与之集成的存在敏感屏幕)。
在某些示例中,提供手势键盘的计算设备可依赖于单词预测、自动修正和/或建议技术以便根据手势输入确定单词。这些技术可加速文本录入并使词汇中字符串(例如,字典中的单词)的错误拼写最小化。然而,所述技术中的一个或多个可具有某些缺点。例如,在某些示例中,提供手势键盘并依赖于所述技术中的一个或多个的计算设备可能并未基于在存在敏感屏幕处录入的手势输入而正确地确定用户预期的单词。同样地,用户可能需要执行额外的努力以使用手势输入来录入单词。
发明内容
在一个示例中,一种方法可包括由计算设备输出包括多个键的图形键盘以用于显示。该方法可包括由计算设备接收在存在敏感输入设备处检测到的手势的指示。该方法可包括由计算设备确定至少部分地基于单词前缀和手势所穿过的对准点的对准分数,其中,该对准分数表示对准点指示所述多个键中的键的概率。该方法可包括由计算设备确定至少一个备选字符,其至少部分地基于包括单词前缀的至少一部分的错误拼写。该方法可包括由计算设备确定至少部分地基于所述备选字符的备选对准分数。该方法可包括由计算设备至少部分地基于所述备选对准分数来输出候选单词以用于显示。
在一个示例中,计算机可读存储介质可用指令被编码,该指令在被执行时促使至少一个处理器:输出包括多个键的图形键盘以用于显示。计算机可读存储介质可用指令被编码,该指令在被执行时促使至少一个处理器:接收在存在敏感输入设备处检测到的手势的指示。计算机可读存储介质可用指令被编码,该指令促使至少一个处理器确定至少部分地基于单词前缀和手势所穿过的对准点的对准分数,其中,所述对准分数表示该对准点指示所述多个键中的键的概率。计算机可读存储介质可用指令被编码,该指令在被执行时促使至少一个处理器确定至少一个备选字符,其至少部分地基于包括单词前缀的至少一部分的错误拼写。计算机可读存储介质可用指令被编码,该指令在被执行时促使至少一个处理器确定至少部分地基于所述备选字符的备选对准分数。计算机可读存储介质可用指令被编码,该指令在被执行时促使至少一个处理器至少部分地基于所述备选对准分数来输出至少部分地基于所述备选字符的候选单词以用于显示。
在一个示例中,计算设备可包括至少一个处理器,其中,所述至少一个处理器被配置成输出包括多个键的图形键盘以用于显示。所述至少一个处理器可被配置成接收在存在敏感输入设备处检测到的手势的指示。所述至少一个处理器可被配置成确定至少部分地基于单词前缀和手势所穿过的对准点的对准分数,其中,所述对准分数表示该对准点指示所述多个键中的键的概率。所述至少一个处理器可被配置成响应于确定对准分数未能满足阈值,由计算设备确定至少一个备选单词前缀。所述至少一个处理器可被配置成确定至少部分地基于所述至少一个备选单词前缀的备选对准分数。所述至少一个处理器可被配置成至少部分地基于备选对准分数来输出候选单词以用于显示。
在附图和以下描述中阐述了一个或多个示例的细节。根据本描述和附图以及根据权利要求,本公开的其它特征、目的以及优点将是显而易见的。
附图说明
图1是根据本公开的技术的图示出被用来使用基于手势输入执行输入的错误修正的示例计算设备的概念图。
图2是根据本公开的一个或多个方面的图示出示例计算设备的框图。
图3是根据本公开的一个或多个技术的图示出输出图形内容以用于在远程设备处显示的示例计算设备的框图。
图4A至4C是根据本公开的一个或多个技术的图示出被用来执行对于基于手势输入的替代错误修正的图1中所示的计算设备的一个示例的更多细节的框图。
图5A至5C是根据本公开的一个或多个技术的图示出被用来执行对于基于手势输入的删除错误修正的图1中所示的计算设备的一个示例的更多细节的框图。
图6A至6C是根据本公开的一个或多个技术的图示出被用来执行对于基于手势输入的插入错误修正的图1中所示的计算设备的一个示例的更多细节的框图。
图7A至7C是根据本公开的一个或多个技术的图示出被用来执行对于基于手势输入的换位错误修正的图1中所示的计算设备的一个示例的更多细节的框图。
图8是根据本公开的技术的图示出被配置成使用基于手势输入执行输入的错误修正的计算设备的示例操作的流程图。
图9是根据本公开的技术的图示出被配置成使用基于手势输入执行输入的错误修正的计算设备的示例操作的流程图。
图10是根据本公开的技术的图示出被配置成使用基于手势输入执行输入的错误修正的计算设备的示例操作的流程图。
具体实施方式
一般地,本公开针对根据本公开的技术的用于响应于错误的基于手势输入而进行字符串确定和预测的技术。在某些示例中,输出图形键盘以用于显示的计算设备可接收在存在敏感屏幕处检测到的手势的指示。例如,穿过与图形键盘的多个键相关联的存在敏感屏幕的位置的连续(例如,非敲击)手势可指示对键中的一个或多个的选择。在某些示例中,计算设备可接收与在存在敏感屏幕处或附近的一个或多个手势相关联的输入,其指示包括一个或多个字符的一个或多个字符串。此类字符串可被包括在词典(例如,字典的单词)中并表示语言的词汇中的单词或词汇中的单词的一部分。在此类示例中,手势可穿过与包括在字符串中的字符相对应的键群组。
在某些示例中,手势可不穿过分别地与包括在词典中的字符串相对应的键群组。换言之,用户可能已经提供并不与表示由用户输入的预期字符串的键相对应的错误的连续手势。例如,用户可能错误地执行穿过图形键盘的键T-R-U-E-L-Y的连续手势,虽然用户期望输入字符串“truly”。不是仅输出“tiredly”或用户并不预期录入的某个其它单词,本公开的技术可生成至少一个备选假设,其基于在本示例中用户预期的字符串“truly”的自动修正拼写。
在本公开中所述的技术可改善计算设备响应于键的错误的选择而使用自动修正来确定候选单词的准确度。在某些示例中,本公开的技术可针对各种类型的错误拼写而改善单词预测的准确度,所述错误拼写包括但不限于:替代错误(“cemetary”→“cemetery”)、删除错误(“Farenheit”→“Fahrenheit”)、插入错误(“truely”→“truly”)以及换位误差(“wierd”→“weird”)。例如,实现本公开的技术的计算设备可递增地确定手势的手势路径所穿过的图形键盘的不同键群组。该递增确定可包括搜索与对应于给定字母的键的给定键盘位置对准的手势的一个或多个点。每个不同的键群组可对应于共同地表示字符串的相应字符群组。每个字符串可以是例如包括在词典中的一个或多个单词的前缀的假设。
使用本公开的技术,计算设备可基于字符、字符的组合和/或词典中的单词的错误拼写来确定备选假设,例如包括字符的一个或多个单词的前缀。也就是说,如果手势路径并未很好地对准到与词汇中的单词相对应的一个或多个键(例如,用户错误地做出预期单词的不正确拼写的手势),则计算设备可基于该错误拼写来确定备选假设。该备选假设指示用于包括备选假设的字符的词典中的某些单词的较高概率。本公开的技术因此可放松对于连续手势输入的约束,否则其将要求手势路径与对应于预期单词的每个字符的每个键匹配。因此,实现本公开的技术的计算设备可更准确地输出用户预期的单词。
图1是根据本公开的技术的图示出被用来执行使用基于手势输入的输入的错误修正的示例计算设备的概念图。在图1的示例中,计算设备10可以是移动电话。然而,在其它示例中,计算设备10可以是平板计算机、个人数字助理(PDA)、膝上型计算机、便携式游戏设备、便携式媒体播放器、电子书阅读器、手表、电视平台或另一类型的计算设备。
如图1中所示,计算设备10包括用户接口设备(UID)12。计算设备10的UID12可充当用于计算设备10的输入设备和输出设备。可使用各种技术来实现UID12。例如,UID12可充当使用存在敏感屏幕的存在敏感输入设备,所述存在敏感屏幕诸如电阻性触摸屏、表面声波触摸屏、电容性触摸屏、投射电容触摸屏、压力敏感屏幕、声脉冲识别触摸屏或另一存在敏感屏幕技术。UID12可充当使用液晶显示器(LCD)、点阵显示、发光二极管(LED)显示器、有机发光二极管(OLED)显示器、电子墨水或能够向计算设备10的用户输出可见信息的类似单色或彩色显示器中的任何一个或多个的输出设备。
计算设备10的UID12可包括存在敏感屏幕,其可从计算设备10的用户接收触觉用户输入。UID12可通过检测来自计算设备10的用户的一次或多次敲击和/或非敲击手势(例如,用户用手指或触针笔触摸或指向UID12的一个或多个位置)来接收触觉用户输入的指示。UID12的存在敏感屏幕可向用户呈现输出。UID12可将输出呈现为用户界面(例如,用户界面14),其可与由计算设备10提供的功能有关。例如,UID12可呈现在计算设备10处执行的应用程序(例如,电子消息应用程序、因特网浏览器应用程序等)的各种用户界面。计算设备10的用户可与这些应用程序中的一个或多个相交互以通过每个应用程序的相应用户界面用计算设备10来执行功能。
计算设备10可包括用户界面(“UI”)模块20、键盘模块22和手势模块24。模块20、22和24可使用常驻于计算设备10中并在其上面执行的软件、硬件、固件或硬件、软件和固件的混合物来执行所述操作。计算设备10可用多个处理器来执行模块20、22和24。计算设备10可将模块20、22和24作为在底层硬件上执行的虚拟机执行。模块20、22和24可以以各种方式实现。例如,可将UI模块20实现为可下载或预先安装应用程序或“app”。在另一示例中,可将UI模块20实现为计算设备10的操作系统的一部分。
计算设备10的手势模块24可从UID12接收在UID12的存在敏感屏幕处检测到的用户输入的一个或多个指示。一般地,每当UID12接收到在存在敏感屏幕的位置处检测到的用户输入的指示时,手势模块24可从UID12接收关于用户输入的信息。手势模块24可将从UID12接收到的信息聚集成指示手势的事件的时间有序集,诸如触摸事件序列。该序列中的每个触摸事件可包括表示表征存在敏感屏幕处的输入的存在和/或移动的参数(例如,何时、在何处、原始方向)的数据或分量。序列中的每个触摸事件可包括对应于UID12的位置的位置分量、与UID12何时在该位置处检测到用户输入有关的时间分量以及与触摸事件是对应于该位置处的抬起还是按下有关的动作分量。此外,事件中的一个或多个可具有同时时间分量,并且此类事件仅仅出于示例的目的被描述为触摸事件,并且可指示任何形式的存在敏感输入设备处的手势。
手势模块24可基于触摸事件序列来确定用户输入的一个或多个特性,并且包括关于触摸事件序列中的每个触摸事件内的这些一个或多个特性的信息。例如,手势模块24可确定用户输入的起始位置、用户输入的结束位置、用户输入的一部分的密度、用户输入的一部分的速度、用户输入的一部分的方向以及用户输入的一部分的曲率。触摸事件序列中的一个或多个触摸事件可包括(除如上所述的时间、位置以及动作分量之外)包括关于用户输入的一个或多个特性(例如,密度、速度等)的信息的特性分量。在某些示例中,手势模块24基于从UI模块20接收到的信息来确定被触摸或者另外响应于用户手势而检测到的UID12的一个或多个位置。在某些示例中,手势模块24可以确定与手势相关联的一个或多个特征,诸如两个对准点之间的欧几里德距离、手势路径的长度、手势的方向、手势路径的曲率、手势的形状以及对准点之间的手势的最大曲率、手势的速度等。作为一个示例,用以考虑错误拼写的确定可以取决于类似于速度(犹豫可指示更多不确定)或基于受影响字母的特定拼写修正的可能性的因素(‘e’写成‘i’是常见错误拼写,‘e’写成‘z’可能是较不常见的)。手势模块24可将包括所述分量的触摸事件序列或与每个触摸事件相关联的参数化数据作为数据传送到键盘模块22。
在图1的示例中,UI模块20可促使UID12呈现示例用户界面14。在本示例中,用户界面14包括在UID12的各种位置处显示的图形元素。图1图示出用户界面14的编辑区16A以及用户界面14的图形键盘16B。编辑区16A可包括诸如图像、对象、超链接、文本字符等图形元素。图形键盘16B包括被显示为键的图形元素。用户界面14包括建议字符串区18A至18C,其包括可选择拼写修正或字符串建议以替换包括在编辑区16A中的字符串。在图1的示例中,编辑区16可包括被显示为文本字符的图形元素(例如,字符串)。计算设备10的用户可通过在显示图形键盘16B的键的UID12的位置处提供用户输入来在编辑区16A中录入文本。响应于诸如此类的用户输入,计算设备10可在建议字符串区18A至18C中输出一个或多个建议字符串。
UI模块20可充当计算设备10的各种组件之间的中介以基于由UID12检测到的输入进行确定并生成由UID12呈现的输出。例如,UI模块20可接收包括在图形键盘16B中的键的键盘布局的表示作为来自键盘模块22的输入。UI模块20可将用户输入的指示发送到手势模块24,其可生成从关于由UID12检测到的用户输入的信息生成的触摸事件序列。键盘模块22在从手势模块24接收到触摸事件时可基于触摸事件序列中的位置分量来确定一个或多个位置分量近似对一个或多个键的选择。作为响应,UI模块20可从键盘模块22接收一个或多个建议字符串。UI模块20可更新用户界面14以包括编辑区16A和/或字符串区18A至18C内的一个或多个字符串。UI模块20可促使UID12呈现已更新用户界面14。
计算设备10的键盘模块22可将包括与一个或多个书面语言(例如,英语、西班牙语等)有关的多个键的键盘布局作为数据传送到UI模块20(以便包括为用户界面14的图形键盘16B)。键盘模块22可向键盘布局中的所述多个键中的每个键分配一个或多个字符或操作。例如,键盘模块22可生成QWERTY键盘布局,其包括表示在键入英语语言时所使用的字符的键。QWERTY键盘布局还可包括表示在键入英语语言时所使用的操作的键(例如,退格、删除、空格、输入等)。图形键盘16B可包括多个键,诸如“Q”键32A、“W”键32B等。在某些示例中,包括在图形键盘16中的所述多个键中的每一个表示单个字符。在其它示例中,包括在图形键盘16中的所述多个键中的一个或多个表示基于多个模式选择的字符群组。
计算设备10可包括一个或多个空间模型,诸如空间模型26,以基于触摸事件序列递增地确定对一个或多个键的不同选择。一般地,空间模型26可生成基于与用户输入相关联的位置数据已选择图形键盘的特定键的一个或多个概率。在某些示例中,空间模型26包括用于每个键的二变量高斯模型。用于键的二变量高斯模型可包括与呈现给定键的UID12的位置相对应的坐标(例如,(x,y)坐标对)的分布。更具体地,在某些示例中,用于键的二变量高斯模型可包括与当用户意图选择给定键时被用户最频繁地选择的UID12的位置相对应的坐标的分布。用户输入的位置数据与空间模型26中的较高密度区域之间的距离越短,与空间模型26相关联的键已被选择的概率越高。用户输入的位置数据与空间模型26中的较高密度区域之间的距离越大,与空间模型26中的一个相关联的键已被选择的概率越低。
键盘模块22可使用空间模型26来将触摸事件序列中的一个或多个触摸事件的位置分量(例如,坐标)与图形键盘16B的一个或多个键的相应位置相比较并基于这些比较而生成对键的选择发生的概率。在某些示例中,键盘模块22可使用空间模型26生成空间分数。空间分数可至少部分地基于手势所穿过的UID12的位置来指示所选键的概率。在某些示例中,空间分数可至少部分地基于手势所穿过的UID12的位置来指示所选键群组的组合概率。
例如,键盘模块22可使用空间模型26来将触摸事件序列中的一个或多个触摸事件的位置分量与图形键盘16B的特定键的键位置相比较。序列中的每个触摸事件的位置分量可包括UID12的一个位置。图形键盘16B中的键的键位置(例如,键的质心)可包括UID12的不同位置。键盘模块22可使用空间模型26来确定两个位置之间的欧几里德距离,并基于该欧几里德距离而生成该键被选择的概率。空间模型26可针对与一个或多个触摸事件共享较小欧几里德距离的键指示比与一个或多个触摸事件共享较大欧几里德距离的键更高的概率。基于与每个键相关联的空间模型概率,键盘模块22可将具有最高空间模型概率的单独键选择聚集成键盘模块22然后可确定表示字符串的键的时间排序序列。每个键的组合概率可表示字符串的空间分数。
在某些示例中,计算设备10包括语言模型28。语言模型28可包括词典。在某些示例中,词典可包括单词列表,并且可包括关于所列单词的附加信息。可用一个或多个数据结构来表示词典,诸如用阵列、列表、树或其它数据结构中的一个或多个。例如,语言模型28可包括以特里数据结构存储的词典。词典特例数据结构可包括多个节点。词典特里的每个节点可表示字母。可将词典特里中的第一节点视为入口节点,其可不对应于字母。在其它示例中,入口节点可对应于字母。每个节点可具有一个或多个子节点。例如,入口节点可具有二十六个子节点,每个对应于英语字母表的字母。
词典特里中的节点的子集每个可包括指示节点是终端节点的标记。词典特里的每个终端节点可指示包括在词典中的完整单词(例如,候选单词)。沿着从入口节点到终端节点的节点路径的节点所指示的字母可拼写出终端节点所指示的单词。在某些示例中,语言模型28可基于安装在计算设备10上的默认字典。在某些示例中,语言模型28可包括安装在计算设备10上的预定义短语群组。在其它示例中,语言模型28可包括多个词典源,其可被存储在计算设备2处或者存储在可被计算设备2经由一个或多个通信信道访问的一个或多个远程计算设备处。
在某些示例中,可在计算设备10的固件中实现语言模型28。语言模型28可包括语言模型频率信息,诸如n-gram语言模型。n-gram语言模型可基于序列(即,P(xi|xi-(n-1),...,xi-1))中的先前项目来提供项目的连续序列中的项目xi(字母、单词、标点字符或其它定界符)的概率分布。例如,bigram语言模型(n-gram模型,其中,n=2)可提供字母“w”跟在字母序列“no”之后的概率。作为另一示例,trigram语言模型(n-gram模型,其中,n=3)可提供单词“to”跟在单词序列“weaim”之后的概率。在某些示例中,trigram语言模型可提供定界字符(例如,逗号定界字符、句号定界字符、分号定界字符)位于第一字符串与第二字符串之间的概率。例如,trigram语言模型可提供逗号定界字符位于第一字符串“example”与第二字符串“the”之间的概率。在某些示例中,语言模型28包括具有集成语言模型频率信息的词典特里。例如,词典特里的每个节点可包括字母的表示和概率值。
键盘模块22可访问计算设备10的语言模型28以基于对应于手势的键序列来递增地确定用于一组一个或多个字符串的语言分数。字符串可以是在语言模型28中建模的单词的前缀。随着键盘模块22接收到一个或多个手势的指示,键盘模块22可递增地确定对应于该前缀的空间和语言分数。使用空间和语言分数,键盘模块22可基于每个相应字符串的空间和语言分数来确定每个字符串的组合分数(例如,对准分数)。键盘模块22可随着键盘模块22确定后续手势指示来递增地更新空间、语言和/或对准分数。键盘模块22可如在本公开中进一步描述的那样按照前缀相应的对准分数将其排名。键盘模块22然后可基于前缀来输出字符串、单词、短语等。键盘模块22可搜索或“向前看”以确定分别地对应于前缀的语言模型28中的一个或多个单词。例如,给定字符串t-r-u,键盘模块22可使用语言模型28来确定字符串truly的概率。键盘模块22可基于该概率来确定语言分数。这样,在给定语言背景中具有较高概率的语言模型28中的字符串可具有较高语言分数。
在某些示例中,键盘模块22至少部分地基于每个相应字符串的相应空间和语言模型分数来确定每个前缀的对准分数。字符串的对准分数因此可表示字符串的概率。键盘模块22可按照从最可能字符串到最不可能字符串的递减顺序按对准分数将字符串群组中的每个字符串排序。在某些示例中,键盘模块22可基于具有最高概率的一个或多个前缀来确定一个或多个单词。UID12可在建议字符串区18A至18C中将此类字符串输出为建议字符串。在其它示例中,可在编辑区16A处输出具有最高概率的一个或多个候选字符串。
在某些示例中,计算设备10可递增地接收指示错误的手势输入的用户输入的指示。也就是说,手势路径可能并未很好地与语言模型28中的单词对准。本公开的技术不是基于手势所指示的一个或多个不正确键而从词典输出不太可能的单词,而是可通过使用修正数据来递增地确定备选假设而基于连续手势输入来改善单词确定和/或预测。例如,如本文所述的每个标志(token)可表示用于手势的单词前缀—例如,标志“w-?”可表示从字母“w”开始的手势的假设,但其余字母尚未被识别。实现本公开的技术的计算设备可响应于接收到手势输入的进一步指示而使该标志前进以考虑单词的可能下一字母(例如“w-e-?”、“w-i-?”等)。计算设备可将可能下一字母中的每一个与手势路径相比较以确定手势是否实际上通过这些可能下一字母。
本技术可考虑单词前缀的一个或多个字符位置处的不同编辑或假设以生成可能单词候选。换言之,如果手势路径并未与给定单词前缀匹配(例如,匹配的概率并不满足阈值),则本技术可考虑由于预期单词中的拼写/编辑错误而引起的一个或多个备选假设。因此,本技术可例如允许计算设备使w-i-?手势对准到w-e-?单词候选,虽然该手势并未通过或者甚至接近于字母“e”。此类技术可放松对于连续手势输入的约束,否则其将要求手势路径与预期单词的每个字符匹配。通过生成备选假设以放松对连续手势输入的此类约束,本公开的技术可提供改善的单词预测和因此在录入输入时的改善的用户体验。
出于示例性目的,参考图1来进一步详细地描述本技术。在图1的示例中,计算设备10输出包括多个键的图形键盘16B以用于显示。例如,键盘模块22可生成包括图形键盘16B的表示的数据。UI模块20可生成用户界面14并基于表示图形键盘16B的数据而在用户界面14中包括图形键盘16B。UI模块20可向UID12发送信息,其包括用于在UID12的存在敏感屏幕处显示用户界面14的指令。UID12可接收该信息并促使UID12的存在敏感屏幕呈现用户界面14,其包括编辑区16A、图形键盘16B以及建议字符串区18A至18C。图形键盘16B可包括多个键。
键盘模块22可随着用户执行手势而递增地确定手势所指示的键群组。例如,键盘模块22可接收在UID12处检测到的手势的一个或多个指示。在一个示例中,手势可以是连续运动手势,其包括输入单元(例如,手指、钢笔、触针等)从UID12的第一位置到UID12的第二位置的运动,使得从第一位置到第二位置执行的手势在手势执行时自始至终被UID12检测到。例如,诸如当UID12包括触摸敏感显示器时,手势可包括输入单元从第一位置到第二位置的运动,在输入单元与UID12之间具有基本上恒定的接触。如图1的示例中所示,UID12可检测包括由用户的手指提供的沿着手势路径22从显示“B”键32C的UID12的位置到显示“E”键32D的UID12的位置的手势路径34的手势,使得UID12遍及整个手势路径34检测到手指。
对应于手势路径34的手势可包括多个部分。在某些示例中,可将手势划分成具有基本上等同持续时间的部分。在手势包括多个部分的情况下,该手势可包括最终部分,其可以是在检测到手势完成之前检测到的手势的一部分。例如,可将手势的一部分指定为最终部分,在那里,用户将他/她的手指从与UID12的接近移开,使得手指不再被UID12检测到。
如所示,键盘模块22可接收穿过所述多个键中的键群组的手势的一个或多个指示。在图1的示例中,UI模块6可通过描记通过或接近对应于期望单词的一个或多个字符(例如,对应于单词“benefit”的字符)的图形键盘16B的键的手势路径34而随着用户执行手势来递增地检测在UID12处具有手势路径34的手势。UI模块20可将指示手势路径34的数据发送到手势模块24,其又向键盘模块22发送触摸事件。在某些示例中,UI模块20随着手势路径34被UI设备4检测到而递增地向手势模块24发送指示手势路径34的数据。
键盘模块22可接收手势的指示并确定至少部分地基于单词前缀和手势所穿过的至少一个对准点的对准分数。在某些示例中,键盘模块22可确定对准分数群组,其中,每个对准分数对应于不同的前缀。对准分数可表示所述至少一个对准点指示所述多个键中的键的概率。键盘模块22可通过确定手势路径34所穿过的对准点群组并确定前缀的相应对准分数来确定一个或多个标志,所述相应对准分数每个分别地包括接近于对准点的键的字符。例如,响应于确定手势34的一部分从“B”键32C开始通过“N”键32E,键盘模块22可确定前缀“ben”、“brn”、“bem”、“ven”等的相应对准分数。也就是说,键盘模块22可随着手势路径34最初在“B”键32C附近穿过而确定标志中的前缀“b”。随着手势路径34在“E”键32B附近穿过,键盘模块22可通过创建标志“br”和“be”(还有其它附加标志)而使词典特里中的用于前缀“b”的标志“前进”。
对准点可以是沿着手势路径34的点,其可对应于包括在图形键盘16B中的所述多个键中的键。对准点可包括对应于对准点的所确定位置的一个或多个坐标。例如,对准点可包括对应于用户界面14上的点的笛卡尔坐标。
在某些示例中,键盘模块22基于与手势路径22相关联的多个特征来确定手势路径34所穿过的对准点群组。与手势路径34相关联的所述多个特征可包括手势路径34的一段的长度、速度、曲率、方向等。例如,手势模块24可确定沿着从先前对准点和当前对准点的手势段的长度。为了更好的对准,该长度可更紧密地近似两个对应键盘字母之间的直线距离。在某些示例中,可将对准点与对应于接近于对准点的键的空间模型相比较。这样,键盘模块22可确定更接近于对准点的键的较高概率。
响应于接收到表示手势路径34的至少一部分的数据,手势模块24可如上所述地确定一个或多个标志,每个标志包括单串的多个预测字符。例如,至少部分地基于手势路径34的一部分,键盘模块22可确定一个或多个标志,每个标志包括手势路径34的所述部分所指示的单串预测字符。如以上示例中所述,键盘模块22可将第一标志确定为预测字符串“ben”,其对应于对“B”键32C、“E”键3D和“N”键32E的预测选择的指示。同样地,手势模块8可将第二标志确定为预测字符串“brn”,其对应于对“B”键32C、“R”键32G和“N”键32E的预测选择的指示。键盘模块22可至少部分地基于手势路径34到图形键盘16B的一个或多个键的接近来递增地确定多个此类标志。可使每个标志的每个字符与显示对应于字符的键的UID12的区相关联。键盘模块22可基于相对于UI设备4的显示与标志的一个或多个字符相对应的一个或多个键的区域所观察到的触摸点来确定一个或多个标志。
包括一串预测字符的标志中的每一个可以是包括在词典中的单词的前缀。可在语言模块28中对词典进行建模。键盘模块22可至少部分地基于一个或多个标志来确定一个或多个候选单词。候选单词可以是向用户建议的由手势路径34所指示的键群组组成的单词。作为示例,如上所述,键盘模块34可响应于接收到手势路径34的一部分的指示来确定一个或多个标志,诸如包括预测字符串“ben”的第一标志、包括预测字符串“brn”的第二标志、包括预测字符串“bem”的第三标志或其它标志。标志中的一个或多个可以是包括在词典中的单词的前缀。在某些示例中,键盘模块22可递增地将一个或多个候选单词确定为包括在词典中的单词中的一个或多个,对于其而言标志是前缀。
在某些示例中,键盘模块22可确定包括与包括在键盘16B中的键相关联的字符的前缀的相应对准分数。相应对准分数中的每一个可表示对准点指示键的概率。也就是说,键盘模块22可确定指示手势路径34与在语言模型28中建模的给定单词有多紧密地匹配的对准分数。在某些示例中,标志中的前缀的对准分数可基于表示单词前缀的字符串、手势的一个或多个对准点和/或一个或多个键。例如,单词前缀的对准分数可基于以键的物理位置为参考的对准点的物理位置,并且可基于单词前缀在被附加对应于键的字符时对应于词典中的单词的概率。
在某些示例中,相应对准分数可基于语言模型28。例如,相应对准分数可基于在第一键之后第二键将被选择的概率(例如,在“b”键之后“e”键将被选择的概率)。作为另一示例,相应对准分数可基于第二候选单词将跟在第一候选单词之后的概率(例如,候选单词“benefit”将跟在候选单词“you”之后的概率)。在某些示例中,至少部分地基于语言模型28来选择对于其而言确定相应对准分数的键。在某些示例中,对准分数在存在对准点指示键的较大可能性的情况下较低。在其它示例中,对准分数在存在对准点指示键的较大可能性的情况下较高。
在某些示例中,用户可能在执行手势以录入预期单词时犯错误。例如,如图1中所示,用户可执行手势路径34所指示的连续手势。虽然用户意图录入单词“benefit”,但用户如所示由对应于错误拼写“benefit”的手势路径34录入了手势。键盘模块22可不是基于错误的手势输入而输出非预期单词(例如“Bemidji”),而是确定至少一个备选假设,其至少部分地基于包括前缀“ben”的候选单词“benefit”的错误拼写。换言之,虽然“beni”和/或“benif”的对准分数可能是低的,但键盘模块22可使用至少一个备选字符(例如用“e”来代替来自前缀的“i”)来输出预期单词“benefit”,该备选字符可至少部分地基于包括前缀“ben”的候选单词的错误拼写。
在某些示例中,备选字符可与距对准点的距离大于阈值距离的图形键盘的键相关联。例如,图形键盘的一个或多个相邻键的位置可在对准点的阈值距离内。备选字符可与并非相邻键的键相关联,例如,备选字符可与距对准点的距离大于阈值距离的图形键盘的键相关联。在其它示例中,备选字符可与作为相邻键的键相关联,即备选字符可与距对准点的距离小于或等于阈值距离的图形键盘的键相关联。
键盘模块22在某些示例中可使用修正数据30来确定至少一个备选字符,其至少部分地基于包括给定单词前缀的候选单词的错误拼写。错误拼写可以是不正确的拼写。作为非限制性示例,错误拼写可以是包括词汇中的单词的不正确拼写的字符串(包括在语言中使用的大量单词的词汇可被包括在被计算设备10使用和/或在语言模型28中建模的字典中)。修正数据30一般地可包括指示备选字符和/或一个或多个字符的组合的数据。备选字符和/或字符的组合可至少部分地基于单词或单词的部分或多词短语的错误拼写。例如,修正数据30可包括指示字母“i”与“e”之间的语音关系的数据,因为在语音学上,字母“i”和“e”可能被错误地互换,例如被用户的错误拼写“替代”(例如,用户意图录入单词“benefit”,但是替代地用手势表示b-e-n-i-f-i-t)。因此,键盘模块22可响应于确定前缀“beni”与低对准分数(例如,小于阈值的对准分数)相关联而基于此类数据来确定备选假设“bene”。
在某些示例中,修正数据30可包括指示一个或多个字符和/或字符组合之间的位置关系的数据。例如,修正数据30可包括指示字母“i”和“e”之间的位置关系的数据,因为在位置上,字符“i”和“e”可能被错误地交换,例如被用户“换位”(例如,用户意图录入单词“weird”,但是替代地用手势表示w-i-e-r-d)。键盘模块22可响应于确定前缀“wier”与低对准分数(例如,小于阈值的对准分数)相关联而基于此类数据来确定备选假设“weir”。
在另一示例中,修正数据30可包括指示一个或多个字符和/或字符组合的遗漏的数据。例如,修正数据30可包括指示字符“h”与字符组合“Faren”之间的遗漏关系的数据,因为字符“h”可能被用户错误地遗漏(例如,用户意图录入单词“Farhenheit”,但是替代地用手势表示F-a-r-e-n-h-e-i-t)。键盘模块22可响应于确定前缀“Faren”与低对准分数相关联而基于此类数据来确定备选假设“Farhen”。
在其它示例中,修正数据30可包括指示一个或多个字符和/或字符组合的错误插入的数据。例如,修正数据30可包括指示字符“e”与字符组合“uly”之间的插入关系的数据,因为字符“e”可能被用户错误地插入(例如,用户意图录入单词“truly”,但是替代地用手势表示t-r-u-e-l-y)。键盘模块22可响应于确定前缀“truel”与低对准分数相关联而基于此类数据来确定备选假设“truly”。虽然上述示例指示了包括在修正数据30中的各种形式和/或类型的数据,但在修正数据30中可包括基于一个或多个规则(例如,关于错误拼写、错误发音、语义错误等)而指示字符和/或字符组合之间的关系的任何其它此类适当修正数据。
在图1的示例中,键盘模块22可确定“beni”的对准分数未能满足阈值。例如,键盘模块22可确定“beni”的对准分数小于该阈值。该阈值可以是由计算设备10的工程师和/或用户配置的值。在其它示例中,键盘模块22可动态地确定阈值。响应于确定对准分数未能满足该阈值,键盘模块22可确定至少一个备选字符,其至少部分地基于包括单词前缀的错误拼写。例如,在图1的示例中,键盘模块22可基于指示“e”可替代备选字符“i”的修正数据30中的关系来确定备选假设“bene”(例如,用户可能已在手势中进行“i”针对“e”的语音替代错误)。在某些示例中,键盘模块22可基于如修正数据30所指示的“i”替代“e”而创建包括单词前缀“bene”、例如备选假设的标志。
键盘模块22可确定包括在标志中的单词前缀“bene”的备选对准分数。由于可在语言模型28中对单词“benefit”进行建模且在某些示例中具有比以“beni”开头的单词更高的概率,所以单词前缀“bene”的备选对准分数可高于“beni”。在某些示例中,键盘模块22可在不创建包括备选假设的标志的情况下如在本文中进一步描述的那样确定对准分数。
响应于确定备选对准分数满足阈值,键盘模块22可向UI模块20发送数据,该数据促使UID12输出候选单词以用于显示,该候选单词至少部分地基于备选假设“bene”中的替代“i”的备选字符“e”。例如,键盘模块22可搜索或“向前看”以确定分别地对应于前缀“bene”的语言模型28中的一个或多个候选单词。例如,给定字符串“bene”,键盘模块22可使用语言模型28来确定候选单词“benefit”、“beg”和“benoit”的相应概率。键盘模块22可因此输出候选单词“benefit”、“beg”和“benoit”。在某些示例中,给定单词前缀“bene”,与候选单词“benefit”、“beg”和“benoit”相关联的概率可大于任何其它候选单词。在其它示例中,与候选单词“benefit”、“beg”和“benoit”相关联的概率可大于一个或多个阈值。例如,阈值可以是等于与大于与单词前缀的第二子集中的单词前缀相关联的对准分数的一个或多个对准分数相关联的单词前缀的第一子集的数量的值。
在某些示例中,键盘模块22可针对每个和/或一个或多个修正施加处罚(例如,应用一个或多个错误修正操作),因此具有许多拼写修正的单词将具有较低对准分数。也就是说,随着键盘模块22生成备选单词前缀和/或确定备选对准分数,键盘模块22可对与被键盘模块22应用一个或多个错误修正操作的单词前缀相关联的对准分数施加处罚值。此外,为了改善性能,键盘模块22可限制针对单个单词允许的拼写修正的数目,或者相对于字母数目限制拼写修正的频率(例如,每N个字母至多1次修正),如在图8中进一步描述的。
在施加处罚的某些示例中,键盘模块22可响应于确定至少一个备选字符而确定处罚值,所述至少一个备选字符至少部分地基于包括单词前缀的至少一部分的错误拼写(例如,应用错误修正操作)。该处罚值可以是由用户和/或工程师设定或者如在本文中进一步描述的那样动态地确定的值。键盘模块22可至少部分地基于所述至少一个备选字符来确定备选对准分数。在此类示例中,键盘模块22可至少部分地基于处罚值来确定备选对准分数。例如,键盘模块22可将处罚值与备选对准分数相加或者生成新的备选对准分数,其为对准分数与处罚值的乘积,这样,键盘模块22可对备选对准分数施加处罚值。在图2至9的示例中描述了本公开的技术的更多细节。
图2是根据本公开的一个或多个方面的图示出示例计算设备的框图。下面在图1的背景下描述图2的计算设备10。图2图示出计算设备10的仅一个特定示例,并且在其它情况下可使用计算设备10的许多其它示例且其可包括已包括在示例计算设备10中的组件的子集,或者可包括图2中未示出的附加组件。
如图2的示例中所示,计算设备10包括用户接口设备12(例如,存在敏感显示器)、一个或多个处理器40、一个或多个输入设备42、一个或多个通信单元44、一个或多个输出设备46以及一个或多个存储设备48。计算设备10的存储设备48还包括UI模块20、键盘模块22、手势模块24、空间模型26、语言模块28、修正数据30、活动射束52和下一射束54。通信信道50可将组件12、40、42、44、46、48、20、22、24、26、28、30、52、54以及56中的每一个互连以用于组件间通信(在物理上、在通信上和/或在操作上)。在某些示例中,通信信道50可包括系统总线、网络连接、进程间通信数据结构或用于传送数据的任何其它构造。
计算设备10的一个或多个输入设备42可接收输入。输入的示例是触觉、音频和视频输入。在一个示例中,计算设备10的输入设备42包括鼠标、键盘、语音响应系统、摄像机、扩音器或用于检测来自人类或机器的输入的任何其它类型的设备。在某些示例中,输入设备42可以是存在敏感输入设备,其可包括存在敏感屏幕、触摸敏感屏幕等。
计算设备10的一个或多个输出设备46可生成输出。输出的示例是触觉、音频以及视频输出。在一个示例中,计算设备10的输出设备46包括存在敏感屏幕、声卡、视频图形适配卡、扬声器、阴极射线管(CRT)监视器、液晶显示器(LCD)或用于向人类或机器生成输出的任何其它类型的设备。输出设备46可包括显示设备,诸如阴极射线管(CRT)监视器、液晶显示器(LCD)或用于生成视觉输出的任何其它类型的设备。
计算设备10的一个或多个通信单元44可通过在一个或多个网络上传送和/或接收网络信号而经由一个或多个网络与外部设备通信。例如,计算设备10可使用通信单元44在诸如蜂窝式无线电网络之类的无线电网络上传送和/或接收无线电信号。同样地,通信单元44可在诸如GPS网络之类的卫星网络上传送和/或接收卫星信号。通信单元44的示例包括网络接口卡(例如,诸如,以太网卡)、光学收发机、射频收发机、GPS接收机或可以发送和/或接收信息的任何其它类型的设备。通信单元44的其它示例可包括在移动设备中找到的GPS、3G、4G以及无线电以及通用串行总线(USB)控制器。
在某些示例中,计算设备10的UID12可包括输入设备42和/或输出设备46的功能。在图2的示例中,UID12可以是或者可包括存在敏感输入设备,诸如存在敏感屏幕、触摸敏感屏幕等。在某些示例中,存在敏感屏幕可检测到在存在敏感屏幕处和/或附近的对象。作为一个示例范围,UID12可检测诸如在存在敏感屏幕的2英寸或以下内的手指或触针之类的对象。存在敏感屏幕可确定在该处检测到对象的存在敏感屏幕的位置(例如,(x,y)坐标)。在另一示例范围内,存在敏感屏幕可检测距离存在敏感屏幕6英寸或以下的对象,并且还可以有其它范围。存在敏感屏幕可使用电容、电感和/或光学识别技术来确定由用户的手指选择的屏幕位置。在某些示例中,UID12如相对于输出设备46所述地使用触觉、音频或视频刺激向用户提供输出。在图2的示例中,UID12呈现用户界面,诸如图1的用户界面14。
虽然被示为计算设备10的内部组件,但UID12还表示与计算设备10的其它组件共享数据路径以用于传送和/或接收输入和输出的外部组件。例如,在一个示例中,UID12表示位于和在物理上被连接到计算设备10的外部包装(例如,移动电话上的屏幕)的计算设备10的内置组件。在另一示例中,UID12可以是位于计算设备10的包装外面且在物理上与之分离的计算设备10的外部组件(例如,监视器、投影仪等,其与平板计算机共享有线和/或无线数据路径)。
计算设备10内的一个或多个存储设备48可存储信息以用于在计算设备10的操作期间处理。在某些示例中,存储设备48是临时存储器,意味着存储设备48的主要目的并不是长期存储。可将计算设备10上的存储设备48配置成作为易失性存储器用于短期信息存储且因此在断电的情况下不保持存储的内容。易失性存储器的示例包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)以及本领域中已知的其它形式的易失性存储器。
在某些示例中,存储设备48还包括一个或多个计算机可读存储介质。可将存储设备48配置成比易失性存储器存储更大量的信息。还可将存储设备48配置成用于作为非易失性存储器空间的长期信息存储并在通电/断电循环之后保持信息。非易失性存储器的示例包括磁性硬盘、光盘、软盘、闪速存储器或电可编程存储器(EPROM)或电可擦可编程存储器(EEPROM)存储器的形式。存储设备48可存储与UI模块20、键盘模块22、手势模块24、空间模型26、语言模块28、修正数据30、活动射束52、下一射束54以及操作系统56相关联的程序指令和/或数据。
一个或多个处理器40可在计算设备10内实现功能和/或执行指令。例如,计算设备10上的处理器40可接收并执行由存储设备48存储的指令,该指令执行UI模块20、键盘模块22、手势模块24、空间模型26、语言模块28、修正数据30、活动射束52、下一射束54以及操作系统56的功能。由处理器40执行的这些指令可促使计算设备10在程序执行期间在存储设备48内存储信息。处理器40可执行UI模块20、键盘模块22、手势模块24、空间模型26、语言模块28、修正数据30、活动射束52、下一射束54以及操作系统56的指令以促使UID12显示用户界面14。也就是说,UI模块20、键盘模块22、手势模块24、空间模型26、语言模块28、修正数据30、活动射束52、下一射束54以及操作系统56可被处理器40操作以执行各种动作,包括在UID12的存在敏感屏幕的位置处接收手势的指示并促使UID呈现用户界面14。
计算设备2可包括操作系统56。在某些示例中,操作系统56控制计算设备2的组件的操作。例如,在一个示例中,操作系统56促使UI模块20、手势模块24以及键盘模块22与处理器40、通信单元44、存储设备48、输入设备42以及输出设备46的通信。
计算设备2可包括活动射束52。在某些示例中,活动射束52被配置成存储由键盘模块22生成的一个或多个标志。活动射束52可被包括在存储设备48内。计算设备2还可包括下一射束54。在某些示例中,下一射束54被配置成存储由键盘模块22生成的一个或多个标志。可在存储设备48内包括下一射束56。在某些示例中,修正数据30可保持错误拼写字典,其中一个或多个显式条目包括指示类似于“wierd”的常见手势错误拼写应被修正成“weird”的数据。
计算设备10可包括为了明了起见在图2中未示出的附加组件。例如,计算设备10可以包括电池以向计算设备10的组件提供电力。同样地,图2中所示的计算设备2的组件可能并非在计算设备2的每个示例中都是必需的。例如,在某些配置中,计算设备2可不包括通信单元44。
根据本公开的技术,键盘模块22可向UI模块20发送数据,该数据促使UID12输出包括多个键的图形键盘16B以用于显示。用户可在UID12处执行穿过与图形键盘16B的键相对应的图形键盘16B的一个或多个区域的手势。响应于该手势,UID12可检测到手势路径,诸如图1的手势路径34,其可被UI模块20作为手势路径数据接收到。该手势路径可包括一个或多个部分,UI模块20可随着用户执行手势而递增地确定该UID。手势模块24可从UI模块20接收手势路径数据,并将对应于该手势路径数据的如图1中所述的一个或多个触摸事件组合。在某些示例中,UI模块20随着手势路径34被UID12检测到而递增地向手势模块24发送手势路径数据。
响应于从手势模块24接收到与从“B”键32C至“E”键32D的手势路径34的一部分相对应的触摸事件,键盘模块22可创建一个或多个标志,其包括对应于手势路径34所穿过的键的前缀。例如,键盘模块22可在可包括在语言模型28中的词汇的入口节点处创建标志。在某些示例中,可将语言模型28实现为特里数据结构。每个可移动标志可表示词典中的节点(即,部分单词和/或短语)与沿着手势的点之间的部分对准。随着标志前进至词典中的子节点(即,短语的单词和/或接下来的单词中的接下来的字母),手势上的对应对准点也可前进。随着标志前进至单词中的下一字母或短语中的下一单词,本公开的技术可确定标志需要沿着手势路径前进多远。例如,本公开的技术可包括搜索与键的字母最佳地对准的沿着手势的对准点。
如图1中所述,词典特里数据结构可包含多个节点,每个节点可表示字母。键盘模块22可将每个标志推送到活动射束52中。手势模块8可随着键盘模块22沿着手势路径34递增地接收到用户输入的进一步指示而在标志的子节点中的每一个上创建标志拷贝。例如,在图1的示例中,键盘模块22可在表示字母“B”的子节点上创建第一标志拷贝(例如,对应于“B”键32C的预测键选择)并在表示字母“V”的子节点上创建第二标志拷贝(例如,对应于“V”键32H的预测键选择)。
针对每个标志拷贝,键盘模块22可基于与手势路径数据相关联的一个或多个特征来确定手势所穿过的一个或多个对准点。在图1的示例中,键盘模块22可确定第一对准点位于手势路径34的起始处。在某些示例中,键盘模块22可在沿着手势路径的点处确定路径的曲率(例如,接近于“E”键32D)。在此类示例中,键盘模块22可确定其中存在高曲率(其中手势路径在该点处突然地改变方向)的点更有可能是对准点。在其它示例中,键盘模块22可确定中间段曲率(沿着手势的两个点之间的手势路径的最大曲率)。在另一示例中,键盘模块22可确定其中存在高中间段曲率的点不太可能是下一对准点。在某些示例中,键盘模块22可基于检测到手势路径时的速度而确定点是对准点。在某些示例中,检测的较慢速率指示该点是对准点。在某些示例中,高中间段曲率可指示在第一点与第二点之间存在拐角,暗示第二点不太可能是下一对准点(即,在中间遗漏了一点)。在某些示例中,校准点可基于两个或更多点之间的手势段的点与从第一键到第二键的理想线之间的最大距离。理想线可以是例如从第一键到第二键的最短距离。为了更好的对准,该最大距离可以是小的,表示手势段并未偏离理想线。
针对每个对准点,手势模块8可确定用于所述多个键中的至少两个键中的每一个的相应对准分数。相应对准分数中的每一个可表示对准点指示所述多个键中的键的概率。在图1的示例中,键盘模块22可确定表示第一对准点指示表示字母“B”的节点的概率的第一对准分数和表示第一对准点指示表示字母“V”的节点的概率的第二对准分数。在某些示例中,键盘模块22然后可用相应对准点和/或对准分数来更新标志拷贝(例如,其包括“B”)并将该标志拷贝推到下一射束54中。在图1的示例中,键盘模块22可将第一对准分数添加到第一标志拷贝(例如,其包括“B”)并将第二成本值添加到第二标志拷贝(例如,其包括“V”)。
键盘模块22可确定用于所述多个键中的所述至少两个键中的每一个的相应物理分数。相应物理成本值中的每一个可表示对准点群组中的对准点的物理特征指示所述多个键中的键的概率。例如,键盘模块22可通过评估对准点群组中的对准点与键的键盘位置之间的欧几里德距离来确定相应物理分数。在其它示例中,键盘模块22可使用空间模型26基于对应于手势路径34的对准点的位置和空间模型来确定键的概率。
所述多个键的物理特征可被包括在键区中。例如,键区可针对所述多个键中的每一个包括坐标集合,其对应于其中显示每个键的图形键盘16B的位置和/或区域。在图1的示例中,键盘模块22可基于第一对准点与“B”键32C之间的欧几里德距离来确定第一物理分数。在某些示例中,键盘模块22可通过将第一对准点和第二对准点之间的欧几里德距离与第一对准点所指示的第一键与可用第二对准点表示的第二键之间的欧几里德距离相比较来确定物理分数。
键盘模块22可通过确定用于所述多个键中的所述至少两个键中的每一个的相应语言分数来确定用于包括在标志中的前缀的相应对准分数。相应语言分数中的每一个可表示所述多个键中的键所表示的字母被包括在基于该标志的候选单词中的概率。该语言分数可基于语言模型28。例如,语言分数可表示对应于字母的给定键基于包括在语言模型28中的可能单词而被选择的可能性。在图1的示例中,键盘模块22可基于指示字母“B”是单词中的第一字母的频率的语言模型28中的条目来确定语言分数。如图1中所述,用于包括单词前缀“B”的标志的对准分数可基于用于“B”的空间分数和语言分数。例如,键盘模块22可将用于第一标志中的单词前缀“B”的空间和语言分数的乘积确定为对准分数。
在某些示例中,键盘模块22还可确定标志是否是词典的终端节点。词典的终端节点可以是表示包括在词典中的完整单词的节点。例如,在图1的示例中,键盘模块22可至少部分地基于手势路径34的一部分的指示来确定包括单串预测字符的标志。另外,标志本身可表示包括在词典中的完整单词,诸如英语中的完整单词。响应于确定标志表示包括在词典中的候选单词,键盘模块22可生成下一单词标志。该下一单词标志可指示基于手势路径而确定的所述多个键中的下一键是包括在词典中的第二单词的前缀。
响应于接收到手势的一部分将选择所述多个键中的下一键的指示,手势模块键盘模块22可选择标志并在词典中的标志的子节点中的每一个上创建标志拷贝。每个子节点可包括接收到的手势部分所指示的预测字符。例如,键盘模块22可选择包括单词前缀“beni”的标志。如图1中所示,随着对应于手势路径34的手势移动至“F”键32F,计算设备10可创建“beni”的标志拷贝,并附加对应于接近手势的“F”键32F的字符“f”,以便创建单词前缀“benif”。键盘模块22可以类似方式在标志拷贝中创建一个或多个附加单词前缀,诸如单词前缀“benig”、“benit”等。
如图1中所述,键盘模块22可确定用于包括在活动射束52中的每个标志的对准分数。在某些示例中,键盘模块10可确定至少一个备选字符,其至少部分地基于包括被包括在标志中的一个或多个中的单词前缀的至少一部分的错误拼写。例如,如图1中所述,键盘模块22可通过在单词前缀“benif”中用“e”替代“i”来生成备选单词前缀“benef”。键盘模块22可以将新标志中的备选单词前缀存储在活动射束52中,如在图4至7中进一步描述的。
在某些示例中,键盘模块22可确定用于单词前缀“benef”的对准分数。在某些示例中,键盘模块22可确定至少一个备选字符,其至少部分地基于包括单词前缀的至少一部分的错误拼写。例如,响应于确定与一个或多个单词前缀相关联的一个或多个对准分数未能满足阈值,键盘模块22可确定至少一个备选字符,其至少部分地基于包括单词前缀的至少一部分的错误拼写。在其它示例中,键盘模块22可确定至少一个备选字符,其至少部分地基于包括单词前缀的至少一部分的错误拼写,而不确定与单词前缀相关联的对准分数是否满足阈值。
键盘模块22可使用被按类型识别的一个或多个错误修正操作来确定至少一个备选字符,其至少部分地基于包括单词前缀的至少一部分的错误拼写。错误修正操作的第一示例可包括在图4A至4C中描述的技术以执行替代错误修正,并且错误修正操作的类型可以是“替代错误修正”。错误修正操作的第二示例可包括在图5A至5C中描述的技术以执行删除错误修正,并且错误修正操作的类型可以是“删除错误修正”。错误修正操作的第三示例可包括在图6A至6C中描述的技术以执行插入错误修正,并且错误修正操作的类型可以是“插入错误修正”。错误修正操作的第四示例可包括在图7A至7C中描述的技术以执行换位错误修正,并且错误修正操作的类型可以是“换位错误修正”。虽然在本文中描述了此类示例错误修正操作,但是键盘模块22可使用其它适当的示例错误修正技术来确定至少一个备选字符,其至少部分地基于包括单词前缀的至少一部分的错误拼写。
在某些示例中,键盘模块22可确定至少部分地基于备选字符的备选对准分数。例如,键盘模块22可确定被添加到活动射束52的新标志拷贝中包括的备选单词前缀“benef”的对准分数。响应于确定备选对准分数满足第二阈值,计算设备10可至少部分地基于备选字符输出候选单词以用于显示。例如,可按照从最大(或最高)对准分数至最小(或最低)对准分数的排名顺序将活动射束52中的标志中的每一个排序。键盘模块22可至少部分地基于与满足第二阈值的对准分数相关联的一个或多个单词前缀来确定一个或多个候选单词。例如,键盘模块22可确定与最大对准分数相关联的单词前缀满足阈值,并且因此键盘模块22可至少部分地基于单词前缀而输出一个或多个候选单词。在某些示例中,键盘模块22可确定多个单词前缀满足第二阈值并因此输出多个候选单词,其分别基于满足第二阈值的所述多个单词前缀。在某些示例中,与备选单词前缀相关联的备选对准分数可满足阈值,并且因此,键盘模块22可至少部分地基于可被包括在备选单词前缀中的备选字符而输出一个或多个候选单词。虽然出于示例性目的相对于连续手势输入描述了本公开的技术,但此类技术也可应用于敲击输入和基于敲击的键盘,其中用户可通过单独地敲击图形键盘的键来输入字符。
如图1中所述,键盘模块22可对对准分数施加处罚值。在某些示例中,键盘模块22可对对准分数施加不同的处罚值。例如,键盘模块22可基于为了生成备选对准分数而应用的错误修正操作而对对准分数施加较大处罚值或较小处罚值。键盘模块22可例如保持不同处罚值的分级结构和/或映射。每一个或多个错误修正操作可与一种类型的错误修正相关联,并且键盘模块22可保持多个不同的类型。每个类型可与不同的处罚值相关联。在某些示例中,不同的处罚值可以是字母相关和/或多字母相关的,使得单个字母修正可应用较小的处罚值,同时键盘模块22可基于n的大小而对n字母修正施加较大处罚值。响应于确定备选对准分数,键盘模块22可从多个错误修正操作中确定键盘模块22用来确定备选对准分数的错误修正操作的类型。键盘模块22可从多个处罚值中选择处罚值。所述多个处罚值中的每个处罚值可被按照排名顺序排序。在某些示例中,每个处罚值与至少一个类型的错误修正操作相关联。
作为一个示例,在修正数据30中所指示的常见错误拼写可与小于第二处罚值的第一处罚值相关联。第二处罚值可与小于第三处罚值的语音替代(例如,“i”被“e”替代)相关联。第三处罚值可与换位错误相关联。如果键盘模块22基于常见错误拼写来执行生成备选对准分数的错误修正操作,则键盘模块22可对备选对准分数施加第一处罚值。在另一示例中,如果键盘模块22基于语音替代来执行生成备选对准分数的错误修正操作,则键盘模块22可对备选对准分数施加第二处罚值。在另一示例中,如果键盘模块22基于换位来执行生成备选对准分数的错误修正操作,则键盘模块22可对备选对准分数施加第三处罚值。
在某些示例中,键盘模块22可通过使额外修正扩展仅限于活动射束中的前N个标志(其中N通常小于常规束大小)来在不大大地扩展搜索空间的情况下改善执行由于错误修正操作而引起的这些额外标志扩展。换言之,键盘模块22可仅针对与最大对准分数相关联的活动射束中的单词前缀的子集确定对准分数和/或备选单词前缀,所述最大对准分数每个大于与活动射束的第二子集中的单词前缀相关联的对准分数。在某些示例中,包括备选单词前缀的每个标志可包括标记或其它适当数据,其指示标志包括备选单词前缀。键盘模块22可仅将阈值数量的标志存储在活动射束中,所述标志包括指示该标志备选单词前缀的标记或其它适当数据。这样,如果键盘模块22确定包括备选单词前缀的活动射束中的标志的数量满足阈值,则键盘模块22将不会生成附加备选单词前缀(和/或将包括备选单词前缀的标志)直至包括备选单词前缀的一个或多个标志被从活动射束移除为止。
图3是根据本公开的一个或多个技术图示出在远程设备处输出图形内容以用于显示的示例计算设备的框图。图形内容一般地可包括可被输出以用于显示的任何视觉信息,诸如文本、图像、一组活动图像等。图3中所示的示例包括计算设备60、存在敏感显示器64、通信单元70、投影仪80、投影仪屏幕82、移动设备86以及视觉显示设备90。虽然在图1和2中出于示例的目的而示为独立计算设备10,但诸如计算设备60之类的计算设备一般地可以是包括处理器或用于执行软件指令的其它适当计算环境的任何组件或系统,并且例如不需要包括存在敏感显示器。
如图3的示例中所示,计算设备60可以是包括如相对于图2中的处理器40所述的功能的处理器。在此类示例中,计算设备60可通过通信信道62A被操作耦合到存在敏感显示器64,该通信信道62A可以是系统总线或其它适当连接。计算设备60还可通过通信信道62B被操作耦合到下面进一步描述的通信单元70,该通信信道62B也可以是系统总线或其它适当连接。虽然在图3中单独地示为示例,但计算设备60也可通过任何数目的一个或多个通信信道被操作耦合到存在敏感显示器64和通信单元70。
在诸如先前在图1至2中由计算设备10举例说明的其它示例中,计算设备可指的是便携式或移动设备,诸如移动电话(包括智能电话)、膝上型计算机等。在某些示例中,计算设备可以是台式计算机、平板计算机、智能电视平台、照相机、个人数字助理(PDA)、服务器、主机等。
存在敏感显示器64,其可以是诸如图1中所示的UID12之类的用户界面设备,可包括显示设备66和存在敏感输入设备68。显示设备66可例如从计算设备60接收数据并显示图形内容。在某些示例中,存在敏感输入设备68可使用电容、电感和/或光学识别技术来确定存在敏感显示器64处的一个或多个用户输入(例如,连续手势、多触摸手势、单触摸手势等),并使用通信信道62A将此类用户输入的指示发送到计算设备60。在某些示例中,存在敏感输入设备68可在物理上位于显示设备66之上,使得当用户将输入单元定位于由显示设备66显示的图形元素上时,在该处存在敏感输入设备68对应于在该处显示图形元素的显示设备66的位置。
如图3中所示,计算设备60还可包括通信单元70和/或与之操作耦合。通信单元70可包括如图2中所述的通信单元44的功能。通信单元70的示例可包括网络接口卡、以太网卡、光学收发机、射频收发机或可以发送和接收信息的任何其它类型的设备。此类通信单元的其它示例可包括蓝牙、3G以及WiFi无线电计算设备、通用串行总线(USB)接口等。计算设备60还可包括一个或多个其它设备和/或与之操作耦合,例如输入设备、输出设备、存储器、存储设备等,其在图3中出于简洁和图示的目的而未示出。
图3还图示出投影仪80和投影仪屏幕82。投影设备的其它此类示例可包括电子白板、全息显示设备以及用于显示图形内容的任何其它适当设备。投影仪80和投影仪屏幕82可包括使得相应设备能够与计算设备60通信的一个或多个通信单元。在某些示例中,一个或多个通信单元可使得投影仪80与投影仪屏幕82之间能够进行通信。投影仪80可从计算设备60接收包括图形内容的数据。投影仪80响应于接收到数据而可将图形内容投影到投影仪屏幕82。在某些示例中,投影仪80可使用光学识别或其它适当技术确定在投影仪屏幕处的一个或多个用户输入(例如,连续手势、多触摸手势、单触摸手势等)并使用一个或多个通信单元将此类用户输入的指示发送到计算设备60。在此类示例中,投影仪屏幕82可能是不必要的,并且投影仪80可在任何适当介质上投影图形内容,并使用光学识别或其它此类适当技术来检测一个或多个用户输入。
在某些示例中,投影仪屏幕82可包括存在敏感显示器84。存在敏感显示器84可包括如在本公开中所述的UID12的功能子集或所有功能。在某些示例中,存在敏感显示器84可包括附加功能。投影仪屏幕82(例如,电子白板)可从计算设备60接收数据并显示图形内容。在某些示例中,存在敏感输入设备84可使用电容、电感和/或光学识别技术来确定投影仪屏幕82处的一个或多个用户输入(例如,连续手势、多触摸手势、单触摸手势等),并使用一个或多个通信单元将此类用户输入的指示发送到计算设备60。
图3还图示出移动设备86和视觉显示设备90。移动设备86和视觉显示设备90可每个包括计算和连接能力。移动设备86的示例可包括电子阅读设备、可转换笔记本设备、混合式平板设备等。视觉显示设备90的示例可包括其它半固定设备,诸如电视、计算机监视器等。如图3中所示,移动设备86可包括存在敏感显示器88。视觉显示设备90可包括存在敏感显示器92。存在敏感显示器88、92可包括如本公开中描述的UID12的功能的子集或所有功能。在某些示例中,存在敏感显示器88、92可包括附加功能。在任何情况下,存在敏感显示器92例如可从计算设备60接收数据并显示图形内容。在某些示例中,存在敏感显示器92可使用电容、电感和/或光学识别技术来确定投影仪屏幕82处的一个或多个用户输入(例如,连续手势、多触摸手势、单触摸手势等),并使用一个或多个通信单元将此类用户输入的指示发送到计算设备60。
如上所述,在某些示例中,计算设备60可输出图形内容以便在通过系统总线或其它适当通信信道耦合到计算设备60的存在敏感显示器64处显示。计算设备60还可输出图形内容以用于在一个或多个远程设备处显示,诸如投影仪80、投影仪屏幕82、移动设备86以及视觉显示设备90。例如,计算设备60可根据本公开的技术执行一个或多个指令以生成和/或修改图形内容。计算设备60可将包括图形内容的数据输出到计算设备60的通信单元,诸如通信单元70。通信单元70可将数据发送到远程设备中的一个或多个,诸如投影仪80、投影仪屏幕82、移动设备86和/或视觉显示设备90。这样,计算设备60可输出图形内容以用于在远程设备中的一个或多个处显示。在某些示例中,远程设备中的一个或多个可在包括在相应远程设备中和/或操作耦合到相应远程设备的存在敏感显示器处输出图形内容。
在某些示例中,计算设备60可不在被操作耦合到计算设备60的存在敏感显示器64处输出图形内容。在其它示例中,计算设备60可输出图形内容以用于在通过通信信道62A耦合到计算设备60的存在敏感显示器64处且在一个或多个远程设备处显示。在此类示例中,可在每个相应设备处基本上同时地显示图形内容。例如,可以由将包括图形内容的数据发送到远程设备的通信延迟而引入某个时延。在某些示例中,由计算设备60生成且输出以便在存在敏感显示器64处显示的图形内容可不同于被输出以用于在一个或多个远程设备处显示的图形内容显示。
计算设备60可使用任何适当通信技术来发送和接收数据。例如,计算设备60可使用网络链路72A操作耦合到外部网络74。图3中所示的远程设备中的每一个可通过相应网络链路72B、72C以及72D中的一个操作耦合到网络外部网络74。外部网络74可包括网络集线器、网络交换机、网络路由器等,其被可操作地互耦合,从而提供计算设备60与图3中所示的远程设备之间的信息交换。在某些示例中,网络链路72A至72D可以是以太网、ATM或其它网络连接。此类连接可以是无线和/或有线连接。
在某些示例中,计算设备60可使用直接设备通信78操作耦合到包括在图3中的远程设备中的一个或多个。直接设备通信78可包括计算设备60通过其使用有线或无线通信直接地与远程设备发送和接收数据的通信。也就是说,在直接设备通信78的某些示例中,由计算设备60发送的数据在被在远程设备处接收到之前可能未被一个或多个附加设备转送,并且反之亦然。直接设备通信78的示例可包括蓝牙、近场通信、通用串行总线、WiFi、红外等。图3中所示的远程设备中的一个或多个可通过通信链路76A至76D与计算设备60操作耦合。在某些示例中,通信链路76A至76D可以是使用蓝牙、近场通信、通用串行总线、红外线等的连接。此类连接可以是无线和/或有线连接。
根据本公开的技术,计算设备60可使用外部网络74操作耦合到视觉显示设备90。计算设备60可输出图形键盘以用于在存在敏感显示器92处显示。例如,计算设备60可将包括图形键盘的表示的数据发送到通信单元70。通信单元70可使用外部网络74将包括图形键盘的表示的数据发送到视觉显示设备90。视觉显示设备90可响应于使用外部网络74接收到数据而促使存在敏感显示器92输出图形键盘。响应于用户在存在敏感显示器92处(例如,在输出图形键盘的存在敏感显示器92的区处)执行手势,视觉显示设备90可使用外部网络74向计算设备60发送手势的指示。通信单元70可接收手势的指示,并且可向计算设备60发送指示。
响应于接收到在存在敏感输入设备处检测到的至少一个手势的指示,计算设备60可确定至少部分地基于单词前缀和手势所穿过的至少一个对准点的对准分数。该对准分数表示所述至少一个对准点指示所述多个键中的键的概率。计算设备60可响应于对准分数未能满足第一阈值而确定至少一个备选字符,其至少部分地基于包括单词前缀的至少一部分的错误拼写。
计算设备60可确定至少部分地基于备选字符的备选对准分数。在某些示例中,响应于确定备选对准分数满足第二阈值,计算设备60可至少部分地基于备选字符而输出候选单词以用于显示。例如,计算设备60可将表示该候选单词的数据发送到通信单元70。通信单元70可经由外部网络74将数据发送到视觉显示设备90。视觉显示设备90可促使存在敏感显示器92输出数据所表示的字符串。
图4A至4C是根据本公开的一个或多个技术的图示出被用来执行对于基于手势输入的替代错误修正的图1中所示的计算设备的一个示例的更多细节的框图。在本公开的某些示例技术中,计算设备可检测到连续手势中的替代错误,并且确定一个或多个备选假设以提高单词预测的准确性。例如,用户可能意图输入“cemetery”;然而,她可能错误地做出c-e-m-e-t-a-r-y的手势。在此类替代错误示例中,针对候选单词中的一个或多个字母,计算设备10可考虑两个类型的假设。第一假设是手势通过准确的字母,例如“cemetery”。第二假设是手势替代地通过不同的字母(例如,“替代”),例如“cemetary”。这样,虽然用于如用手势表示的第一假设c-e-m-t-a-r-y的手势对准分数低,但用于针对“cemetery”的第二备选假设的对准分数可能更高,因为其对应于语言模型28中的单词。在某些示例中,由计算设备10实现的替代技术可基于当前语言中的常见错误拼写而提供任意替代或者备选地特定替代(例如,一般地可以用类似发声的字母“o”或“i”而不是“k”来替代英语中“e”)。现在相对于图4A至4C来进一步描述替代技术。
图4A至4C是根据本公开的一个或多个技术的图示出图1至3中所示的计算设备的一个示例的更多细节的框图。如图4A的概念示例中所示,计算设备10可包括GUI100、活动射束102以及下一射束104。GUI100可包括图形键盘106,其可包括“B”键108A、“E”键108B以及“N”键108C。虽然在图4A中示出,但包括110A至110B和/或对准点112A至112C的手势路径在本文所述技术的执行期间可能并不可见。
如图1的示例中所示,用户可能期望通过在图形键盘106处执行手势来向计算设备10中录入单词“benefit”。如先前所讨论的,在用户在存在敏感输入设备处执行手势的同时,计算设备10可递增地接收具有手势路径110的手势的指示。在图4A的示例中,计算设备10被示为已检测到手势路径110A至110B。
响应于检测到手势路径110A,计算设备10可确定沿着手势路径110A的对准点112A至112B。响应于检测到手势路径110A,计算设备10可创建一个或多个标志并将标志推送到活动射束102中。可以用下表1来表示活动射束102的示例内容的一部分。
表1
索引 父索引 当前节点的字母键 字母链 对准分数
i0 p0 E BE AS0
i1 p1 E VE AS1
在表1中,每行表示单独标志,索引列表示用于每个标志的唯一标识符,父索引列表示所列标志为其子的标志的索引值,当前节点的字母键列表示标志的当前节点所表示的字母键,字母链列表示由从标志的入口节点到当前节点的节点所表示的所有字母键,并且对准分数列表示标志的对准分数。如表1中所示,所创建标志具有索引i0-i1(例如,对应于token0-token1)。
为了确定手势所指示的文本,计算设备10可响应于指示手势路径110B的手势输入的附加指示而在其子节点上创建每个标志的拷贝。计算设备10可例如在子节点“BE”(即,token0)和子节点“VE”(即,token1)上创建具有索引0的标志的拷贝。针对每个创建的标志拷贝,计算设备10可如图1至2中所述地确定对准分数。计算设备10可将每个标志拷贝推送到下一射束104,可用下表2来表示其示例内容的一部分。
表2
索引 父索引 当前节点的字母键 字母链 对准分数
i3 i0 N BEN AS0+AS3
i4 i1 N VEN AS1+AS4
i5 i0 M BEM AS0+AS5
表2中所示的条目在格式方面类似于表1中所示的条目。在表2中,token3具有成本值AS0+AS3且token1具有成本值AS1+AS4。计算设备10可通过以类似方式向每个标志添加字符并将已更新标志添加到下一射束104来使来自活动射束102的每个标志迭代或者另外使其前进。计算设备10可随后确定活动射束102是否是空的(即,不包含要处理的更多标志)。响应于确定活动射束102是空的,计算设备10可将下一射束104的内容拷贝到图4B的活动射束102,并且丢弃下一射束104的内容。
在图4B的示例中,计算设备10可检测到手势路径110C。如上所述,可用表2来表示活动射束102的内容。计算设备10可确定沿着手势路径110的对准点112D。计算设备10可针对活动射束102中的每个标志在每个子节点上创建拷贝。在图4B的示例中,token6和token4每个具有具有字母键“I”的子节点,并且token7具有具有字母键“U”的子节点。针对每个创建的标志拷贝,计算设备10可如图1至2中所述地确定对准分数。计算设备10可将每个标志拷贝推送到下一射束104中,可用下表3来表示其示例内容的一部分。
表3
表3中所示的条目在格式方面类似于表1和表2中所示的条目。在表3中,用于每个标志的对准分数包括用于先前字母的对准分数和用于当前字母的对准分数。计算设备10可确定标志中的哪些(如果有的话)在终端节点上,例如,从根节点到终端节点的节点路径包括表示语言模型28中的单词的字符串。在某些示例中,如果标志在终端节点上,则计算设备10可选择单词,例如以输出该单词以用于显示。
根据本公开的技术,计算设备10可确定与单词前缀相关联的对准分数未能满足阈值。例如,计算设备10可确定对准分数小于该阈值。作为一个示例,计算设备10可确定用于VENI的对准分数AS1+AS4+AS6不满足阈值。在某些示例中,计算设备10可确定与相应单词前缀相关联的多个对准分数未能满足阈值。例如,计算设备10可确定用于VENIBEMU以及BENI的对准分数每个未能满足阈值。
响应于确定对准分数未能满足阈值,计算设备10可确定至少一个备选字符,其至少部分地基于包括单词前缀的至少一部分的错误拼写。例如,单词前缀“BENI”可包括第一子串“BEN”和第二子串“I”。也就是说,每个子串可包括零个或多个字符。在本示例中,第二子串包括至少一个字符“I”。
计算设备10可确定单词前缀“BENI”的第二子串“I”与修正数据30中的第一串匹配。第一串可包括一个或多个字符。在图4B的示例中,计算设备10可确定第二子串“I”与修正数据30中的第一串“I”匹配。修正数据30可包括串之间的一个或多个关系。例如,修正数据30可包括指示修正数据30中的第一串“I”与修正数据30中的第二串“E”之间的关系的数据。修正数据30中的第二串“E”可以是用于修正数据30中的第一串“I”的语音替代。虽然相对于语音替代进行描述,但可在修正数据30中存储和检索各串之间的任何其它适当关系以执行替代。
计算设备10可至少部分地基于修正数据中的第一串“I”来确定修正数据中的第二串“E”,其包括将包括在备选单词前缀中的至少一个备选字符。也就是说,计算设备10可生成备选单词前缀“BENE”,其由单词前缀“BENI”的第一子串“BEN”和修正数据30中的第二串“E”组成。在某些示例中,计算设备10可将“BEN”与“E”连接以形成备选单词前缀“BENE”。计算设备10可将“BENE”存储在活动射束102内的新标志中。计算设备10还可确定用于存储在新标志中的“BENE”的对准分数。由于“BENE”与在语言模型28中建模的单词“benefit”的前四个字符匹配,所以用于“BENE”的对准分数可高于“BENI”。因此,虽然用户可能已用对应于“benefit”的错误拼写的手势路径110C来执行手势,但计算设备10可基于包括单词前缀“BEN”的一部分的“benefit”的错误拼写而生成备选单词前缀。如图4C中进一步所示,随着用户继续该手势以拼写“benefit”的剩余部分,单词前缀“BENE”将导致比例如“BENI”更高的对准分数。在表4中图示出活动射束102的示例内容的一部分。
表4
在图4C的示例中,计算设备10被示为已检测到手势路径110D。如上所述,可用表4来表示活动射束104的内容。计算设备10可确定沿着手势路径110D的对准点112E。计算设备10可针对活动射束102中的每个标志在每个子节点上创建拷贝。在图4C的示例中,token6至token9每个具有具有字母键“F”和“G”的子节点(例如,接近于对准点112E和/或在其预定义距离内)。针对每个创建的标志拷贝,计算设备10可如图1至2中所述确定对准分数。计算设备10可将每个标志拷贝推送到下一射束104中,可用下表5来表示其内容。
表6
表6中所示的条目在格式方面类似于表1至5中所示的条目。在表6中,用于每个标志的对准分数包括用于先前字母的对准分数和用于当前字母的对准分数。如在表6的示例中可以看到的,其可按照从具有最大对准分数至最小对准分数的标志的排名顺序被排序,包括备选单词前缀“BENEF”的token10可与最大对准分数AS0+AS3+AS9+AS10相关联。也就是说,对准分数AS0+AS3+AS9+AS10可以是表6中的最大对准分数。由于“BENEF”与语言模型28中的“benefit”的前五个字符匹配,计算设备10可“预见”至语言模型28中的附加节点,包括用于“e”的终端节点,其共同地指示候选单词“benefit”。在某些示例中,如下面进一步描述的,计算设备10可基于单词前缀“BENEF”与活动射束104中的最大对准分数相关联而输出“benefit”以用于显示。计算设备10可随着计算设备10接收到手势的进一步指示而继续递增地确定一个或多个标志,从而使得用户能够提供单个手势以选择单词或短语的一组键。
在图4C的示例中,计算设备10可确定用户是否已完成执行该手势。响应于确定用户已经完成执行手势,计算设备10可以输出候选单词的列表。候选单词可至少部分地基于一个或多个标志。在某些示例中,可以在语言模型28中并基于包括书面语言的单词的一个或多个字典的内容来对候选单词进行建模。在某些示例中,计算设备10可确定具有最高对准分数的候选单词的列表的子集(即,具有最高概率的预测)。另外,在某些示例中,计算设备10可在每个后续对准点处修订包含在活动射束102中的标志的对准分数,如在图4A至4C的示例中所述。
图5A至5C是根据本公开的一个或多个技术的图示出被用来执行对于基于手势的输入的删除错误修正的图1中所示的计算设备的一个示例的更多细节的框图。在本公开的某些示例技术中,计算设备可检测连续手势中的删除错误,并确定一个或多个备选假设以提高单词预测的准确性。例如,用户可能意图输入“Fahrenheit”;然而,她可能错误地做出f-a-r-e-n的手势。针对候选单词中的每个字母,本公开的技术还可考虑用户从手势中偶然地落下一个或多个字母的备选假设。例如,用户可能无意中在手势中漏掉了对应于字母“h”的键。在此类示例中,本公开的技术可跳过当前字母,并继续使手势与单词中的下一字母匹配。针对“Farenheit”错误拼写示例,本技术可使前两个字母“F”-“a”与有效单词“Fahrenheit”对准。然而,如果“h”不是手势中的下一字母(例如,其具有低对准分数),本公开的技术还可考虑“h”遗漏的备选假设,并跳跃至下一字母“r”。在这种情况下,手势所通过的先前字母是“a”,因此本技术可确定手势路径从“a”行进至“r”(而不是原始“h”至“r”)。现在相对于图5A至5C来进一步描述删除错误技术。
图5A至5C是根据本公开的一个或多个技术的图示出图1至3中所示的计算设备的一个示例的更多细节的框图。如图4A的概念示例中所示,计算设备10可包括GUI124、活动射束120以及下一射束122。GUI124可包括图形键盘126,其可包括“A”键128A、“Q”键128B以及“U”键128C。虽然在图5A中示出,但包括部分132A和/或对准点130A的手势路径132在本文所述的技术的执行期间可能并不可见。
如图1的示例中所示,用户可能期望通过在图形键盘126处执行手势来向计算设备10中录入单词“acquire”。如先前所讨论的,在用户在存在敏感输入设备处执行手势的同时,计算设备10可递增地接收具有手势路径132A的手势的指示。在图5A的示例中,计算设备10被示为已检测到手势路径132A。
响应于检测到手势路径132A,计算设备10可确定沿着手势路径132的对准点130A。计算设备10可创建一个或多个标志并将该标志推送到活动射束120中。在响应于手势输入的指示而创建一个或多个标志并将标志推送到活动射束120中之前可用下面表1来表示活动射束120的初始内容。
表1
索引 父索引 当前节点的字母键 字母链 对准分数
i0 -- -- -- 0
在表1中,每行表示单独标志,索引列表示用于每个标志的唯一标识符,父索引列表示所列标志为其子的标志的索引值,当前节点的字母键列表示标志的当前节点所表示的字母键,字母链列表示由从标志的入口节点到当前节点的节点所表示的所有字母键,并且对准分数列表示标志的对准分数。如表1中所示,所创建标志具有索引i0(例如,对应于空token0)。
为了确定手势所指示的文本,计算设备10可响应于包括手势路径132的手势输入的附加指示而在其子节点上创建每个标志的拷贝。最初,表1可包括具有索引i0的空标志(未示出)。计算设备10可在子节点“A”(即,token0)和子节点“S”(即,token1)上创建具有索引i0的标志的拷贝。针对每个创建的标志拷贝,计算设备10可如在图1至2中所述地确定对准分数。计算设备10可将每个标志拷贝推送到下一射束122中,可用下表2来表示其示例内容的一部分。
表2
索引 父索引 当前节点的字母键 字母链 对准分数
i1 i0 A A AS0
i2 i0 S S AS1
表2中所示的条目在格式方面类似于表1中所示的条目。在表2中,token1具有成本值AS0且token2具有成本值AS1。因此,如表2中所示,计算设备10可通过以类似方式向每个标志(例如,空token0)添加字符(例如,“A”或“Q”)并将已更新标志添加到下一射束122来使来自活动射束120的每个标志迭代或者另外使其前进。计算设备10随后可确定活动射束120是否是空的(即,不包含要处理的更多标志)。响应于确定活动射束120是空的,计算设备10可将下一射束122的内容拷贝到图5B的活动射束120,并且丢弃下一射束120的内容。
在图5B的示例中,计算设备10可确定沿着手势路径132的对准点130B。计算设备10可针对活动射束120中的每个标志在每个子节点上创建拷贝。在图5B的示例中,token3和token4每个具有具有字母键“Q”的子节点。针对每个创建的标志拷贝,计算设备10可如在图1至2中所述地确定对准分数。计算设备10可将每个标志拷贝推送到下一射束122中,可用下表3来表示其示例内容的一部分。
表3
索引 父索引 当前节点的字母键 字母链 对准分数
i3 i1 Q AQ AS0+AS2
i4 i2 Q SQ AS1+AS3
表3中所示的条目在格式方面类似于表1和表2中所示的条目。在表3中,用于每个标志的对准分数包括用于先前字母的对准分数和用于当前字母的对准分数。计算设备10可确定标志中的哪些(如果有的话)在终端节点上,例如,从根节点到终端节点的节点路径包括表示语言模型28中的单词的字符串。在某些示例中,如果标志在终端节点上,则计算设备10可选择单词,例如以输出该单词以用于显示。
根据本公开的技术,计算设备10可确定与单词前缀相关联的对准分数未能满足阈值。例如,计算设备10可确定对准分数小于该阈值。作为一个示例,计算设备10可确定用于“AQ”的对准分数,AS0+AS2不满足阈值。在某些示例中,计算设备10可确定与相应单词前缀相关联的多个对准分数未能满足阈值。例如,计算设备10可确定用于AQ和SQ的对准分数每个未能满足阈值。
响应于确定对准分数未能满足阈值,计算设备10可确定至少一个备选字符,其至少部分地基于包括单词前缀的至少一部分的错误拼写。例如,单词前缀“AQ”可包括第一子串“AQ”和第二子串“”。也就是说,每个子串可包括零个或多个字符。本示例中的第二子串是空的。
计算设备10可确定单词前缀“AQ”的第一子串“AQ”与修正数据30中的第一串匹配。第一串可包括一个或多个字符。在图4B的示例中,计算设备10可确定第一子串“QC”与修正数据30中的第一串“AQ”匹配。修正数据30可包括串之间的一个或多个关系。例如,修正数据30可包括指示修正数据30中的第一串“AQ”与修正数据30中的第二串“C”之间的关系的数据。在某些示例中,第二串可以是可表示任何字符的通配符“*”。也就是说,备选字符可包括表示字符集中的每个可能字符的通配符。例如,通配符“*”可表示英语字母表字符集中的任何字符{a...z}。
计算设备10可至少部分地基于修正数据中的第一串“AQ”来确定修正数据中的第二串“*”,其包括将包括在备选单词前缀中的至少一个备选字符。也就是说,计算设备10可生成备选单词前缀“ACQ”,其由单词前缀“AQ”的第一子串“AQ”和修正数据30中的第二串“C”组成。在某些示例中,计算设备10可将“AQ”和“C”拼接和/或连接以形成备选单词前缀“ACQ”。修正数据30可包括指示将在该处将单词前缀“AC”和第二串“C”拼接和/或连接的字符位置的数据。计算设备10可将“ACQ”存储在活动射束120内的新标志中。计算设备10还可确定存储在新标志中的用于“ACQ”的对准分数。由于“ACQ”与在语言模型28中建模的单词“acquire”的前三个字符匹配,所以用于“ACQ”的对准分数可高于“AQ”。因此,虽然用户可能已用对应于“acquire”的错误拼写的手势路径132A来执行手势,但计算设备10可基于包括单词前缀“ACQ”的部分的“acquire”的错误拼写而生成备选单词前缀。如在图5C中进一步所示,随着用户继续该手势以拼写“acquire”的剩余部分,单词前缀“ACQ”将导致比例如“AQ”更高的对准分数。在表4中图示出活动射束120的示例内容的一部分。
表4
在图5C的示例中,计算设备10被示为已检测到手势路径132B。如上所述,可用表4来表示活动射束120的内容。计算设备10可确定沿着手势路径132B的对准点130C。计算设备10可针对活动射束120中的每个标志在每个子节点上创建拷贝。在图5C的示例中,token5至token10每个具有具有字母键“U”和“I”的子节点(例如,接近于对准点130C和/或在其预定义距离内)。针对每个创建的标志拷贝,计算设备10可如图1至2中所述和表4中所示地确定对准分数。
表4中所示的条目在格式方面类似于表1至3中所示的条目。在表4中,用于每个标志的对准分数包括用于先前字母的对准分数和用于当前字母的对准分数。如在表4的示例中可以看到的,其可按照从具有最大对准分数至最小对准分数的标志的排名顺序被排序,包括备选单词前缀“ACQU”的token5可与最大对准分数AS0+AS2+AS4相关联。也就是说,对准分数AS0+AS2+AS4可以是表4中的最大对准分数。由于“ACQU”与语言模型28中的“aquire”的前四个字符匹配,计算设备10可“预见”至语言模型28中的附加节点,包括用于“e”的终端节点,其共同地指示候选单词“acquire”。在某些示例中,如下面进一步描述的,计算设备10可基于单词前缀“ACQU”与活动射束120中的最大对准分数相关联而输出“acquire”以用于显示。计算设备10可随着计算设备10接收到手势的进一步指示而继续递增地确定一个或多个标志,从而使得用户能够提供单个手势以选择单词或短语的一组键。
在图5C的示例中,计算设备10可确定用户是否已完成执行该手势。响应于确定用户已经完成执行手势,计算设备10可以输出候选单词的列表。候选单词可至少部分地基于一个或多个标志。在某些示例中,可以在语言模型28中并基于包括书面语言的单词的一个或多个字典的内容来对候选单词进行建模。在某些示例中,计算设备10可确定具有最高对准分数的候选单词的列表的子集(即,具有最高概率的预测)。另外,在某些示例中,计算设备10可在每个后续对准点处修订包含在活动射束120中的标志的对准分数,如在图5A至5C的示例中所述。
图6A至6C是根据本公开的一个或多个技术的图示出被用来执行对于基于手势的输入的插入错误修正的图1中所示的计算设备的一个示例的更多细节的框图。在本公开的某些示例技术中,计算设备可检测连续手势中的插入错误,并确定一个或多个备选假设以提高单词预测的准确性。例如,用户可能意图输入“bicep”;然而,她可能错误地做出b-i-s-c-e-p的手势。在此类替代错误示例中,针对候选单词中的一个或多个字符,本公开的技术可考虑一个或多个字符(例如,“bicep”中的“s”)是意外插入且因此并非候选单词的一部分的备选假设。本公开的技术可创建允许手势在返回到下一预期字母(例如,“c”)之前行进至其它任意字母(例如,“s”)的备选假设。作为另一示例,针对“truly”错误拼写的错误拼写,不是要求用户从“t”-“r”-“u”直接地做手势至下一字母“l”,而是本公开的技术可生成允许手势在到“l”的途中通过另一任意字母(*)(“t”-“r”-“u”-*-“l”)的备选插入假设。现在相对于6A至6C来进一步描述插入错误技术。
图6A至6C是根据本公开的一个或多个技术的图示出图1至3中所示的计算设备的一个示例的更多细节的框图。如图6A的概念示例中所示,计算设备10可包括GUI144、活动射束140以及下一射束142。GUI100可包括图形键盘146,其可包括“B”键148A、“I”键148B以及“S”键148C。虽然在图6A中示出,但包括手势路径部分150A至150B和/或对准点152A至152C的手势路径150在本文所述的技术的执行期间可能并不可见。
在图6A的示例中,用户可能期望通过在图形键盘146处执行手势来向计算设备10中录入单词“bicep”。如先前所讨论的,在用户在存在敏感输入设备处执行手势的同时,计算设备10可递增地接收具有手势路径152的手势的指示。在图6A的示例中,计算设备10被示为已检测到手势路径150A-150C。
响应于检测到手势路径150A-150B,计算设备10可确定沿着手势路径150A-150B的对准点152A-152C。响应于检测到手势路径150A至150B,计算设备10可创建一个或多个标志,并将标志推送到活动射束140中。可用下表1来表示活动射束140的示例内容的一部分。
表1
索引 父索引 当前节点的字母键 字母链 对准分数
i0 p0 I BI AS0
i1 p1 U BU AS1
在表1中,每行表示单独标志,索引列表示用于每个标志的唯一标识符,父索引列表示所列标志为其子的标志的索引值,当前节点的字母键列表示标志的当前节点所表示的字母键,字母链列表示由从标志的入口节点到当前节点的节点所表示的所有字母键,并且对准分数列表示标志的对准分数。如表1中所示,所创建标志具有索引i0-i1(例如,对应于token0-token1)。
为了确定手势所指示的文本,计算设备10可响应于指示手势路径150B的手势输入的附加指示而在其子节点上创建每个标志的拷贝。计算设备10可例如在子节点“BI”(即token0)和子节点“BU”(即,token1)上创建具有索引0的标志的拷贝。针对每个创建的标志拷贝,计算设备10可如在图1至2中所述地确定对准分数。计算设备10可将每个标志拷贝推送到下一射束142,可用下表2来表示其示例内容的一部分。
表2
索引 父索引 当前节点的字母键 字母链 对准分数
i3 i0 S BIS AS0+AS3
i4 i1 S BUS AS1+AS4
i5 i0 D BID AS0+AS5
i6 i0 BI~ AS0+AS6
表2中所示的条目在格式方面类似于表1中所示的条目。在表2中,token3具有成本值AS0+AS3,token4具有成本值AS1+AS4且token5具有成本值AS0+AS5。计算设备10可通过以类似方式向每个标志添加字符并将已更新标志添加到下一射束142来使来自活动射束140的每个标志迭代或者另外使其前进。计算设备10随后可确定活动射束140是否是空的(即,不包含要处理的更多标志)。响应于确定活动射束140是空的,计算设备10可将下一射束142的内容拷贝到图6B的活动射束140,并且丢弃下一射束142的内容。
根据本公开的技术,计算设备10可确定至少一个备选字符,其至少部分地基于包括单词前缀的至少一部分的错误拼写。例如,如表2中所示,计算设备10可生成至少包括单词前缀“BIS”的子串的备选单词前缀。作为一个示例,备选单词前缀可包括来自单词前缀“BIS”的子串“BI”。计算设备10可在子串“BI”中插入占位符以生成备选单词前缀“BI~”。如表2中所示,在备选单词前缀中用“~”来指示占位符值。占位符值可以是向计算设备10指示手势可通过但并未包括在基于该备选单词前缀的一个或多个候选单词中的至少一个任意字符的数据。换言之,占位符值“~”可向计算设备10指示确定基于“BI”的语言模型28中的候选单词,但该手势可指示用户已做手势至“BIS”。如在图6B至6C中将进一步示出的,随着手势通过键c-e,计算设备10可基于对应于“BI~CE”的前缀“bice”来确定候选单词(例如,“bicep”),其可比例如“biscep”更准确地表示用户预期的单词。这样,包括占位符值“~”的备选假设允许手势在手势bi~cep中到“c”的途中通过任意字母“s”。
在备选示例中,计算设备10可通过避免响应于一个或多个手势使词典特里中的备选单词前缀前进来实现插入错误修正。例如,计算设备10可生成至少包括现有单词前缀的子串的备选单词前缀。在图6的示例中,计算设备10可创建选自token0的单词前缀“BI”的拷贝。计算设备10可将此拷贝作为备选单词前缀存储在新标志中。响应于接收到第二手势(例如,手势路径150B),计算设备10可避免在备选单词前缀中插入一个或多个字符。也就是说,计算设备10可不使词典特里中包括“BI”的标志前进。这样,将没有诸如“S”之类的附加字母响应于手势路径150B而被附加到备选单词前缀“BI”。通过避免在“BI”的结尾处插入“S”,计算设备10允许手势在到“c”的途中通过任意字母“S”(其可以是用户错误)。计算设备10可响应于接收到在手势路径150B之后的第三手势(例如,150C)的指示而在备选单词前缀中插入至少一个字符,诸如“c”,该备选单词前缀然后将包括“bic”。换言之,计算设备10可针对手势的一部分跳过使备选单词前缀前进,并且然后通过随着计算设备10确定附加手势路径(例如,连续手势路径的各部分)而插入附加字符(例如,在单词前缀的结尾处)来使备选单词前缀继续前进。
在图6B的示例中,计算设备10可检测到手势路径150C。如上所述,可用表2来表示活动射束140的内容。计算设备10可确定沿着手势路径150C的对准点152D。计算设备10可针对活动射束140中的每个标志在每个子节点上创建拷贝。在表3中所示的图6B的示例中,token6至token8每个具有具有字母键“C”的子节点。针对每个创建的标志拷贝,计算设备10可如图1至2中所述地确定对准分数。计算设备10可将每个标志拷贝推送到下一射束142中,可用下表3来表示其示例内容的一部分。
表3
表3中所示的条目在格式方面类似于表1和表2中所示的条目。在表3中,用于每个标志的对准分数包括用于先前字母的对准分数和用于当前字母的对准分数。计算设备10可确定标志中的哪些(如果有的话)在终端节点上,例如,从根节点到终端节点的节点路径包括表示语言模型28中的单词的字符串。在某些示例中,如果标志在终端节点上,则计算设备10可选择单词,例如以输出该单词以用于显示。
在图4C的示例中,计算设备10被示为已检测到手势路径150D。如上所述,可用表3来表示活动射束140的内容。计算设备10可确定沿着手势路径150D的对准点152E。计算设备10可针对活动射束140中的每个标志在每个子节点上创建拷贝。在图6C的示例中,token7至token10每个具有具有字母键“E”的子节点(例如,接近于对准点152D和/或在其预定义距离内)。针对每个创建的标志拷贝,计算设备10可如图1至2中所述地确定对准分数。计算设备10可将每个标志拷贝推送到下一射束142中,可用下表4来表示其内容。
表4
表4中所示的条目在格式方面类似于表1至3中所示的条目。在表4中,用于每个标志的对准分数包括用于先前字母的对准分数和用于当前字母的对准分数。如在表4的示例中可以看到的,其可按照从具有最大对准分数至最小对准分数的标志的排名顺序被排序,包括备选单词前缀“BI~CE”的token11可与最大对准分数AS1+AS4+AS7+AS11相关联。也就是说,对准分数AS1+AS4+AS7+AS11可以是表4中的最大对准分数。由于“BI~CE”对应于“bice”,其进一步与语言模型28中的“bicep”的前四个字符匹配,计算设备10可“预见”至语言模型28中的附加节点,包括用于“p”的终端节点,其共同地指示候选单词“bicep”。在某些示例中,如下面进一步描述的,计算设备10可基于单词前缀“BI~CE”与活动射束104中的最大对准分数相关联而输出“bicep”以用于显示。计算设备10可随着计算设备10接收到手势的进一步指示而继续递增地确定一个或多个标志,从而使得用户能够提供单个手势以选择单词或短语的一组键。
在图6C的示例中,计算设备10可确定用户是否已经完成执行手势。响应于确定用户已经完成执行手势,计算设备10可以输出候选单词的列表。候选单词可至少部分地基于一个或多个标志。在某些示例中,可以在语言模型28中并基于包括书面语言的单词的一个或多个字典的内容来对候选单词进行建模。在某些示例中,计算设备10可确定具有最高对准分数的候选单词的列表的子集(即,具有最高概率的预测)。另外,在某些示例中,计算设备10可在每个后续对准点处修订包含在活动射束102中的标志的对准分数,如在图6A至6C的示例中所述。
图7A至7C是根据本公开的一个或多个技术的图示出被用来执行对于基于手势的输入的换位错误修正的图1中所示的计算设备的一个示例的更多细节的框图。在本公开的某些示例技术中,计算设备可检测连续手势中的换位错误,并确定一个或多个备选假设以提高单词预测的准确性。也就是说,用户可执行将两个字符的位置互换的手势,例如当用户意图录入“thrift”时做出t-r-h-i-f-t的手势。换言之,用户可能在“h”键之前错误地做出“r”键的手势。另一示例可包括当用户意图录入“weird”时做出w-i-e-r-d的手势。也就是说,用户可能在“e”键之前错误地做出“i”键的手势。
在其中可能发生换位错误的这种情况下,本公开的技术可针对候选单词中的一个或多个字符,考虑接下来的两个字母被换位的备选假设。针对“wierd”错误拼写示例,当本公开的技术将手势与字典单词“weird”相比较时,本技术还将考虑第二和第三字母被意外地从“ei”切换成“ie”的备选情况。本技术然后确定原始“w[ei]”解释或换位修正“w[ie]”解释是否是与手势的最佳几何匹配。一旦识别到最可能或最高对准分数假设,本技术继续到单词中的下一字母(“r”)的对准。现在相对于图6A至6C来进一步描述换位错误技术。
图7A至7C是根据本公开的一个或多个技术的图示出图1至3中所示的计算设备的一个示例的更多细节的框图。如图7C的概念示例中所示,计算设备10可包括GUI160、活动射束162以及下一射束164。GUI160可包括图形键盘166,其可包括“R”键168A和“T”键168B。虽然在图7A中示出,但包括手势路径部分17A和/或对准点170A至170B的手势路径172在本文所述的技术的执行期间可能并不可见。
在图7A的示例中,用户可能期望通过在图形键盘166处执行手势来向计算设备10中录入单词“thrift”。如先前所讨论的,在用户在存在敏感输入设备处执行手势的同时,计算设备10可递增地接收具有手势路径172的手势的指示。在图7A的示例中,计算设备10被示为已检测到手势路径172A。。
响应于检测到手势路径172A,计算设备10可确定沿着手势路径172A的对准点170A-170B。响应于检测到手势路径172A,计算设备10可创建一个或多个标志,并将标志推送到活动射束162中。可用下表1来表示活动射束162的示例内容的一部分。
表1
索引 父索引 当前节点的字母键 字母链 对准分数
i0 p0 T T AS0
i1 p1 G G AS1
在表1中,每行表示单独标志,索引列表示用于每个标志的唯一标识符,父索引列表示所列标志为其子的标志的索引值,当前节点的字母键列表示标志的当前节点所表示的字母键,字母链列表示由从标志的入口节点到当前节点的节点所表示的所有字母键,并且对准分数列表示标志的对准分数。如表1中所示,所创建标志具有索引i0-i1(例如,对应于token0-token1)。
为了确定手势所指示的文本,计算设备10可响应于指示手势路径172的手势输入的附加指示而在其子节点上创建每个标志的拷贝。计算设备10可例如在子节点“TR”(即,token0)和子节点“GR”(即,token1)上创建具有索引0的标志的拷贝。针对每个创建的标志拷贝,计算设备10可如在图1至2中所述地确定对准分数。计算设备10可将每个标志拷贝推送到下一射束164,可用下表2来表示其示例内容的一部分。
表2
索引 父索引 当前节点的字母键 字母链 对准分数
i3 i0 R TR AS0+AS3
i4 i1 R GR AS1+AS4
表2中所示的条目在格式方面类似于表1中所示的条目。在表2中,token3具有成本值AS0+AS3,token4具有成本值AS1+AS4。计算设备10可通过以类似方式向每个标志添加字符并将已更新标志添加到下一射束164来使来自活动射束162的每个标志迭代或者另外使其前进。计算设备10可随后确定活动射束162是否是空的(即,不包含要处理的更多标志)。响应于确定活动射束162是空的,计算设备10可将下一射束162的内容拷贝到图7B的活动射束162,并且丢弃下一射束164的内容。
在图7B的示例中,计算设备10可检测到手势路径172B。如上所述,可用表2来表示活动射束162的内容。计算设备10可确定沿着手势路径172B的对准点170C。计算设备10可针对活动射束162中的每个标志在每个子节点上创建拷贝。在表3中所示的图7B的示例中,token6至token7每个具有具有字母键“H”的子节点。token8每个具有具有字母键“G”的子节点。针对每个创建的标志拷贝,计算设备10可如图1至2中所述地确定对准分数。计算设备10可将每个标志拷贝推送到下一射束164中,可用下表3来表示其示例内容的一部分。
表3
表3中所示的条目在格式方面类似于表1和表2中所示的条目。在表3中,用于每个标志的对准分数包括用于先前字母的对准分数和用于当前字母的对准分数。计算设备10可确定标志中的哪些(如果有的话)在终端节点上,例如,从根节点到终端节点的节点路径包括表示语言模型28中的单词的字符串。在某些示例中,如果标志在终端节点上,则计算设备10可选择单词,例如以输出该单词以用于显示。
根据本公开的技术,计算设备10可确定与单词前缀相关联的对准分数未能满足阈值。例如,计算设备10可确定对准分数小于阈值。作为一个示例,计算设备10可确定用于“TRH”的对准分数AS1+AS4+AS6不满足阈值。在某些示例中,计算设备10可确定与相应单词前缀相关联的多个对准分数未能满足阈值。例如,计算设备10可确定用于TRH、GRH以及TRG的对准分数每个未能满足阈值。。
响应于确定对准分数未能满足阈值,计算设备10可确定至少一个备选字符,其至少部分地基于包括单词前缀的至少一部分的错误拼写。例如,单词前缀“TRH”可包括第一子串“T”和第二子串“RH”。也就是说,每个子串可包括零个或多个字符。本示例中的第二子串包括两个字符“RH”。
计算设备10可确定第二子串的换位,其中,第二子串的至少两个字符的字符位置在换位中被换位。换位可包括字符的字符位置已被颠倒或改变的第二子串的一个或多个字符。在换位中可包括至少一个备选字符,例如“RH”。在某些示例中,计算设备10可确定单词前缀“TRH”的第二子串“RH”与修正数据30中的第一串匹配。该第一串可包括一个或多个字符。在图7B的示例中,计算设备10可确定第二子串“RH”与修正数据30中的第一串“RH”匹配。修正数据30可包括串之间的一个或多个关系。例如,修正数据30可包括指示修正数据30中的第一串“RH”与修正数据30中的第二串“HR”之间的关系的数据。修正数据30中的第二串“HR”可以是修正数据30中的第一串“RH”的换位。串之间的关系的其它示例可包括指定一个或多个换位的数据。例如,修正数据30可包括促使键盘模块22将单词前缀的子串换位的数据。作为一个示例,该数据可促使键盘模块22确定单词前缀的子串并将子串换位。例如,键盘模块22可将在单词前缀中的当前确定字符之后的两个字符换位。为了举例说明,键盘模块22可确定标志包括字符“wei”,并且可将子串“ei”换位以生成备选单词前缀“wie”。在其它示例中,计算设备10可自动地将“RH”换位成“HR”以生成备选单词前缀。例如,计算设备10可自动地对单词前缀中的至少两个字符的字符位置进行颠倒或者另外改变以生成备选单词前缀。
在某些示例中,计算设备10可在词典特里中“预见”以确定特里的路径中的分别地与字符相对应的一个或多个节点。计算设备10然后可生成与该路径的节点相对应的字符中的一个或多个的换位。例如,计算设备10可确定标志包括单词前缀“t”。计算设备10可确定标志当前在词典特里中的从root→t的路径的“t”节点上。计算设备10可接收穿过图形键盘16B的“R”键的手势的指示,在这种情况下,计算设备10可使活动射束的标志前进,并生成包括单词前缀“tr”的标志拷贝。响应于接收到穿过图形键盘16B的“T”键的手势的指示,计算设备10还可从包括“w”的节点预见到词典特里的一个或多个节点,以确定备选路径,诸如root→t→h。在某些示例中,计算设备10可基于对应于“R”键的字符“r”来确定备选路径。例如,修正数据30可指示“r”与“h”之间和/或“tr”与“th”之间的关系。在任何情况下,计算设备10可生成包括备选单词前缀“th”的标志,计算设备10将其包括在活动射束162中。
在某些示例中,计算设备10可沿着词典特里中的路径将多个字符换位以确定单词前缀的已换位字符有多好地对准到手势。例如,计算设备10可存储包括单词前缀“w”的标志。计算设备10可确定在节点“w”之后词典特里的路径中的接下来两个节点包括字符“e”和“i”。计算设备10可生成备选单词前缀,其包括接下来两个字符“ei”的换位以生成备选单词前缀“wie”。计算设备10可基于手势路径来确定用于“wie”的对准分数。在某些示例中,计算设备10可向用于“wei”的标志分配用于“wie”的对准分数并对用于“wei”的分数施加处罚。
在图7B的示例中,计算设备10可生成备选单词前缀“THR”,其由单词前缀“TRH”的第一子串“T”和基于修正数据30或者另外被计算设备10自动换位为“HR”的第二串“HR”构成。在某些示例中,计算设备10可将“T”和“HR”连接而形成备选单词前缀“THR”。计算设备10可将“THR”存储在活动射束162内的新标志中。计算设备10还可确定用于被存储在新标志中的“THR”的对准分数。由于“THR”与在语言模型28中建模的单词“thrift”的前三个字符匹配,所以用于“THR”的对准分数可高于“TRH”。因此,虽然用户可能已经用与“thrift”的错误拼写相对应的手势路径172A-172B来执行手势,计算设备10可基于包括单词前缀“THR”的部分的“thrift”的错误拼写来生成备选单词前缀。如图7C中进一步所示,随着用户继续该手势以拼写“thrift”的剩余部分,单词前缀“THR”将导致比例如“TRH”更高的对准分数。在表4中图示出活动射束162的示例内容的一部分。
表4
索引 父索引 当前节点的字母键 字母链 对准分数
i9 i3 I THR AS1+AS4+AS9
i6 i3 H TRH AS1+AS4+AS6
i7 i4 H GRH AS0+AS5+AS7
i8 i3 G TRG AS0+AS3+AS8
在图7C的示例中,计算设备10被示为已检测到手势路径172C。如上所述,可用表4来表示活动射束162的内容。计算设备10可确定沿着手势路径172C的对准点170D。计算设备10可针对活动射束162中的每个标志在每个子节点上创建拷贝。在图7C的示例中,token6至token9每个具有具有字母键“U”和“I”的子节点(例如,接近于对准点170D和/或在其预定义距离内)。针对每个创建的标志拷贝,计算设备10可如图1至2中所述地确定对准分数。计算设备10可将每个标志拷贝推送到下一射束164中,可用下表5来表示其内容。
表5
表5中所示的条目在格式方面类似于表1至4中所示的条目。在表5中,用于每个标志的对准分数包括用于先前字母的对准分数和用于当前字母的对准分数。如在表5的示例中可以看到的,其可按照从具有最大对准分数至最小对准分数的标志的排名顺序被排序,包括备选单词前缀“THRI”的token10可与最大对准分数AS1+AS4+AS9+AS10相关联。也就是说,对准分数AS1+AS4+AS9+AS10可以是表5中的最大对准分数。由于“THRI”与语言模型28中的“thrift”的前四个字符匹配,计算设备10可“预见”至语言模型28中的附加节点,包括用于“t”的终端节点,其共同地指示候选单词“thrift”。在某些示例中,如下面进一步描述的,计算设备10可基于单词前缀“THRI”与活动射束162中的最大对准分数相关联而输出“thrift”以用于显示。计算设备10可随着计算设备10接收到手势的进一步指示而继续递增地确定一个或多个标志,从而使得用户能够提供单个手势以选择单词或短语的一组键。
在图7C的示例中,计算设备10可确定用户是否已经完成执行手势。响应于确定用户已经完成执行手势,计算设备10可以输出候选单词的列表。候选单词可至少部分地基于一个或多个标志。在某些示例中,可以在语言模型28中并基于包括书面语言的单词的一个或多个字典的内容来对候选单词进行建模。在某些示例中,计算设备10可确定具有最高对准分数的候选单词的列表的子集(即,具有最高概率的预测)。另外,在某些示例中,计算设备10可在每个后续对准点处修订包含在活动射束162中的标志的对准分数,如在图7A至7C的示例中所述。
图8是图示出根据本公开的技术的被配置成使用基于手势的输入来执行输入的错误修正的计算设备的示例操作的流程图。出于举例说明的目的,下面在如图1和2中所示的计算设备10的背景内描述示例操作。
如图8中所示,计算设备10可递增地接收响应于用户执行手势而检测到的用户输入180的指示(180)。响应于接收到用户输入的一个或多个指示,计算设备10可选择活动射束中的每个标志,创建标志的一个或多个拷贝并使相应标志拷贝前进至词典特里中的不同子节点,如图1至2中所述(184)。如前所述,计算设备10可确定用于一个或多个相应标志的一个或多个对准分数是否满足阈值(186)。例如,如果用于一个或多个标志的相应对准分数满足阈值(例如,对准分数每个大于阈值)(190),计算设备10可在不确定一个或多个备选手势对准的情况下确定一个或多个候选单词(199)。
然而,如果一个或多个对准分数并未满足阈值(188),则计算设备10执行一个或多个技术以生成备选单词前缀。在某些示例中,计算设备10存储指示应用于单词前缀的修正的次数的信息。例如,计算设备10可确定多少次错误修正操作被应用于单词前缀。如果例如计算设备10使用错误修正操作(例如,替代错误修正)从单词前缀生成第一备选单词前缀,并随后使用第二错误修正操作(例如,换位错误修正)从第一备选单词前缀生成第二备选单词前缀,则计算设备10可存储指示两个数量的错误修正技术被应用于第二备选单词前缀的信息。在某些示例中,应用于单词前缀的错误修正技术的数量可被存储在包括该单词前缀的标志中。
作为一个示例,计算设备10可至少部分地基于单词前缀的子串对单词前缀应用第一错误修正操作。计算设备10可在应用第一错误修正操作时生成备选单词前缀,并将指示已经应用一个数量的错误修正操作以生成备选单词前缀的信息存储在包括单词前缀的标志中。响应于接收到手势的后续指示,计算设备10可确定应用于单词前缀的错误修正操作的数量(192)。计算设备10可确定在标志中指示的错误修正操作的数量满足阈值(例如,大于阈值或者大于或等于阈值)并避免对单词前缀应用错误修正操作(194)。替换地,如果错误修正操作的数量不满足阈值(例如,小于阈值)(196),则计算设备10可至少部分地基于备选字符或字符组来确定备选对准分数,该备选字符或字符组基于包括单词前缀的至少一部分的错误拼写(198)。在某些示例中,计算设备10可基于备选对准分数来确定一个或多个候选单词。这样,随着计算设备10执行修正和/或生成备选对准分数和/或备选单词前缀,计算设备10可确定已经应用以生成备选单词前缀的错误修正操作(例如,不同技术)的数量。如果已经由计算设备10应用阈值数目的操作以生成备选单词前缀,则计算设备10可以避免生成附加备选单词前缀。
在某些示例中,计算设备10可确定单词前缀是否与在语言模型28中建模的单词具有一定相似度,并且如果该相似度并未满足阈值,则计算设备10可避免对单词前缀应用一个或多个错误修正操作。这样,计算设备10可免于对与语言模型28中的一个或多个单词不同超过阈值的单词前缀执行不必要的处理。作为示例,计算设备10可通过至少部分地基于单词前缀的子串来应用第一错误修正操作而确定至少一个备选字符,其至少部分地基于包括单词前缀的至少一部分的错误拼写。响应于接收到在存在敏感输入设备处检测到的手势的后续指示,计算设备10可确定单词前缀与(例如在语言模型28中建模的)词典中的至少一个候选单词之间的相似度。该相似度可被包括在一定的相似度范围内。计算设备10可响应于确定相似度并未满足阈值(例如,小于阈值)而避免对单词前缀应用错误修正操作。然而,如果相似度确实满足阈值(例如,大于或等于阈值),则计算设备10可对单词前缀应用一个或多个错误修正操作。
图9是图示出根据本公开的技术的被配置成使用基于手势的输入来执行输入的错误修正的计算设备的示例操作的流程图。出于举例说明的目的,下面在如图1和2中所示的计算设备10的背景内描述示例性操作。
在图9的示例中,计算设备10可在最初输出包括多个键的图形键盘以用于显示(200)。计算设备10还可接收在存在敏感输入设备处检测到的手势的指示(202)。例如,计算设备10可接收由用户在存在敏感输入设备处执行的连续手势输入的一个或多个指示。在某些示例中,计算设备10可确定至少部分地基于单词前缀和手势所穿过的至少一个对准点的对准分数(204)。在某些示例中,对准分数表示所述至少一个对准点指示所述多个键中的键的概率。
在某些示例中,计算设备10可确定该对准分数是否满足第一阈值(206)。如果对准分数满足阈值(209),则计算设备10可至少部分地基于单词前缀来输出一个或多个候选单词(216)。然而,如果对准分数并未满足第一阈值,则计算设备10可确定至少一个备选字符,其至少部分地基于包括单词前缀的至少一部分的错误拼写(208)。
在某些示例中,计算设备10可确定至少部分地基于备选字符的备选对准分数(210)。在某些示例中,计算设备10可至少部分地基于备选对准分数输出候选单词以用于显示。例如,计算设备10可确定对准分数是否满足第二阈值(212)。如果对准分数确实满足第二阈值(213),则计算设备10可至少部分地备选字符输出一个或多个候选单词以用于显示(216)。在其它示例中,如果对准分数并未满足第二阈值(215),则计算设备10可接收在存在敏感输入设备处检测到的手势的后续指示(202)。换言之,计算设备10可并不在那时基于备选字符输出一个或多个候选单词。
图10是图示出根据本公开的技术的被配置成使用基于手势的输入来执行输入的错误修正的计算设备的示例操作的流程图。出于举例说明的目的,下面在如图1和2中所示的计算设备10的背景内描述示例操作。
在某些示例中,计算设备10可输出包括多个键的图形键盘以用于显示(230)。计算设备10还可接收在存在敏感输入设备处检测到的手势的指示(232)。在某些示例中,计算设备10可确定至少部分地基于单词前缀和手势所穿过的对准点的对准分数,其中,该对准分数表示该对准点指示所述多个键中的键的概率(234)。计算设备10可确定至少一个备选字符,其至少部分地基于包括单词前缀的至少一部分的错误拼写(236)。在某些示例中,计算设备10可确定至少部分地基于备选字符的备选对准分数(238)。计算设备10还可至少部分地基于备选对准分数输出候选单词以用于显示(240)。
在某些示例中,所述操作可包括由计算设备确定单词前缀的第二子串与修正数据中的第一串匹配;由计算设备至少部分地基于修正数据中的第一串来确定包括所述至少一个备选字符的修正数据中的第二串;以及由计算设备生成备选单词前缀,其包括单词前缀的第一子串和修正数据中的第二串。在某些示例中,修正数据中的第二串可包括单词前缀中的第二子串的语音替代。
在某些示例中,所述操作可包括由计算设备确定与修正数据中的第一串匹配的单词前缀的子串;由计算设备至少部分地基于修正数据中的第一串来确定至少一个备选字符;以及由计算设备生成包括单词前缀和所述至少一个备选字符的备选单词前缀。在某些示例中,备选字符可包括表示字符集中的每个可能字符的通配符。
在某些示例中,所述操作可包括由计算设备生成备选单词前缀,其至少包括单词前缀的子串;以及由计算设备在备选单词前缀中插入至少一个占位符值,其中,所述至少一个占位符值指示未被包括在基于备选单词前缀的一个或多个候选单词中的至少一个任意字符。在某些示例中,所述操作可包括由计算设备生成备选单词前缀,其至少包括单词前缀的子串;响应于接收到在第一手势以后的第二手势的指示,由计算设备避免在备选单词前缀中插入一个或多个字符;以及响应于接收到在第二手势以后的第三手势的指示,由计算设备在备选单词前缀中插入至少一个字符。
在某些示例中,所述操作可包括由计算设备生成备选单词前缀,其至少包括单词前缀的子串;响应于接收到在第一手势以后的第二手势的指示,由计算设备避免在备选单词前缀中插入一个或多个字符;以及响应于接收到在第二手势以后的第三手势的指示,由计算设备在备选单词前缀中插入至少一个字符。在某些示例中,所述操作可包括由计算设备确定第二子串的换位,其中,第二子串的至少两个字符的字符位置在换位中被换位,其中,所述至少一个备选字符被包括在换位中;以及由计算设备生成包括至少所述换位的备选单词前缀。
在某些示例中,所述操作可包括由计算设备确定第一子串和第二子串中的至少一个与修正数据中的串匹配;以及由计算设备至少部分地基于所述匹配来确定所述换位。在某些示例中,所述操作可包括其中确定至少一个备选字符包括至少部分地基于单词前缀的子串来应用第一错误修正操作,所述方法还包括:响应于接收到在存在敏感输入设备处检测到的手势的后续指示,由计算设备确定应用于单词前缀的错误修正操作的数量;以及响应于确定错误修正操作的数量满足阈值,由计算设备避免对单词前缀应用错误修正操作。
在某些示例中,所述操作可包括由计算设备响应于确定所述至少一个备选字符来确定处罚值;以及由计算设备至少部分地基于所述处罚值来确定所述备选对准分数。在某些示例中,所述操作可包括由计算设备从多个错误修正操作中确定一种类型的错误修正操作;以及由计算设备从多个处罚值中选择处罚值,其中,所述多个处罚值中的每个处罚值按照排名顺序被排序,其中,每个处罚值与至少一种类型的错误修正操作相关联。
在某些示例中,所述操作可包括响应于确定备选对准分数满足阈值,由计算设备至少部分地基于备选字符来输出候选单词以用于显示,其中,所述阈值包括等于与一个或多个对准分数相关联的单词前缀的第一子集的数量的值,所述一个或多个对准分数大于与单词前缀的第二子集中的单词前缀相关联的对准分数。在某些示例中,所述操作可包括响应于接收到在存在敏感输入设备处检测到的手势的后续指示,由计算设备确定单词前缀与词典中的至少一个候选单词之间的相似度,其中,该相似度在一定的相似度范围内;以及响应于确定所述相似度并未满足阈值,由计算设备避免对单词前缀应用错误修正操作。
示例1:一种方法,包括:由计算设备输出包括多个键的图形键盘以用于显示;由计算设备接收在存在敏感输入设备处检测到的手势的指示;
由计算设备确定至少部分地基于单词前缀和手势所穿过的对准点的对准分数,其中,所述对准分数表示对准点指示多个键中的键的概率;由计算设备确定至少一个备选字符,所述至少一个备选字符至少部分地基于包括单词前缀的至少一部分的错误拼写;由计算设备确定至少部分地基于备选字符的备选对准分数;以及由计算设备至少部分地基于备选对准分数来输出候选单词以用于显示。
示例2:根据示例1的方法,其中,单词前缀包括第一子串和第二子串,第二子串包括所述至少一个字符,并且其中,确定至少一个备选字符还包括:由计算设备确定单词前缀的第二子串与修正数据中的第一串匹配;由计算设备至少部分地基于修正数据中的第一串来确定包括所述至少一个备选字符的修正数据中的第二串;以及由计算设备生成备选单词前缀,所述备选单词前缀包括单词前缀的第一子串和修正数据中的第二串。
示例3:根据示例1至2中的任一项的方法,其中,修正数据中的第二串包括单词前缀中的第二子串的语音替代。
示例4:根据示例1至3中的任一项的方法,还包括:由计算设备确定与修正数据中的第一串匹配的单词前缀的子串;由计算设备至少部分地基于修正数据中的第一串来确定至少一个备选字符;以及由计算设备生成包括单词前缀和所述至少一个备选字符的备选单词前缀。
示例5:根据示例1至4中的任一项的方法,其中,备选字符包括表示字符集中的每个可能字符的通配符。
示例6:根据示例1至5中的任一项的方法,其中,所述至少一个备选字符包括至少一个占位符值,其中,确定至少一个备选字符还包括:由计算设备生成备选单词前缀,所述备选单词前缀至少包括单词前缀的子串;以及由计算设备在备选单词前缀中插入至少一个占位符值,其中,所述至少一个占位符值指示未被包括在基于备选单词前缀的一个或多个候选单词中的至少一个任意字符。
示例7:根据示例1至6中的任一项的方法,其中,所述手势是第一手势,所述方法还包括:由计算设备生成备选单词前缀,所述备选单词前缀至少包括单词前缀的子串;响应于接收到在第一手势以后的第二手势的指示,由计算设备避免在备选单词前缀中插入一个或多个字符;以及响应于接收到在第二手势以后的第三手势的指示,由计算设备在备选单词前缀中插入至少一个字符。
示例8:根据示例1至7中的任一项的方法,其中,所述单词前缀包括第一子串和第二子串,其中,确定至少一个备选字符还包括:由计算设备确定第二子串的换位,其中,第二子串的至少两个字符的字符位置在换位中被换位,其中,所述至少一个备选字符被包括在换位中;以及由计算设备生成包括至少所述换位的备选单词前缀。
示例9:根据示例1至8中的任一项的方法,还包括:由计算设备确定第一子串和第二子串中的至少一个与修正数据中的串匹配;以及由计算设备至少部分地基于所述匹配来确定所述换位。
示例10:根据示例1至9中的任一项的方法,其中,确定至少一个备选字符包括至少部分地基于单词前缀的子串来应用第一错误修正操作,还包括:响应于接收到在存在敏感输入设备处检测到的手势的后续指示,由计算设备确定应用于单词前缀的错误修正操作的数量;以及响应于确定错误修正操作的数量满足阈值,由计算设备避免对单词前缀应用错误修正操作。
示例11:根据示例1至10中的任一项的方法,其中,确定至少部分地基于备选字符的备选对准分数还包括:由计算设备响应于确定所述至少一个备选字符来确定处罚值:以及由计算设备至少部分地基于所述处罚值来确定备选对准分数。
示例12:根据示例1至11中的任一项的方法,其中,确定所述至少一个备选字符包括至少部分地基于单词前缀的子串来确定至少一个错误修正操作,所述方法还包括:由计算设备从多个错误修正操作中确定一种类型的错误修正操作;以及由计算设备从多个处罚值中选择处罚值,其中,所述多个处罚值中的每个处罚值按照排名顺序被排序,其中,每个处罚值与至少一种类型的错误修正操作相关联。
示例13:根据示例1至12中的任一项的方法,其中,至少部分地基于备选字符来输出候选单词,还包括:响应于确定备选对准分数满足阈值,由计算设备至少部分地基于备选字符来输出候选单词以用于显示,其中,所述阈值包括等于与一个或多个对准分数相关联的单词前缀的第一子集的数量的值,所述一个或多个对准分数大于与单词前缀的第二子集中的单词前缀相关联的对准分数。
示例14:根据示例1至13中的任一项的方法,其中,确定至少一个备选字符包括至少部分地基于单词前缀的子串来应用第一错误修正操作,所述方法还包括:响应于接收到在存在敏感输入设备处检测到的手势的后续指示,由计算设备确定单词前缀与词典中的至少一个候选单词之间的相似度,其中,相似度在一定的相似度范围内;以及响应于确定所述相似度并未满足阈值,由计算设备避免对单词前缀应用错误修正操作。
示例15:根据示例1至14中的任一项的方法,还包括:响应于由计算设备确定对准分数未能满足阈值,确定至少一个备选字符,所述至少一个备选字符至少部分地基于包括单词前缀的至少部分的错误拼写。
示例16:一种被用指令编码的计算机可读存储介质,所述指令在被执行时促使至少一个处理器:输出包括多个键的图形键盘以用于显示;接收在存在敏感输入设备处检测到的手势的指示;确定至少部分地基于单词前缀和手势所穿过的对准点的对准分数,其中,所述对准分数表示对准点指示所述多个键中的键的概率;确定至少一个备选字符,所述至少一个备选字符至少部分地基于包括单词前缀的至少一部分的错误拼写;确定至少部分地基于备选字符的备选对准分数;以及至少部分地基于备选对准分数来输出至少部分地基于备选字符的候选单词以用于显示。
示例17:根据示例16的计算机可读存储介质,其中,单词前缀包括第一子串和第二子串,所述第二子串包括所述至少一个字符,并且其中,所述计算机可读存储介质被用指令编码,所述指令在被执行时促使至少一个处理器:确定单词前缀的第二子串与修正数据中的第一串匹配;至少部分地基于修正数据中的第一串来确定包括所述至少一个备选字符的修正数据中的第二串;以及生成备选单词前缀,所述备选单词前缀包括单词前缀的第一子串和修正数据中的第二串。
示例18:根据示例16至17中的任一项的计算机可读存储介质,其中,所述至少一个备选字符包括至少一个占位符值,并且其中,所述计算机可读存储介质被用指令编码,所述指令在被执行时促使至少一个处理器:生成备选单词前缀,所述备选单词前缀至少包括单词前缀的子串;以及在备选单词前缀中插入至少一个占位符值,其中,所述至少一个占位符值指示未被包括在基于备选单词前缀的一个或多个候选单词中的至少一个任意字符。
示例19:根据示例16至18中的任一项的计算机可读存储介质,其中,所述手势是第一手势,其中,所述计算机可读存储介质被用指令编码,所述指令在被执行时促使至少一个处理器:生成备选单词前缀,所述备选单词前缀至少包括单词前缀的子串;响应于接收到在第一手势以后的第二手势的指示,避免在备选单词前缀中插入一个或多个字符;以及响应于接收到在第二手势以后的第三手势的指示,在备选单词前缀中插入至少一个字符。
示例20:根据示例16至19中的任一项的计算机可读存储介质,其中,所述单词前缀包括第一子串和第二子串,其中,所述计算机可读存储介质被用指令编码,所述指令在被执行时促使至少一个处理器:确定第二子串的换位,其中,所述第二子串的至少两个字符的字符位置在换位中被换位,其中,所述至少一个备选字符被包括在换位中;以及生成包括至少所述换位的备选单词前缀。
示例21:一种包括至少一个处理器的计算设备,其中,所述至少一个处理器被配置成:输出包括多个键的图形键盘以用于显示;接收在存在敏感输入设备处检测到的手势的指示;确定至少部分地基于单词前缀和手势所穿过的对准点的对准分数,其中,所述对准分数表示对准点指示所述多个键中的键的概率;响应于确定对准分数未能满足阈值,确定至少一个备选单词前缀;确定至少部分地基于所述至少一个备选单词前缀的备选对准分数;以及至少部分地基于备选对准分数来输出候选单词以用于显示。
示例22:根据示例21的计算设备,其中,单词前缀包括第一子串和第二子串,第二子串,并且其中,所述至少一个处理器被配置成:确定单词前缀的第二子串与修正数据中的第一串匹配;至少部分地基于修正数据中的第一串来确定修正数据中的第二串;以及生成备选单词前缀,所述备选单词前缀包括单词前缀的第一子串和修正数据中的第二串。
示例23:根据示例21至22中的任一项的计算设备,其中,所述至少一个处理器被配置成:生成备选单词前缀,所述备选单词前缀至少包括单词前缀的子串的;以及在备选单词前缀中插入至少一个占位符值,其中,所述至少一个占位符值指示未被包括在基于备选单词前缀的一个或多个候选单词中的至少一个任意字符。
示例24:根据示例21至23中的任一项的计算设备,其中,所述手势是第一手势,其中,所述至少一个处理器被配置成:生成备选单词前缀,所述备选单词前缀至少包括单词前缀的子串;响应于接收到在第一手势以后的第二手势的指示,避免在备选单词前缀中插入一个或多个字符;以及
响应于接收到在第二手势以后的第三手势的指示,在备选单词前缀中插入至少一个字符。
示例25:根据示例21至24中的任一项的计算设备,其中,所述单词前缀包括第一子串和第二子串,其中,所述至少一个处理器被配置成:确定第二子串的换位,其中,所述第二子串的至少两个字符的字符位置在换位中被换位,其中,所述至少一个备选字符被包括在换位中;以及生成包括至少所述换位的备选单词前缀。
示例26:一种计算设备包括:用于输出包括多个键的图形键盘以用于显示的装置;接收在存在敏感输入设备处检测到的手势的指示;用于确定至少部分地基于单词前缀和手势所穿过的对准点的对准分数的装置,其中,所述对准分数表示对准点指示所述多个键中的键的概率;用于响应于确定对准分数未能满足阈值,确定至少一个备选单词前缀的装置;用于确定至少部分地基于所述至少一个备选单词前缀的备选对准分数的装置;以及用于至少部分地基于备选对准分数来输出候选单词以用于显示的装置。
示例27:根据示例26的计算设备,包括用于执行示例2至15的方法中的任一项的装置。
示例28:一种被用指令编码的计算机可读存储介质,所述指令在被执行时促使计算设备的至少一个处理器执行示例1至15中的任一项所述的方法。
示例29:一种设备,包括:至少一个处理器;以及至少一个模块,所述至少一个模块可被所述至少一个处理器操作以执行示例1至15中的任一项所述的方法。
在一个或多个示例中,可用硬件、软件、固件或其任何组合来实现所述功能。如果用软件实现,则可将功能作为一个或多个指令或代码存储在计算机可读介质上或者通过计算机可读介质传送并被基于硬件的处理单元执行。计算机可读介质可包括计算机可读存储介质,其对应于诸如数据存储介质之类的有形介质或者包括促进例如根据通信协议将计算机程序从一地传输到另一地的任何介质的通信介质。以这种方式,计算机可读介质一般地可对应于(1)有形计算机可读存储介质,其是非暂时的,或者(2)通信介质,诸如信号或载波。数据存储介质可以是可以被一个或多个计算机或一个或多个处理器访问以检索用于实现本公开中所述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可包括计算机可读介质。
以示例而非限制的方式,此类计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘储存器、磁盘储存器或其它磁存储器件、闪速存储器或者可以用来以指令或数据结构的形式存储期望程序代码且可以被计算机访问的任何其它介质。并且,将任何连接适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或诸如红外线、无线电以及微波之类的无线技术从网站、服务器或其它远程源传送指令,则在介质的定义中包括同轴电缆、光纤电缆、双绞线、DSL或诸如红外线、无线电和微波之类的无线技术。然而,应理解的是计算机可读存储介质和数据存储介质不包括连接、载波、信号或其它临时介质,而是替代地针对非临时、有形存储介质。如本文所使用的磁盘和光盘包括紧凑式盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘和蓝光盘,其中磁盘通常磁性地再现数据,而光盘用激光光学地再现数据。在计算机可读介质的范围内还应包括上述的组合。
指令可由一个或多个处理器执行,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或分立逻辑电路。因此,本文所使用的术语“处理器”可指的是适合于实现所述技术的前述结构中的任何一个或任何其它结构。另外,在某些方面,可在专用硬件和/或软件模块内提供所述功能。并且,该技术可以完全用一个或多个电路或逻辑元件来实现。
可在多种设备或装置中实现本公开的技术,包括无线手机、集成电路(IC)或一组IC(例如,芯片组)。在本公开中描述各种组件、模块或单元是为了强调被配置成执行公开技术的设备的功能方面,但是不一定要求用不同的硬件单元来实现。相反地,如上所述,可将各种单元组合在硬件单元中,或者由许多互操作硬件单元来提供,包括如上所述的一个或多个处理器,与适当的软件和/或固件相结合。
应认识到的是取决于实施例,可按照不同的序列来执行本文所述方法中的任一项的某些动作或事件,可添加、合并或完全省去(例如,并非所有的所述动作或事件都是方法的实施所需要的)本文所述方法中的任一项的某些动作或事件。此外,在某些实施例中,可例如通过多线程处理、中断处理或多个处理器同时地而不是连续地执行动作或事件。
已经描述了各种示例。这些及其它示例在所附权利要求的范围内。

Claims (17)

1.一种方法,包括:
由计算设备输出包括多个键的图形键盘以用于显示;
由所述计算设备接收在存在敏感输入设备处检测到的手势的指示;
由所述计算设备确定至少部分地基于单词前缀和所述手势所穿过的对准点的对准分数,其中,所述对准分数表示所述对准点指示所述多个键中的键的概率;
由所述计算设备确定至少一个备选字符,所述至少一个备选字符至少部分地基于包括所述单词前缀的至少一部分的错误拼写;
由所述计算设备确定至少部分地基于所述备选字符的备选对准分数;以及
由所述计算设备至少部分地基于所述备选对准分数来输出候选单词以用于显示。
2.根据权利要求1所述的方法,
其中,所述单词前缀包括第一子串和第二子串,所述第二子串包括所述至少一个字符,并且
其中,确定至少一个备选字符还包括:
由所述计算设备确定所述单词前缀的所述第二子串与修正数据中的第一串匹配;
由所述计算设备至少部分地基于所述修正数据中的所述第一串来确定包括所述至少一个备选字符的所述修正数据中的第二串;以及
由所述计算设备生成备选单词前缀,所述备选单词前缀包括所述单词前缀的所述第一子串和所述修正数据中的所述第二串。
3.根据权利要求1至2中的任一项所述的方法,其中,所述修正数据中的所述第二串包括所述单词前缀中的所述第二子串的语音替代。
4.根据权利要求1至3中的任一项所述的方法,还包括:
由所述计算设备确定与所述修正数据中的第一串匹配的所述单词前缀的子串;
由所述计算设备至少部分地基于所述修正数据中的所述第一串来确定至少一个备选字符;以及
由所述计算设备生成包括所述单词前缀和所述至少一个备选字符的备选单词前缀。
5.根据权利要求1至4中的任一项所述的方法,其中,所述备选字符包括表示字符集中的每个可能字符的通配符。
6.根据权利要求1至5中的任一项所述的方法,其中,所述至少一个备选字符包括至少一个占位符值,其中,确定至少一个备选字符还包括:
由所述计算设备生成备选单词前缀,所述备选单词前缀至少包括所述单词前缀的子串;以及
由所述计算设备在所述备选单词前缀中插入至少一个占位符值,其中,所述至少一个占位符值指示未被包括在基于所述备选单词前缀的一个或多个候选单词中的至少一个任意字符。
7.根据权利要求1至6中的任一项所述的方法,其中,所述手势是第一手势,所述方法还包括:
由所述计算设备生成备选单词前缀,所述备选单词前缀至少包括所述单词前缀的子串;
响应于接收到在所述第一手势以后的第二手势的指示,由所述计算设备避免在所述备选单词前缀中插入一个或多个字符;以及
响应于接收到在所述第二手势以后的第三手势的指示,由所述计算设备在所述备选单词前缀中插入至少一个字符。
8.根据权利要求1至7中的任一项所述的方法,其中,所述单词前缀包括第一子串和第二子串,其中,确定至少一个备选字符还包括:
由所述计算设备确定所述第二子串的换位,其中,所述第二子串的至少两个字符的字符位置在所述换位中被换位,其中,所述至少一个备选字符被包括在所述换位中;以及
由所述计算设备生成包括至少所述换位的备选单词前缀。
9.根据权利要求1至8中的任一项所述的方法,还包括:
由所述计算设备确定所述第一子串和所述第二子串中的至少一个与所述修正数据中的串匹配;以及
由所述计算设备至少部分地基于所述匹配来确定所述换位。
10.根据权利要求1至9中的任一项所述的方法,
其中,确定至少一个备选字符包括至少部分地基于所述单词前缀的子串来应用第一错误修正操作,还包括:
响应于接收到在存在敏感输入设备处检测到的手势的后续指示,由所述计算设备确定应用于所述单词前缀的错误修正操作的数量;以及
响应于确定所述错误修正操作的数量满足阈值,由所述计算设备避免对所述单词前缀应用错误修正操作。
11.根据权利要求1至10中的任一项所述的方法,其中,确定至少部分地基于所述备选字符的所述备选对准分数还包括:
由所述计算设备响应于确定所述至少一个备选字符来确定处罚值:以及
由所述计算设备至少部分地基于所述处罚值来确定所述备选对准分数。
12.根据权利要求1至11中的任一项所述的方法,其中,确定所述至少一个备选字符包括至少部分地基于所述单词前缀的子串来确定至少一个错误修正操作,所述方法还包括:
由所述计算设备从多个错误修正操作中确定一种类型的错误修正操作;以及
由所述计算设备从多个处罚值中选择处罚值,其中,所述多个处罚值中的每个处罚值按照排名顺序被排序,其中,每个处罚值与至少一种类型的错误修正操作相关联。
13.根据权利要求1至12中的任一项所述的方法,其中,至少部分地基于所述备选字符来输出所述候选单词,还包括:
响应于确定所述备选对准分数满足阈值,由所述计算设备至少部分地基于所述备选字符来输出所述候选单词以用于显示,其中,所述阈值包括等于与一个或多个对准分数相关联的单词前缀的第一子集的数量的值,所述一个或多个对准分数大于与单词前缀的第二子集中的单词前缀相关联的对准分数。
14.根据权利要求1至13中的任一项所述的方法,其中,确定至少一个备选字符包括至少部分地基于所述单词前缀的子串来应用第一错误修正操作,所述方法还包括:
响应于接收到在存在敏感输入设备处检测到的手势的后续指示,由所述计算设备确定所述单词前缀与词典中的至少一个候选单词之间的相似度,其中,所述相似度在一定的相似度范围内;以及
响应于确定所述相似度并未满足阈值,由所述计算设备避免对所述单词前缀应用错误修正操作。
15.根据权利要求1至14中的任一项所述的方法,还包括:
响应于由所述计算设备确定所述对准分数未能满足阈值,确定所述至少一个备选字符,所述至少一个备选字符至少部分地基于包括所述单词前缀的至少所述部分的错误拼写。
16.一种被用指令编码的计算机可读存储介质,所述指令在被执行时促使计算设备的至少一个处理器执行权利要求1至15中的任一项所述的方法。
17.一种设备,包括:
至少一个处理器;以及至少一个模块,所述至少一个模块可被所述至少一个处理器操作以执行权利要求1至15中的任一项所述的方法。
CN201480038018.9A 2013-05-03 2014-05-01 用于手势键入的备选假设错误修正 Active CN105378606B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361819363P 2013-05-03 2013-05-03
US61/819,363 2013-05-03
US13/907,614 2013-05-31
US13/907,614 US9081500B2 (en) 2013-05-03 2013-05-31 Alternative hypothesis error correction for gesture typing
PCT/US2014/036459 WO2014179624A1 (en) 2013-05-03 2014-05-01 Alternative hypothesis error correction for gesture typing

Publications (2)

Publication Number Publication Date
CN105378606A true CN105378606A (zh) 2016-03-02
CN105378606B CN105378606B (zh) 2018-10-02

Family

ID=51841200

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480038018.9A Active CN105378606B (zh) 2013-05-03 2014-05-01 用于手势键入的备选假设错误修正

Country Status (7)

Country Link
US (3) US9081500B2 (zh)
EP (1) EP2992406B1 (zh)
KR (1) KR101750969B1 (zh)
CN (1) CN105378606B (zh)
AU (1) AU2014259754B2 (zh)
CA (1) CA2910413C (zh)
WO (1) WO2014179624A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107229348A (zh) * 2016-03-23 2017-10-03 北京搜狗科技发展有限公司 一种输入纠错方法、装置和用于输入纠错的装置
CN109213333A (zh) * 2017-07-07 2019-01-15 联想(新加坡)私人有限公司 用于将语音转换为文本及使用姿势插入字符的装置和方法

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9081500B2 (en) 2013-05-03 2015-07-14 Google Inc. Alternative hypothesis error correction for gesture typing
US9690478B2 (en) * 2014-03-04 2017-06-27 Texas Instruments Incorporated Method and system for processing gestures to cause computation of measurement of an angle or a segment using a touch system
US9952763B1 (en) * 2014-08-26 2018-04-24 Google Llc Alternative gesture mapping for a graphical keyboard
CN104268166B (zh) * 2014-09-09 2017-04-19 北京搜狗科技发展有限公司 一种输入方法、装置和电子设备
USD771646S1 (en) * 2014-09-30 2016-11-15 Apple Inc. Display screen or portion thereof with graphical user interface
CN104317426B (zh) * 2014-09-30 2018-02-27 联想(北京)有限公司 输入方法及电子设备
CN104615591B (zh) * 2015-03-10 2019-02-05 上海触乐信息科技有限公司 基于上下文的前向输入纠错方法和装置
US9678664B2 (en) 2015-04-10 2017-06-13 Google Inc. Neural network for keyboard input decoding
US10402490B1 (en) * 2015-08-14 2019-09-03 Shutterstock, Inc. Edit distance based spellcheck
US20180018086A1 (en) * 2016-07-14 2018-01-18 Google Inc. Pressure-based gesture typing for a graphical keyboard
US10884610B2 (en) * 2016-11-04 2021-01-05 Myscript System and method for recognizing handwritten stroke input
US10572591B2 (en) * 2016-11-18 2020-02-25 Lenovo (Singapore) Pte. Ltd. Input interpretation based upon a context
US20180188823A1 (en) * 2017-01-04 2018-07-05 International Business Machines Corporation Autocorrect with weighted group vocabulary
CN107390894A (zh) * 2017-07-21 2017-11-24 Tcl移动通信科技(宁波)有限公司 五笔输入法的输入前识别控制方法、存储装置及移动终端
US11928083B2 (en) 2017-10-09 2024-03-12 Box, Inc. Determining collaboration recommendations from file path information
US11709753B2 (en) 2017-10-09 2023-07-25 Box, Inc. Presenting collaboration activities
US11030223B2 (en) * 2017-10-09 2021-06-08 Box, Inc. Collaboration activity summaries
RU2726009C1 (ru) 2017-12-27 2020-07-08 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для исправления неверного набора слова вследствие ошибки ввода с клавиатуры и/или неправильной раскладки клавиатуры
US11061556B2 (en) * 2018-01-12 2021-07-13 Microsoft Technology Licensing, Llc Computer device having variable display output based on user input with variable time and/or pressure patterns
JP2020026086A (ja) * 2018-08-10 2020-02-20 京セラドキュメントソリューションズ株式会社 画像形成装置
US10757208B2 (en) 2018-08-28 2020-08-25 Box, Inc. Curating collaboration activity
US11163834B2 (en) 2018-08-28 2021-11-02 Box, Inc. Filtering collaboration activity
US10788889B1 (en) * 2019-03-25 2020-09-29 Raytheon Company Virtual reality locomotion without motion controllers
WO2023137099A2 (en) * 2022-01-14 2023-07-20 Bierman, Ellen, M. Contextual keyboard input method, system, and techniques

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1761989A (zh) * 2003-01-16 2006-04-19 克利福德·A·库什勒 基于连续笔划字词的文本输入系统和方法
US20070040813A1 (en) * 2003-01-16 2007-02-22 Forword Input, Inc. System and method for continuous stroke word-based text input
CN101853126A (zh) * 2010-05-12 2010-10-06 中国科学院自动化研究所 一种联机手写句子实时识别方法
US20110193797A1 (en) * 2007-02-01 2011-08-11 Erland Unruh Spell-check for a keyboard system with automatic correction
US20120162092A1 (en) * 2010-12-23 2012-06-28 Research In Motion Limited Portable electronic device and method of controlling same

Family Cites Families (227)

* 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
EP0450196B1 (en) 1990-04-02 1998-09-09 Koninklijke Philips Electronics N.V. Data processing system using gesture-based input data
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
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
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
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 ソニー株式会社 文章入力装置及び方法
US5953541A (en) 1997-01-24 1999-09-14 Tegic Communications, Inc. Disambiguating system for disambiguating ambiguous input sequences by displaying objects associated with the generated input sequences in the order of decreasing frequency of use
US6047300A (en) 1997-05-15 2000-04-04 Microsoft Corporation System and method for automatically correcting a misspelled word
US6278453B1 (en) 1997-06-13 2001-08-21 Starfish Software, Inc. Graphical password methodology for a microprocessor device accepting non-alphanumeric user input
US6686931B1 (en) 1997-06-13 2004-02-03 Motorola, 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
US8479122B2 (en) 2004-07-30 2013-07-02 Apple Inc. Gestures for touch sensitive input devices
US7614008B2 (en) 2004-07-30 2009-11-03 Apple Inc. Operation of a computer with touch screen interface
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
US6150600A (en) 1998-12-01 2000-11-21 Buchla; Donald F. Inductive location sensor system and electronic percussion system
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
US7030863B2 (en) 2000-05-26 2006-04-18 America Online, Incorporated Virtual 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
CA2392446C (en) 1999-05-27 2009-07-14 America Online Incorporated Keyboard system with automatic correction
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
US6573844B1 (en) 2000-01-18 2003-06-03 Microsoft Corporation Predictive 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
AU2001270420A1 (en) 2000-07-21 2002-02-05 Raphael Bachmann Method for a high-speed writing system and high-speed writing device
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
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
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
US6765556B2 (en) 2001-11-16 2004-07-20 International Business Machines Corporation Two-key input per character text entry apparatus and method
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
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
DE60212976T2 (de) 2002-11-20 2006-11-16 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
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
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
JP4843505B2 (ja) 2004-12-24 2011-12-21 独立行政法人科学技術振興機構 ナノ黒鉛構造体−金属ナノ粒子複合体
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
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)
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
US20070152980A1 (en) 2006-01-05 2007-07-05 Kenneth Kocienda Touch Screen Keyboards for Portable Electronic Devices
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
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
WO2008013658A2 (en) 2006-07-03 2008-01-31 Cliff Kushler System and method for a user interface for text editing and menu selection
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
US7774193B2 (en) 2006-12-05 2010-08-10 Microsoft Corporation Proofing of word collocation errors based on a comparison with collocations in a corpus
US20080172293A1 (en) 2006-12-28 2008-07-17 Yahoo! Inc. Optimization framework for association of advertisements with sequential media
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
US7907125B2 (en) 2007-01-05 2011-03-15 Microsoft Corporation Recognizing multiple input point gestures
US7809719B2 (en) 2007-02-08 2010-10-05 Microsoft Corporation Predicting textual candidates
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
US8015232B2 (en) * 2007-10-11 2011-09-06 Roaming Keyboards Llc Thin terminal computer architecture utilizing roaming keyboard files
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
US8280886B2 (en) 2008-02-13 2012-10-02 Fujitsu Limited Determining candidate terms related to terms of a query
US20090249198A1 (en) 2008-04-01 2009-10-01 Yahoo! Inc. Techniques for input recogniton and completion
WO2010011972A1 (en) 2008-07-24 2010-01-28 Headsprout, Inc. Teaching reading comprehension
US8619048B2 (en) 2008-08-08 2013-12-31 Moonsun Io Ltd. Method and device of stroke based user input
EA201100347A1 (ru) 2008-08-12 2011-10-31 Килесс Системз Лтд. Система ввода данных
US20100070908A1 (en) 2008-09-18 2010-03-18 Sun Microsystems, Inc. System and method for accepting or rejecting suggested text corrections
US20100079382A1 (en) 2008-09-26 2010-04-01 Suggs Bradley N Touch-screen monitoring
US8788261B2 (en) 2008-11-04 2014-07-22 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
KR101126406B1 (ko) 2008-11-27 2012-04-20 엔에이치엔(주) 유사어 결정 방법 및 시스템
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
RU2011134935A (ru) 2009-02-04 2013-03-10 Кейлесс Системз Лтд. Система ввода данных
US20100235780A1 (en) 2009-03-16 2010-09-16 Westerman Wayne C System and Method for Identifying Words Based on a Sequence of Keyboard Events
US8566045B2 (en) 2009-03-16 2013-10-22 Apple Inc. Event recognition
US9684521B2 (en) 2010-01-26 2017-06-20 Apple Inc. Systems having discrete and continuous gesture recognizers
US9311112B2 (en) 2009-03-16 2016-04-12 Apple Inc. Event recognition
US8566044B2 (en) 2009-03-16 2013-10-22 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
US20120046544A1 (en) 2009-04-16 2012-02-23 Shimadzu Corporation Radiation tomography apparatus
US20100315266A1 (en) 2009-06-15 2010-12-16 Microsoft Corporation Predictive interfaces with usability constraints
DE102010031878A1 (de) 2009-07-22 2011-02-10 Logitech Europe S.A. System und Verfahren zur entfernten virtuellen auf-einen-Schirm-Eingabe
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
US8782556B2 (en) 2010-02-12 2014-07-15 Microsoft Corporation User-centric soft keyboard predictive technologies
US9417787B2 (en) 2010-02-12 2016-08-16 Microsoft Technology Licensing, Llc Distortion effects to indicate location in a movable data collection
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 华为终端有限公司 一种获取用户输入信息的方法、装置及通信终端
KR101477530B1 (ko) 2010-03-12 2014-12-30 뉘앙스 커뮤니케이션즈, 인코포레이티드 이동 전화의 터치 스크린과 함께 사용하기 위한 다중 모드 문자 입력 시스템
US8542195B2 (en) 2010-03-30 2013-09-24 International Business Machines Corporation Method for optimization of soft keyboards for multiple languages
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
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
US8810581B2 (en) 2010-10-20 2014-08-19 Blackberry Limited Character input method
US20120113008A1 (en) 2010-11-08 2012-05-10 Ville Makinen On-screen keyboard with haptic effects
US9235828B2 (en) 2010-11-17 2016-01-12 Z124 Email client display transition
US9870141B2 (en) 2010-11-19 2018-01-16 Microsoft Technology Licensing, Llc Gesture recognition
EP2641145A4 (en) 2010-11-20 2017-05-03 Nuance Communications, Inc. Systems and methods for using entered text to access and process contextual information
US20120166428A1 (en) 2010-12-22 2012-06-28 Yahoo! Inc Method and system for improving quality of web content
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
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
US8719719B2 (en) 2011-06-17 2014-05-06 Google Inc. Graphical icon presentation
US20130212515A1 (en) 2012-02-13 2013-08-15 Syntellia, Inc. User interface for text input
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
US9310889B2 (en) 2011-11-10 2016-04-12 Blackberry 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
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
WO2013119712A1 (en) 2012-02-06 2013-08-15 Colby Michael K Character-string completion
CN102629158B (zh) 2012-02-29 2015-04-08 广东威创视讯科技股份有限公司 基于触摸屏系统的文字输入方法及装置
US8667414B2 (en) 2012-03-23 2014-03-04 Google Inc. Gestural input at a virtual keyboard
US8782549B2 (en) 2012-10-05 2014-07-15 Google Inc. Incremental feature-based gesture-keyboard decoding
US9021380B2 (en) 2012-10-05 2015-04-28 Google Inc. Incremental multi-touch gesture recognition
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
US9081500B2 (en) 2013-05-03 2015-07-14 Google Inc. Alternative hypothesis error correction for gesture typing

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1761989A (zh) * 2003-01-16 2006-04-19 克利福德·A·库什勒 基于连续笔划字词的文本输入系统和方法
US20070040813A1 (en) * 2003-01-16 2007-02-22 Forword Input, Inc. System and method for continuous stroke word-based text input
US20110193797A1 (en) * 2007-02-01 2011-08-11 Erland Unruh Spell-check for a keyboard system with automatic correction
CN101853126A (zh) * 2010-05-12 2010-10-06 中国科学院自动化研究所 一种联机手写句子实时识别方法
US20120162092A1 (en) * 2010-12-23 2012-06-28 Research In Motion Limited Portable electronic device and method of controlling same

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107229348A (zh) * 2016-03-23 2017-10-03 北京搜狗科技发展有限公司 一种输入纠错方法、装置和用于输入纠错的装置
CN107229348B (zh) * 2016-03-23 2021-11-02 北京搜狗科技发展有限公司 一种输入纠错方法、装置和用于输入纠错的装置
CN109213333A (zh) * 2017-07-07 2019-01-15 联想(新加坡)私人有限公司 用于将语音转换为文本及使用姿势插入字符的装置和方法
CN109213333B (zh) * 2017-07-07 2023-02-28 联想(新加坡)私人有限公司 用于将语音转换为文本及使用姿势插入字符的装置和方法

Also Published As

Publication number Publication date
KR101750969B1 (ko) 2017-06-26
US20150277757A1 (en) 2015-10-01
US9081500B2 (en) 2015-07-14
US20140327622A1 (en) 2014-11-06
CA2910413A1 (en) 2014-11-06
AU2014259754A1 (en) 2015-11-12
US20180074698A1 (en) 2018-03-15
US9841895B2 (en) 2017-12-12
US10241673B2 (en) 2019-03-26
EP2992406A1 (en) 2016-03-09
WO2014179624A1 (en) 2014-11-06
EP2992406B1 (en) 2022-01-12
AU2014259754B2 (en) 2016-08-18
CA2910413C (en) 2019-04-02
CN105378606B (zh) 2018-10-02
KR20160003765A (ko) 2016-01-11

Similar Documents

Publication Publication Date Title
CN105378606A (zh) 用于手势键入的备选假设错误修正
CN105431809B (zh) 用于国际语言的虚拟键盘输入
CN105009064B (zh) 使用语言和空间模型的触摸键盘
CN111753081B (zh) 基于深度skip-gram网络的文本分类的系统和方法
US9026428B2 (en) Text/character input system, such as for use with touch screens on mobile phones
CN101246410B (zh) 上下文或语境输入法和系统
CN108369580B (zh) 针对屏幕上项目选择的基于语言和域独立模型的方法
CN107430448A (zh) 针对文本录入中的自适应语言模型的反学习技术
CN106202059A (zh) 机器翻译方法以及机器翻译装置
EP3425532A1 (en) Information mining method and system, electronic device and readable storage medium
US20140214405A1 (en) Character and word level language models for out-of-vocabulary text input
CN104756061A (zh) 多手势文本输入预测
CN103026318A (zh) 输入法编辑器
Beltagy et al. Improved semantic parsers for if-then statements
CN104808806A (zh) 根据不确定性信息实现汉字输入的方法和装置
CN104123012A (zh) 使用替代评分的非字典字符串的姿态键盘输入
CN105074643A (zh) 非词典字符串的手势键盘输入
US20230252222A1 (en) Formatting module, system and method for formatting an electronic character sequence
CN105808197A (zh) 一种信息处理方法和电子设备
Celikyilmaz et al. Resolving referring expressions in conversational dialogs for natural user interfaces
CN107407975A (zh) 连续手势输入期间的建议选择
CN101553810A (zh) 字符转换装置和字符转换装置控制方法
CN102810095B (zh) 一种学词方法和装置
CN102662491A (zh) 一种基于八叉树的拼音输入法
Mullur et al. Design of user behaviour sensitive Kannada keyboard

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

Address after: American California

Applicant after: Google limited liability company

Address before: American California

Applicant before: Google Inc.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant