CN105027040B - 文本输入系统及方法 - Google Patents

文本输入系统及方法 Download PDF

Info

Publication number
CN105027040B
CN105027040B CN201480009944.3A CN201480009944A CN105027040B CN 105027040 B CN105027040 B CN 105027040B CN 201480009944 A CN201480009944 A CN 201480009944A CN 105027040 B CN105027040 B CN 105027040B
Authority
CN
China
Prior art keywords
string
computer implemented
implemented method
input
input pattern
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201480009944.3A
Other languages
English (en)
Other versions
CN105027040A (zh
Inventor
S·古马迪达拉
P·D·库里安
S·耶鲁博鲁
S·古斯瓦米
S·莫塔帕尔蒂
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.)
Keypoint Technologies Pvt Ltd
Original Assignee
Keypoint Technologies Pvt Ltd
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 Keypoint Technologies Pvt Ltd filed Critical Keypoint Technologies Pvt Ltd
Publication of CN105027040A publication Critical patent/CN105027040A/zh
Application granted granted Critical
Publication of CN105027040B publication Critical patent/CN105027040B/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
    • 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
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs

Abstract

一种用于将文本输入到电子装置中的计算机实现的方法具有虚拟键盘,该虚拟键盘具有在显示屏上显示的键,并且一个或更多个字符与每个键关联。由用户生成输入图案,并且识别位于所述输入图案上或者靠近于所述输入图案的所述键。将所述键分配给预定组,使得每个组包括多个所述键。根据排列有一个或更多个所识别的键中的每一个的所述预定组来对所述输入图案进行编码。基于经编码的输入图案来识别一个或多个候选词,以输入到所述电子装置中。计算机实现的方法基于输入串长度和候选串长度之间的相关性、和/或输入长度上阀值/输入长度下阀值、和/或有效的串组合/无效的串组合的识别来识别候选词。诸如计算装置这样的相应的系统实现所述方法。

Description

