CN103299550A - 用于具有自动校正的键盘***的拼写检查 - Google Patents

用于具有自动校正的键盘***的拼写检查 Download PDF

Info

Publication number
CN103299550A
CN103299550A CN2011800640996A CN201180064099A CN103299550A CN 103299550 A CN103299550 A CN 103299550A CN 2011800640996 A CN2011800640996 A CN 2011800640996A CN 201180064099 A CN201180064099 A CN 201180064099A CN 103299550 A CN103299550 A CN 103299550A
Authority
CN
China
Prior art keywords
key
word
candidate
editing distance
calculating
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
CN2011800640996A
Other languages
English (en)
Other versions
CN103299550B (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.)
Serenes operations
Original Assignee
Nuance Communications Inc
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
Priority claimed from US12/939,918 external-priority patent/US8225203B2/en
Application filed by Nuance Communications Inc filed Critical Nuance Communications Inc
Publication of CN103299550A publication Critical patent/CN103299550A/zh
Application granted granted Critical
Publication of CN103299550B publication Critical patent/CN103299550B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/232Orthographic correction, e.g. spell checking or vowelisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Document Processing Apparatus (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Machine Translation (AREA)

Abstract

接收用户输入,其指定经过在接触敏感显示器上存在的键盘的连续描迹的路径。通过规定的准则解析包括描迹的键和紧邻所述描迹的键的辅助键的输入序列。对于规定的词汇表的一个或多个候选条目中的每个,计算所述输入序列和所述候选条目之间的集合-编辑距离度量。多种规则指定在计算集合-编辑距离度量时何时施加或不施加惩罚。候选条目根据所计算的度量被分等级并且显示。

Description

用于具有自动校正的键盘***的拼写检查
相关申请的交叉引用
本申请要求于2010年11月04日提交的美国专利申请号12/939,918的优先权,该美国专利申请的全部特此通过引用被并入本文。
发明背景
技术领域
本发明涉及数据输入装置。更具体地,本发明涉及用于具有自动校正能力的键盘***的拼写检查机制。
现有技术的描述
对调换/增加/去掉的字符的经典拼写检查(“编辑距离”)技术有相对长的历史。见例如Kukich,K.的“Techniques for Automatically CorrectingWords”(ACM Computing Surveys,Vol.24,No.4(1992年12月))、Peterson,J.L.的“Computer Programs for Detecting and Correcting Spelling Errors”(The Communications of the ACM,Vol.23,No.12(1980年12月))以及Daciuk,J.的“Spelling Correction in the paper Incremental Construction ofFinite-State Automata and Transducers,and their Use in the Natural LanguageProcessing”(1998)。
但是经典拼写检查技术仅可以处理在所录入的字和预期的正确字之间的某个数量的差异。因为最好的校正候选者被假定是具有最少的改变的候选者,所以拼写检查算法由于例如不知道打字者在键盘上不确知地移动手指或在触摸屏键盘上仓促地和不正确地点击以及因此几乎将每个字母录错而被混淆。
为了限制计算处理的量,特别是在较低性能的移动装置上,经典算法的实现作出假设或施加约束以减少模糊性以及因此减少正在被考虑的候选字的数量。例如,它们可能依赖于正在被校正的字的初始字母或严重地限制词汇表的大小。
对于在触敏表面上的键盘以及对于标准的电话小键盘都有用的自动错误校正的另一形式计算每个输入位置和邻近的字母之间的距离,并且比较整个输入序列与可能的字。与字的使用的最高频率和/或近度结合,字母最接近于输入位置的字是最好的校正候选者。这种技术容易校正移动的手指和匆忙的点击。它还可以提供合理的字补全,即使初始字母没有都被精确地录入。
以下的专利公布描述了用于消除歧义和自动校正模糊键、软键盘和手书识别***的“SloppyType”引擎的使用:Robinson、B.Alex,Longe、MichaelR.的“Keyboard System With Automatic Correction”(USPN6,801,190(2004年10月5日)、USPN7,088,345(2006年8月8日)和USPN7,277,088(2007年10月2日));Robinson等人的“Handwriting And Voice Input WithAutomatic Correction”(USPN7,319,957(2008年1月15日)和美国专利申请序列号11/043,525(于2005年1月25日提交)。还见Vargas、GarrettR.的“Adjusting keyboard”(USPN5,748,512(1998年5月5日))。
此外,以下的公布涵盖了用于文本歧义消除的手动输入和声输入的组合:Longe等人的“Multimodal Disambiguation of Speech Recognition”(美国专利申请序列号11/143,409(于2005年6月1日提交)以及Stephanick等人的“Method and Apparatus Utilizing Voice Input to Resolve AmbiguousManually Entered Text Input”(美国专利申请序列号11/350,234(于02/07/2006提交))。
上文提到的“Sloppy Type”技术使用在全字上的基于距离的错误校正。假设输入序列的长度等于预期的字的长度并且假设每个输入位置是以合适的顺序帮助通过考虑对每个输入的多个邻近的字母来补偿所引入的增加的模糊性。但是除了较少的目标错误之外,人们还调换键,双击键,完全遗漏键,或在打字时错误拼写字。
提供用于以提供精确的校正和可接受的性能的方式处理所有形式的打字错误的机制将是有利的。
发明概述
接收指定在触敏显示器上显现的键盘上经过的连续描迹的路径的用户输入。通过规定的准则解析输入序列,包括描迹的键和紧邻所述描迹的键的辅助键。对于规定的词汇表的一个或多个候选条目,在所述输入序列和所述候选条目中的每个之间计算集合-编辑距离度量。多种规则指定在计算集合-编辑距离度量时何时惩罚被施加或不被施加。候选条目根据所计算的度量分等级并且显示。本文描述的特征还可以实现为设备、编程产品、方法、电路或前述项的组合。
附图简述
图1是根据本发明的一个实施方案的用于具有自动校正的键盘的拼写检查方法的流程图。
图2是根据本发明的一个实施方案的具有拼写检查和自动校正的输入***的硬件框图。
图2A是根据本发明的一个实施方案的数字数据处理机器的框图。
图2B示出了根据本发明的一个实施方案的示例性的存储介质。
图2C是根据本发明的一个实施方案的示例性的逻辑电路的透视图。
图3是示出了根据本发明的一个实施方案的使用矩阵作为工具的在输入字和目标字之间的标准编辑距离计算的表格。
图4是示出了根据本发明的一个实施方案的用于在12键移动电话上输入的集合-编辑距离计算的表格。
图5A-5C是用于解释根据本发明的一个实施方案的词干编辑距离和词干集合-编辑距离的概念的图示。
图6是示出了根据本发明的一个实施方案的用于执行集合-编辑距离计算和增量过滤以识别候选字的步骤的流程图。
图7是示出了根据本发明的一个实施方案的使用标准编辑距离的字“misspell”的实例的矩阵。
图8是示出了根据本发明的一个实施方案如何基于正在被计算的单元找到标准编辑距离值的矩阵。
图9是示出了根据本发明的一个实施方案何时所比较的字的词干完全匹配的矩阵。
图10A-10B是根据本发明的一个实施方案的示出了当正在被比较的字之间存在失配时的增量计算的一系列矩阵。
图11示出了根据本发明的一个实施方案的旋转/转换矩阵空间。
图12示出了根据本发明如何找到图11的旋转矩阵的标准编辑距离值。
图13是示出了根据本发明的一个实施方案的用于LDB检索筛选功能的毗邻的输入集合的并集的表格。
图14是根据本发明的一个实施方案的输入长度9的与长度无关的筛选图。
图15是根据本发明的一个实施方案的具有长度6和输入长度9的目标字的与长度相关的筛选图。
图16是示出了根据本发明的一个实施方案的具有区域性自动校正的集合-编辑距离拼写校正的一系列屏幕图。
图17是键盘的屏幕截图,其示出了根据本发明的一个实施方案的轨迹。
图18示出了根据本发明的一个实施方案的将对描迹的输入计算的集合-编辑距离矩阵的布局。
图19-23示出了根据本发明的一个实施方案的集合-编辑距离矩阵和各种阴影矩阵。
图24是示出了根据本发明的一个实施方案的用于解析通过描迹技术录入的用户输入的示例性的操作序列的流程图。
图25-26是键盘的屏幕截图,其示出了根据本发明的一个实施方案的确定辅助键的多种方法。
图27-30示出了根据本发明的一个实施方案的集合-编辑距离矩阵和各种阴影矩阵。
本发明的详细描述
词汇表
为了本文的讨论的目的,以下的术语具有与其相关联的意思:
编辑距离(也是“标准”E.D.)-比较两个字符串并且确定使一个字符串与另一个字符串相同所必需的改变的最小的数量是被充分证明的算法。
以下的缩写也可以在本文中以及在附图中使用:
T-调换的(两个连续的字母被互换);
I-***的(添加不在另一个字符串中的字母);
D-删除的(从一个字符串去掉一个额外的字母);
S-替换的(在同一个位置使用另一个字母代替一个字母);
X-正被计算的目标单元。
增强编辑距离、或集合-编辑距离(或“模糊比较”)-本专利的主题;改进的E.D.使用字母的集合(对于每个字母有可选的概率)代表每个输入,而不是如在标准E.D.中的单个字母,加上其他的优化。
模式-一种操作状态;对于这个例子,2个状态中的1个,“确切的”(仅使用来自每个输入事件的精确点击字母/值匹配每个候选字,如同标准E.D.一样)或“区域性的”“基于集合的”(使用每输入多个字母/值);模式可以是用户指定的或***指定的。
区域性的输入-一种方法(或事件),其除了实际上点击/按下的字母/键以外还包括邻近的/周围的字母(有可选的概率)。
基于集合的-多个字符值而不是仅一个字符值的使用,以代表每个输入;每个集合成员可以具有不同的相对概率;集合也可以包括例如在键上示出的基本字母的有重音的变化形式。
“经典比较”、“经典匹配”、“Sloppy Type”、或“区域性校正”-使用考虑上述邻近的字母的自动校正的全字匹配;通常,输入的数量等于每个候选字中的字母(或所比较的字的字词干)的数量。
过滤或筛选-一种用于通过识别和消除最终无论如何将不被添加到选择列表中的字来躲避完全的比较或检索过程的规则。
KDB-键盘数据库;关于键盘布局的信息、在每个字母周围的模糊性的水平、和每个字母的邻近的字母。
LDB-语言数据库,即,一种语言的主要的词汇表。
“字点击频率”-距按下的键的物理距离对字是目标字的可能性的贡献。
讨论
本发明的一个实施方案提供对于模糊小键盘和其他预测文本输入***使用基于概率的自动校正算法和数据结构工作的标准编辑距离拼写检查算法的适应。本发明的实施方案还提供用于优化以及用于对不同类型的结果排序的策略。
图1是用于具有自动校正的键盘的拼写检查方法的流程图。图1示出了包括由用户通过数据录入装置(105)录入的输入序列的用户/输入,其中用户的输入可能是模糊的。至少一个字典(115)也被提供,作为用户的录入项的目标意思的源。在每个用户输入事件(100)时用户输入序列被提供至本发明的***。每个源(110)例如在上文讨论的字典(115)被查询。潜在地,在每个字典中的每个字(120)在每个用户输入事件时又被提供,作为本发明的***的输入。
当接收到这些输入时,***执行增量过滤和编辑距离和区域/概率计算(130),丢弃不满足与输入的相似性的最小阈值的任何字。然后***比较输入序列的结果和字典输入与字选择列表中的其他最上面的匹配项,并且丢弃字——如果该字在列表(140)上级别太低。如果列表满了的话,列表中的最低等级的字被去掉,并且字基于等级(150)***列表中。列表然后被显现给用户。
图2是具有拼写检查和自动校正的输入***200的硬件框图。输入装置202和显示器203通过合适的接口电路耦合于处理器201。可选地,扬声器204也耦合于处理器。处理器201接收来自输入装置的输入,并且管理显示器和扬声器的所有输出。处理器201耦合于存储器210。存储器包括临时存储介质例如随机存取存储器(RAM)和永久存储介质例如只读存储器(ROM)、软盘、硬盘或CD-ROM的组合。存储器210包含控制***操作的所有软件例程。优选地,存储器包含操作***211、校正软件212——尤其包括用于计算编辑距离以及执行拼写检查的软件、以及在本文中更详细地讨论的相关词汇表模块213。可选地,存储器可以包含一个或多个应用程序214、215、216。应用程序的实例包括字处理器、软件字典和外国语翻译器。语音合成软件也可以作为应用程序被提供,允许输入***具有完全的校正能力以起通信辅助程序的作用。
示例性数字数据处理设备
数据处理实体例如CPU201可以以多种形式实现。一些实例包括通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他的可编程逻辑器件、分立门或晶体管逻辑、分立硬件部件或被设计为执行本文描述的功能的其任何组合。通用处理器可以是微处理器,但可选地,处理器可以是任何常规的处理器、控制器、微控制器或状态机。处理器还可以被实现为计算装置的组合,例如DSP和微处理器的组合、多个微处理器、结合DSP核心的一个或多个微处理器、或任何其他这样的配置。
作为一个更具体的实施例,图2A示出了数字数据处理设备220。设备220包括耦合于数字数据存储器224的处理器222,例如微处理器、个人计算机、工作站、控制器、微控制器、状态机或其他的处理机器。在本实施例中,存储器224包括快速存取存储器226以及非易失性存储器228。快速存取存储器226可以例如用于存储处理器222所执行的编程指令。存储器226和228可以由多种装置例如结合图2B-2C更详细地讨论的那些装置实现。许多可选形式是可能的。例如,部件226、228中的一个可以被消除;此外,存储器224、226和/或228可以设置在处理器222上,或甚至设置在设备220的外部。
设备220还包括输入/输出221,例如连接器、线路、总线、电缆、缓冲器、电磁链路、网络、调制解调器、换能器、IR端口、天线或使处理器222与在设备220外部的其他硬件交换数据的其它装置。
存储介质
数字数据存储器的多种实例可以用于提供存储器,例如存储器210,以体现存储器224和228(图2A)等。根据其应用,该数字数据存储器可以用于多种功能,例如存储数据或存储机器可读指令。这些指令可以本身帮助执行多种处理功能,或它们可以用于将软件程序安装在计算机上,其中这样的软件程序然后可执行来执行关于本公开的其他功能。
在任何情况下,存储介质可以通过几乎任何机制实现以数字地存储机器可读信号。一个实例是光存储器,例如CD-ROM、WORM、DVD、数字光带、磁盘存储器230(图2B)或其他的光存储器。另一个实例是直接存取存储器,例如常规的“硬盘”、廉价磁盘冗余阵列(“RAID”)或另一个直接存取存储设备(“DASD”)。另一个实例是串行存取存储器,例如磁带或光带。数字数据存储器的又一些其他的实例包括电子存储器,例如ROM、EPROM、闪存PROM、EEPROM、存储寄存器、电池备用RAM等。
示例性的存储介质耦合于处理器,所以处理器可以从存储介质读取信息以及将信息写到存储介质。可选地,存储介质可以与处理器成一整体。在另一个实施例中,处理器和存储介质可以存在于ASIC或其他的集成电路中。
逻辑电路
与包含机器可执行指令的存储介质相反,如上文所描述的,一个不同的实施方案使用逻辑电路来实现本文描述的处理特征。根据本申请在速度、费用、工具成本等领域中的特定要求,这种逻辑可以通过构建具有数千微型集成晶体管的专用集成电路(ASIC)来实现。这样的ASIC可以使用CMOS、TTL、VLSI或另一个合适的结构来实现。其他的可选形式包括数字信号处理芯片(DSP)、分立电路(例如电阻器、电容器、二极管、电感器和晶体管)、现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、可编程逻辑器件(PLD)等。图2C示出了以集成电路240的形式的逻辑电路的实施例。
与区域性校正组合的编辑距离
编辑距离是将一个字符串转变为另一个字符串所需要的操作的数量。本质上,这是一个人修改拼错的字可能必须例如使用笔手动地作出的编辑的数量。例如,为了将输入字“ressumt”修改为目标字“result”,两次编辑必须被作出:一个‘s’必须被移除,并且‘m’必须被改变为‘l’。因此,“result”距“ressumt”的编辑距离为2。
一种确定输入字和目标字之间的编辑距离的普通技术使用矩阵作为工具。(见图3)。该方法比较输入字中的字符与目标字中的字符,并且在矩阵的最右下要素处给出字之间的总的编辑距离。计算的细节是复杂的,但是大体上编辑距离(由对角要素中的数字代表)在字的部分开始看上去不相似时增加(并且更小的值意指更相似)。从左上部至右下部跨越矩阵工作,如果目标字中的字符与输入字中的字符是相同的,那么编辑距离不增加。如果目标字中的字符不是相同的,那么编辑距离根据标准规则增加。最终结果,即,总的编辑距离是最右下要素(粗体轮廓)。
这个构思现在被扩展到模糊输入(ambiguous input),其中每个输入相应于一组字符而不是单个字符。这的一个实例是移动电话上的文本录入***,其允许用户按下相应于用户想要输入的字符的键,***解析在键具有与它们相关联的多个字符的事实中固有的模糊性。新的术语“集合-编辑距离”是指编辑距离构思到歧义输入的扩展。为了说明集合-编辑距离,假定移动电话文本录入***的用户按下键(7、3、7、7、8、6、8),同时试图录入字‘result’。在该模糊***上的拼写校正寻找具有距输入键序列的最小集合-编辑距离的字。该技术相似于编辑距离的技术,但是不是比较目标字中的字符与输入序列中的字符,目标字中的字符对照由输入键代表的字符的集合被比较。如果目标字符在输入集合中,那么集合-编辑距离不增加。如果目标字符不在输入集合中,那么集合-编辑距离根据标准规则增加。相应于集合-编辑距离的矩阵在图4中示出,结果在最右下要素(粗体轮廓)中。
图4中的实施例使用移动电话上的键输入来说明集合-编辑距离的概念,但是这种构思也适用于其他的模糊***,例如在QWERTY键盘上的被按下的键的字符的集合,或从字符识别引擎返回的字符的集合。此外,上文的实施例假设集合中的字符都具有相等的可能性,但是***可以被扩展以在最后的集合-编辑距离分数中纳入字符概率。
在这样的扩展的***中,输入序列可以被表示为一个或多个字符+概率对的阵列。概率反映了***所识别的字符是用户预期的字符的可能性。如在Robinson等人的“Handwriting And Voice Input With AutomaticCorrection”(USPN7,319,957(2008年1月15日))和Robinson等人的“Handwriting And Voice Input With Automatic Correction”(美国专利申请序列号11/043,525(于2005年1月25日提交))中描述的,其中每个申请通过对其的引用被全部并入。概率可以基于下列项中的一个或多个:
·从指示笔或手指点击位置至在触摸屏上显示的键盘上的每个毗邻的字母的中心的笛卡儿距离、毗邻的字母的频率、和/或在每个字母周围的点击的分布;
·在操纵杆倾斜方向至字母表的邻近字母的所分配的扇形区之间的径向距离;
·手写的字母和一组可能的字母形状/模板之间的相似度,例如“墨水迹”看上去最相似于字母‘c’(60%概率),但是也可以是其他的字母,例如‘o’(20%)、‘e’(10%)、‘a’(10%);以及
·字母/字素被表示在语音识别前端所处理的音素或全字发声中的概率。
因此,集合-编辑距离是应用于模糊集合的标准编辑距离,其中惩罚被分配给所录入的字和目标词汇表字之间的每个差异。不是问“本字母是不同的吗?”,问“本字母是概率集合中的可能的候选者中的一个吗?”的问题。
因此,一个实施方案应用以下的算法:
·如果有导致匹配的两个可能的转换,那么选择具有最低的编辑距离的转换。
·如果字母在输入的概率集合中,那么还计算该字母的区域性校正概率分数。
·累计对于该字中的所有字母的所有区域性校正概率分数以计算拼写校正点击频率。
·对于零集合-编辑距离字,即,相同的字长度和词汇表字中的每个字母都在输入的概率集合中存在,仅点击频率被使用。
多个值被计算或累计,用于匹配步骤和字列表排序步骤:
1.集合-编辑距离;
2.比较的点击频率;
3.词干编辑距离;
4.字频率;以及
5.源,例如字典。
字或词干的点击频率(TF)可以被计算为:
TF=字母1的概率*字母2的概率*……(1)
这相似于标准概率集合自动校正计算,但是其中编辑距离算法产生可选形式,然后这些可选形式中的最大计算出的频率被选择。
图4中的实施例使用在基于集合的输入序列和整个目标字之间的比较。这种构思也可以应用于比较输入的集合与目标字的开始(词干)。这允许***在用户已经录入整个输入序列之前开始预测拼写校正。这被称为词干集合-编辑距离。图5A-5B示出了部分输入序列。在这些图中,字母‘a’和‘s’可以是基于触摸屏QWERTY键盘上的物理接近度的同一个集合的成员,而‘s’和‘g’不是。因为在目标字的第三位置中的字母‘s’在图5A中的第三输入的集合中,所以输入和目标字之间的词干集合-编辑距离是零。因为第三字母‘s’不在图5B中的第三输入的同一个集合中,所以输入和目标字之间的词干集合-编辑距离是一。
词干编辑距离是与明确地录入的或最可能的字符相比于较长的目标字的相应字母而言的编辑距离值(通常是来自每个输入概率集合的精确点击值)。在这种情况下,来自对于触摸屏QWERTY键盘的每个输入的最可能的字符是精确点击字母。因为目标字的第三位置中的字母‘s’不与图5A中的第三输入的精确点击值相同,所以输入和目标字之间的词干编辑距离是一。相似地,在图5B中输入和目标字之间的词干编辑距离也是一。
词干集合-编辑距离的集合也可以是语言特定的。例如,以法语的字符的有重音的变体可以是同一个集合的成员。图5C示出了实施例,其中‘e’的变体映射到同一个键,导致输入和目标字之间的词干集合-编辑距离为零。
本发明的实施方案还提供用于调节选择列表中的字的排序以反映用户的意图或录入风格的多种新颖的策略。例如,结果可以以两个方式中的一个被偏置:
·全字优先级-对于例如拥挤的或具有低触觉反馈的差的键盘和/或快速的或马虎的打字者,结果强调所有输入的区域性,即,接近遗漏(near-miss)的校正以及更少的字补全;以及
·所提示的补全–对于良好的/精确的键盘和/或可能正在寻求补全以提高吞吐量的慢的小心的打字者,结果强调迄今为止基于精确点击输入序列的字补全。
·本发明的实施方案提供打字校正和拼写检查特征,其允许***例如合并上文描述的“Sloppy Type”技术的***对于所有的打字者是更有用的,特别是在非台式装置上。“Sloppy Type”***提供使用字水平歧义消除来自动地校正用户键击打录入中的不精确性的增强的文本录入***。特别地,“Sloppy Type”***提供包括下列项的文本录入***:(a)用户输入装置,其包括触敏表面,触敏表面包括自动校正键盘区,自动校正键盘区包括字母表的多个字符,其中多个字符中的每个相应于具有在自动校正键盘区中的已知坐标的位置,其中每当用户在自动校正键盘区内接触用户输入装置时,与用户接触相关联的位置被确定并且所确定的接触位置被加到接触位置的当前输入序列;(b)存储器,其包含多个对象,其中每个对象是形成字或字的一部分的一个或多个字符的字符串,其中每个对象进一步与使用频率相关联;(c)输出装置,其具有文本显示区域;以及(d)处理器,其耦合于用户输入装置、存储器和输出装置,所述处理器包括:(i)距离值计算部件,其对于接触的输入序列中的每个所确定的接触位置计算在接触位置和相应于自动校正键盘区内的一个或多个字符的已知坐标位置之间的距离值的集合;(ii)字评估部件,其对于每个所生成的输入序列识别存储器中的一个或多个候选对象,并且对于一个或多个被识别的候选对象中的每个通过基于计算出的距离值和与对象相关联的使用频率计算匹配度量来评估每个被识别的候选对象,并且基于计算出的匹配度量值将所评估的候选对象分等级;以及(iii)选择部件,其用于(a)根据它们的所评估的等级识别一个或多个候选对象,(b)将被识别的对象显现给用户,使用户能够选择所显现的对象中的一个以用于输出到输出装置上的文本显示区域。
优化
在理论上,当给出足够大的编辑距离分数时,词汇表中的任何字都可以被认为是校正。然而,数据库处理必须在用户正在打字时实时地发生,并且有对可用处理能力和工作存储器的限制,尤其是对于移动装置。因此,重要的是优化组合的编辑距离算法的所有部分以及当可能时消除处理步骤。例如,用于丢弃可能的字匹配的第一水平准则是对于每三个实际的输入仅允许一次编辑/校正,对照任何一个被比较的字,允许最多三次编辑。
其他的性能增强可以包括例如(不限于):
·用于最小化编辑距离计算的策略,例如首先通过可能允许比较被完全拒绝的计算单元。
·***从之前的通过的结果开始,例如当用户输入另一个字母时;或暂时地削减之前的字列表,例如示出缩短的、部分的或甚至模糊的选择列表,直到用户暂停录入。
·过滤的水平例如最严格到最不严格在编辑距离矩阵计算完成之前、期间或之后被应用,例如:
·第一字母精确,否则撤回不予考虑的目标字;
·第一字母接近遗漏的,区域性的,在概率集合中;
·词汇表字的第一个字母必须匹配前两个输入中的一个,例如允许一次添加、一次去掉或一个调换的对;
·词汇表字的第一个字母必须在前两个输入中的一个的概率集合中;
·其他的过滤概念和变化形式可以被应用;以及
·没有过滤。
字频率可以基于Zipf定律被近似化,Zipf定律规定自然语言发声的给定的一些语料库、任何字的频率与其在频率表格中的等级成反比。因此,最频繁的字发生的频率是第二最频繁的字的约二倍,第二最频繁的字发生的频率是第四最频繁的字的二倍,等等。在一个实施方案中,使用近似化,而不是对词汇表数据库中的每个字存储的值:
Fn=F1/n(第n个字的频率是第1个字的频率除以字位置)(2)
其他可调节的配置参数可以包括:
·对接近遗漏部分的字补全的数量;
·拼写校正的数量;以及
·拼写校正模式,标准编辑距离或集合-编辑距离(有或没有字母概率)。
拼写校正性能
在大的字列表上的拼写校正是非常CPU密集的任务,并且当存储器被限制时甚至更是如此。因此,为了达到可接受的性能,整个***必须基于所选择的拼写校正特征来优化。所得到的***因此从特征角度来看变得非常不灵活。在不使用特定的优化的情况下,性能可以更差一个或两个数量级。
拼写校正性能主要取决于下列项:
·拼写校正特性,例如允许的编辑、模式和过滤
·“模糊比较”功能(其决定字是否匹配输入)
·低水平LDB搜索功能
·LDB格式(结构和行为)
·LDB中的字的数量和它们的长度分布
·KDB对于LDB来说多么模糊
这些要素中的每个在以下的章节中被更详细地描述。
拼写校正特性
允许的编辑
允许的编辑的数量是非常重要的性能因素。编辑越多,在比较中的模糊性就越多,并且因此非常多的字匹配并且进入选择列表中用于优先化。如果比较是过于宽松的,那么效果是过于多的不想要的字进入列表中。
在一个优选的实施方案中,允许的编辑的数量与输入长度有关,并且对于每三个输入允许一次编辑,且最多允许三次编辑。每三次输入一次编辑的这个参数贯穿下面的实施例被假设。
模式和过滤
模式和过滤用于控制结果集合以及性能。模式的两个实例是精确输入和区域性的。在触摸屏软键盘上,例如,用户可以精确地点击期望的字母以及指示字母的大致区。在精确输入模式中,仅来自每个用户输入的精确点击字母被考虑。在区域性的模式中,每个用户输入所指示的邻近字母中的一些或全部被考虑。
对照精确输入的拼写校正减少模糊性并且使候选者看上去更像所录入的内容(即使所录入的内容是不正确的)。它对于以精确点击值为特征的KDB是有效的,例如触摸屏软键盘。十二键***(对于标准的电话小键盘)可能没有可用的精确点击值;每个键按压可以由键的数字而不是字母中的一个表示,并且没有办法来凭直觉知道每个键上的一个字母比其他字母更有可能是预期的字母。
对于十二键***来说不幸的是,KDB表现为宽松的区域性模式布局,即,每个输入产生每集合至少3个字母,当有重音的元音被包括时经常有多得多的字母,同时没有可以用于精确输入模式和过滤的精确点击值。
过滤是一种筛选功能,如果候选字不满足已建立的最小的准则,则其结束对该候选字的进一步的考虑。例如,一/二次过滤主要用于性能提高,使字中的第一字符更强地与第一或第二输入相关并且拒绝任何不符合的候选字。
“模糊比较”功能
模糊比较功能允许在输入和正在被比较的字之间的某个差异,即编辑距离。构思是计算编辑距离并且然后基于该值使字通过或拒绝该字。
计算精确的编辑距离关于性能是昂贵的。一种对此的解决方案是在真实的计算之前安排筛选机制。在合理范围内“欠”拒绝是可接受的,但是“过”拒绝(over rejection)应当被避免,如果根本可能的话。在真实距离计算之后,由于“欠拒绝”(under rejection),通过筛选的字稍后被取出。
快速的筛选对于保持对每个键按压的可接受的性能是关键的。潜在地,大量字可以进来用于筛选并且在正常情况下仅一部分通过。因此,为了良好的性能,在筛选之前的每件事必须也是非常有效的。在筛选之后完成的事情是关于性能较不重要的,但是仍然有相当大量的数据到来,尤其是对于某些输入组合,其中数千个字使它一直进入选择列表***功能中。
在一个或多个实施方案中,拼写校正与区域性自动校正的概率集合比较逻辑一同起作用。有的字,被集合比较接受,但基于拼写校正计算,不被接受。这是对于当拼写校正在精确输入模式中建立时或当使用精确的过滤时区域性输入的情况。字补全也是对于经典比较更简单的,同时在拼写校正中花费编辑。
在优选的实施方案中,模糊比较步骤是:
1.针对过于短的字的筛选
2.针对基于集合的匹配的筛选
3.计算词干编辑距离
4.针对一/二的筛选
5.针对集合-编辑距离的筛选
6.针对位置锁定的字符的筛选
7.计算集合-编辑距离和频率
8.计算词干编辑距离
这些步骤在图6中被示为流程图,代表了图1中的计算130的一个实现。
在进一步的拼写校正计算之前,针对经典比较的筛选以及处理字补全等被安排在步骤2。这从后续的代码取出所有的“经典”复杂性。它还意味着当拼写校正被切断时,所有其他的计算都可以被跳过。
算法被描绘为使两个字对照彼此比较。在大多数的实施方案中,这被归纳,使得一个字相应于输入符号。在下文参照的图中的范例性的矩阵中,输入序列被竖直地示出。因此,不是每个输入字位置如同标准编辑距离一样是单个字符,它实际上是相应于模糊的或区域性的输入的字符的集合。比较产生匹配,如果集合中的任一字符是匹配的话。
1.针对过于短的字的筛选
如果字甚至对于拼写校正也太短,即,比输入长度减去可用的编辑距离短,那么它可以立即被拒绝。
2.针对基于集合的匹配的筛选
这是在输入序列上的迭代,验证了每个位置是与所比较的字中的相应位置的匹配;即,候选字中的每个字母必须在每个输入集合中存在。
如果有不匹配并且字对于拼写校正过于长,即,如果它比输入长度加上可用的编辑距离长,那么它可以立即被拒绝。
3.计算词干编辑距离
这是在输入序列中的所有的符号上的迭代,并且仅在有基于集合的匹配时被执行。与精确点击值的每个差异都增加词干距离;例如,候选字“tomorrow”可能具有对于“tom”的精确点击输入的0的词干距离和对于“tpm”的1的词干距离。字点击频率也在迭代期间被计算。
如果它是有效的经典匹配,那么候选字的“模糊比较”在该点完成。候选字被***选择列表中。
4.针对一/二的筛选
这是快速的检查,以察看是否字中的第一字符匹配前一或两个输入符号。如果不是,那么字被拒绝。
5.针对集合-编辑距离的筛选
在概念上,这是非常简单的任务,因为增强编辑距离遵循使用***、删除和替换以及调换(最后一个通常被包括以用于文本录入校正)的传统定义。虽然以高效的方式完成它是更困难的。
计算编辑距离的传统方式是使用矩阵。一个实例在图7中示出。所有的边缘(灰色数字)被预定义并且是始终相同的。其余部分通过从左至右以及从顶部至底部横越来计算,首先按列来进行。每个单独的位置通过取相应于***、删除、替换和调换的值中的最小值来计算。替换和调换值关于是否有对那些位置的匹配而被调节。所得到的编辑距离在右下角被找到,在这种情况下是“2”。
为了找到基于正在被计算的单元的值,即,在图8中用‘X’标记的单元:用于取得替换(‘S’)单元的成本是零或一,取决于是否有匹配。调换(‘T’)单元仅在两个字符,即,当前的字符和前一字符匹配时可以被取得,并且然后成本是一。***(‘I’)和删除(‘D’)也是每个为一的成本。因此,单元的成本是该单元的已经计算出的成本加上刚才提到的另外的成本。
这是计算距离——特别是使用长字——的在计算上非常昂贵的方式。在一个实施方案中,最大可允许的编辑距离被设置并且使得字中的1%或更少通过该限制。如果允许的距离太高,那么整个字列表可能使它进入选择列表中并且拼写校正的整个构思丧失。因此,最初,精确的距离没有意义;而是仅仅结果是否低于或高于拒绝限制。对于通过该测试的那些很少的字,更多的工作量可以然后被花费在计算精确的距离、频率等上。
筛选步骤的目标是尽可能快地证明所得到的距离高于拒绝限制。
考虑当所比较的字除了长度以外匹配时的情况,如图9中示出的。单元中的任何一个具有更低的值是不可能的。比较长度6和长度9字导致3的编辑距离,如所预期的。
这个初始矩阵可以在计算任何两个字时被使用。只有在实际上被选择用于比较的单元中的值需要随着处理而更新。目标成为将右下单元推在其拒绝限制之上。为了这么做,必须证明它依赖以得到该值的单元中的任何一个实际上具有更高的值,递归地依此类推。
对于本实施例,在长度差3和第一字符不匹配(在图10A中将第一‘x’改变为‘y’)的情况下,拒绝可以通过仅计算四个单元来证明;有关的单元更新的其余部分是隐含的。图10B中的迭代示出了被再计算的单元(粗体轮廓)以及在每次迭代时对其他相关单元的影响。
结果是,中心对角线以及朝着具有结果值的对角线的那些对角线得到增加的值。这在每当支持另一个单元中的最低值的最后一个单元被增加时发生,作为完成的比较失配的结果。
所示出的矩阵仅描述当有字长度差时发生什么。如果长度差是零,那么中心对角线成为主要的对角线,并且支持,即,高到足以影响计算的单元值必须来自结果对角线的两侧以证明拒绝。
计算中的对角线使数据访问型式更难以优化(访问相应于位置的实际的存储器)。在旋转/转换矩阵空间中的操作是进一步的优化;见图11。在中心对角线中的单元(粗体轮廓)成为单行。新的“9”(以灰色示出)被添加以支持边缘单元的默认值,即,足够大的值,如果被参考,该值立即超过最大可能的编辑距离。在该转换空间中,单元计算关系改变,如图12中示出的。
6.针对位置锁定的字符的筛选
因为完全的经典比较不对拼写校正候选者执行,所以仍然需要验证具有锁定位置,即,不被允许移动或改变值的输入符号。这仅仅是在具有锁定位置的输入符号上的迭代,检查它们匹配情况。如果不是,那么字被拒绝。
7.计算集合-编辑距离和频率
针对编辑距离筛选的算法可以被修改以计算编辑距离以及其他量,例如字频率。然而,它不应当合并到筛选代码中。该代码必须被保持为分离的并且被优化以用于纯的筛选。一个不同的版本被应用于通过筛选的字,该筛选是更彻底的,因为它必须评估不同的单元并且选取对于低距离和高频率的最好的选择。它还必须处理事物,例如可能的锁定符号值(仅仅值,不是位置)。
如果集合-编辑距离值超过某个阈值,那么候选者被拒绝。
8.计算词干编辑距离
由于两个原因,这也是筛选算法的修改的副本:
首先,词干距离可以是非常不同的,因为它始终基于精确的匹配。因此,值可以变得比例如预期的最大值更高。高于最大值的距离值可能由于算法优化而不是完全精确的,但是它仍然是足够良好的。
第二,词干距离也是不同的,因为它可能不考虑候选字的全长。为了与未正确拼写的字兼容,词干距离计算将在输入的长度处停止。一些另外的检查在末端单元周围被需要,以得到最小值,取决于***和删除。
低水平LDB搜索功能
模糊比较功能可能在筛选和计算中变得非常有效,但是仅仅这对于良好的性能不是足够的,特别是在嵌入式平台上。根据输入,词汇表中的几乎所有的字都可以是潜在的拼写校正候选者。在大多数语言中,当每三次输入允许一次编辑时,这通常在录入第9和第10个输入时发生。
在输入长度9处,具有长度6-12的所有字都是潜在的拼写校正候选者,并且比12长的所有字的都是潜在的完整性候选者。例如,在输入长度9处,芬兰语词汇表的超过70%可以被考虑用于基于拼写校正的比较并且另外的20%可以被考虑用于基于字补全的比较。这产生了显著的效率问题,因为拼写校正要求最多的计算工作量。以下的策略寻求通过合并早些时候描述的筛选功能中的一个或多个来增加数据库检索过程的效率。
对无拼写校正的搜索策略
如在Unruh、Erland,Kay、David Jon的“Efficient Storage and Search OfWord Lists and Other Text”(美国专利申请序列号11/379,354(于2006年4月19日提交))中描述的词汇表数据库的优选的实施方案被设计和优化以用于在没有拼写校正的情况下搜索字,该专利通过引用被并入。整个输入长度被直接地映射到间隔流,并且最稀少的流被首先访问以帮助在字列表中快速跳跃。一旦有匹配,补全字符就可以从未映射到输入的流拾取。
使用该策略,过于短的字被自动地跳过,因为它们不具有匹配相应输入的字符。
对拼写校正的搜索策略
使用拼写校正,取决于输入长度,LDB中的字落入三个类别中。这些是:
·过于短的字
·可以变成补全的长字
·可适用于拼写校正的字(与输入长度的某个长度差)
这些类别中的每个在以下的章节中被描述。
过于短的字
这些可以通过检查相应于最短允许的字中的最后一个字符的间隔流被容易跳过;例如,如果最小长度是6,那么第6间隔流必须不是空的(具有结尾的零);如果是空的,那么可能直接地跳跃到间隔的末尾。
长的字
就像特殊的间隔流可以用于检查过于短的字一样,另一个流可以用于检查长的字。例如,如果最大长度是12,那么第13个流决定字是否是长的。
长的字可以以与好像拼写校正被切断确切地相同的方式被处理。被映射到输入的流可以用于跳跃并且补全部分从流的其余部分被拾取。
拼写校正字
与可以被有效地搜索的以前的两种类别不同,落入本类别中的所有字基本上必须被发送以用于编辑距离计算。这在性能方面是不可行的,虽然在LDB搜索水平需要筛选功能。只要它提供性能的增加,这种筛选就可以是相当的欠拒绝。
一个复杂因素是,拼写校正模式和过滤可能以精确的模式操作,而输入仍然是基于集合的,并且因此非拼写校正候选者可能是基于集合的匹配,而拼写校正候选者不能够使用基于集合的信息。后果是,任何筛选过程必须也忠实于基于集合的比较逻辑。
优选的实施方案的LDB检索筛选功能的一个方面在图13中示出。使用基于集合的比较逻辑,目标字不匹配输入序列,因为4GHI键在其集合中不包括“d”。但是集合-编辑距离比较逻辑允许任何输入被***、删除或调换。因此,由每个输入代表的集合扩展至包括毗邻的键的集合的并集。被包括的毗邻的键的数量取决于约束参数,例如允许的编辑的数量。
来自模糊比较功能的很多筛选功能可以被调整并且合并到数据库检索过程中,如在下文的段落中描述的。
过滤一/二
过滤一和二可以用于跳跃。如果间隔流零(字中的第一字符)不匹配相应的输入(第一或第二输入,取决于过滤),那么跳跃可以发生。
如果过滤设置(精确输入或区域性的)不匹配基于集合的比较逻辑,那么它一定伴随有失败的流。所得到的跳跃被限制于二者中的较短者(在两个流中的一个中的最近端)。这种过滤仅适用于拼写校正候选者。
基于输入的筛选
即使可用的编辑可以产生看上去与输入非常不同的字匹配,但是仍然有对可以匹配的内容的限制。有限数量的可用编辑意味着,如果***和删除可以被应用的话,仅有限数量的***和删除可以被应用,并且因此对于在字中的字符可以距与输入有关的流多远时仍然算作是匹配有限制。
这种筛选可以独立于过滤而被应用,但是过滤可以以高效的方式成为筛选的一部分。筛选必须是非常快速的,所以复杂性必须被保持为低的。
为了拒绝字,比编辑的可用数量多一个的遗漏被需要。例如,对于编辑距离3,4个遗漏必须被找到。如果有9个输入并且被比较的字具有长度6,那么比较高至长度9,因为位置7、8和9具有零作为终结代码并且始终不能够与任何输入并集比较。如果字比输入长,那么比较高至字的长度。
与长度无关的筛选
对当字长度不是预定的时筛选的一种解决方案是建立第二构造的输入,其可以用于筛选匹配。它以使得每个位置成为周围的原始位置的并集的方式被构造。
对于输入长度9,并集映射看上去像图14中示出的并集映射。每个“Ixx”行是在输入中的一个位置。每个列是在正在被比较的字中的一个位置。例如,字中的第四字符可能匹配前7个输入中的任何一个并且将不作为已使用的编辑来计数。虽然第12个字符可以仅匹配第9个输入,所以那是非常有限的。
如果字中的任何字符不能够匹配并集,那么它算作遗漏,并且因此要求潜在的编辑。在有足够的遗漏的情况下,字可以通过这种筛选被丢弃。
如果字比输入短,那么这个差异可以立即从可用的编辑减去,并且比较仅需要检查可用的位置。因此,如果长度差与可用编辑的数量是相同的,那么仅一个位置必须不能够拒绝字。
相同的限制在此适用,如同它适用于过滤一样。如果有精确/区域性意义,那么拒绝一定伴随有失败的基于集合的间隔流。
最长的可能跳跃是失败的间隔流的最近端,无论是基于并集的还是基于集合的。
因为有对失败的基于集合的流存在以能够作出跳跃的要求,所以不需要进一步限制关于字长度类别的改变的跳跃。
与长度相关的筛选
在与长度相关的筛选的优选实施方案中,计算被比较的字的长度可以将并集限制于对于该长度适用的并集。例如,对于长度6和输入长度9,并集映射看上去像图15的并集映射。
这以更有限的并集为特征,但是有找到字长度以选择并集的增加的成本。它还将可能的跳跃长度限制在字的具有相同的长度的块内,长度一改变,并集也改变。因此,还要求最小化在整个LDB中字长度改变的数量。
除了有长度相关的模式以外,独立的筛选的描述在此也适用。
选择列表排序策略和算法
组合的算法的结果是用于选择的字选项的列表,其以最可能的顺序包括1,——用户已经键入的字,如果输入序列是完整的,或2——用户已经开始键入的字,如果输入序列代表字或短语的词干。
字列表排序顺序可以基于区域性的概率、编辑距离、字近度/频率(如被存储在每个数据库中的)、字长度和/或词干编辑距离的因素。字列表排序还可以取决于两个或更多个不同的列表配置概要或策略中的哪一个正在被使用。例如:
全字优先级
1.全字始终在字补全之前出现;
2.源字典,例如主词汇表、上下文的、用户定义的、根据近度排序的、插件、宏置换;
3.编辑距离,例如较小的值在较大的值之前;
4.词干编辑距离,例如首先是较小的;并且仅当编辑距离>0时并且对于这两个字选择是相同的;
5.频率,例如首先是最大的;点击频率×字频率。
注意,评估的顺序如上,例如准则3仅在准则2对于被比较的条目是相同的时被考虑。由于此,例如,对定制用户字的拼写校正可以在对于标准词汇表字的区域性校正之前出现。
所提示的字补全
1.词干编辑距离;
2.字补全与否;
3.源;
4.编辑距离;
5.频率。
因为词干编辑距离是第一准则,补全是第二准则,等等,所以字列表有效地被分割为:
具有0遗漏的全字,精确点击输入序列与该字是相同的
具有0遗漏词干的补全
具有1个接近遗漏的全字
具有1个接近遗漏词干的补全
***可以允许指定基本的策略。除了被记录在源数据库中的频率/近度信息之外,它还可以基于字选择的被识别的型式自动地调整排序。例如,***可以检测到在大多数时间用户选择字补全(其第一字母迄今为止精确地匹配输入),并且所以可以将字列表排序朝“所提示的补全”配置概要偏置。
图16示出了在本发明的一个实施方案的操作期间的范例性的用户界面;在这种情况下,示出了具有区域性自动校正的集合-编辑距离拼写校正。在本实施方案中在移动装置上,候选字在每次用户输入时出现在屏幕的底部。在左边以斜体字示出的字符串是精确点击字母序列,其对于本装置是在其QWERTY拇指板上被按下的每个键。箭头指示默认的(最高等级的)字选择。第二屏幕示出在键“b”和“o”已经被按下之后提供的三个字补全。第三屏幕示出“bowl”作为候选者,如果字母“w”在中间被***(1的标准编辑距离)并且“l”在键盘上毗邻于“k”(使用区域性自动校正),那么“bowl”是与输入序列“bok”的接近匹配。第五屏幕示出“going”作为默认字选择,因为“g”和“i”每个毗邻于“b”和“k”的输入;被示为第二字选择的是“being”,其用“e”替换“o”(1的编辑距离)。本实施方案的校正参数惩罚小于编辑距离差异的区域性自动校正差异。
其他的特征和应用
自动替换,例如宏:区域性的和拼写校正可以都应用于快捷方式,虽然字补全可以应用于扩展的文本。因此,如果输入序列近似地匹配快捷方式和扩展文本的词干,那么宏的等级可以被增加。宏可以是预定义或是用户可定义的。
用于广告目的的关键字标记可以受益于自动替换和/或拼写校正。例如,如果移动消息中的字是文本俚语或被错误拼写的,那么本发明的实施方案可以仍然找到有效发起的关键字。
本发明的一个实施方案可以应用于整个消息缓冲,即批量模式,无论其文本最初例如通过多次点击被含糊不清地或明确地录入,还是作为来自另一个装置的消息或文件被接收。
如果输入方法允许自动扩展字选择,正确拼写的字选择可以成为对另外的输入、字补全等的基础,包括具有标点的已建立的规则等。在一个实施方案中,层叠菜单弹出,对于所选择的字或词干有字补全的列表。
本发明的实施方案还可以应用于模糊的录入以用于搜索和发现。例如,如果用户的输入序列不被移动装置的内容或基于服务器的搜索引擎的内容接近地匹配,那么导致匹配的一个或多个校正的拼写的解释可以被提供。
虽然上文的实施例以基于拉丁语的语言示出了本发明的实施方案的使用,但是其他的实施方案可以处理其他的字母表或手写体的特定需要。
对描迹输入的应用
介绍
作为对于上文提出的公开的增强,本文提出的硬件、软件、固件、电路和其他的特征可以被配置成采用“描迹”技术。使用描迹技术,用户描迹经过(或接近地经过)输入字中的期望字符的单个连续的路径,并且***200的预测技术估计出什么字正在被录入并且将它显示在屏幕203上。如果有多个字可以从描迹的路径预测出,那么***200提供选项的列表。
描迹技术在公布物例如被转让给Nuance Corporation或其子公司的下列专利文献被进一步解释:(1)美国专利号7,175,438,名称是“FASTTYPING SYSTEM AND METHOD”,于2007年2月13日以Levy的名义被发布;(2)美国专利号7,251,367,名称是“SYSTEM AND METHOD FORRECOGNIZING WORD PATTERNS BASED ON A VIRTUAL KEYBOARDLAYOUT”,于2007年7月31日以Zhai的名义被发布;(3)美国专利号7,487,461,名称是“SYSTEM AND METHOD FOR ISSUING COMMANDSBASED ON PEN MOTIONS ON A GRAPHICAL KEYBOARD”,于2009年2月3日以Zhai等人的名义被发布;(4)美国专利号7,706,616,名称是“SYSTEM AND METHOD FOR RECOGNIZING WORD PATTERNS IN AVERY LARGE VOCABULARY BASED ON A VIRTUAL KEYBOARDLAYOUT”,于2010年4月27日以Kristensson等人的名义被发布;(5)美国公布号2008/0270896,名称是“SYSTEM AND METHOD FORPREVIEW AND SELECTION OF WORDS”,于2008年10月30日以Kristensson的名义被公布;(6)美国公布号2007/0094024,名称是“SYSTEMAND METHOD FOR IMPROVING TEXT INPUT ON ASHORTHAND-ON-KEYBOARD INTERFACE”,于2007年4月26日以Kristensson等人的名义被公布。每个前述文件的全部特此通过引用被并入本文。
图17是软键盘1700的部分屏幕截图。描迹的型式1706示出了字“pretty”的用户的录入,包括以字母P-R-E-T-T-Y为顺序的轨迹。描迹的型式还可以被称为描迹路径或轨迹,而没有任何预期的限制。在操作中,键盘1700显示轨迹1706的一些或全部以示出反馈。轨迹1706跟随用户的手指或指示笔。在本实施例中,当用户抬起手指或指示笔时轨迹消失或逐渐消失。在一个实施例中,轨迹1706的所显示的部分的长度可以根据用户的手指或指示笔的运动的速度而变化。在一个不同的实施方案中,键盘1700不显示轨迹1706。在顶部区1702中,键盘1700显示匹配用户的轨迹1706的一些潜在的字,包括PRETTY、PERRY、PETTY和PREY。
为了使用具有拼写校正技术的描迹技术,例如上文描述的那些技术,根据在下文概述的实施方案,多种改变或添加可以被采用。
操作序列
图24显示用于解析用户的轨迹输入的操作序列。以图2的实施例继续,在本实施例中采用的显示器203包括触敏显示器,所以输入装置202包括可以被视为被与显示器203集成的部件。当然,在设备200中可以有另外的输入装置,然而用于本序列2400的目的的相关的输入装置是集成的触敏显示器。为了本实施例的目的,词汇表模块213包括具有多个条目的至少一个词汇表数据库。词汇表模块213可以被称为字典或词汇表。
进一步以图2的实施例继续,操作2400在本实施例中被CPU201执行。在步骤2402中,CPU201将软键盘显示在触敏显示器203上。软键盘包含一个或多个字符。为了例证的目的,QWERTY键盘被讨论,如键盘1700所例示的。
在步骤2404中,设备200经由触敏显示表面接收用户的轨迹。轨迹包括接触多个被显示的键的单个连续轨迹。被接触的键包括轨迹开始的开始键,以及轨迹停止的结束键,以及在开始键和结束键之间的各种键。为了例证的容易,本实施例使用“pretty”的轨迹,如图17中示出的。在一个实施例中,CPU201存储描迹的路径的坐标或其他的机器可读表示。
基于在步骤2404中被接收的轨迹,步骤2406建立输入序列。输入序列包括如上文描述的被接触的键。输入序列还包括不被轨迹实际上接触但是紧邻轨迹的各种其他的“辅助”键。
步骤2406可以使用一个或多个不同的准则来识别辅助键。例如,如图25中示出的,当轨迹接触键时,在被接触的键的规定半径内的所有键可以被认为是辅助键,其是输入序列的一部分。在图26中示出的不同的方法下,当轨迹接触给定的键时,在以给定的键为中心的规定的矩形“触摸区域”内的所有键被认为是辅助键,并且因此是输入序列的一部分。根据触摸区域的尺寸,这个准则可能在严密地定义辅助键时是有用的。工作触摸区域的一个实例是二倍于代表性软键的尺寸的区域。在图26的实施例中,被接触的“G”键的辅助键包括邻居T、Y、F、H、C和B。
识别辅助键的准则的一个另外的实施例是沿着轨迹的轨线的椭圆形。这给出对于水平下冲误差和过冲误差的额外的考虑,并且最小化轨迹中的竖直误差。因此,这种方法因此对沿着轨迹运动的方向的键有优先。
可选地,步骤2406可以扩展输入序列以包括输入序列中的键的变体。例如,具有重音、元音变化、印刷上的改变以及相应于外国语和字母表的变化的变体可以被考虑。图23代表相应于轨迹1706的输入序列的列表以及输入序列的相应键的概率。
步骤2406定义“主要”键的集合以包括(1)开始键和其辅助键,(2)结束键和其辅助键,以及(3)预定的最小方向改变发生的任何键以及该键的辅助键。在这些主要键之间的被接触的键(和它们的辅助键)被称为“居间”键。输入序列中的不是“主要的”键被称为“次要的”或“可选的”键。因此,次要键包括居间键和它们的辅助键。
在图17的实施例中,轨迹接触P、O、I、U、Y、T、R、E、R、T和Y。在此,步骤2406定义以下的键:(1)主要键,其包括开始键P,具有辅助键O,(2)次要键,其包括由于轨迹的速度或方向而没有辅助键的居间键O、I、U、Y、T、R,(3)主要键,其包括具有辅助键W和R的方向改变键E,(4)次要键,其包括由于轨迹的速度或方向而没有辅助键的居间键R和T,以及(5)主要键,其包括结束键Y和其辅助键T和U。
在步骤2406之后,输入序列被定义。在步骤2408中,CPU201比较来自步骤2406的输入序列与来自词汇表213的一些或全部条目,每次一个。在任何时间正在考虑中的词汇表条目被称为“当前的”条目。
与词汇表213中的所有条目比较可能太多地消耗或消费处理资源,所以各种技术可以用于将比较仅限制于某些词汇表条目。例如,步骤2408可以将比较限制于词汇表213中的具有最高的使用频率的条目。可选地,步骤2408中限制这样的比较的决定可以被实时地作出,例如当在CPU201上有给定的工作负荷时,或当步骤2408的处理达到规定的水平、继续一段规定的持续时间或执行给定的数量的矩阵操作时。
在所示出的实施例中,步骤2408通过计算集合-编辑距离来执行在输入序列和当前的词汇表条目之间的比较,如上文描述的。结果是指示输入序列和当前的词汇表条目之间的相似度的度量。集合-编辑距离以与图4相似的方式计算,其中每个矩阵行考虑可能被用户的动作预期的多个字符。然而,在可适用于轨迹输入的本实施例中,不同的矩阵行示出如下分组在一起的不同的键:一个行是开始键和其辅助键,一个行是轨迹展示方向的显著的改变的每个键(和辅助键),一个行是每组居间键和它们的辅助键,并且以及一个行是结束键和其辅助键。
在序列2400中,集合-编辑距离的计算通过多个规则2420的应用进一步与集合-编辑距离计算的非描迹实施方案区分开。规则2421定义多组主要键。每个组被显示在矩阵1800中的不同的行上。来自每个组的至少一个键必须在集合-编辑距离计算中被考虑或有惩罚。换句话说,对不在当前的词汇表条目中表示的每个组评估惩罚。这些组包括(1)开始键和所有其辅助键,如在矩阵1800中由1802示出的,(2)结束键和所有其辅助键,如由1808示出的,(3)方向上的预定的最小改变发生的任何键以及这个键的辅助键,如由1805例示的。因此,如果当前的词汇表条目漏掉开始键和所有其辅助键,那么存在惩罚,如果当前的词汇表条目漏掉结束键和所有其辅助键,那么存在另一个惩罚,等等。
规则2422涉及次要键。对于这些键,规则2422规定如果当前的词汇表条目漏掉这些键的任何一个或全部,则没有惩罚。在集合-编辑距离计算中,本规则允许对于次要键中的每个的无成本删除。次要键由矩阵1800中的行1804和1806示出。
规则2423提出关于重复的键2423的规则。例如,规则2423可以规定如果当前的词汇表条目在一个行中使用输入序列中的任何键两次或更多次,则没有惩罚。这允许双重复字母(或三重复字母,或更多重复字母),因为用户可能难以使用轨迹表示重复的字母。因此,在集合-编辑距离计算中,本规则允许无成本添加。在描迹技术之外,本规则可以被实现以解析多种非描迹的用户输入,例如键盘、十二键小键盘和类似物。例如,在十二键小键盘的情况下,按下数字“3”键一次可以获得字“FED”,因为“3”键代表字符“3EFD”。
规则2425涉及标点、数字和符号。该规则表明,如果当前的词汇表条目包括规定的组的字符(例如标点、数字、符号、字母表外字符例如问候语/斯拉夫字母等),那么集合-编辑距离计算2408不施加任何惩罚。这些是更难以录入的字符的实例。作为对本实施方案的修改,规则2425可以规定没有对于使用规定的组的字符的惩罚,只要该组不在轨迹被作出的时间被单独地描绘。例如,如果软键盘在轨迹被作出的时间不包括标点字符的制模板的显示,那么如果当前的词汇表条目包括从输入序列缺乏的那些标点字符中的一个或多个则没有惩罚。因此,在集合-编辑距离计算中,本规则允许无成本添加。
规则2425以及规则2423具有比描迹技术宽的应用。例如,这些规则可以用于拓宽通过小键盘提交的固有地模糊的用户输入的解释,其中键同时代表多个字符。因此,在规则2425的情况下,设备将自动地向电话小键盘用户提供包括数字或标点或用户从来不录入的特殊符号的字。在规则2423的情况下,设备将自动地考虑具有重复的键的字(例如“OO”而不是“O”),或甚至正重复的同一个键的不同的字符(例如“FED”而不是“F”)。涉及解析模糊的十二键输入的一个示例性公布是以Grover等人的名义于1998年10月6发布的名称是“REDUCED KEYBOARDDISAMBIGUATING COMPUTER”的美国专利号5,818,437。前述专利的全部特此通过引用被并入本文。
图20的矩阵示出了对于候选字“pretty”的集合-编辑距离的计算。在本实施例中,所计算的集合-编辑距离是零。
对步骤2408的集合-编辑距离的计算的一个可能的改变是基于键盘几何结构的概率的考虑。即,对给定的候选字的所计算的集合-编辑距离度量可以根据用户预期候选字的字符的概率被进一步修改。例如,如果图25的方法用于识别辅助键,那么每个辅助键可以与根据方程1计算的概率相关联:
概率=1-距离/半径          [方程1]
其中:
距离等于在圆的中心的键和辅助键之间的距离;
半径是圆的半径。
在图26的另一个实施例中,每个辅助键与根据方程2计算的概率相关联:
概率=重叠/触摸区域         [方程2]
其中:
重叠是与触摸区域交叉的主题辅助键的面积。
触摸区域是触摸区域内的面积。
作为增强的或可选的方法,对给定的键的键击概率可以至少部分地基于经过给定的键的描迹路径的速度。换句话说,键击概率可以与描迹速度成反比。因此,如果用户的手指或指示笔更快地移动而经过给定的键,那么该键的键击概率更小。
不考虑哪个方法用于确定这些概率,候选字中的所有键的概率根据各种方法中的一个来考虑。在一个简化的实施方案中,候选字中的所有键的概率相乘在一起,并且集合-编辑距离除以该数字。因此,具有更多的辅助键的候选字导致扩大的集合-编辑距离。
在一个不同的实施方案中,概率被输入概率阴影矩阵中,如图22所例示的。这用作次要的考虑,例如以解析具有相同的集合-编辑距离的两个候选字之间的联系。在本实施例中,由图22的阴影矩阵计算的概率是12,642,870。输入到图22的矩阵中的概率从键击概率如上所述被实现的任何东西产生,例如图25-26的实施例。例如,这种概率计算可以使用点击频率来执行,如上文详细地讨论的。
在这方面,步骤2408可以计算各种另外的阴影矩阵,以用于在解析具有相同的集合-编辑距离的候选字之间的联系时使用。这些阴影矩阵在一个实施例中包括计算达到候选字所需要的自由增加的数量的矩阵。图19示出了该阴影矩阵的一个实施例。图19的矩阵指示三个自由增加。阴影矩阵还可以包括计算候选字的词干编辑距离的矩阵。图21是该阴影矩阵的一个实施例。在本实施例中,来自图21的词干编辑距离是零。
在一个实施方案中,步骤2408可以通过如图20所例示的计算集合-编辑距离并且然后省略一个或所有的阴影矩阵的计算(如果集合-编辑距离矩阵超过规定的阈值尺寸)来简化。这帮助步骤2408更快地完成。
在步骤2408,步骤2410取得集合-编辑距离被计算的词汇表条目,并且根据它们的集合-编辑距离度量将它们分等级。步骤2410根据给定的准则例如在显示器203上提供该最高等级候选条目的视觉输出。例如,准则可以指定最上面的十个条目、最上面的二十个条目、在显示器屏幕上适合的条目的数量、或其他的准则。
虽然例程2400描述了各种“无成本的”增加和删除,但是序列的一个实施方案仍然跟踪这些自由特征的使用。该数据可以用于各种目的,例如提供改进的置信度量,即,断开不使用任何自由增加或删除的字与使用自由增加或删除的字之间的联系。
特定实施例
为了进一步说明序列2400,给出以下的特定实施例。在步骤2402中,***200显示在图17中描绘的软键盘1700。在步骤2404中,***200接收用户的轨迹,用户的轨迹在图17中由参考数字1706示出。在步骤2406中,***定义用户的输入序列。在此,轨迹直接地接触键P、O、I、U、Y、T、R、E、R、T和Y。总的输入序列——包括这些键和它们的辅助键——包括下列项:
(1)PO:主要键,包括接触的开始键P加上辅助键O,因为它满足矩形概率方法并且满足对于沿着轨迹运动的方向的键的优先。
(2)OIUYTR:次要键,由于轨迹的速度或方向而没有辅助键的居间键O、I、U、Y、T和R。
(3)EWR:主要键,包括接触的方向改变键E加上W和R,因为它们是E的辅助键。
(4)RT:次要键,由于轨迹的速度或方向而没有辅助键的居间键R和T。
(5)YTU:主要键,包括接触的结束键Y连同T和U,因为它们是Y的辅助键。
然后,步骤2406计算步骤2406的输入序列的集合-编辑距离。在一个实施例中,步骤2406(至少部分地)使用图18的矩阵1800来执行。该矩阵采用与图4的矩阵相似的概念,但是由于轨迹的使用而具有多个新的扭曲。这些在上文被解释,并且将在下文被进一步解释。
字1810是与步骤2406中的当前输入序列比较的词汇表条目中的代表性的几个条目。如所提到的,比较可以对词汇表条目的一些或全部作出。行1802相应于PO,行1804相应于OIUYTR,行1805相应于EWR,行1806相应于RT,并且行1808相应于YTU。行1804、1806中的星号指示这些行的键是次要键。
在本实施例中,规则2420被如下应用。规则2421表明,强制的是,开始键P或其辅助键O被认为在行1802中并且结束键Y或其辅助键T或U被认为在行1808中并且方向改变键E或其辅助键W或R被认为在行1805中。次要键OIUYTR的行1804和次要键RT的行1806是次要键,在规则2422下,它们可以被忽略,而没有对集合-编辑距离的成本。规则2423规定键1802、1804、1805、1806和1808中的任何一个可以重复任何数量的次数,而没有惩罚。规则2425不适用于这个特定的实施例,因为在本实施例中候选条目1810中没有一个包括标点或特殊符号。
图28示出了图18的词汇表条目“potter”的矩阵计算集合-编辑距离。在本实施例中,候选字“pretty”胜于“potter”,因为“pretty”的集合-编辑距离是零。
如果有联系,那么步骤2408将考虑对于字“potter”的一个或多个阴影矩阵以解析该联系。在这方面,图27的矩阵示出了计算达到候选条目“potter”所需要的自由增加的数量的阴影矩阵,数量在本实施例中是三。图29示出了词干编辑距离的阴影矩阵,并且图30示出了键击概率的阴影矩阵。
其他的实施方案
虽然上文的公开示出了多个例证性的实施方案,但是对于本领域的技术人员将明显的是,对本文的各种改变和修改可以被作出,而不偏离如被所附的权利要求限定的本发明的范围。因此,所公开的实施方案代表被本发明广泛地设想的主题,并且本发明的范围完全包括可能对于本领域的技术人员变得明显的其他的实施方案,并且本发明的范围相应地仅被所附的权利要求限制。
权利要求书(按照条约第19条的修改)
1.一种文本输入设备,包括:
显示器,其包括触敏显示表面;
数字数据存储器,其包含包括多个词汇表条目的词汇表数据库;以及
处理器,其耦合于所述显示器和所述存储器,被编程为执行操作,所述操作包括:
指示所述显示器显示键的布局,每个键代表一个或多个字符;
经由所述显示表面,从对所述显示表面的单个触摸接收用户输入,所述用户输入包括单个连续轨迹,所述单个连续轨迹按顺序接触所述键中的多个键,所述多个键包括开始键、结束键和在所述开始键和所述结束键之间的任何居间键,其中当所述单个触摸被抬起时所述单个连续轨迹消失;
定义包括所接触的键并且还包括任何辅助键的输入序列,所述辅助键包括呈现离所述接触的键的规定的接近度的键;
比较所述输入序列与来自所述词汇表的候选条目,包括对每个候选条目的以下操作:计算集合-编辑距离度量以计算所述输入序列和所述候选条目之间的匹配度量;
其中:
所述集合-编辑距离的计算对从所述候选字漏掉来自包括所述开始键和所述开始键的辅助键的第一组的所有键施加惩罚;
所述集合-编辑距离的计算对从所述候选字漏掉来自包括所述结束键和所述结束键的辅助键的第二组的所有键施加惩罚;
所述集合-编辑距离的计算对从所述候选字漏掉来自包括任何所接触的键和它们的辅助键的第三组的所有键施加惩罚,在所述它们的辅助键中,至少发生在所述轨迹的方向上的规定的最小改变;
所述集合-编辑距离的计算对从所述候选字漏掉所述输入序列的在所述第一组、所述第二组和所述第三组的全部之外的任何键不施加任何惩罚;以及
所述集合-编辑距离的计算对在所述候选字中连续地使用在所述输入序列中的任何键两次或多次不施加任何惩罚;以及
根据至少包括所计算的集合-编辑距离度量的准则将所述候选字分等级,并且提供被分等级的候选字中的至少一些的输出。
2.根据权利要求1所述的设备,其中:
所述集合-编辑距离的计算对候选字包括包含标点、数字和符号中的任一个的规定组的字符不施加任何惩罚。
3.根据权利要求1所述的设备,其中:
所述操作还包括计算与每个所计算的集合-编辑距离度量相关联的基于键盘几何结构的概率;
使用所计算的概率断开在类似地分等级的候选字之间的联系。
4.根据权利要求3所述的设备,其中:
对于所述居间键中的每个居间键,所述基于键盘几何结构的概率根据所述轨迹在所述居间键上经过的速度而减小。
5.根据权利要求3所述的设备,其中:
给定键的基于键盘几何结构的概率随着所述键离所述轨迹上的点的半径而变化。
6.根据权利要求3所述的设备,其中:
给定键的基于键盘几何结构的概率根据所述给定键与以最接近于所述给定键的所接触的键为中心的规定矩形接触区域交叉的面积而变化。
7.根据权利要求1所述的设备,其中:
所述分等级的操作被进行以便根据包括所述集合-编辑距离度量和基于语言模型的概率的准则将候选字分等级。
8.根据权利要求1所述的设备,其中所述操作还包括:
跟踪无成本添加和删除并且使用所跟踪的无成本添加和删除断开在类似地分等级的候选字之间的联系。
9.根据权利要求1所述的设备,其中所述操作还包括:
计算词干编辑距离并且使用所计算的词干编辑距离断开在类似地分等级的候选字之间的联系。
10.一种方法,包括以下操作:
指示显示器显示键的布局,每个键代表一个或多个字符,其中所述显示器包括触敏表面;
经由所述显示表面,从对所述显示表面的单个触摸接收用户输入,所述用户输入包括单个连续轨迹,所述单个连续轨迹按顺序接触所述键中的多个键,所述多个键包括开始键、结束键和在所述开始键和所述结束键之间的任何居间键,其中当所述单个触摸被抬起时所述单个连续轨迹消失;
定义包括所接触的键并且还包括任何辅助键的输入序列,所述辅助键包括呈现离所述接触的键的规定的接近度的键;
比较所述输入序列与来自包含多个词汇表条目的词汇表的候选条目,所述比较操作包括对每个候选条目的以下操作:计算集合-编辑距离度量以计算所述输入序列和所述候选条目之间的匹配度量;
其中:
所述集合-编辑距离的计算对从所述候选字漏掉来自包括所述开始键和所述开始键的辅助键的第一组的所有键施加惩罚;
所述集合-编辑距离的计算对从所述候选字漏掉来自包括所述结束键和所述结束键的辅助键的第二组的所有键施加惩罚;
所述集合-编辑距离的计算对从所述候选字漏掉来自包括任何所接触的键和它们的辅助键的第三组的所有键施加惩罚,在所述它们的辅助键中,至少发生在所述轨迹的方向上的规定的最小改变;
所述集合-编辑距离的计算对从所述候选字漏掉所述输入序列的在所述第一组、所述第二组和所述第三组的全部之外的任何键不施加任何惩罚;以及
所述集合-编辑距离的计算对在所述候选字中连续地使用在所述输入序列中的任何键两次或多次不施加任何惩罚;以及
根据至少包括所计算的集合-编辑距离度量的准则将所述候选字分等级,并且提供被分等级的候选字中的至少一些的输出;
其中所述操作中的至少一个被处理器执行。
11.根据权利要求10所述的方法,其中:
所述集合-编辑距离的计算对候选字包括包含标点、数字和符号中的任一个的规定组的字符不施加任何惩罚。
12.根据权利要求10所述的方法,其中:
所述操作还包括计算与每个所计算的集合-编辑距离度量相关联的基于键盘几何结构的概率;
使用所计算的概率断开在类似地分等级的候选字之间的联系。
13.根据权利要求12所述的方法,其中:
对于所述居间键中的每个居间键,所述基于键盘几何结构的概率根据所述轨迹在所述居间键上经过的速度而减小。
14.根据权利要求12所述的方法,其中:
给定键的基于键盘几何结构的概率随着所述键离所述轨迹上的点的半径而变化。
15.根据权利要求12所述的方法,其中:
给定键的基于键盘几何结构的概率根据所述给定键与以最接近于所述给定键的所接触的键为中心的规定矩形接触区域交叉的面积而变化。
16.根据权利要求10所述的方法,其中:
所述分等级的操作被进行以便根据包括所述集合-编辑距离度量和基于语言模型的概率的准则将候选字分等级。
17.根据权利要求10所述的方法,其中所述操作还包括:
跟踪无成本添加和删除并且使用所跟踪的无成本添加和删除断开在类似地分等级的候选字之间的联系。
18.根据权利要求10所述的方法,其中所述操作还包括:
计算词干编辑距离并且使用所计算的词干编辑距离断开在类似地分等级的候选字之间的联系。
19.一种制造的物品,包括至少一个数字数据存储介质,所述至少一个数字数据存储介质包含由处理器可执行来执行权利要求10的操作的程序的非临时存储器。
20.一种方法,包括以下操作:
从对所述显示表面的单个触摸接收用户输入,所述用户输入指定在触敏显示器上存在的键盘上经过的连续描迹的路径,其中当所述单个触摸被抬起时所述连续描迹的路径消失;
通过规定的准则解析描迹的键和紧邻所述描迹的键的辅助键的输入序列;
对于规定的词汇表的一个或多个候选条目中的每个候选条目,计算所述输入序列和所述候选条目之间的集合-编辑距离度量;
其中:
所述集合-编辑距离的计算对从所述候选字漏掉来自包括所述开始键和所述开始键的辅助键的第一组的所有键施加惩罚;
所述集合-编辑距离的计算对从所述候选字漏掉来自包括所述结束键和所述结束键的辅助键的第二组的所有键施加惩罚;
所述集合-编辑距离的计算对从所述候选字漏掉来自包括任何描迹的键和它们的辅助键的第三组的所有键施加惩罚,在所述它们的辅助键中,至少发生在所述轨迹的方向上的规定的最小改变;
所述集合-编辑距离的计算对从所述候选字漏掉所述输入序列的在所述第一组、所述第二组和所述第三组的全部之外的任何键不施加任何惩罚;以及
所述集合-编辑距离的计算对在所述候选字中连续地使用在所述输入序列中的任何键两次或多次不施加任何惩罚;以及
根据所计算的集合-编辑距离度量将候选字分等级,并且显示被分等级的候选字中的一些或全部的输出;
其中所述操作中的至少一个被处理器执行。
21.一种包括耦合于处理器的触敏显示器的设备,所述处理器被编程以执行权利要求20的操作。
22.一种制造的物品,包括至少一个数字数据存储介质,所述至少一个数字数据存储介质包含由处理器可执行来执行权利要求20的操作的程序的非临时存储器。
23.一种设备,包括:
显示器;
用户输入装置,其包括具有多个键的小键盘或触敏显示表面;
数字数据存储器,其包含包括多个词汇表条目的词汇表数据库;以及
处理器,其耦合于所述显示器、所述用户输入和所述存储器,被编程来执行操作,所述操作包括:
经由所述用户输入装置,从对所述显示表面的单个触摸接收用户输入,所述用户输入包括包含下列项中的一个的一序列键:被接触的以及与通过触敏显示表面输入的连续轨迹紧邻的键,或按下的小键盘键,其中当所述单个触摸被抬起时所述连续轨迹消失,其中所述按下的小键盘键中的一个或多个同时代表多个字符;
识别不同的候选字,每个候选字代表可能由所述序列键代表的字符的组合;
比较所述候选字与所述词汇表的条目以根据代表所述用户输入的可能性给所比较的词汇表条目打分;以及
其中所述比较操作避免惩罚包括不存在于所述输入序列中的下列项中的任一个的任何词汇表条目:标点、符号、数字、被表示在所述用户输入的键上的任何字符的重复、被一起表示在所述用户输入的一个键上的多个字符的使用。

Claims (23)

1.一种文本输入设备,包括:
显示器,其包括触敏显示表面;
数字数据存储器,其包含包括多个词汇表条目的词汇表数据库;以及
处理器,其耦合于所述显示器和所述存储器,被编程为执行操作,所述操作包括:
指示所述显示器显示键的布局,每个键代表一个或多个字符;
经由所述显示表面,接收用户输入,所述用户输入包括单个连续轨迹,所述单个连续轨迹按顺序接触所述键中的多个键,所述多个键包括开始键、结束键和在所述开始键和所述结束键之间的任何居间键;
定义包括所接触的键并且还包括任何辅助键的输入序列,所述辅助键包括呈现离所述接触的键的规定的接近度的键;
比较所述输入序列与来自所述词汇表的候选条目,包括对每个候选条目的以下操作:计算集合-编辑距离度量以计算所述输入序列和所述候选条目之间的匹配度量;
其中:
所述集合-编辑距离的计算对从所述候选字漏掉来自包括所述开始键和所述开始键的辅助键的第一组的所有键施加惩罚;
所述集合-编辑距离的计算对从所述候选字漏掉来自包括所述结束键和所述结束键的辅助键的第二组的所有键施加惩罚;
所述集合-编辑距离的计算对从所述候选字漏掉来自包括任何所接触的键和它们的辅助键的第三组的所有键施加惩罚,在所述它们的辅助键中,至少发生在所述轨迹的方向上的规定的最小改变;
所述集合-编辑距离的计算对从所述候选字漏掉所述输入序列的在所述第一组、所述第二组和所述第三组的全部之外的任何键不施加任何惩罚;以及
所述集合-编辑距离的计算对在所述候选字中连续地使用在所述输入序列中的任何键两次或多次不施加任何惩罚;以及
根据至少包括所计算的集合-编辑距离度量的准则将所述候选字分等级,并且提供被分等级的候选字中的至少一些的输出。
2.根据权利要求1所述的设备,其中:
所述集合-编辑距离的计算对候选字包括包含标点、数字和符号中的任一个的规定组的字符不施加任何惩罚。
3.根据权利要求1所述的设备,其中:
所述操作还包括计算与每个所计算的集合-编辑距离度量相关联的基于键盘几何结构的概率;
使用所计算的概率断开在类似地分等级的候选字之间的联系。
4.根据权利要求3所述的设备,其中:
对于所述居间键中的每个居间键,所述基于键盘几何结构的概率根据所述轨迹在所述居间键上经过的速度而减小。
5.根据权利要求3所述的设备,其中:
给定键的基于键盘几何结构的概率随着所述键离所述轨迹上的点的半径而变化。
6.根据权利要求3所述的设备,其中:
给定键的基于键盘几何结构的概率根据所述给定键与以最接近于所述给定键的所接触的键为中心的规定矩形接触区域交叉的面积而变化。
7.根据权利要求1所述的设备,其中:
所述分等级的操作被进行以便根据包括所述集合-编辑距离度量和基于语言模型的概率的准则将候选字分等级。
8.根据权利要求1所述的设备,其中所述操作还包括:
跟踪无成本添加和删除并且使用所跟踪的无成本添加和删除断开在类似地分等级的候选字之间的联系。
9.根据权利要求1所述的设备,其中所述操作还包括:
计算词干编辑距离并且使用所计算的词干编辑距离断开在类似地分等级的候选字之间的联系。
10.一种方法,包括以下操作:
指示显示器显示键的布局,每个键代表一个或多个字符,其中所述显示器包括触敏表面;
经由所述显示表面,接收用户输入,所述用户输入包括单个连续轨迹,所述单个连续轨迹按顺序接触所述键中的多个键,所述多个键包括开始键、结束键和在所述开始键和所述结束键之间的任何居间键;
定义包括所接触的键并且还包括任何辅助键的输入序列,所述辅助键包括呈现离所述接触的键的规定的接近度的键;
比较所述输入序列与来自包含多个词汇表条目的词汇表的候选条目,所述比较操作包括对每个候选条目的以下操作:计算集合-编辑距离度量以计算所述输入序列和所述候选条目之间的匹配度量;
其中:
所述集合-编辑距离的计算对从所述候选字漏掉来自包括所述开始键和所述开始键的辅助键的第一组的所有键施加惩罚;
所述集合-编辑距离的计算对从所述候选字漏掉来自包括所述结束键和所述结束键的辅助键的第二组的所有键施加惩罚;
所述集合-编辑距离的计算对从所述候选字漏掉来自包括任何所接触的键和它们的辅助键的第三组的所有键施加惩罚,在所述它们的辅助键中,至少发生在所述轨迹的方向上的规定的最小改变;
所述集合-编辑距离的计算对从所述候选字漏掉所述输入序列的在所述第一组、所述第二组和所述第三组的全部之外的任何键不施加任何惩罚;以及
所述集合-编辑距离的计算对在所述候选字中连续地使用在所述输入序列中的任何键两次或多次不施加任何惩罚;以及
根据至少包括所计算的集合-编辑距离度量的准则将所述候选字分等级,并且提供被分等级的候选字中的至少一些的输出;
其中所述操作中的至少一个被处理器执行。
11.根据权利要求10所述的方法,其中:
所述集合-编辑距离的计算对候选字包括包含标点、数字和符号中的任一个的规定组的字符不施加任何惩罚。
12.根据权利要求10所述的方法,其中:
所述操作还包括计算与每个所计算的集合-编辑距离度量相关联的基于键盘几何结构的概率;
使用所计算的概率断开在类似地分等级的候选字之间的联系。
13.根据权利要求12所述的方法,其中:
对于所述居间键中的每个居间键,所述基于键盘几何结构的概率根据所述轨迹在所述居间键上经过的速度而减小。
14.根据权利要求12所述的方法,其中:
给定键的基于键盘几何结构的概率随着所述键离所述轨迹上的点的半径而变化。
15.根据权利要求12所述的方法,其中:
给定键的基于键盘几何结构的概率根据所述给定键与以最接近于所述给定键的所接触的键为中心的规定矩形接触区域交叉的面积而变化。
16.根据权利要求10所述的方法,其中:
所述分等级的操作被进行以便根据包括所述集合-编辑距离度量和基于语言模型的概率的准则将候选字分等级。
17.根据权利要求10所述的方法,其中所述操作还包括:
跟踪无成本添加和删除并且使用所跟踪的无成本添加和删除断开在类似地分等级的候选字之间的联系。
18.根据权利要求10所述的方法,其中所述操作还包括:
计算词干编辑距离并且使用所计算的词干编辑距离断开在类似地分等级的候选字之间的联系。
19.一种制造的物品,包括至少一个数字数据存储介质,所述至少一个数字数据存储介质包含由处理器可执行来执行权利要求10的操作的程序的非临时存储器。
20.一种方法,包括以下操作:
接收用户输入,所述用户输入指定在触敏显示器上存在的键盘上经过的连续描迹的路径;
通过规定的准则解析描迹的键和紧邻所述描迹的键的辅助键的输入序列;
对于规定的词汇表的一个或多个候选条目中的每个候选条目,计算所述输入序列和所述候选条目之间的集合-编辑距离度量;
其中:
所述集合-编辑距离的计算对从所述候选字漏掉来自包括所述开始键和所述开始键的辅助键的第一组的所有键施加惩罚;
所述集合-编辑距离的计算对从所述候选字漏掉来自包括所述结束键和所述结束键的辅助键的第二组的所有键施加惩罚;
所述集合-编辑距离的计算对从所述候选字漏掉来自包括任何描迹的键和它们的辅助键的第三组的所有键施加惩罚,在所述它们的辅助键中,至少发生在所述轨迹的方向上的规定的最小改变;
所述集合-编辑距离的计算对从所述候选字漏掉所述输入序列的在所述第一组、所述第二组和所述第三组的全部之外的任何键不施加任何惩罚;以及
所述集合-编辑距离的计算对在所述候选字中连续地使用在所述输入序列中的任何键两次或多次不施加任何惩罚;以及
根据所计算的集合-编辑距离度量将候选字分等级,并且显示被分等级的候选字中的一些或全部的输出;
其中所述操作中的至少一个被处理器执行。
21.一种包括耦合于处理器的触敏显示器的设备,所述处理器被编程以执行权利要求20的操作。
22.一种制造的物品,包括至少一个数字数据存储介质,所述至少一个数字数据存储介质包含由处理器可执行来执行权利要求20的操作的程序的非临时存储器。
23.一种设备,包括:
显示器;
用户输入装置,其包括具有多个键的小键盘或触敏显示表面;
数字数据存储器,其包含包括多个词汇表条目的词汇表数据库;以及
处理器,其耦合于所述显示器、所述用户输入和所述存储器,被编程来执行操作,所述操作包括:
经由所述用户输入装置,接收包括包含下列项中的一个的一序列键的用户输入:被接触的以及与通过触敏显示表面输入的连续轨迹紧邻的键,或按下的小键盘键,其中所述按下的小键盘键中的一个或多个同时代表多个字符;
识别不同的候选字,每个候选字代表可能由所述序列键代表的字符的组合;
比较所述候选字与所述词汇表的条目以根据代表所述用户输入的可能性给所比较的词汇表条目打分;以及
其中所述比较操作避免惩罚包括不存在于所述输入序列中的下列项中的任一个的任何词汇表条目:标点、符号、数字、被表示在所述用户输入的键上的任何字符的重复、被一起表示在所述用户输入的一个键上的多个字符的使用。
CN201180064099.6A 2010-11-04 2011-11-04 用于具有自动校正的键盘***的拼写检查 Active CN103299550B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/939,918 2010-11-04
US12/939,918 US8225203B2 (en) 2007-02-01 2010-11-04 Spell-check for a keyboard system with automatic correction
PCT/US2011/059319 WO2012061701A1 (en) 2010-11-04 2011-11-04 Spell-check for a keyboard system with automatic correction

Publications (2)

Publication Number Publication Date
CN103299550A true CN103299550A (zh) 2013-09-11
CN103299550B CN103299550B (zh) 2015-12-09

Family

ID=46024844

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180064099.6A Active CN103299550B (zh) 2010-11-04 2011-11-04 用于具有自动校正的键盘***的拼写检查

Country Status (4)

Country Link
EP (1) EP2636149A4 (zh)
KR (1) KR101520455B1 (zh)
CN (1) CN103299550B (zh)
WO (1) WO2012061701A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106164893A (zh) * 2014-04-04 2016-11-23 触摸式有限公司 用于输入与多输入目标相关联的一个或多个输入的***和方法
CN109033065A (zh) * 2018-06-01 2018-12-18 昆明理工大学 一种英文单词拼写检查方法
CN110879665A (zh) * 2018-09-05 2020-03-13 苹果公司 远程电容式接口

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2013204311B2 (en) * 2012-05-30 2016-09-29 Chomley Consulting Pty. Ltd Methods, Controllers and Devices for Assembling a Word
US8843845B2 (en) 2012-10-16 2014-09-23 Google Inc. Multi-gesture text input prediction
US8832589B2 (en) 2013-01-15 2014-09-09 Google Inc. Touch keyboard using language and spatial models
US11762989B2 (en) 2015-06-05 2023-09-19 Bottomline Technologies Inc. Securing electronic data by automatically destroying misdirected transmissions
US20170163664A1 (en) 2015-12-04 2017-06-08 Bottomline Technologies (De) Inc. Method to secure protected content on a mobile device
US11163955B2 (en) 2016-06-03 2021-11-02 Bottomline Technologies, Inc. Identifying non-exactly matching text
US10235356B2 (en) 2016-06-03 2019-03-19 Bottomline Technologies (De), Inc. Dual authentication method for identifying non-exactly matching text
KR101858999B1 (ko) * 2016-11-28 2018-05-17 (주)헤르메시스 가상 키보드의 입력 보정 장치, 및 그 방법
CN109725737B (zh) * 2017-10-31 2022-10-25 北京金山安全软件有限公司 一种信息展示方法、装置及***
US11416713B1 (en) 2019-03-18 2022-08-16 Bottomline Technologies, Inc. Distributed predictive analytics data set
US11042555B1 (en) 2019-06-28 2021-06-22 Bottomline Technologies, Inc. Two step algorithm for non-exact matching of large datasets
US11269841B1 (en) 2019-10-17 2022-03-08 Bottomline Technologies, Inc. Method and apparatus for non-exact matching of addresses
US11763278B2 (en) 2020-03-13 2023-09-19 Bottomline Technologies, Inc. Deposit token service system, apparatus and method
US11966372B1 (en) 2020-05-01 2024-04-23 Bottomline Technologies, Inc. Database record combination
US11449870B2 (en) 2020-08-05 2022-09-20 Bottomline Technologies Ltd. Fraud detection rule optimization
US11694276B1 (en) 2021-08-27 2023-07-04 Bottomline Technologies, Inc. Process for automatically matching datasets
US11544798B1 (en) 2021-08-27 2023-01-03 Bottomline Technologies, Inc. Interactive animated user interface of a step-wise visual path of circles across a line for invoice management

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050120870A1 (en) * 1998-05-15 2005-06-09 Ludwig Lester F. Envelope-controlled dynamic layering of audio signal processing and synthesis for music applications
CN1655107A (zh) * 1999-05-27 2005-08-17 美国在线服务公司 自动更正键盘***
US20080189605A1 (en) * 2007-02-01 2008-08-07 David Kay Spell-check for a keyboard system with automatic correction

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7030863B2 (en) * 2000-05-26 2006-04-18 America Online, Incorporated Virtual keyboard system with automatic correction
US7382358B2 (en) * 2003-01-16 2008-06-03 Forword 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
US7911944B2 (en) * 2007-12-26 2011-03-22 Nortel Networks Limited Tie-breaking in shortest path determination
GB0905457D0 (en) * 2009-03-30 2009-05-13 Touchtype Ltd System and method for inputting text into electronic devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050120870A1 (en) * 1998-05-15 2005-06-09 Ludwig Lester F. Envelope-controlled dynamic layering of audio signal processing and synthesis for music applications
CN1655107A (zh) * 1999-05-27 2005-08-17 美国在线服务公司 自动更正键盘***
US20080189605A1 (en) * 2007-02-01 2008-08-07 David Kay Spell-check for a keyboard system with automatic correction

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106164893A (zh) * 2014-04-04 2016-11-23 触摸式有限公司 用于输入与多输入目标相关联的一个或多个输入的***和方法
CN106164893B (zh) * 2014-04-04 2020-06-05 触摸式有限公司 用于输入与多输入目标相关联的一个或多个输入的***和方法
US10802710B2 (en) 2014-04-04 2020-10-13 Touchtype Ltd System and method for inputting one or more inputs associated with a multi-input target
CN109033065A (zh) * 2018-06-01 2018-12-18 昆明理工大学 一种英文单词拼写检查方法
CN110879665A (zh) * 2018-09-05 2020-03-13 苹果公司 远程电容式接口
CN110879665B (zh) * 2018-09-05 2023-07-07 苹果公司 远程电容式接口

Also Published As

Publication number Publication date
WO2012061701A4 (en) 2012-07-05
EP2636149A1 (en) 2013-09-11
EP2636149A4 (en) 2016-10-05
KR20130107325A (ko) 2013-10-01
WO2012061701A1 (en) 2012-05-10
WO2012061701A8 (en) 2013-06-06
KR101520455B1 (ko) 2015-05-21
CN103299550B (zh) 2015-12-09

Similar Documents

Publication Publication Date Title
CN103299550B (zh) 用于具有自动校正的键盘***的拼写检查
US11614862B2 (en) System and method for inputting text into electronic devices
US8892996B2 (en) Spell-check for a keyboard system with automatic correction
US8201087B2 (en) Spell-check for a keyboard system with automatic correction
US10156981B2 (en) User-centric soft keyboard predictive technologies
JP4519381B2 (ja) 自動訂正機能を備えたキーボード・システム
CN100472600C (zh) 文字输入自动更正的虚拟键盘***
JP5738245B2 (ja) ショートハンド・オン・キーボード・インタフェースにおいてテキスト入力を改善するためのシステム、コンピュータ・プログラムおよび方法(キーボード上のショートハンド・オン・キーボード・インタフェースにおけるテキスト入力の改良)
CN1707409B (zh) 用户字和用户操作的上下文预测
CN105378606B (zh) 用于手势键入的备选假设错误修正
US10838513B2 (en) Responding to selection of a displayed character string
JP5241828B2 (ja) 辞書の単語及び熟語の判定
AU2014212844B2 (en) Character and word level language models for out-of-vocabulary text input
EP1686493A2 (en) Dictionary learning method and device using the same, input method and user terminal device using the same
CN106202059A (zh) 机器翻译方法以及机器翻译装置
KR20130001261A (ko) 이동 전화의 터치 스크린과 함께 사용하기 위한 다중 모드 문자 입력 시스템
KR20150109447A (ko) 텍스트 입력 시스템 및 방법
US9298276B1 (en) Word prediction for numbers and symbols
CN105164669A (zh) 信息处理设备、信息处理方法以及程序
WO2013032617A1 (en) Server-based spell checking

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200923

Address after: Massachusetts, USA

Patentee after: Serenes operations

Address before: Massachusetts, USA

Patentee before: Nuance Communications, Inc.

TR01 Transfer of patent right