文本输入系统及方法
技术领域
本发明涉及计算机实现的方法、计算装置、计算指令集以及计算机可读介质。
背景技术
从US 7,098,096知道提供了一种使用触敏屏幕上的虚拟键盘来输入字母文本的方法和系统。该方法和系统检测与触敏屏幕的连续的接触。用户由此能够追踪连续输入图案,并且识别一个或更多个候选词以便选择。然而,必须从词的第一个字母到最后一个字母来追踪输入图案,以生成适当的候选词。
针对该背景,已经开发了本发明。至少在特定实施方式中,本发明能够克服或改进现有技术的系统的问题或缺点中的至少一些。
发明内容
本发明的方面涉及计算机实现的方法、计算装置、计算指令集以及计算机可读介质。
根据本发明的另外的方面,提供了一种用于将文本输入到电子装置中的计算机实现的方法,所述方法包括以下步骤:
在显示屏上显示包括多个键的虚拟键盘,一个或更多个字符与所述键中的每一个关联;以及
检测由用户生成的输入图案,并且识别位于所述输入图案上或者邻近于所述输入图案的所述键中的一个或更多个;
其中,所述虚拟键盘中的所述键被分配给预定组,所述预定组各自包括多个所述键;
所述方法包括以下步骤:根据排列有一个或更多个所识别的键中的每一个的所述预定组来对所述输入图案进行编码;以及基于经编码的输入图案来识别要被输入到所述电子装置中的一个或更多个候选词。
所述方法包括以下步骤:对所述输入图案进行编码,以利于识别候选词以供用户选择。
一个或更多个字符能够与所述键中的每一个关联。所述方法能够包括以下步骤:生成由与位于所述输入图案上或者邻近于所述输入图案的每个键关联的字符组成的字符串。所述字符串中的字符被顺序地排列,以与所述输入图案追踪所述一个或更多个键的序列匹配。
能够从数据库中选择所述一个或更多个候选词。所述数据库可以例如包括一个或更多个词典。所述数据库能够被存储在诸如易失性存储器或非易失性存储器这样的存储装置上。能够从数据库中存储的词的一个或更多个集合来识别所述候选词。所述数据库内的每个集合中存储的词能够包括由预定的串组合或者由预定的串组合组成。因此,能够基于预定的串组合来将所述词分类成组。所述方法能够包括以下步骤:基于与所述输入图案的至少一部分对应的串组合来识别所述集合中的一个或更多个。例如基于频率和/或上下文数据来对所述一个或更多个集合中的词进行预排名(pre-rank)。
所述输入图案的所述部分能够是所述输入图案的初始部分。因此,所述串组合能够对应于所述候选词开始处的字符串。所述串组合能够包括双字母组(bigram)或三字母组(trigram),或者由双字母组或三字母组组成。能够参照所述输入图案的起始点以及一个或更多个后续的角点(corner point)来识别所述双字母组或三字母组。能够基于离线的和得知的用户输入数据来离线地或者在运行时存储所述双字母组或三字母组。
所述方法能够包括以下步骤:确定所述输入图案的长度。能够从所述输入图案测量所述输入图案的长度,或者能够例如基于从所述输入图案导出的字符串来计算所述输入图案的长度。能够基于所测量的输入图案长度来计算阀值输入图案长度。能够通过去除具有小于输入图案长度下阀值的输入图案长度和/或大于输入图案长度上阀值的输入图案长度的词来选择词的候选列表。能够通过长度上阀值和/或长度下阀值来限定输入图案长度。
键的预定组能够各自对应于所述虚拟键盘中的一区域或群集(cluster)。例如,所述预定组能够对应于所述虚拟键盘中的所述键的一行。
唯一标识符能够与所述预定组中的每一个关联。所述唯一标识符能够例如包括整数或字符。能够基于与排列有一个或更多个经识别的键中的每一个的所述预定组关联的唯一标识符来对所述输入图案进行编码。
所述数据库包括多个词,并且能够针对每个词来存储输入序列码。能够从针对排列有所述词的每个字母的所述预定组而限定的所述唯一标识符来导出所述输入序列码。能够针对每个词来计算所述输入序列码,而不是存储所述输入序列码。例如,能够至少基本上实时地计算所述输入序列码。
所述方法还能够包括以下步骤:测量所述输入图案的长度,并且基于所测量的长度来确定长度上阀值和/或长度下阀值。所述方法能够随后包括以下步骤:基于所述长度上阀值和/或所述长度下阀值来选择所述一个或更多个候选词。所述方法能够例如包括以下步骤:排除具有大于所述长度上阀值和/或小于所述长度下阀值的输入长度的任何词。另选地,所述方法能够包括以下步骤:选择具有在所述长度上阀值与所述长度下阀值之间的输入长度的任何词。
根据本发明的又一方面,提供了一种用于将文本输入到电子装置中的计算机实现的方法,所述方法包括以下步骤:
在显示屏上显示包括多个键的虚拟键盘,所述键排列在预定组中,并且一个或更多个字符与每个键关联;
检测由用户生成的输入图案,并且识别位于连续输入图案上或者邻近于所述连续输入图案的所述键中的一个或更多个;
确定所述输入图案的长度,并且基于所测量的长度来计算长度上阀值和/或长度下阀值;以及
基于所述长度上阀值和/或所述长度下阀值来识别要被输入到所述电子装置中的一个或更多个候选词。对于候选串,所述方法能够包括以下步骤:识别所述串的落入路径长度上阀值和/或路径长度下阀值范围内的部分,然后识别所述串的提供适当(或最佳)匹配的部分。所述方法能够例如包括以下步骤:排除具有大于所述长度上阀值和/或小于所述长度下阀值的输入长度的任何词。
所述输入图案包括:起始点,该起始点例如对应于由用户在触摸屏上进行的初始接触;以及结束点,该结束点例如对应于由用户在触摸屏上进行的最终接触。本文中描述的方法能够包括以下步骤:形成各自由与位于所述输入图案上或者邻近于所述输入图案的每个键关联的字符组成的一个或更多个字符串。能够针对每个输入图案形成多个字符串,所述字符串对应于串的不同的组合。所述方法能够包括以下步骤:识别字符串的全部可能的组合,所述字符串包括:所述起始点以及在所述起始点中或在所述起始点周围的任何事;和/或所述结束点以及在所述结束点中或在所述结束点周围的任何事。能够对所述字符串进行过滤,以识别用于输入到所述电子装置中的一个或更多个候选词。过滤所述字符串的步骤能够包括:从所述字符串中去除与所述字符串中的其它字符不形成有效的组合的字符。
根据本发明的又一方面,提供了一种用于将文本输入到电子装置中的计算机实现的方法,所述方法包括以下步骤:
在显示屏上显示包括多个键的虚拟键盘,一个或更多个字符与所述键中的每一个关联;
检测由用户生成的输入图案,并且形成由与位于所述输入图案上或者邻近于所述输入图案的每个键关联的字符组成的一个或更多个字符串;以及
过滤所述一个或更多个字符串,以识别用于输入到所述电子装置中的一个或更多个候选词;
其中,过滤所述字符串的步骤包括:识别每个字符串内的有效的串组合和/或无效的串组合。过滤所述字符串的步骤能够包括:从所述字符串中消除不能形成有效的组合的字符。所述过滤能够例如包括消除任何无效的字符组合。然后能够利用词典来对经过滤的字符串(通常包括串的组合)进行比较,以识别候选词。根据规则设置,能够预限定或者能够确定有效的组合和/或无效的组合。因此,能够潜在地离线生成有效的组合和/或无效的组合。
能够在候选词内的任何地方识别有效的串组合和/或无效的串组合。另选地,过滤字符串的步骤能够包括:在候选词的开始处识别有效的串组合和/或无效的串组合。
所述字符串能够包括检查所述字符串中的特定字符与所述字符串中的每个后续的字符的结合是否形成有效的组合。过滤所述字符串能够从所述字符串中的第一个字符(即,对应于所述输入图案的起始点)开始。能够针对所述字符串中剩余的每个后续的字符来重复所述过滤。
字符的组合能够包括双字母组或三字母组,或者由双字母组或三字母组组成。
能够将所述字符串与存储的候选串进行比较。所述比较能够包括确定所述字符串和所存储的候选串之间的串距离。所述串距离能够基于所述输入图案中识别的角点。例如,能够对候选串的角点进行限定或模型化(如果连接布局上的串的字符而绘制线,则角点是将存在角度和/或方向上的变化的这些点)。能够将候选串的起始字符和/或结束字符解释成经模型化的输入图案的角点。然后能够执行比较,以将所述候选串的一个或更多个角点与所述输入图案的一个或更多个角点匹配。能够使用例如动态时间规整(DTW)来执行所述比较。DTW算法中的序列能够例如是所述候选串的角点的第一集合以及所述输入图案的角点的第二集合。
所述方法能够包括以下步骤:识别所述输入图案中的一个或更多个角点。所述角点能够包括:所述输入图案的方向(即,所述输入图案中的顶点)上的点变化;和/或所述输入图案的曲率(通常为局部最大曲率)的局部变化。能够在所述一个或更多个角点处测量夹角和/或曲率。能够基于在每个角点处所测量的夹角和/或曲率来应用加权。例如,能够为更小的角点角度来分配更高的加权。能够将所述输入图案的起始点和/或结束点解释为所述输入图案的角点。
所述方法能够包括以下步骤:应用图案匹配算法,以确定所述输入图案和针对候选词的经模型化的输入图案之间的相关性。能够针对数据库中存储的一个或更多个候选词来对所述输入图案进行模型化。能够例如基于用户输入的历史来动态地创建和/或修改经模型化的输入图案。模型能够例如识别将在针对给定的候选词而追踪的输入图案中存在的一个或更多个角点的位置和/或夹角。所述图案匹配算法能够确定由用户追踪的所述输入图案和与候选词关联的经模型化的(虚拟的)输入图案之间的相关性。所述图案匹配算法能够确定由用户追踪的所述输入图案的一部分和针对所述候选词的经模型化的输入图案之间的相关性。所述图案匹配算法能够确定由用户追踪的所述输入图案和与所述候选词的前缀关联的经模型化的输入图案之间的相关性。
根据本发明的又一方面,提供了一种用于将文本输入到电子装置中的计算机实现的方法,所述方法包括以下步骤:
在显示屏上显示包括多个键的虚拟键盘,所述键排列在预定组中,并且一个或更多个字符与每个键关联;
检测由用户生成的输入图案,并且识别位于连续输入图案上或者邻近于所述连续输入图案的所述键中的一个或更多个;
应用图案匹配算法,以确定所述输入图案和针对候选词的经模型化的输入图案之间的相关性;以及
基于所述相关性来识别要被输入到所述电子装置中的所述候选词的一个或更多个。经模型化的输入图案是针对数据库中存储的一个或更多个候选词而生成的输入图案的虚拟模型。能够参照键盘中的相应键的已知位置从所述候选词中的字符的序列来创建所述经模型化的输入图案。所述图案匹配算法能够确定由用户追踪的所述输入图案和与候选词关联的经模型化的输入图案之间的相关性。能够例如基于用户输入的历史来动态地创建和/或修改经模型化的输入图案。能够基于与所述输入图案追踪的所述虚拟键盘相同的键盘信息(例如,尺寸和布局)来生成所述经模型化的输入图案。
所述经模型化的输入图案能够例如识别将在针对给定的候选词追踪的输入图案中存在的一个或更多个角点的位置和/或夹角。所述方法能够包括以下步骤:识别所述输入图案中的角点的第一集合;以及识别所述经模型化的输入图案中的角点的第二集合。所述图形匹配算法能够确定角点的所述第一集合和所述第二集合之间的相关性。能够基于夹角(测量的或者模型化的)来对所述第一集合和/或所述第二集合中的每个角点应用加权。
所述图案匹配算法能够确定完整的输入图案(例如,参照起始点和结束点确定的)和针对所述候选词的完整的经模型化的输入图案之间的相关性。所述图案匹配算法能够确定由用户追踪的所述输入图案的一部分和针对所述候选词的经模型化的输入图案的一部分之间的相关性。例如,所述图案匹配算法能够确定形成所述候选词的一部分的字符的序列(例如,双字母组、三字母组或n字母组)之间的相关性。所述图案匹配算法能够确定由用户追踪的所述输入图案和与所述候选词的前缀关联的经模型化的输入图案之间的相关性。
所述图案匹配算法能够是动态时间规整算法。
能够将所述候选词存储在词典中。所述方法能够包括以下步骤:选择所述候选词,然后使所选择的候选词的所述输入图案模型化。能够使用例如本文中描述的其它技术来选择所述候选词。
根据本发明的又一方面,提供了一种用于将文本输入到电子装置中的计算机实现的方法,所述方法包括以下步骤:
在显示屏上显示包括多个键的虚拟键盘,一个或更多个字符与所述键中的每一个关联;
检测由用户生成的输入图案;以及
识别所述输入图案中的一个或更多个角点;
其中,在所述角点处测量夹角和/或曲率,并且基于所测量的夹角和/或曲率来应用加权。
根据本发明的又一方面,提供了一种用于将文本输入到电子装置中的计算机实现的方法,所述方法包括以下步骤:
使要在虚拟键盘上被追踪的输入图案模型化,以输入候选词;
经模型化的输入图案包括与所述虚拟键盘相关的一个或更多个角点的位置。所述经模型化的输入图案还能够确定所述一个或更多个角点中的每一个处的夹角。所述方法还能够包括以下步骤:基于经模型化的夹角来对每个角点应用加权。能够利用所述方法来针对词典中的一个或更多个候选词使虚拟输入图案模型化。能够例如使用图案匹配算法来将经模型化的输入图案与追踪的输入图案进行比较,以测量相关性。
本文中描述的方法能够包括以下步骤:输出所述候选词中的一个或更多个,以供用户选择。例如能够在屏幕或显示器上显示所述一个或更多个候选词。所述候选词可以是完整词(Full Word)或者词补全(Word Completion)。能够在无需用户选择候选词的情况下内联地(inline)(即,直接地插入到正由用户输入的文本中)插入所述候选词。另选地,或者作为补充,能够显示多个候选词,以供用户选择。所述方法能够包括以下步骤:直接内联地插入完整词;和/或在列表中显示一个或更多个词补全,以供用户选择。能够将完整词自动地插入到正被输入到电子装置中的文本中。能够显示词补全的列表,并且一旦用户已经例如通过轻敲所述列表中的期望的词补全选择了所述词补全中的一个,则将所述词补全中的一个插入到所述文本中。
根据本发明的又一方面,提供了一种计算装置(或设备),该计算装置被构造为执行指令以实现如本文中描述的方法。所述计算装置能够包括一个或更多个电子处理器。所述一个或更多个电子处理器能够被构造为在使用中,执行计算指令以实现本文中描述的方法。
根据本发明的又一方面,提供了一种计算指令集合,当由计算装置执行时,该计算指令集使得所述计算装置执行本文中描述的方法。能够在计算机可读介质上提供所述计算指令,或者能够通过诸如互联网这样的网络来传送所述计算指令。
本文中使用术语“n”和“k”来指示能够是1或大于1的全部数字。能够预定或者能够动态地指定“n’和“k”的值。本文中使用的术语“前缀”不限于放置在词的前面的词缀。相反,本文中已经使用术语“前缀”来指代设置在词的开始处的初始字符组合(例如,双字母组或三字母组)。
在本申请的范围内,明确地设想,可以独立地或者以任何组合的方式采用在前述的段落中、在权利要求中和/或在下面的说明书及附图中阐述的各个方面、实施方式、示例和替代方案,以及尤其是其各个特征。除非结合一个实施方式描述的特征不兼容,否则这些特征可适用于全部实施方式。
附图说明
现在将通过仅示例的方式参照附图来描述本发明的实施方式,在附图中:
图1示出了根据本发明的实施方式的被构造以操作的蜂窝电话;
图2示出了形成图1中所示的蜂窝电话的组件的示意表示;
图3示出了概括根据本发明的实施方式的方法的程序步骤的第一流程图;
图4示出了概括用于处理所追踪的输入图案的程序步骤的第二流程图;
图5示出了概括候选词选择的第一阶段的程序步骤的第三流程图;
图6示出了概括候选词选择的第二阶段的程序步骤的第四流程图;以及
图7示出了概括候选词选择的第三阶段的程序步骤的第五流程图。
具体实施方式
本发明涉及用于基于由用户追踪的连续输入图案来将文本输入到电子装置中的系统和方法。通过示例的方式,能够在具有使得用户能够追踪连续输入图案的触摸屏的电子装置中实现本发明。所述电子装置能够例如包括蜂窝电话或平板计算机。
图1中例示了根据本发明的实施方式的具有连续文本输入系统的蜂窝电话10。在本实施方式中,蜂窝电话10包括触摸屏显示器20,以显示系统信息并且接收用户输入。触摸屏显示器20被构造为利用显示器20来监测一个或更多个接触点的X坐标、Y坐标。在用户保持与触摸屏显示器20的接触(即,从手指按下事件到手指抬离事件的检测)的同时,能够通过收集X坐标、Y坐标来确定连续的追踪图案。触摸屏显示器20还能够基于接触面积来估计接触压力。
触摸屏显示器20能够提供多触摸感测,以使得能够在任何时间检测屏幕上的多于一个接触点。触摸屏显示器20能够例如包括电容式触摸屏。在触摸屏显示器20上显示由虚拟键40组成的虚拟键盘30。虚拟键40各自具有被映射到第一字符串的主标签;并且可选地还具有被映射到第二字符串的辅标签。虚拟键40被排列在由三行50A、50B、50C组成的QWERTY型布局中。用户能够通过在与键40的位置对应的X、Y坐标处在触摸屏显示器20上进行点接触来选择各个键40。另选地,用户能够在触摸屏显示器20上追踪用于形成姿势的连续输入图案(本文中称为在触摸屏显示器20上的“滑动”),以选择所述虚拟键40的序列。根据本发明的系统和方法主要针对后一种输入技术,用户借助该输入技术来追踪连续输入图案。文本输入系统能够被用来将文本输入到在蜂窝电话10上操作的各种应用中,例如以组成短消息传送服务(SMS)文本消息、电子邮件或文件的一部分或全部。
图2中示出了蜂窝电话10的示意框图100。蜂窝电话10包括中央处理单元110,该中央处理单元110操作适合于实现根据本发明的实施方式的连续文本输入的核心引擎120。中央处理单元110与和触摸屏显示器20关联的板上存储器(on-board memory)130和输入/输出接口140联接。蜂窝电话10还包括无线电电路150和信号处理电路160,以通过蜂窝网络来进行无线通信。设置麦克风170和扬声器180,以分别输入和输出语音信号。还可以设置本地无线收发机190,以通过WiFiTM网络等来建立通信。
根据本实施方式的方面的核心引擎120被构造为响应于由用户在触摸屏显示器20上追踪的连续输入图案来利于输入一个或更多个词。核心引擎120能够被嵌入在中央处理单元110上(例如在只读存储器中),或者能够操作为提供计算指令集以控制中央处理单元110的操作的软件应用。核心引擎120被构造为建议候选词,以供用户选择。在板上存储器130上存储的数据库中设置候选词。
核心引擎120提供应用编程接口(API),以核对“完整词”(即,完整的词)和/或“词补全”(即,基于用户输入的一个或更多个字符来完成的输入的词的剩余部分)形式的连续文本输入建议。从在板上存储器130上存储的数据库中设置的候选词来选择完整词建议和词补全建议二者。核心引擎120将最顶部的完整词建议(如果有的话)内联地插入到文本输入字段中。在建议栏中显示词补全,以供用户选择。
用户在触摸屏显示器120上追踪输入图案,并且将X坐标、Y坐标的序列输出到核心引擎120。核心引擎120分析X坐标、Y坐标,以输出所述完整词建议和/或词补全建议。核心引擎120立即输出建议(即,在正在追踪输入图案的同时)。从核心引擎120的输出能够例如基于以下参数中的一个或更多个:(a)以基于时间的定期间隔;(b)在输入每n个字符之后;(c)在达到一些长度x的每个路径距离间隔之后;以及(d)当用户已经在任何字符处暂停时。
能够输出连续标记(continuation flag)来确定X坐标、Y坐标的当前列表是否是在前一请求中发送的X坐标、Y坐标的延续。默认设置是为了将连续标记设置为“假”。这对核心引擎120请求在手指抬离前一刻的建议的情况是有用的。通过示例的方式,如果用户已经追踪到由字符“abcde”组成的输入图案并且尚未结束与触摸屏显示器20的接触,则利用被设置为假的连续标记以及针对建议的请求来将“abcde”的坐标发送到核心引擎120。如果用户然后继续追踪输入图案并且整个输入串为“abcdefgh”,则当请求建议时,利用被设置为“真”的连续标记来仅将新追踪的串坐标(即,“fgh”)发送到核心引擎120。核心引擎120将X坐标、Y坐标以及来自最后请求的任何其它相关信息进行高速缓存,并且当针对下一建议请求连续标记为“真”时,使用X坐标、Y坐标以及来自最后请求的任何其它相关信息来提高性能。
API支持接收查询,以输出完整词建议和/或补全二者。当请求完整词和补全二者时,完整词百分比是可适用的。默认设置是为了提供一个(1)完整词建议,但是API支持给出全部建议的百分比作为完整词建议。例如,如果所请求的建议的数目为二十(20)并且所请求的完整词百分比为25%,则将给出最多五个(5)完整词建议。
图3中示出了例示根据本实施方式的核心引擎120的高层(high-level)操作的第一流程图200。用户在触摸屏显示器20上追踪连续输入图案,并且将X坐标、Y坐标输出到核心引擎120(步骤210)。核心引擎120利用三阶段方法来生成被添加到建议列表中的完整词和补全建议。本文中描述的三个阶段为阶段1(步骤220)、阶段2(步骤230)和阶段3(步骤240)。能够连续地执行这三个阶段,并且一旦这三个阶段已经完成,就从建议列表中去除任何重复的建议(步骤250)。输出剩余建议,以在触摸屏显示器20上进行显示,以供用户选择(步骤260)。
图4中例示了例示由用户追踪的输入图案的处理的第二流程图300。将X坐标、Y坐标从触摸屏显示器20提供到核心引擎120,并且识别与输入图案一致或者接近的键40的完整序列。然后将与键40对应的字符进行组合,以形成连续的字符串(步骤310)。所得的字符串由沿着输入图案或者邻近于输入图案设置的一系列字符形成。核心引擎120还计算输入图案的路径长度,并且基于所计算的路径长度来确定(本文中描述的)路径长度上阀值和路径长度下阀值(步骤320)。连同相应的键40一起识别输入图案中的角点,这些键40再次被用来识别与每个角点关联的字符(步骤330)。核心引擎120然后对有效前缀的全部可能的组合的列表VALID_PREFIXES_LIST进行编译(步骤340)。然后选择靠近于输入图案的初始部分的双字母组(步骤350)。所选择的双字母组通常对应于候选词的第一个字母和第二个字母。还将行编码技术(本文中所描述的)应用于输入图案(步骤360)。
这里将更详细地描述三阶段方法和输入图案的处理。然而,将首先描述每个阶段中实施的处理技术。
预排名
在建议生成的不同阶段中使用的不同的经排序的列表中对数据库中存储的词进行预排名和维护。在每个阶段,所述方法包括:由候选的预排名的列表开始,并且基于有效前缀匹配、路径长度阀值和串距离阀值来过滤这些候选。例如当首次使用系统时,能够离线地或在线地创建这些经排序的列表,并且能够将这些经排序的列表存储在永久存储器中以便再次使用。
也能够基于使用来动态地更新这些列表中的一些或全部。例如,当用户输入词时,更新相应的单频计数。因此也将更新出现有该词的经排序的列表。能够定期地或者在系统空闲时对单频计数的每次更新来执行经排序的列表的更新。空间高效的数据结构能够被用来降低存储要求。此外,能够根据存储要求来调整这些列表中的每一个列表中存储的元素的数目。
还可以基于上下文(即,在此之前由用户输入的以前的词)来调整经排序的列表。
维护下面的经排序的列表,并且在本实施方式中,例如基于频率按照降序来对条目进行排序:
1、词典中的前n个常用词。
2、词典中的基于其频率排序的全部有效的双字母组。
3、对于每个双字母组,与基于其频率排序的该双字母组对应的前k个常用词(或)全部词。
4、词典中的针对前缀(针对全部的前缀或所选的前缀)的最常用的词。
5、对于每个基于行编码的组,将基于频率对词进行排序/排名。
将要领会的是,能够使用其它度量来代替频率,或者与频率结合来使用其它度量。例如,上下文数据能够被用来指示彼此相邻出现的特定串组合的可能性。
基于上下文的建议
基于上下文的建议以及连续文本输入能够基于句子中的以前的词和以前的以前的词(如果这些词存在的话)。为了针对每个词生成基于上下文的建议,维护下面的列表:
1、下一个词列表–词(索引)以及针对当前的词作为下一个词而出现的次数的计数的列表。该列表是基于计数来排序的。
2、下下一个词列表–词(索引)以及针对当前的词作为下下一个词而出现的次数的计数的列表。该列表是基于计数来排序的。
通过示例的方式,如果用户输入“This is a”
对于词“This”–“is”被添加到下一个词列表中,“a”被添加到下下一个词列表中
对于词“is”–“a”被添加到下下一个词列表中。
为了节省存储空间,能够从列表中去除至少最近更新的记录。另外,针对每个词存储的记录的数目可能取决于其单频率(针对更常用的词的更多的记录)。另选地,能够存储词双字母组和词三字母组列表,例如基于其计数对这些列表进行排序。
考虑到前面的示例,如果用户输入“This is a”
对于词“This”-“is”被添加到双字母组列表中,并且“is a”被添加到三字母组列表中
对于词“is”-“a”被添加到双字母组列表中。
键盘布局信息
核心引擎120访问存储的关于虚拟键盘30的布局的信息,以提供词建议。布局信息包括总显示宽度、总显示高度、每个键的信息、关于每个行的信息等。关于每个键,提供下面的布局信息:行数;行中的索引位置;键宽度;键高度;键的左上角的x坐标和y坐标;到键的左边的间隙;键是否位于边缘中的任何一个处;标签等。这些键各自利用唯一标识符KEY_ID来进行识别。关于每个行,提供下面的局部信息:虚拟间隙;行是否位于边缘(顶部或底部)中的任一个处;键之间的水平间隙等。
例如,键“a”的键信息包括:
行数–1
行中的索引位置–1
键宽度–48
键高度–81
键的左上角的x坐标和y坐标–(24,81)
到键的左边的间隙–24,
在左边缘处
标签:‘a’
第一行的行信息包括:
垂直间隙–0
水平间隙–0
边缘–顶部边缘
支持下面的操作:
1、基于点坐标(用户触摸到触摸屏显示器20的点的X坐标、Y坐标)来识别相应的键和字符。
2、识别相应的键。
3、给定两个键,找出该两个键之间的DISTANCE(K1、K2)。
该两个键之间的距离可以是通过连接键K1和K2的中心而形成的线段的长度。
4、给定两个字符,找出相应的键之间的DISTANCE(charl、char2)。
基于行的编码
核心引擎120能够基于需要被经过以追踪针对词的输入图案的行的序列来分析该输入图案。键的行各自被分配唯一标识符代码,并且每当输入图案追踪越过该行中的键时,将该代码进行注册。例如,在根据本实施方式的QWERTY键盘中,键的最上行被分配标识符代码‘1’;键的中间行被分配标识符代码‘2’;并且键的最下行被分配标识符代码‘3’。该技术能够被扩展到向诸如数字字符、标点符号等这样的其它字符组分配标识符代码。
能够以编码图案的形式存储针对特定输入图案注册的标识符代码的序列,以与候选词的标识符代码进行比较。另选地,为了节约存储空间,能够例如通过将各个标识符代码求和来将针对特定输入图案的标识符代码进行组合,以提供针对该特定输入图案的累计标识符代码。
例如,参照QWERTY布局:
为了追踪词“about”,输入图案经过行2、3、1。
为了追踪词“please”,输入图案经过行1、2、1、2、1。
为了追踪词“bet”,输入图案经过行3、2、1。
针对每个词,对行数的序列进行多行索引,以形成数。
“about“–231
“please”-12121
“bet”–321
该技术的变体包括:
1、如果序列是123或321,则能够略过(skip)行2的代码,并且由于其暗示了输入图案从行1追踪通过行2移动到行3,因此能够将该序列编码成13或31,或者反之亦然。例如:
“about”–231
“please”–12121
“bet”-321
2、能够使用2比特来表示每个行数(行1–01、行2–10、行3–11)。这种表示的串接将形成数。
“about”–231→10 11 01→101101→45
“please”–12121→01 10 01 10 01→0110011001→409
“bet”–321→11 10 01→111001→57
针对词典中存储的候选词以及针对每个词存储的所得的编码图案来执行该编码技术。基于该编码图案对词典中的词进行分组。例如,将具有编码图案12121的全部的词(诸如“please”和“plight”)设置在词典内的相同组中。在每个组内,将基于其使用的频率来对这些词进行排序。
离线的数据准备
如本文中所概述的,在可通过核心引擎120访问的词典中存储词。能够如下地执行词典数据的准备:
1、在利于词和前缀的快速查找的数据结构中存储词的词典。例如,能够使用特里(trie)数据(前缀树)结构。词典中的词各自被指派唯一索引。
2、针对词典中的每个可能的前缀(PREFIX_TREE_WITH_ORDERED_LISTS)存储前n个最常用词索引。这能够是以下两种情况中的任何一种:
(1)针对每个可能的前缀的前n个常用词;或者
(2)如果需要空间优化:
a、如果正在使用特里数据结构,则将前n个常用词索引作为与对应于该前缀的特里结构中的节点关联的数据来进行存储。
b、能够针对仅选择的前缀来存储前n个最常用的词。数字“n”还能够基于前缀而改变。例如,能够针对更多常用的前缀来存储更多的词。
通过示例的方式,能够在如下场景中的一种或更多种场景中对前缀进行过滤:
i、如果具有该前缀的全部词都具有几乎相等的频率(在一些阀值DELTA_FREQUENCY_THRESHOLD内)。
ii、具有该前缀的全部词的最大频率小于MIN_FREQUENCY_THRESHOLD。
iii、具有该前缀的全部词的平均频率小于AVERAGE_FREQUENCY_THRESHOLD。
能够基于空间要求来调整阀值参数。
(3)对于长度为2的前缀(双字母组),基于频率计数来对具有该前缀的全部词的列表进行存储、排序,(或者)另选地,基于空间要求针对每个双字母组来存储仅前n个常用词。
夹角以及角点识别
在本实施方式中,角点包括如下项中的一个或更多个:在输入图案的方向上的点变化;输入图案的曲率上的局部变化;输入图案的起始点;以及输入图案的结束点。例如基于在方向上改变的点处的夹角或者测量的曲率来向每个角点应用加权。能够通过应用以下技术中的一种或更多种来确定所追踪的输入图案中以及经模型化的输入图案中的角点的识别。
曲率
在某一点处的曲率被定义为根据弧长的斜率的变化率。
另选地,曲线的(有符号的)曲率还能够被定义为通过其弧长进行参数化的正切向量的方向的变化率。曲率的绝对值是对曲线弯曲的程度的测量。几乎是直线的、缓慢地弯曲的曲线将具有小的绝对曲率。
数字曲线在某一点处的曲率
数字曲线能够被限定为点p1、p2、...、pn的序列,其中,pi+1邻近pi。由于精确的数学定义不可用于数字曲线,因此曲率的上述定义针对数字曲线不成立。对于数字曲线,存在通过使用能够从邻近点提取的信息来估计某一点处的曲率的多种技术。
数字曲线的角点
估计数字曲线上的每个点和/或临时点处的曲率,并且将具有局部最大曲率的这些点看作是角点。还将该曲线上的第一个点和最后一个点包括进来作为角点。
追踪的输入图案
在追踪的输入图案的情况下,将输入图案当作数字曲线,并且识别角点。能够基于连接识别的角点而绘制的线之间的夹角(在点变化的情况下)或者基于每个角点处所估计的曲率来向每个角点应用加权。例如,能够对较小的夹角赋予较高的权重,并且反之亦然。能够将与追踪的输入图案的起始点和/或结束点对应的点解释为角点。
经模型化的输入图案
在经模型化的输入图案的情况下,当在布局上顺序地连接与候选词中的字符对应的键来绘制一系列线段时,能够将角点限定为角度和/或方向发生改变的这些点。能够将与候选串的起始字符和/或结束字符对应的点解释为角点。能够在每个角点处计算夹角。能够基于所计算的夹角来应用加权。例如,能够针对较小的角点角度来分配较高的加权。
输入图案建议生成
核心引擎120获取用户已经利用输入图案来追踪的点的坐标(x坐标和y坐标)。
从这些点的列表中,使用物理布局信息来识别用户已经追踪的键和字符的完整序列。这将分别被称为INPUT_KEYS和INPUT_STRING。
针对INPUT_STRING来计算完整路径长度(INPUT_PATH_LENGTH)。例如,如果追踪的输入图案输出字符串“abcde”,则相应的键是K1、K2、K3、K4。路径长度(INPUT_PATH_LENGTH)=DISTANCE(K1、K2)+DISTANCE(K2、K3)+DISTANCE(K3、K4)。
键之间的距离DISTANCE(K1、K2)表示连接键k1和键k2的中心的线段的长度。字符之间的距离DISTANCE(c1、c2)是连接与字符c1和字符c2对应的键的中心的线段的长度。与输入图案对应的路径的长度PATH_LENGTH(string)能够在一个串上计算,并且是与该串中的各个字符对应的连续的键之间的全部距离之和。例如,在词“awe”的情况下:
PATH_LENGTH(“awe”)=DISTANCE(“a”,“w”)+DISTANCE(“w”,“e”)。
基于如下项来计算路径长度下阀值和路径长度上阀值:
PATH_LEN_LOWER_THRESHOLD_PARAM,
PATH_LEN_UPPER_THRESHOLD_PARAM和INPUT_PATH_LENGTH。
通过示例的方式:
PATH_LEN_LOWER_THRESHOLD_PARAM=0.2(20%)
PATH_LEN_UPPER_THRESHOLD_PARAM=0.3(30%)
PATH_LEN_LOWER_THRESHOLD=INPUT_PATH_LENGTH-(0.2*INPUT_PATH_LENGTH)
PATH_LEN_UPPER_THRESHOLD=INPUT_PATH_LENGTH+(0.3*INPUT_PATH_LENGTH)
从通过核心引擎120而获取的点的列表中,识别输入图案中的角点。已知各种方法用于检测角点(例如,“Dominant point detection using adaptive bending value”,Wen-Yen Wu,Image Vision Computing 21(6):517-525(2003))。
基于形成的角度/曲率来向角点赋予权重。在角点处形成的角度越大(或者曲率越小),该角点的权重越低。(例如:如果检测到第一角点和第二角点分别具有40°和170°的夹角,则第一角点将具有更高的加权)。将具有小于预定角阀值(ANGULAR_THRESHOLD)的权重的角点标记为弱角点,并且将其它角点标记为强角点。该信息能够被用来执行双字母组/三字母组过滤,和/或能够在计算串距离时来使用。
从角点中使用物理布局信息来识别与每个角点对应的键和字符。具体地:
INPUT_CORNERS_STRING:来自INPUT_STRING的第一字符,接下来是角点的字符的序列,接下来是来自INPUT_STRING的最后一个字符;并且
INPUT_CORNERS_KEYS:与CORNERS_STRING中的字符对应的键的序列。
从作为词典中的有效前缀的INPUT_STRING(或INPUT_KEYS)生成串(或键)的可能的组合。INPUT_STRING的第一个字符和最后一个字符能够改变为追踪的实际字符或者在该字符中以及在该字符周围的任何字符。通过示例的方式:如果输入图案生成字符串:“asdfghjkl”、则可能的组合包括“asl”、“adl”、“asdl”、“asdfl”。对于更长的串,生成所有可能的组合是一项耗时的任务,然而如果在词典中不存在该前缀,则这通过其本身最初对组合进行修剪而变得可行。
在词典中或者在另一数据库中存储有效字符组合的集合。执行检查以识别字符串内的有效/无效组合。在本实施方式中,词典中存储的字符组合是双字母组,然而也能够使用三字母组或n字母组。通过示例的方式,在字符串“asdfghjkl”的情况下,生成的第一组合是“as”。只有当“as”在词典中是有效前缀时,才生成以相同的组合开头的其它组合(诸如“asd”、“asdf”等)。否则,删除第一组合。在生成全部的有效组合之后,删除具有小于PATH_LEN_LOWER_THRESHOLD的路径长度的组合。在该步骤结束时,存在有效前缀/词的集合(VALID_PREFIXES_LIST)。
选择与追踪的输入图案的初始部分靠近的双字母组。在这种情况下,识别与词的前两个字符对应的双字母组。通过示例的方式,如果在词典中识别的词是“apple”、“around”、“brilliant”、“crunch”,则词典中的双字母组是“ap”、“ar”、“br”、“cr”。在词典中存储有效双字母组的列表。能够例如基于其频率来对这些双字母组进行排序(按降序排序)。还能够基于使用来动态地更新列表(即,维护每个双字母组的出现的计数,并且每当用户输入一个词时就对其进行更新)。采取追踪的输入图案的直到第一(强)角点(如通过基于形成的角的加权来确定)的部分,并且选择路径与该路径接近的这些双字母组。例如,如果“asdbhjio”是与追踪的输入图案对应的字符串,“b”是第一强角点,则有效双字母组能够是“ab”、“as”、“ad”、“ax”、“sb”。在该步骤结束时,我们得到双字母组的列表(BIGRAMS_LIST),并且索引的相应范围被称作BIGRAMS_RANGES。
使用本文中描述的技术来计算输入图案的基于行的编码。例如,如果输入图案经过行3、2、1、2,则行编码将是3212。
串距离计算
通过图案匹配算法来计算串距离(STRING_DISTANCE)。串距离(STRING_DISTANCE)提供了通过输入图案追踪的路径和针对候选的经模型化的路径之间的相关性的指示。在本实施方式中,低串距离(STRING_DISTANCE)指示好的相关性,并且高串距离(STRING_DISTANCE)指示差的相关性。
基于角点INPUT_CORNER_KEYS和CAND_CORNERS_KEYS计算与输入图案对应的字符串和候选串(来自词的词典)之间的串距离(STRING_DISTANCE),所述角点INPUT_CORNER_KEYS和CAND_CORNERS_KEYS分别是针对输入和候选串的角键的序列。为了计算这些角键序列上的串距离(STRING_DISTANCE),能够使用序列匹配或图案匹配算法中的任一个。动态时间规整(DTW)是一种这样的序列匹配算法(参见例如:http://en.wikipedia.org/wiki/ Dynamic_time_warping)。
DTW基于动态编程技术,并且能够被用来找出两个序列(这两个序列能够具有不同的长度)之间的相似之处。为了应用序列匹配算法,定义了一种函数用来计算序列的两个元素(在当前使用的情况下为键)之间的距离。DTW是通常被用于测量两个序列之间的相似之处的图案匹配技术。DTW算法中的序列能够例如是候选串的角点的第一集合以及输入图案的角点的第二集合。适当的DTW算法如下:
STRING_DISTANCE(string1,string2)是用于找出两个串(string1和string2)之间的相关性(相似之处)的测量。能够使用任何图案匹配算法来找出该相关性。在本实施方式中,已经基于string1和string2的角点实现了DTW算法。
在当前的情况下,输入图案中的角点和候选串的角点是待进行匹配的两个序列。第一曲线对应于由用户追踪的输入图案;并且第二曲线对应于在虚拟键盘上将与候选词对应的键连接时形成的一系列线段。本文中描述的比较技术尝试确定第一曲线和第二曲线之间的相似之处。然而,由于角点限定了曲线的形状,因此代替在每个点处进行比较,在这些角点处执行第一曲线和第二曲线的比较。例如,如果用户想要追踪词“fail”,则由用户在输入图案中追踪的角点将是‘f’、‘a’、‘i’、‘l’。当将这些角点与候选词“fail”(也具有角点‘f’、‘a’、‘i’、‘l’)进行比较时,在角点的两个列表之间存在好的相关性。因此,词“fail”将被识别为好的候选。还能够考虑不同的候选词,例如具有角点‘g’、‘a’、‘i’、‘l’的“gail”。第一个角点‘g’与‘f’接近,并且其余角点准确地匹配。因此,“gail”也将是好的候选。使用DTW算法来执行角点列表之间的实际匹配。
在两个字符之间计算成本函数。在DTW算法内内部地使用该成本函数CHAR_COST(c1,c2)。在上述算法中,通常将成本限定为序列中的两个元素之间的距离。基于键的接近度来指派两个键之间的成本函数计算(CHAR_COST)。不同类型的接近误差可以被指派不同的成本。将基于以下参数中的一个或更多个来指派成本:HORIZONTAL_PROXIMITY_COST(水平接近误差的成本);VERTICAL_PROXIMITY_COST(垂直接近误差的成本);DIAGONAL_PROXIMITY_COST(对角线接近误差的成本);以及NO_PROXIMITY_COST(无接近误差的成本)。如果键相等,则成本将为零。例如,不同类型的误差的成本能够陈列如下:
HORIZONTAL_PROXIMITY_COST–10
VERTICAL_PROXIMITY_COST–20
DIAGONAL_PROXIMITY_COST–40
NO_PROXIMITY_COST–60
对于QWERTY布局,
CHAR_COST(‘a’,‘s’)–水平接近–成本=10
CHAR_COST(‘d’,‘x’)–垂直接近–成本=20
当计算STRING_DISTANCE包括监测角点的强度(例如基于形成的角)时,还能够考虑其它因素。如果角点是弱角点,由于存在高的错误概率,则能够减少与该角点关联的成本。如果未识别到角点的匹配,则能够识别由用户追踪的输入图案上的实际串,并且如果存在匹配,则能够减少成本。例如,如果输入图案串是“asdfbjkl”,则输入的角串是“abl”,并且候选角串是“adbl”。不存在针对来自候选角串的字符‘d’的匹配。在这种情况下,在实际输入图案串的字符‘a’和‘b’之间寻找‘d’。由于找到了字符‘d’,因此能够减少成本。为了提高性能,仅当附近的角点接近时,才能够以这种方式来执行检测。
类似地,如果不存在接近,但是角点彼此靠近(在一些界限或阀值内),则能够减少成本。由于用户通常容易在追踪的输入图案的第一个字符和最后一个字符处出错,因此能够针对追踪的输入图案的第一个字符和最后一个字符来减少接近成本。能够针对用户通常容易出错的字符来减少接近成本。例如:当用户想要‘n’时,用户经常在‘m’处追踪经过的输入图案(或者形成角度),反之亦然。
为了提高性能,能够保持串以及相应的距离的高速缓存使得能够直接地检索距离。如果正在使用诸如DTW这样的动态编程方案,则(a)能够为将要被用于存储中间结果的表预分配足够大的缓冲并且因此在为每次string_distance计算分配存储器时节省时间;和/或(b)中间结果能够被再次用于下一次string_distance计算。
考虑STRING_DISTANCE(“devel”,“develops”)的示例。如果需要STRING_DISTANCE(“devel”,“deve”),由于其将已经可用,因此这能够直接从表中获得。接下来,为了计算STRING_DISTANCE(“devel”,“developed”),能够使用直到STR[NG_DISTANCE(“devel”,“develop”)的表内容,然后只计算其余内容。
阀值计算
如上文概述的,基于INPUT_PATH_LENGTH来计算路径长度阀值。具体地,将INPUT_PATH_LENGTH乘以下阀值参数PATH_LEN_LOWER_THRESHOLD_PARAM和上阀值参数PATH_LEN_UPPER_THRESHOLD_PARAM,以确定相应的下阀值和上阀值。
能够将STRING_DISTANCE的阀值限定为针对每个阶段的静态值。例如,在第一阶段(阶段1)的分析期间,能够将STRING_DISTANCE_THRESHOLD设置为零(0);在第二阶段(阶段2)期间,能够将STRING_DISTANCE_THRESHOLD设置为二(2);并且在第三阶段(阶段3)期间,能够将STRING_DISTANCE_THRESHOLD设置为四(4)。能够例如基于从不同的用户收集的样本数据、经验数据以及分析来离线地限定这些阀值,以确定哪些参数提供最佳结果。另选地,能够例如基于运行时间使用来动态地调整这些值。
路径长度阀值的初始值、串距离阀值参数、以及串距离计算中使用的成本值将基于从不同的用户收集的样本数据。将为用户提供可能是在从不同的源收集的语言或信息中通常使用的词/短语/句子的词/短语/句子的集合。将记录针对该输入的由用户生成的输入图案的坐标。这些数据将被用来找出阀值参数和成本值的最佳值。
在安装了系统之后,能够了解用户的风格,并且能够基于各个用户的使用统计来动态地更新阀值和成本值。每当用户追踪词并且选择建议时,分析用户正在犯的错误的类型(即,用户可能倾向于犯更多的水平接近错误)以及实际追踪的输入图案长度和所选择的词的路径长度之差。另外,还能够获取一些特定类型的用户通常犯的错误。例如,当用户实际想要追踪字母‘n’时,用户通常错误地追踪字母‘m’。基于所有这些信息,将为该用户动态地调整阀值和成本值。
现在将更详细地描述核心引擎120的分阶段的操作。
阶段1
参照图5中所示的第三流程图400,现在将描述通过应用阶段1方法来生成建议。
基于被词典中的前n个单频率词跟随的基于上下文的建议来准备初始候选列表(INITIAL_CANDIDATES_LIST)(步骤410)。基于上下文的建议是基于用户输入的以前的词和以前的以前的词的这些连续文本输入。前n个单频率词列表能够是最初基于词的单频率计数生成的静态列表;或者能够基于使用来动态地更新前n个单频率词列表。例如,前n个词的初始列表和计数是“all”(200)、“ail”(150)、“bat”(145)。如果用户已经输入了“bat”10次、“ail”3次、“all”50次,则计数和词的列表将因此被更新。更新后的列表将是“all”(200)、“bat”(155)、“ail”(153)。每当用户输入一个词时,计数将被更新。另选地,初始候选列表能够是与双字母组列表BIGRAMS_LIST中的预先进行排名的双字母组对应的候选。
从INITIAL_CANDIDATES_LIST中选择与VALID_PREFIXES_LIST中的串中的任一个匹配或者具有与VALID_PREFIXES_LIST中的串中的任一个匹配的前缀的候选词(步骤420)。例如,在字符串“asdfghjkl”的情况下,VALID_PREFIXES_LIST包括“all”、“afl”、“asl”;并且INITIAL_CANDIDATES_LIST包括“the”、“all”、“fail”、“allow”、“hit”、“following”、“asleep”。选择用于显示的候选词是:“all”、“allow”、“asleep”。
然后执行处理环(步骤430)来进而分析已经在INITIAL_CANDIDATES_LIST中识别出的候选词中的每一个。所述分析包括从开头仅到与VALID_PREFIXES_LIST中存储的前缀中的任一个匹配的有效前缀来分析字符串(步骤440)。将候选串的角点作为CAND_CORNERS_KEYS来计算。CAND_CORNERS_STRING是与CAND_CORNERS_STRING中的键对应的字符的序列。例如,对于候选词“allow”,考虑直到“all”(其在VALID_PREFIXES_LIST中)的字符串,并且计算直到该点的角点。在候选串和输入串之间计算串距离STRING_DISTANCE(稍后详述)(步骤450)。然后在STRING_DISTANCE和STRING_DISTANCE_THRESHOLD_PHASE_1之间做出比较(步骤460)。如果STRING_DISTANCE大于STRING_DISTANCE_THRESHOLD_PHASE_1,则排除该候选。否则,将该词添加到补全存储桶(bucket)(COMPLETIONS_LIST)(步骤470),或者将该词添加到完整词存储桶(FULL_WORDS_LIST)(步骤480)。只要候选串的前缀与VALID_PREFIXES_LIST中的词中的任一个匹配,该词就是完整的。例如,在输入字符串“asdfghjkl”的情况下,VALID_PREFIXES_LIST包括“all”、“afl”、“asl”,并且最终候选列表包括“all”、“allow”、“asleep”。完整词候选输出是“all”,并且补全词候选是“allow”和“asleep”。将该候选标记为已经被考虑过(步骤490),并且考虑下一候选。
阶段2
参照图6中所示的第四流程图500,现在将描述通过应用阶段2方法来生成建议。
基于追踪的输入图案的行编码来识别行编码组(步骤510)。初始候选词将是基于行编码识别的组中包含的词。例如,如果追踪的输入图案的行编码是2312,则初始候选列表将是组2312中的元素的列表。基于BIGRAMS_LIST来对候选词进行过滤。仅选择具有与来自BIGRAMS_LIST的双字母组中的任何一个双字母组匹配的前两(2)个字符的这些候选(步骤520)。
对于经识别的候选中的每一个(步骤530),识别具有落在路径长度下阀值PATH_LEN_LOWER_THRESHOLD与路径长度上阀值PATH_LEN_UPPER_THRESHOLD之间的路径长度的串的一部分(步骤540)。执行检查以确定是否存在任何这样的部分(步骤550)。如果不存在这样的部分,则略过该候选词。串的该部分的起始索引和结尾索引被分别限定为C1和C2(步骤560)。
通过示例的方式,考虑路径长度下阀值和路径长度上阀值是29和39的场景。如果词为“developed”,则直到每个子串的路径长度能够如下:
De–20
Dev–25
Deve-27
Devel–30
Develo–32
Develop–35
Develope–41
Developed–50
则路径长度阀值29-39内的串的部分为“lop”。
考虑仅到C2索引的串。计算候选串的角点(CAND_CORNERS_KEYS)(步骤570)。CAND_CORNERS_STRING是与CAND_CORNERS_STRING中的键对应的字符的序列。
执行比较以确定候选串和输入串之间的相关性。在本实施方式中,将串距离(STRING_DISTANCE)作为候选串和输入串之间的差来计算(步骤580)。将所得的距离STRING_DISTANCE看作是范围C1至C2中的字符的距离值的最佳值。更小的串距离(STRING_DISTANCE)表示候选串和输入串之间的更密切的相关性。在上述示例中,考虑直到“develop”的候选串。计算输入串和“develop”之间的串距离。在上述示例中:
直到“C1-C2”的串–“lop”
STRING_DISTANCE(输入串,“devel”)=30
STRING_DISTANCE(输入串,“develo”)=20
STRING_DISTANCE(输入串,“develop”)=25
范围C1至C2中的全部字符的最佳距离是“develo”,因此将考虑串“develo”和距离20。
然后在STRING_DISTANCE和STRING_DISTANCE_THRESHOLD_PHASE_2之间做出比较(步骤590)。如果STRING_DISTANCE大于STRING_DISTANCE_THRESHOLD_PHASE_2(参数),则排除该候选。否则,将该词添加到补全存储桶COMPLETIONS_LIST(步骤600)或者将该词添加到完整词存储桶FULL_WORDS_LIST(步骤610)。如果针对整个词获得了最佳距离,则该词是完整的词,否则,该词是补全的。对于上述示例,假定STRING_DISTANCE_THRESHOLD_PHASE_2=22。选择词“developed”,并且将其添加到补全列表。将该候选标记为已经被考虑过(步骤620),并且考虑下一候选。
另选地,初始候选列表能够是与双字母组列表BIGRAMS_LIST中的预先进行排名的双字母组对应的候选。能够在线地计算候选词的基于行的编码并且将其与追踪的输入图案的基于行的编码进行比较,并因此选择候选词。例如,如果追踪的输入图案的基于行的编码是2312,则对于候选词“scored”,基于行的编码将是2312。由于候选词与输入图案编码匹配,因此将选择该词。对于候选词“scoring”,基于行的编码将是231232。候选词的整个编码“231232”的前缀“2312”与输入图案编码匹配,因此将选择该词作为可能的补全。
阶段3
参照图7中所示的第五流程图700,现在将描述通过应用阶段2方法来生成建议。
初始候选列表是与数据库中存储的列表BIGRAMS_LIST中的双字母组对应的候选(步骤710)。从PREFIX_TREE_WITH_ORDERED_LISTS中获得针对每个双字母组的候选的列表。
执行关于每个候选的分析(步骤720)。识别串的路径长度落在PATH_LEN_LOWER_THRESHOLD和PATH_LEN_UPPER_THRESHOLD之间的串的部分(步骤730)。执行检查以确定是否存在这样的部分(步骤740)。如果不存在这样的部分,则略过该候选词。该串的起始索引和结尾索引被限定为C1和C2(步骤750)。
考虑上述示例,对于词“developed”的路径长度阀值(29–30),到每个子串的路径长度如下:
De–20
Dev–25
Deve–27
Devel–30
Develo–32
Develop–35
Develope–41
Developed–50
则该阀值内的串的部分为“lop”。
考虑仅到C2索引的串。计算候选串的角点(CAND_CORNERS_KEYS)(步骤760)。CAND_CORNERS_STRING是与CAND_CORNERS_STRING中的键对应的字符的序列。
计算候选串和输入串之间的STRING_DISTANCE(步骤770)。将STRING_DISTANCE看作是范围C1至C2中的字符的距离值的最佳值。
在上述示例中,候选串被认为是“develop”。在输入串和“develop”之间计算串距离。例如:
直至“C1–C2”的串–“lop”
String_Distance(输入串,“devel”)=30
String_Distance(输入串,“develo”)=20
String_Distance(输入串,“develop”)=25
范围C1至C2中的全部字符的最佳距离是“develo”,因此将考虑串“develo”和距离20。
执行检查以比较STRING_DISTANCE与STRING_DISTANCE_THRESHOLD_PHASE_3(步骤780)。如果STRING_DISTANCE大于STRING_DISTANCE_THRESHOLD_PHASE_3(参数),则排除该候选词。否则,将该词添加到词干存储桶(STEMS_LIST)或者完整词存储桶(FULL_WORDS_LIST)(步骤790)。如果针对整个词获得了最佳距离,则该词是完整的词(步骤800),否则,该词是词干(前缀)(步骤810)。对于上述示例,如果STRING_DISTANCE_THRESHOLD_PHASE_3=22,则将选择串“develo”并且将其添加到词干列表中。将该候选标记为已经被考虑过(步骤820),并且考虑下一候选。
限义有效字符组合(例如,双字母组或三字母组)的集合,并且将经预排名的词的集合与每个有效字符组合关联。在本实施方式中,有效字符组合形成候选词的前缀。对于STEMS_LIST中的每个候选,如果具有该前缀的经预排名的候选的列表可用,则将该词的列表添加到补全存储桶(COMPLETIONS_LIST)中(步骤830)。如果经预排名的列表不可用,则按字母顺序或者按从词典检索的顺序添加具有该前缀的词的列表。
针对STEMS_LIST中的每个候选选择的词的数目能够改变。例如,如果STEMS_LIST包括“dev”和“derv”,则将以前缀“dev”和“derv”开头的词添加到补全列表中。COMPLETIONS_LIST包括候选:“development”、“developing”和“dervish”。如果存在重复,则将其从FULL_WORDS_LIST和COMPLETIONS_LIST中去除。
输出
完整词建议将是来自FULL_WORDS_LIST的建议,并且补全将是来自COMPLETIONS_LIST的建议。将不同的建议类型指派给完整建议和补全以对这些建议类型进行区分,并且将列表输出到平台。
示例
现在将描述利用根据本发明的实施方式的核心引擎120来将文本输入到蜂窝电话的示例。
用户已经输入了文本“This is”,并且追踪与下一个词对应的输入图案。触摸屏显示器20获取由用户追踪的点的X坐标、Y坐标,并且将这些坐标发送到核心引擎120。
核心引擎120分析坐标的列表以确定由用户追踪的输入图案。核心引擎120计算与输入图案对应的实际字符串。例如,如果用户已经追踪到经过或接近与以下字母“asdfghuil”对应的键的输入图案。计算相应的键、角键和角串、路径阀值。序列“ail”是作为形成在与字母“i”对应的键处的角的输入图案。
核心引擎120生成输入串的有效前缀(VALID_PREFIXES_LIST)。所有可能的前缀将是“al”、“asl”、“adl”、“afl”、“agl”、“ahl”、“aul”、“asdl”、“asfl”、“asgl”、“ashl”、“asul”、“asil”.....从这些前缀当中,核心引擎120选择在词典中有效并且在路径长度阀值内的前缀。例如,不存在以“adl”开头的词,所以核心引擎略过该前缀。假定有效前缀的集合是“al”、“asl”、“afl”、“agl”、“adul”和“ail”。
针对特定输入串,生成有效双字母组的列表(BIGRAMS_LIST)。接近初始部分(“ai”)的双字母组是“al”、“as”、“ad”、“af”、“ag”、“ah”、“au”、“ai”、“al”、“ax”、“ax”、“si”和“ah”。例如基于使用频率和/或上下文来对这些双字母组进行预排名。
输入图案已经经过行2、1和2,所以行编码是212。
阶段1建议:
1、假定基于上下文的建议是(基于以前的2个词-“This is”)
1、Good
2、Terrifying
3、All
4、Bad
5、ailment
假定词典中的最顶部的单频率词是:
1、The
2、To
3、Of
4、A
5、I
初始候选列表是基于上下文的建议,接下来是最顶部的单频率词:“Good”、“Terrifying”、“All”、“Bad”、“The”、“To”、“Of”、“A”、“I”。
2、过滤不具有与VALID_PREFIXES_LIST中的前缀中的任一个相同的前缀的候选。经过滤的列表将包含:“all”和“ailment”。
3、计算输入串与候选串中的每一个之间的String_Distance。
假定,
词:all,string_Distance(all)=20
词:ailment,考虑串为“ail”、string_Distance=0
4、过滤串距离大于阀值的候选。例如说串距离阀值为0。剩余词将是“ailment”,并且该“ailment”被识别为补全。
5、阶段1建议:
完整词–<无>
补全–“ailment”
阶段2建议:
1、初始候选列表是与输入串(212)对应的基于行的编码组中的词的列表。这些词是经预排名的。
假定词的列表是:
“Fill”、“fail”、“dull”、“full”、“ill”、“sold”、“silk”、“hill”、“hail”、“kill”、“ariel”、“ail”、“ails”、“loud”、“sill”、“aids”、“assess”
2、基于双字母组列表来过滤这些词。剩下的词是“silk”、“ail”、“ails”、“sill”、“aids”、“assess”
3、基于路径长度阀值来过滤候选。剩下的词是“silk”、“ail”、“ails”、“sill”。
4、计算这些词中的每个词的最佳串距离。
假定,
STRING_DISTANCE(“silk”)=20
STRING_DISTANCE(“ail”)=0
STRING_DISTANCE(“ails”)=0(基于路径长度匹配考虑直到“ail”的串)
STRING_DISTANCE(“sill”)=10
5、假定串距离阈值是10。选择的候选将是:“ail”、“ails”、“sill”。
6、阶段2建议:
完整词–“ail”、“sill”
补全–“ails”
阶段3建议:
初始候选列表是BI_GRAMS列表中的双字母组中的每一个的候选的列表。这些双字母组基于频率进行预排名,并且与每个双字母组对应的候选基于频率进行预排名并且从PREFIX_TREE_WITH_ORDERED_LISTS中得到。假定候选中的一些是:
Al–al、all、all-rounder、allowing
As–as、asleep、astonish
Ad–adults、adjoining
Af–after、affluent
Si–sir、sing、singing
Ai–ail、ailing、ailments
基于路径长度阀值来过滤候选。假定剩下的候选是:
Al–al、all、all-rounder、allowing
As–asleep、astonish
Ad–adults、adjoining
Af–affluent
Ai–ail、ailing、ailments
基于串距离阀值来过滤候选。假定有效词是:“as”、“al”、“all”和“ail”;并且有效词干是“all”、“asl”和“ail”。
对于每个词干,从PREFIX_TREE_WITH_ORDERED_LISTS中选择最顶部的建议。假定它们是:“all”–allowing;“asl”–asleep;以及“ail”–ailing。
阶段3建议是:
完整词–“al”、“all”、“ail”
补全–“allowing”、“asleep”、“ailing”
将重复的条目去除,并且用于供用户选择而输出的最终列表是如下:
完整词–“ail”、“sill”、“al”、“all”
补全–“ailment”、“ails”、“allowing”、“asleep”、“ailing”
结束点分析
能够默认将输入图案的第一个字符和最后一个字符限定为角点。采用上述示例,如果用户想要输入字符组合“ail”,则他们将追踪生成字符串“asdfghuil”的输入图案。所得的输入图案的角点将是‘a’、‘i’和‘l’。默认将与输入图案的起始点和结束点对应的字符认为是第一个角点和最后一个角点。在起始点和结束点之间,输入图案限定与字符‘I’对应的键处的角度,并且该键被识别为中间角点。
为此,将数据库中的每个词与输入图案进行比较。如果候选词是“ailment”,则有必要确定词“ailment”和输入图案之间的相关性。为了识别可能的词补全,候选词的最后一个字符不能与输入图案的最后一个字符匹配(由于输入图案与完整的词不对应)。在本示例中,针对输入图案的最后一个字符‘l’的匹配在某种程度上在候选词“ailment”之间。完成该匹配的一种方法是将候选词的每个字符与输入图案的最后一个字符匹配,直至实现匹配,即将‘l’(输入图案的最后一个字符)与‘a’、‘i’、‘l’进行匹配。匹配发生在第三位置处,所以比较进行到第三个字符(即“ail”)。
每个字符的比较都是耗时的。因此,实施路径长度阀值。代替与全部字符进行比较,识别落入路径长度阀值内的串的部分。例如,给定下阀值6和上阀值9,输入图案路径长度是7,并且阀值被限定为-1/+2。
1、对于候选词“ailment”
假定
path_length(‘a’->‘i’)=5,(路径长度小于下阀值)
path_length(‘a’->‘i’->‘l’)=7,(路径长度在阀值之间)
path_length(‘a’->‘i’->‘l’->‘m’)=8,(路径长度在阀值之间)
path_length(‘a’->‘i’->‘l’->‘m’->‘e’)=12。(路径长度大于上阀值)
仅考虑串的该部分“lm”,并且仅关于这些字符具有结束字符匹配。将字符“l”识别为作为第三字符匹配。STRING_DISTANCE(输入图案,整个词“ailment”)=STRING_DISTANCE(IP,“ail”)(“ail”-词“ailment”的初始部分)
2、假定,另一个词是“agolmler”。
path_length(‘a’->‘g’)=3,(路径长度小于下阀值)
path_length(‘a’->‘g’->‘o’)=6,(路径长度在阀值之间)
path_length(‘a’->‘g’->‘o’->‘l’)=7,(路径长度在阀值之间)
path_length(‘a’->‘g’->‘o’->‘l’->‘m’)=8,(路径长度在阀值之间)
path_length(‘a’->‘g’->‘o’->‘l’->‘m’->‘l’)=9,(路径长度在阀值之间)
path_length(‘a’->‘g’->‘o’->‘l’->‘m’->‘e’)=12,(路径长度大于上阀值)
将路径长度阀值内的串的部分识别为“olml”,并且字符匹配在两个地方(第4个字符和第6个字符)发生。在这种情况下,考虑直到第4个字符和第6个字符二者的STRING_DISTANCE,具体地:
(1)STRING_DISTANCE(IP,“aol”)(到第4位置)
(2)STRING_DISTANCE(IP,“aolml”)(到第6位置)
STRING_DISTANCE(IP,整个词“agolmler”)=(1)和(2)的最小值
3、假定候选词是“awe”
距离(‘a’->‘w’)=1,距离(‘a’->‘w’->‘e’)=2
不存在落入路径长度阀值(6-9)内的串的部分,所以将该词排除。
将要领会的是,能够在不脱离本发明的精神和范围的情况下对本文中描述的系统和方法进行各种改变和修改。已经参照触摸屏描述了本发明,然而将要领会的是,可以利用其它输入技术。例如,本发明能够与投影键盘、屏幕上光标(例如由键盘、计算机鼠标、控制杆、或者脑电波控制系统控制以追踪输入图案)结合来实施。此外,能够例如通过通信网络(诸如互联网或者蜂窝通信网络)来远程地执行用于实施本发明的处理,以降低本地处理要求。
已经将本发明描述为识别通过被限定为词典内的有效字符组合(或前缀)的输入图案追踪的串组合。一种替代方法是检查词典中的每个词,以确定词中的任一个内的任何串组合(或前缀)是否是输入图案的子序列。然后将包括串组合的任何词识别为候选词以便输入。

Claims (52)

1.一种用于将文本输入到电子装置中的计算机实现的方法,所述方法包括以下步骤:
在显示屏上显示包括多个键的虚拟键盘,一个或更多个字符与所述键中的每一个关联;以及
检测由用户生成的输入图案,并且识别位于所述输入图案上或者邻近于所述输入图案的所述键中的一个或更多个;
其中,所述虚拟键盘中的所述键被分配给预定组,所述预定组各自包括多个所述键;
所述方法包括以下步骤:根据排列有一个或更多个所识别的键中的每一个的所述预定组来对所述输入图案进行编码;以及
基于经编码的输入图案来识别要被输入到所述电子装置中的一个或更多个候选词。
2.根据权利要求1所述的计算机实现的方法,其中,从数据库中存储的词的一个或更多个集合中来识别所述候选词,每个集合中的所述词包括预定的串组合或者由预定的串组合组成。
3.根据权利要求2所述的计算机实现的方法,其中,所述方法包括以下步骤:基于与所述输入图案的至少一部分对应的串组合来识别所述集合中的一个或更多个。
4.根据权利要求3所述的计算机实现的方法,其中,所述输入图案的所述部分是所述输入图案的初始部分,并且所述串组合对应于所述候选词的开始处的字符串。
5.根据权利要求4所述的计算机实现的方法,其中,所述串组合包括双字母组或三字母组,或者由双字母组或三字母组组成。
6.根据权利要求2至5中的任一项所述的计算机实现的方法,其中,对所述一个或更多个集合中的所述候选词进行预排名。
7.根据权利要求1所述的计算机实现的方法,其中,所述预定组各自对应于所述虚拟键盘中的所述键的一区域或群集。
8.根据权利要求1所述的计算机实现的方法,其中,所述预定组各自对应于所述虚拟键盘中的所述键的一行。
9.根据权利要求1所述的计算机实现的方法,其中,唯一标识符与所述预定组中的每一个关联。
10.根据权利要求9所述的计算机实现的方法,其中,基于与排列有一个或更多个所识别的键中的每一个的所述预定组关联的所述唯一标识符来对所述输入图案进行编码。
11.根据权利要求9或权利要求10所述的计算机实现的方法,其中,针对每个候选词,存储输入序列码,从排列有所述词的每个字母的所述预定组的所述唯一标识符来导出所述输入序列码。
12.根据权利要求9或权利要求10所述的计算机实现的方法,其中,针对每个候选词,基于排列有所述词的每个字母的所述预定组的所述唯一标识符来计算输入序列码。
13.根据权利要求1所述的计算机实现的方法,所述方法包括以下步骤:
确定所述输入图案的长度,并且基于所测量的长度来计算长度上阀值和/或长度下阀值;
其中,所述一个或更多个候选词的选择基于所述长度上阀值和/或所述长度下阀值。
14.根据权利要求1所述的计算机实现的方法,所述方法包括以下步骤:
形成一个或更多个字符串,所述一个或更多个字符串包括沿着所述输入图案设置的每个字符或者由沿着所述输入图案设置的每个字符组成;以及
过滤所述一个或更多个字符串,以识别用于输入到所述电子装置中的一个或更多个候选词;
其中,过滤所述字符串的步骤包括:识别所述字符串内的有效的串组合和/或无效的串组合。
15.根据权利要求1所述的计算机实现的方法,所述方法包括以下步骤:应用图案匹配算法,以确定所述输入图案和针对候选词的经模型化的输入图案之间的相关性。
16.根据权利要求15所述的计算机实现的方法,所述方法包括以下步骤:识别所述输入图案中的角点的第一集合;以及识别所述经模型化的输入图案中的角点的第二集合。
17.根据权利要求16所述的计算机实现的方法,其中,所述图案匹配算法确定角点的所述第一集合和所述第二集合之间的相关性。
18.根据权利要求16或权利要求17所述的计算机实现的方法,其中,基于每个角点处的夹角和/或曲率来对所述第一集合和/或所述第二集合中的每个角点应用加权。
19.根据权利要求15所述的计算机实现的方法,其中,所述图案匹配算法是动态时间规整算法。
20.根据权利要求1所述的计算机实现的方法,所述方法包括以下步骤:输出所述候选词中的一个或更多个,以供所述用户选择。
21.一种用于将文本输入到电子装置中的计算机实现的方法,所述方法包括以下步骤:
在显示屏上显示包括多个键的虚拟键盘,所述键排列在预定组中,并且一个或更多个字符与每个键关联;
检测由用户生成的输入图案,并且识别位于所述输入图案上或者邻近于所述输入图案的所述键中的一个或更多个;
确定所述输入图案的长度,并且基于所测量的长度来计算长度上阀值和/或长度下阀值;以及
基于所述长度上阀值和/或所述长度下阀值来识别要被输入到所述电子装置中的一个或更多个候选词。
22.根据权利要求21所述的计算机实现的方法,所述方法包括以下步骤:
形成一个或更多个字符串,所述一个或更多个字符串包括沿着所述输入图案设置的每个字符或者由沿着所述输入图案设置的每个字符组成;以及
过滤所述一个或更多个字符串,以识别用于输入到所述电子装置中的一个或更多个候选词;
其中,过滤所述字符串的步骤包括:识别所述字符串内的有效的串组合和/或无效的串组合。
23.根据权利要求22所述的计算机实现的方法,其中,过滤所述字符串的步骤包括:在所述候选词的开始处识别有效的串组合和/或无效的串组合。
24.根据权利要求22所述的计算机实现的方法,其中,过滤所述字符串的步骤包括:确定所述字符串中的特定字符与所述字符串中的每个后续的字符的组合是否形成有效的组合。
25.根据权利要求24所述的计算机实现的方法,其中,过滤所述字符串的步骤从所述字符串中的与所述输入图案的起始点对应的第一个字符开始。
26.根据权利要求25所述的计算机实现的方法,其中,针对所述字符串中的每个字符与所述字符串中的每个后续的字符的组合,重复过滤所述字符串的步骤。
27.根据权利要求21所述的计算机实现的方法,其中,字符组合包括双字母组或三字母组,或者由双字母组或三字母组组成。
28.根据权利要求21所述的计算机实现的方法,所述方法包括以下步骤:应用图案匹配算法,以确定所述输入图案和针对候选词的经模型化的输入图案之间的相关性。
29.根据权利要求28所述的计算机实现的方法,所述方法包括以下步骤:识别所述输入图案中的角点的第一集合;以及识别所述经模型化的输入图案中的角点的第二集合。
30.根据权利要求29所述的计算机实现的方法,其中,所述图案匹配算法确定角点的所述第一集合和所述第二集合之间的相关性。
31.根据权利要求29或权利要求30所述的计算机实现的方法,其中,基于每个角点处的夹角和/或曲率来对所述第一集合和/或所述第二集合中的每个角点应用加权。
32.根据权利要求28所述的计算机实现的方法,其中,所述图案匹配算法是动态时间规整算法。
33.根据权利要求21所述的计算机实现的方法,所述方法包括以下步骤:输出所述候选词中的一个或更多个,以供所述用户选择。
34.一种用于将文本输入到电子装置中的计算机实现的方法,所述方法包括以下步骤:
在显示屏上显示包括多个键的虚拟键盘,一个或更多个字符与所述键中的每一个关联;
检测由用户生成的输入图案,并且形成由与位于所述输入图案上或者邻近于所述输入图案的每个键关联的字符组成的一个或更多个字符串;以及
过滤所述一个或更多个字符串,以识别用于输入到所述电子装置中的一个或更多个候选词;
其中,过滤所述字符串的步骤包括:识别每个字符串内的有效的串组合和/或无效的串组合,
其中,过滤所述字符串的步骤包括:确定所述字符串中的特定字符与所述字符串中的每个后续的字符的组合是否形成有效的组合。
35.根据权利要求34所述的计算机实现的方法,其中,过滤所述字符串的步骤包括:在所述候选词的开始处识别有效的串组合和/或无效的串组合。
36.根据权利要求34所述的计算机实现的方法,其中,过滤所述字符串的步骤从所述字符串中的与所述输入图案的起始点对应的第一个字符开始。
37.根据权利要求36所述的计算机实现的方法,其中,针对所述字符串中的每个字符与所述字符串中的每个后续的字符的组合,重复过滤所述字符串的步骤。
38.根据权利要求34所述的计算机实现的方法,其中,字符组合包括双字母组或三字母组,或者由双字母组或三字母组组成。
39.根据权利要求34所述的计算机实现的方法,所述方法包括以下步骤:应用图案匹配算法,以确定所述输入图案和针对候选词的经模型化的输入图案之间的相关性。
40.根据权利要求39所述的计算机实现的方法,所述方法包括以下步骤:识别所述输入图案中的角点的第一集合;以及识别所述经模型化的输入图案中的角点的第二集合。
41.根据权利要求40所述的计算机实现的方法,其中,所述图案匹配算法确定角点的所述第一集合和所述第二集合之间的相关性。
42.根据权利要求40或权利要求41所述的计算机实现的方法,其中,基于每个角点处的夹角和/或曲率来对所述第一集合和/或所述第二集合中的每个角点应用加权。
43.根据权利要求39所述的计算机实现的方法,其中,所述图案匹配算法是动态时间规整算法。
44.根据权利要求34所述的计算机实现的方法,所述方法包括以下步骤:输出所述候选词中的一个或更多个,以供所述用户选择。
45.一种用于将文本输入到电子装置中的计算机实现的方法,所述方法包括以下步骤:
在显示屏上显示包括多个键的虚拟键盘,所述键排列在预定组中,并且一个或更多个字符与每个键关联;
检测由用户生成的输入图案,并且识别位于所述输入图案上或者邻近于所述输入图案的所述键中的一个或更多个;
应用图案匹配算法,以确定所述输入图案和针对候选词的经模型化的输入图案之间的相关性;以及
基于所述相关性来识别要被输入到所述电子装置中的所述候选词的一个或更多个,
所述方法还包括以下步骤:识别所述输入图案中的角点的第一集合;以及识别所述经模型化的输入图案中的角点的第二集合。
46.根据权利要求45所述的计算机实现的方法,其中,所述图案匹配算法确定角点的所述第一集合和所述第二集合之间的相关性。
47.根据权利要求45或权利要求46所述的计算机实现的方法,其中,基于每个角点处的夹角和/或曲率来对所述第一集合和/或所述第二集合中的每个角点应用加权。
48.根据权利要求45所述的计算机实现的方法,其中,所述图案匹配算法是动态时间规整算法。
49.根据权利要求45所述的计算机实现的方法,所述方法包括以下步骤:输出所述候选词中的一个或更多个,以供所述用户选择。
50.一种用于将文本输入到电子装置中的计算机实现的方法,所述方法包括以下步骤:
在显示屏上显示包括多个键的虚拟键盘,一个或更多个字符与所述键中的每一个关联;
检测由用户生成的输入图案;以及
识别所述输入图案中的一个或更多个角点;
其中,在所述角点处测量夹角和/或曲率,并且基于所测量的夹角和/或曲率来应用加权。
51.一种用于将文本输入到电子装置中的计算机实现的方法,所述方法包括以下步骤:在第一阶段中执行根据权利要求1至12中的任一项所述的方法;在第二阶段中执行根据权利要求34至38中的任一项所述的方法;以及在第三阶段中执行根据权利要求45至48中的任一项所述的方法;其中,能够以任何顺序来执行所述第一阶段、所述第二阶段和所述第三阶段。
52.一种计算装置,该计算装置被构造为执行指令以实现根据前述权利要求中的任一项所述的方法。
CN201480009944.3A 2013-01-21 2014-01-20 文本输入系统及方法 Active CN105027040B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IN260/CHE/2013 2013-01-21
IN260CH2013 2013-01-21
PCT/IN2014/000039 WO2014111959A2 (en) 2013-01-21 2014-01-20 Text input system and method

Publications (2)

Publication Number Publication Date
CN105027040A CN105027040A (zh) 2015-11-04
CN105027040B true CN105027040B (zh) 2018-09-21

Family

ID=51210162

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480009944.3A Active CN105027040B (zh) 2013-01-21 2014-01-20 文本输入系统及方法

Country Status (5)

Country Link
US (1) US10474355B2 (zh)
EP (1) EP2946272A4 (zh)
KR (1) KR102306899B1 (zh)
CN (1) CN105027040B (zh)
WO (1) WO2014111959A2 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104007832B (zh) 2013-02-25 2017-09-01 上海触乐信息科技有限公司 连续滑行输入文本的方法、系统及设备
US10019567B1 (en) * 2014-03-24 2018-07-10 Amazon Technologies, Inc. Encoding of security codes
CN104281275B (zh) * 2014-09-17 2016-07-06 北京搜狗科技发展有限公司 一种英文的输入方法和装置
GB201418402D0 (en) 2014-10-16 2014-12-03 Touchtype Ltd Text prediction integration
CN106227333A (zh) * 2016-07-14 2016-12-14 深圳市金立通信设备有限公司 一种终端及其多媒体互动方法
US10635693B2 (en) 2016-11-11 2020-04-28 International Business Machines Corporation Efficiently finding potential duplicate values in data
CN109271037B (zh) * 2017-07-13 2022-09-09 北京搜狗科技发展有限公司 一种纠错词库的建立方法和装置
CN109214167B (zh) * 2018-08-01 2021-04-16 深圳市文鼎创数据科技有限公司 一种智能密钥安全设备及其密钥恢复方法、存储介质
GB201820569D0 (en) * 2018-12-18 2019-01-30 Continental Automotive Gmbh Printed character recognition
WO2020146784A1 (en) * 2019-01-10 2020-07-16 Chevron U.S.A. Inc. Converting unstructured technical reports to structured technical reports using machine learning
CN110928429B (zh) * 2019-11-22 2020-12-22 北京海泰方圆科技股份有限公司 一种信息输入方法、装置、介质和设备
US11735169B2 (en) * 2020-03-20 2023-08-22 International Business Machines Corporation Speech recognition and training for data inputs
US11256864B2 (en) * 2020-06-19 2022-02-22 Apple, Inc. Contacts autocomplete keyboard
WO2022212652A1 (en) * 2021-03-31 2022-10-06 Cerini Arielle Nicole Digital penmanship
US20230315216A1 (en) * 2022-03-31 2023-10-05 Rensselaer Polytechnic Institute Digital penmanship

Family Cites Families (132)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB231418A (en) 1924-03-29 1925-08-06 Walther Koeniger Improvements in means for freezing portions of liquid below the surface of the liquid, for raising sunken ships and other sunken objects
GB233117A (en) 1924-04-10 1925-05-07 Tom Kay Improvements in dust extractors for emery wheels, polishing spindles and the like
GB233297A (en) 1924-04-29 1925-06-04 Atlas Diesel Ab Improvements in or relating to supplying liquid fuel to internalcombustion engines
GB233734A (en) 1924-05-12 1926-07-29 Ver Chemische & Metallurgische Improvements in and relating to processes for obtaining high percentage anthracene and carbazole from crude anthracene
US4650927A (en) 1984-11-29 1987-03-17 International Business Machines Corporation Processor-assisted communication system using tone-generating telephones
DE3528264A1 (de) 1985-08-07 1987-02-12 Bayer Ag Phosphor(phosphon)-saeureester
CA2006163A1 (en) 1988-12-21 1990-06-21 Alfred B. Freeman Keyboard express typing system
US5621641A (en) 1988-12-21 1997-04-15 Freeman; Alfred B. Computer assisted text system
US5128672A (en) 1990-10-30 1992-07-07 Apple Computer, Inc. Dynamic predictive keyboard
JPH0736175B2 (ja) 1991-10-11 1995-04-19 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システムのシステム構成設定方法、データ処理システム、及びデータ処理システム用拡張ユニット
JPH05233623A (ja) 1991-11-27 1993-09-10 Internatl Business Mach Corp <Ibm> ストローク構文入力装置
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
JPH0759170A (ja) 1993-08-19 1995-03-03 Toshiba Corp リモートコントロール装置
GB2283598A (en) 1993-11-03 1995-05-10 Ibm Data entry workstation
JP3546337B2 (ja) 1993-12-21 2004-07-28 ゼロックス コーポレイション 計算システム用ユーザ・インタフェース装置及びグラフィック・キーボード使用方法
IL108565A0 (en) 1994-02-04 1994-05-30 Baron Research & Dev Company L Improved information input apparatus
US5982302A (en) 1994-03-07 1999-11-09 Ure; Michael J. Touch-sensitive keyboard/mouse
US5574482A (en) 1994-05-17 1996-11-12 Niemeier; Charles J. Method for data input on a touch-sensitive screen
US5687254A (en) * 1994-06-06 1997-11-11 Xerox Corporation Searching and Matching unrecognized handwriting
JP3688738B2 (ja) 1994-10-28 2005-08-31 富士通株式会社 対話ボックスを持つデータ処理装置
US5748512A (en) 1995-02-28 1998-05-05 Microsoft Corporation Adjusting keyboard
US5786776A (en) 1995-03-13 1998-07-28 Kabushiki Kaisha Toshiba Character input terminal device and recording apparatus
DE19581933T1 (de) 1995-03-27 1998-04-16 Donald K Forest Methode und Apparatur zur Dateneintragung
US6903723B1 (en) 1995-03-27 2005-06-07 Donald K. Forest Data entry method and apparatus
US6160536A (en) 1995-03-27 2000-12-12 Forest; Donald K. Dwell time indication method and apparatus
US5797098A (en) 1995-07-19 1998-08-18 Pacific Communication Sciences, Inc. User interface for cellular telephone
US6005549A (en) 1995-07-24 1999-12-21 Forest; Donald K. User interface method and apparatus
US5999895A (en) 1995-07-24 1999-12-07 Forest; Donald K. Sound operated menu method and apparatus
CA2227904C (en) 1995-07-26 2000-11-14 Tegic Communications, Inc. Reduced keyboard disambiguating system
JP3727399B2 (ja) 1996-02-19 2005-12-14 ミサワホーム株式会社 画面表示式キー入力装置
US5911485A (en) 1995-12-11 1999-06-15 Unwired Planet, Inc. Predictive data entry method for a keypad
US5625354A (en) 1996-01-26 1997-04-29 Lerman; Samuel I. Compact stylus keyboard
JPH10154144A (ja) 1996-11-25 1998-06-09 Sony Corp 文章入力装置及び方法
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
US6640006B2 (en) * 1998-02-13 2003-10-28 Microsoft Corporation Word segmentation in chinese text
US6104317A (en) 1998-02-27 2000-08-15 Motorola, Inc. Data entry device and method
US6031525A (en) 1998-04-01 2000-02-29 New York University Method and apparatus for writing
KR100327209B1 (ko) 1998-05-12 2002-04-17 윤종용 첨펜의자취를이용한소프트웨어키보드시스템및그에따른키코드인식방법
US6741267B1 (en) 1998-10-30 2004-05-25 Smart Technologies, Inc. Keyboard for an electronic writeboard and method
US7679534B2 (en) 1998-12-04 2010-03-16 Tegic Communications, Inc. Contextual prediction of user words and user actions
CA2353862C (en) 1998-12-10 2007-11-13 Eatoni Ergonomics, Inc. Touch-typable devices based on ambiguous codes and methods to design such devices
US6313825B1 (en) 1998-12-28 2001-11-06 Gateway, Inc. Virtual input device
WO2000057265A1 (en) 1999-03-18 2000-09-28 602531 British Columbia Ltd. Data entry for personal computing devices
US6614422B1 (en) 1999-11-04 2003-09-02 Canesta, Inc. Method and apparatus for entering data using a virtual input device
AU5299700A (en) 1999-05-27 2000-12-18 America Online, Inc. 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
US6535883B1 (en) 1999-08-04 2003-03-18 Mdsi Software Srl System and method for creating validation rules used to confirm input data
DE60015383D1 (de) 1999-12-08 2004-12-02 Ericsson Telefon Ab L M Tragbare Kommunikationsvorrichtung und Verfahren
AU3406801A (en) 2000-01-26 2001-08-07 D'agostini Organizzazione S.R.L. Character input device based on a two-dimensional movement sensor
US20020049795A1 (en) 2000-05-15 2002-04-25 Freeman Alfred Boyd Computer assisted text input system
CN1276336C (zh) 2000-07-21 2006-09-20 拉发耶尔·巴赫曼 实现快速书写系统的方法和快速书写机
EP1356368B1 (en) 2000-10-18 2007-12-12 602531 British Columbia Ltd. Data entry method and system for personal computer, and corresponding computer readable medium
CA2323856A1 (en) 2000-10-18 2002-04-18 602531 British Columbia Ltd. Method, system and media for entering data in a personal computing device
US6501464B1 (en) 2000-10-31 2002-12-31 Intel Corporation On-screen transparent keyboard interface
US6967642B2 (en) 2001-01-31 2005-11-22 Microsoft Corporation Input device with pattern and tactile feedback for computer input and control
US6847706B2 (en) 2001-03-20 2005-01-25 Saied Bozorgui-Nesbat Method and apparatus for alphanumeric data entry using a keypad
EP1246048A1 (en) 2001-03-26 2002-10-02 SAP Aktiengesellschaft Method and computer system for executing functions for objects based on the movement of an input device
GB0112870D0 (en) 2001-05-25 2001-07-18 Koninkl Philips Electronics Nv Text entry method and device therefore
US6990534B2 (en) 2001-07-20 2006-01-24 Flowfinity Wireless, Inc. Method for a proactive browser system for implementing background frame maintenance and asynchronous frame submissions
US8095879B2 (en) 2002-12-10 2012-01-10 Neonode Inc. User interface for mobile handheld computer unit
US9164654B2 (en) 2002-12-10 2015-10-20 Neonode Inc. User interface for mobile computer unit
US20040163032A1 (en) 2002-12-17 2004-08-19 Jin Guo Ambiguity resolution for predictive text entry
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
US7382358B2 (en) 2003-01-16 2008-06-03 Forword Input, Inc. System and method for continuous stroke word-based text input
US7453439B1 (en) 2003-01-16 2008-11-18 Forward Input Inc. System and method for continuous stroke word-based text input
US7098896B2 (en) * 2003-01-16 2006-08-29 Forword Input Inc. System and method for continuous stroke word-based text input
US7411575B2 (en) 2003-09-16 2008-08-12 Smart Technologies Ulc Gesture recognition method and touch system incorporating the same
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
US7555732B2 (en) * 2004-03-12 2009-06-30 Steven Van der Hoeven Apparatus method and system for a data entry interface
GB0406451D0 (en) 2004-03-23 2004-04-28 Patel Sanjay Keyboards
EP3121697A1 (en) 2004-07-30 2017-01-25 Apple Inc. Mode-based graphical user interfaces for touch sensitive input devices
US20060176283A1 (en) 2004-08-06 2006-08-10 Daniel Suraqui Finger activated reduced keyboard and a method for performing text input
GB0505941D0 (en) 2005-03-23 2005-04-27 Patel Sanjay Human-to-mobile interfaces
GB0505942D0 (en) 2005-03-23 2005-04-27 Patel Sanjay Human to mobile interfaces
US9606634B2 (en) 2005-05-18 2017-03-28 Nokia Technologies Oy Device incorporating improved text input mechanism
US8036878B2 (en) 2005-05-18 2011-10-11 Never Wall Treuhand GmbH Device incorporating improved text input mechanism
US8117540B2 (en) 2005-05-18 2012-02-14 Neuer Wall Treuhand Gmbh Method and 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
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
JP2007316732A (ja) 2006-05-23 2007-12-06 Sharp Corp 項目選択装置、情報処理装置、及び項目選択のためのコンピュータプログラム
US8225203B2 (en) * 2007-02-01 2012-07-17 Nuance Communications, Inc. Spell-check for a keyboard system with automatic correction
JP4694579B2 (ja) 2007-04-11 2011-06-08 株式会社フェイビー 文字入力システム
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
WO2009005415A1 (en) 2007-07-03 2009-01-08 Teleca Sweden Ab Method for displaying content on a multimedia player and a multimedia player
CN100545792C (zh) 2007-08-24 2009-09-30 上海汉翔信息技术有限公司 电子设备屏幕上实现智能软件键盘输入的方法
IL188523A0 (en) * 2008-01-01 2008-11-03 Keyless Systems Ltd Data entry system
CN100592249C (zh) 2007-09-21 2010-02-24 上海汉翔信息技术有限公司 快速输入相关词的方法
JP2009112540A (ja) * 2007-11-07 2009-05-28 Toshiba Corp 関節屈曲動作予測装置および関節屈曲動作予測方法
EP2077486A1 (en) 2007-12-28 2009-07-08 Research In Motion Limited Keypad navigation selection and method on mobile device
US8232973B2 (en) 2008-01-09 2012-07-31 Apple Inc. Method, device, and graphical user interface providing word recommendations for text input
US8756527B2 (en) 2008-01-18 2014-06-17 Rpx Corporation Method, apparatus and computer program product for providing a word input mechanism
CN101266520B (zh) 2008-04-18 2013-03-27 上海触乐信息科技有限公司 一种可实现灵活键盘布局的系统
KR100988397B1 (ko) 2008-06-09 2010-10-19 엘지전자 주식회사 이동 단말기 및 그의 텍스트 수정방법
WO2010018577A2 (en) 2008-08-12 2010-02-18 Benjamin Firooz Ghassabian Data entry system
US20110209087A1 (en) 2008-10-07 2011-08-25 TikiLabs Method and device for controlling an inputting data
US20100114930A1 (en) 2008-11-06 2010-05-06 Samsung Electronics Co., Ltd Situation-aware, interest based search query generation
US8669941B2 (en) 2009-01-05 2014-03-11 Nuance Communications, Inc. Method and apparatus for text entry
US20100199176A1 (en) 2009-02-02 2010-08-05 Chronqvist Fredrik A Electronic device with text prediction function and method
US8605039B2 (en) 2009-03-06 2013-12-10 Zimpl Ab Text input
GB0905457D0 (en) 2009-03-30 2009-05-13 Touchtype Ltd System and method for inputting text into electronic devices
GB201016385D0 (en) 2010-09-29 2010-11-10 Touchtype Ltd System and method for inputting text into electronic devices
GB0917753D0 (en) 2009-10-09 2009-11-25 Touchtype Ltd System and method for inputting text into electronic devices
US8212788B2 (en) 2009-05-07 2012-07-03 Microsoft Corporation Touch input to modulate changeable parameter
JP2009283015A (ja) 2009-09-02 2009-12-03 Kyocera Corp 情報入力支援装置
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
US8516367B2 (en) * 2009-09-29 2013-08-20 Verizon Patent And Licensing Inc. Proximity weighted predictive key entry
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
US20110087961A1 (en) 2009-10-11 2011-04-14 A.I Type Ltd. Method and System for Assisting in Typing
US8884872B2 (en) 2009-11-20 2014-11-11 Nuance Communications, Inc. Gesture-based repetition of key activations on a virtual keyboard
US20120303452A1 (en) 2010-02-03 2012-11-29 Nokia Corporation Method and Apparatus for Providing Context Attributes and Informational Links for Media Data
US8782556B2 (en) 2010-02-12 2014-07-15 Microsoft Corporation User-centric soft keyboard predictive technologies
GB201003628D0 (en) 2010-03-04 2010-04-21 Touchtype Ltd System and method for inputting text into electronic devices
US9104312B2 (en) * 2010-03-12 2015-08-11 Nuance Communications, Inc. Multimodal text input system, such as for use with touch screens on mobile phones
JP2012003545A (ja) 2010-06-17 2012-01-05 Nec Corp 情報処理端末およびその操作制御方法
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
US8523250B2 (en) * 2010-12-06 2013-09-03 Lynn Chiung-Ling Chen Top-and-bottom latch structure for lock
US9182831B2 (en) 2011-04-09 2015-11-10 Shanghai Chule (Cootek) Information Technology Co., Ltd. System and method for implementing sliding input of text based upon on-screen soft keyboard on electronic equipment
JP2013003801A (ja) 2011-06-15 2013-01-07 Sharp Corp 文字入力装置、文字入力装置の制御方法、制御プログラム、及び記録媒体
US20130002556A1 (en) 2011-07-01 2013-01-03 Jason Tyler Griffin System and method for seamless switching among different text entry systems on an ambiguous keyboard
US20130018954A1 (en) 2011-07-15 2013-01-17 Samsung Electronics Co., Ltd. Situation-aware user sentiment social interest models
CN102360249B (zh) 2011-09-29 2016-09-07 上海触乐信息科技有限公司 分立式键盘布局系统和设置方法、相应的便携电子设备及控制方法
US9122672B2 (en) 2011-11-10 2015-09-01 Blackberry Limited In-letter word prediction for virtual keyboard
US9223497B2 (en) 2012-03-16 2015-12-29 Blackberry Limited In-context word prediction and word correction
US20130285916A1 (en) 2012-04-30 2013-10-31 Research In Motion Limited Touchscreen keyboard providing word predictions at locations in association with candidate letters
US9128921B2 (en) 2012-05-31 2015-09-08 Blackberry Limited Touchscreen keyboard with corrective word prediction
US9116552B2 (en) 2012-06-27 2015-08-25 Blackberry Limited Touchscreen keyboard providing selection of word predictions in partitions of the touchscreen keyboard
CN106681633B (zh) 2012-07-13 2020-03-17 上海触乐信息科技有限公司 便携式终端设备滑行操作辅助信息输入控制功能的系统及方法
US20140063067A1 (en) 2012-08-31 2014-03-06 Research In Motion Limited Method to select word by swiping capacitive keyboard

Also Published As

Publication number Publication date
KR20150109447A (ko) 2015-10-01
WO2014111959A2 (en) 2014-07-24
WO2014111959A3 (en) 2015-09-11
KR102306899B1 (ko) 2021-09-30
US20150355836A1 (en) 2015-12-10
EP2946272A2 (en) 2015-11-25
CN105027040A (zh) 2015-11-04
EP2946272A4 (en) 2016-11-02
US10474355B2 (en) 2019-11-12

Similar Documents

Publication Publication Date Title
CN105027040B (zh) 文本输入系统及方法
JP6492239B2 (ja) テキスト入力のためのシステム及び方法
CN103814351B (zh) 基于协同姿势的输入语言
US11874877B2 (en) Using natural language processing for visual analysis of a data set
CN109345399B (zh) 理赔风险评估方法、装置、计算机设备及存储介质
CN103280217B (zh) 一种移动终端的语音识别方法及其装置
CN105431809B (zh) 用于国际语言的虚拟键盘输入
EP2940557B1 (en) Method and device used for providing input candidate item corresponding to input character string
US20160170572A1 (en) Information processing device, information processing method, and computer program
CN107111608A (zh) 从语言输入数据自动生成n‑元和概念关系
CN103299550A (zh) 用于具有自动校正的键盘系统的拼写检查
CN105229574A (zh) 减少基于触摸的键盘的错误率
CN109074383A (zh) 文档背景内可视化的文档搜索
CN106651338A (zh) 一种支付处理的方法及终端
US8402042B2 (en) Named entity database or mining rule database update apparatus and method using named entity database and mining rule merged ontology schema
CN105164676A (zh) 查询特征和问题
CN110162681A (zh) 文本识别、文本处理方法、装置、计算机设备和存储介质
CN107850950A (zh) 基于时间的分词
CN107589902A (zh) 一种显示页面控制方法、装置、电子设备及存储介质
WO2021139255A1 (zh) 基于模型的预测数据变化频率的方法、装置和计算机设备
CN107132927A (zh) 输入字符的识别方法及装置和用于识别输入字符的装置
JP2005056022A (ja) データ抽出装置、データ抽出方法およびデータ抽出プログラム
CN113254653B (zh) 一种文本分类方法、系统、设备及介质
CN113064982A (zh) 一种问答库生成方法及相关设备
JP2009271772A (ja) テキストマイニング方法、テキストマイニング装置、及びテキストマイニングプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant