CN104718543A - 基于特征的自动校正 - Google Patents

基于特征的自动校正 Download PDF

Info

Publication number
CN104718543A
CN104718543A CN201380052562.4A CN201380052562A CN104718543A CN 104718543 A CN104718543 A CN 104718543A CN 201380052562 A CN201380052562 A CN 201380052562A CN 104718543 A CN104718543 A CN 104718543A
Authority
CN
China
Prior art keywords
computing equipment
word
key
candidate word
character string
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
CN201380052562.4A
Other languages
English (en)
Other versions
CN104718543B (zh
Inventor
欧阳瑜
翟树民
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Priority to CN201810865668.0A priority Critical patent/CN109120511B/zh
Publication of CN104718543A publication Critical patent/CN104718543A/zh
Application granted granted Critical
Publication of CN104718543B publication Critical patent/CN104718543B/zh
Expired - Fee Related 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/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
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/232Orthographic correction, e.g. spell checking or vowelisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/253Grammatical analysis; Style critique
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/06Message adaptation to terminal or network requirements
    • H04L51/063Content adaptation, e.g. replacement of unsuitable content

Abstract

描述了一种计算设备,其输出具有键的图形键盘以在存在敏感屏处显示。该计算设备接收对一个或多个键的选择的指示。基于该选择,计算设备确定字符串,从该字符串,计算设备确定一个或多个候选词。至少部分基于候选词和多个特征,计算设备确定字符串表示至少一个候选词的不正确拼写的拼写概率。多个特征包括与候选词中的至少一个相关联的空间模型概率。如果拼写概率满足阈值,则计算设备输出至少一个候选词以显示。

Description

基于特征的自动校正
背景技术
计算设备(例如移动电话、平板计算机等等)可以使用存在敏感显示器将图形键盘提供为图形用户界面的一部分用于撰写文本。例如,计算设备的存在敏感显示器可以输出图形或软键盘,其允许用户通过轻敲(或者指示)在存在敏感显示器处显示的键录入数据。图形键盘可以使得计算设备的用户能够撰写和编辑包括在例如电子邮件、文本消息、文档等等中的文本。
一些计算设备还包括自动校正系统来检测和校正用户录入的文本内的拼写和语法错误。然而,一些自动校正系统可能不能检测文本内的非拼写或非语法错误和/或可能进行了错误的自动校正。一些自动校正系统可能不能检测这些错误,因为这些系统对文本内的拼错的字典词执行精确词匹配。因此,这种自动检测系统只要所录入的文本包括有效词(例如,在由系统采用的字典内找到的词),可以不检测错误。此外,如果用户有意地键入非字典词,则自动校正系统可能以字典词自动地(并且与用户意图相反)替换拼错的词。
发明内容
在一个示例中,本公开内容针对一种方法,该方法可以包括由计算设备输出包括多个键的图形键盘,并且用于在存在敏感屏处显示。该方法可以进一步包括由计算设备接收对多个键中的一个或多个的选择的指示。该方法可以进一步包括由计算设备并且至少部分基于选择的指示,确定字符串。该方法可以进一步包括由计算设备并且至少部分基于字符串,确定多个候选词。该方法可以进一步包括由计算设备并且至少部分基于多个候选词和多个特征,确定字符串包括多个候选词中的至少一个的不正确拼写的拼写概率。多个特征可以至少包括与一个或多个候选词中的至少一个相关联的空间模型概率。响应于确定拼写概率满足阈值,该方法可以进一步包括由计算设备输出多个候选词中的至少一个以显示。
在另一个示例中,该公开内容针对包括至少一个处理器和至少一个模块的计算设备,所述至少一个模块可由至少一个处理器操作来接收对键盘输入设备的多个键中的一个或多个的选择的指示。至少一个模块可以进一步由至少一个处理器操作来至少部分基于选择的指示,确定字符串。至少一个模块可以进一步由至少一个处理器操作来至少部分基于字符串,确定多个候选词。至少一个模块可以进一步由至少一个处理器操作来至少部分基于多个候选词和多个特征,确定字符串包括多个候选词中的至少一个的不正确拼写的拼写概率。多个特征可以至少包括与一个或多个候选词中的每一个相关联的空间模型概率。响应于确定拼写概率满足阈值,至少一个模块可以进一步由至少一个处理器操作来输出多个候选词中的至少一个以显示。
在另一个示例中,本公开内容针对编码有指令的计算机可读存储介质,所述指令当被执行时,使计算设备的至少一个处理器输出包括多个键的图形键盘,以在存在敏感屏处显示。所述指令当被执行时,可以进一步使计算设备的至少一个处理器接收对多个键中的一个或多个的选择的指示。所述指令当被执行时,可以进一步使计算设备的至少一个处理器至少部分基于选择的指示,确定字符串。所述指令当被执行时,可以进一步使计算设备的至少一个处理器至少部分基于字符串,确定多个候选词。所述指令当被执行时,可以进一步使计算设备的至少一个处理器至少部分基于多个候选词和多个特征,确定字符串包括多个候选词中的至少一个的不正确拼写的拼写概率。多个特征可以至少包括与一个或多个候选词中的每一个相关联的空间模型概率。响应于确定拼写概率满足阈值,所述指令当被执行时,可以进一步使计算设备的至少一个处理器输出多个候选词的至少一个。
在附图和下述说明书中,阐述一个或多个示例的详情。从说明书和附图,以及从权利要求,本公开内容的其他特征、目的和优点将是显而易见的。
附图说明
图1是根据本公开内容的一个或多个方面,图示被配置成检测文本内的错误并建议校正的示例计算设备的原理图。
图2是根据本公开内容的一个或多个方面,图示该示例计算设备的框图。
图3A-3B是根据本公开内容的一个或多个方面,图示用于呈现文本的建议校正的示例图形用户界面的原理图。
图4是根据本公开内容的一个或多个方面,图示用于呈现文本的建议校正的另外的示例图形用户界面的原理图。
图5是根据本公开内容的一个或多个方面,图示计算设备的示例操作的流程图。
具体实施方式
计算设备(例如膝上型、移动电话、平板计算机、台式计算机等等)可以在输出图形键盘的存在敏感显示器处接收输入。响应于接收该输入,计算设备可以生成用于在存在敏感显示器处显示的文本。用于由计算设备显示而生成的文本可能包括有意和无意拼写和语法错误。通常,本公开内容的技术可以使得计算设备能够检测响应于用户输入而生成的文本内的词的潜在拼写错误并且输出可以校正包括在用户输入中的拼写错误的建议词。
在一些示例中,计算设备能通过利用若干系统(例如空间模型,语言模型等等),检测拼写错误并确定建议词来校正该错误。使用这些系统,计算设备可以确定所生成的文本内的词是建议词中的至少一个的拼错的概率。如果该概率满足阈值,则计算设备可以输出用户能可选地忽略的建议词中的一个或多个或选择来修正该词内的拼写错误。
以这种方式,计算设备可以比使用常规词匹配技术的其他设备,基于用户输入,更有效地生成文本。通常,在检测拼写错误时,由计算设备建议的词通常比由其他设备建议的词更准确。同样地,计算设备的用户可能比其他设备的用户花费更少时间修正自动校正错误,并且可以更快速和容易地选择准确的建议词,用于校正拼写错误。通过在图形键盘处实现更有效文本输入,计算设备还可以执行更少的操作以从这些输入处理和生成文本,并由此消耗比其他计算设备更少的处理电力。
在一个示例中,当在呈现图形键盘的键的存在敏感屏的位置上,多个手指按先后顺序轻敲或作手势时,计算设备接收用户输入。计算设备将用户输入作为对图形键盘的一个或多个键的选择而接收,并且基于该选择,生成多个字符串(例如,“my”“dead”“friend”“is”“visiting”“tomorrow”)。存在敏感屏可以输出多个字符串的每一个。
当确定字符串的一个是否包括错误时,计算设备可以将一个或多个候选词确定为用于该字符串的替换词。例如,计算设备可以确定词“dear”是替换字符串“dead”的候选词。对至少一个候选词,计算设备可以确定字符串“dead”表示候选词“dear”的不正确拼写的概率。换句话说,计算设备可以确定用户想要键入“dear”而不是“dead”的可能性(例如概率)。
计算设备可以使拼写概率基于多个特征,包括与一个或多个候选词中的每一个相关联的空间模型概率(“SMP”)(例如空间模型置信分值)。换句话说,如果图形键盘(例如图形键盘18)处的用户的敲击(或手势形状)的位置未准确地匹配约定词(例如字符串)中的字母的键位置,则有关该校正可能存在更多不确定性。在轻敲的情况下,这可以意味着用户正在键入被错误校正的词表外的词。如下所述,计算设备10可以指出此,并且将字面键入串提供为替代。
例如,与候选词“dear”相关联的SMP可以超出与字符串“dead”相关联的SMP。换句话说,用户提供输入以生成字符串“dead”的存在敏感屏的位置可以更近地对应于显示键<D-键><E-键><A-键><R-键>而不是键<D-键><E-键><A-键><D-键>的存在敏感屏的键位置。如果拼写概率超出阈值,则计算设备可以确定该字符串(例如dead)表示错误,并且作为响应,将至少一个候选词(例如dear)作为建议替换而输出以显示(例如在存在敏感屏处)。
图1是根据本公开内容的一个或多个方面,图示被配置成检测文本内的错误并且建议校正的示例计算设备10的原理图。在图1的示例中,计算设备10是移动电话。然而,在其他示例中,计算设备10可以是平板计算机、个人数字助理(PDA)、膝上型计算机、便携式游戏设备、便携式媒体播放器、电子书阅读器、手表或其他类型的计算设备。
如图1所示,计算设备10包括用户界面设备(UID)12。计算设备10的UID 12可以充当用于计算设备10的输入设备和输出设备。UID12可以使用各种技术实现。例如,UID 12可以充当使用电阻触摸屏的输入设备、表面声波触摸屏、电容触摸屏、投射电容触摸屏、压敏屏、声脉冲识别触摸屏或另一存在敏感屏技术。UID 12可以充当使用液晶显示器(LCD)、点矩阵显示器、发光二极管(LED)显示器、有机发光二极管(OLED)显示器、电子墨水或能够向计算设备10的用户输出可视信息的类似的单色或彩色显示器中的任何一个或多个的输出设备。
计算设备10的UID 12可以包括可以从计算设备10的用户接收触觉用户输入的存在敏感屏。UID 12可以通过从计算设备10的用户检测一个或多个轻敲和/或手势(例如,用户利用手指或手写笔触摸或指向UID 12的一个或多个位置),接收触觉用户输入。UID 12的存在敏感屏可以向用户呈现输出。UID 12可以将输出呈现为可以与由计算设备10提供的功能性有关的用户界面(例如用户界面14)。例如,UID 12可以呈现在计算设备10上执行的各种功能和应用,诸如电子消息应用、地图应用等等。UID 12可以呈现一个或多个信息和控制面板,诸如包括用于用户的通知信息的通知面板和包括计算设备10的系统设置信息的设置面板。
计算设备10可以包括用户界面(“UI”)模块20、键盘模块22、手势模块24以及空间模型(“SM”)模块26。模块20、22、24和26可以使用驻留在计算设备10中并在其上执行的软件、硬件或硬件和软件的混合,执行在此所述的操作。计算设备10可以利用多个处理器执行模块20、22、24和26。计算设备10可以将模块20、22、24和26执行为在底层硬件上执行的虚拟机。
计算设备10的手势模块24可以从UID 12接收在UID 12的存在敏感屏处检测的用户输入的一个或多个指示。在图2的描述下,在下文中,更详细地描述手势模块24。然而,总的来说,每次UID 12接收在存在敏感屏的位置处检测的用户输入的指示时,手势模块24可以从UID 12接收有关用户输入的信息。手势模块24可以将从UID 12接收的信息汇集成运动事件的按时间排序的序列。该序列中的每个运动事件可以包括对应于UID 12的位置的位置分量、与UID 12何时检测到该位置处的用户输入有关的时间分量,以及与运动事件是否对应于该位置处的提起或按下有关的动作分量。手势模块24可以确定运动事件的序列表示手势的特性,诸如手势的起始位置、手势的长度、手势的速率、手势的结束位置等等。基于这些特性,手势模块24可以确定用户输入表示轻敲手势和/或连续挥扫手势。手势模块24可以将运动事件的序列作为输出而传输到UI模块20。
UI模块20可以使UID 12呈现用户界面14。用户界面14包括在UID 12的各个位置处显示的图形元素。图1图示用户界面14的编辑区16和用户界面14的图形键盘18。图形键盘18包括显示为键的图形元素。编辑区16可以包括图形元素,诸如图像、对象、超链接、文本的字符等等。在图1的示例中,编辑区16包括显示为文本的字符的图形元素和候选词30。计算设备10的用户可以通过在显示图形键盘18的键的UID 12的位置处提供用户输入,将文本录入到编辑区16中。
UI模块20可以充当计算设备10的各个组件之间的媒介来基于由UID 12检测的输入进行确定以及生成由UID 12呈现的输出。例如,UI模块20可以将包括在图形键盘18中的键的键盘布局的表示作为输入而从键盘模块22接收。UI模块20可以将从与由UID 12检测的用户输入有关的信息生成的运动事件的序列作为输入而从手势模块24接收。UI模块20可以基于运动事件序列中的位置分量,确定一个或多个位置分量接近一个或多个键的选择(例如,UI模块20可以确定运动事件的每一个的位置对应于呈现图形键盘18的UID 12的区域)。UI模块20可以将从手势模块24接收的运动事件序列连同UID 12呈现键的每一个的位置一起作为输出而传输到键盘模块22。作为响应,UI模块20可以将字符串和一个或多个候选词作为输入而从键盘模块22接收。UI模块20可以更新用户界面14来在编辑区16内包括该字符串和一个或多个候选词并且使UID 12显示所更新的用户界面14。
计算设备10的键盘模块22可以将包括与一个或多个书写语言(例如英语、法语、俄语等等)有关的多个键的键盘布局作为输出而传输到UI模块20(用于包括为用户界面14的图形键盘18)。键盘模块22可以将一个或多个字符或操作指定给键盘布局中的多个键的每个键。例如,键盘模块22可以生成包括表示用在键入英语语言中的字符的键的QWERTY键盘布局。QWERTY键盘布局也可以包括表示用在键入英语语言中的操作的键(例如退格、删除、空格键、回车键等等)。
键盘模块22可以从UI模块20接收表示由手势模块24生成的运动事件序列的数据。键盘模块22还可以从UI模块20接收表示UID 12的存在敏感屏的位置的数据,其中,UID 12呈现图形键盘18的键的每一个。键盘模块22可以基于键的位置,确定运动事件序列表示对一个或多个键的选择。键盘模块22可以基于选择,生成字符串,其中,字符串中的每个字符对应于该选择中的至少一个键。键盘模块22可以将指示该字符串的数据发送到UI模块20,用于包括在用户界面14的编辑区16中。
为确定运动事件序列表示对一个或多个键的选择,键盘模块22包括SM模块26。SM模块26可以将该运动事件序列中的位置分量(例如坐标)与图形键盘18的一个或多个键的相应的位置进行比较并且生成所发生的键的选择的概率。SM模块26可以确定序列中的一个或多个运动事件指示图形键盘18的键的单独选择的概率(即,空间模型概率或SMP)。例如,SM模块26可以将运动事件序列中的每个运动事件的位置分量与图形键盘18的特定键的键位置进行比较。序列中的每个运动事件的位置分量可以包括UID 12的一个或多个位置。图形键盘18中的键的键位置(例如键的中心)可以包括UID 12的不同位置。SM模块26可以基于两个位置之间的欧几里德距离,基于比较,确定运动事件对应于键的选择的概率。SM模块26可以将较高概率和与运动事件共用较小欧几里德距离的键,而不是与运动事件共用较大欧几里德距离的键关联(例如,当键与运动事件共用几乎0欧几里德距离时,键选择的概率可以超出99%,并且键选择的概率可以几乎与欧几里德距离的增加而成比例地下降)。基于与每个键相关联的SMP,键盘模块22可以将具有最高空间模型概率的单独键选择汇集成键盘模块24可以然后确定表示字符串的键的按时间排序的序列。
键盘模块22可以从键的序列确定字符的序列和键盘操作以确定由运动事件序列表示的字符串。例如,键盘的每个键可以表示字符或键盘操作。键盘模块22可以基于键的序列,通过将单独字符键选择与键盘操作键选择结合,确定由一个或多个键选择表示的特定字符。诸如数字或小写字母的字符可能需要单个字符键选择(例如<字母键>,<数字键>等等)。诸如大写字母的字符可能需要两个键选择(例如<换档键>+<字母键>等等)。键盘模块22可以基于键盘操作键选择之前的一个或多个字符键选择(例如<字母键>+<退格键>等等),确定键序列中的校正。键盘模块22可以通过将单独键按压组合成考虑校正的字符的序列,从键的序列确定字符串。
键盘模块22可以在将字符串输出到UI模块20中,用于包括在用户界面14的编辑区16中之前,访问计算设备10的词典来自动校正(例如拼写检查)从键的序列生成的字符串。在下文中更详细地描述词典。总的来说,计算设备10的词典可以包括书写语言词汇内的词的列表。键盘模块22可以在词典中执行查找字符串以生成包括该字符串的字符的一部分或全部的一个或多个候选词。换句话说,基于与词典内的词的比较,一个或多个候选词可以表示字符串中的字符的替代拼写或排列。
例如,键盘模块22可以确定键的选择对应于字母“d-e-a-d”的序列,并且同样地,对应于字符串“dead”。键盘模块22可以将串“dead”与词典中的一个或多个词比较。在一些示例中,本公开内容的技术可以使用杰卡德相似系数,其指示由用户输入的字符串与词典中的词之间的相似度。通常,杰卡德相似系数还称为杰卡德指数,其表示两个样本集(例如字符串和字典中的词)之间的相似性的度量。基于该比较,键盘模块22可以对词典中的一个或多个词,生成杰卡德相似系数。键盘模块22可以确定具有最大杰卡德相似系数的词典中的一个或多个候选词(例如,“dead”、“deaf”、“deal”、“dean”、“dear”和“deadly”)。每个候选词可以表示字符串中的字符的一些或全部的替代排列。
键盘模块22可以确定具有最高杰卡德相似系数的候选词表示键盘模块22输出到UI模块,用于包括在编辑区16中的经自动校正的字符串。在一些示例中,具有最高杰卡德相似系数的候选词与由键盘模块22,从键序列生成的字符串匹配(例如,词典可以将“dead”返回为最高排名候选词,因为“dead”中的字符的排列对应于词典中的词)。
不是仅依赖于词典来基于拼写和/或语法自动校正词,而是本公开内容的技术使用多个特征,包括从空间模型的输出来确定字符串输入是否是错误的。在一些示例中,为提高计算设备判定是否向用户指示错误的精度,本公开内容的技术进一步基于概率,确定是否指示该字符串输入是错误的。换句话说,本公开内容的技术使用多个特征,并且在一些情况下,使用概率来改进字符串的自动校正。
现在,将参考图1,详细地描述这些技术。在图1的示例中,UID12输出包括多个键的图形键盘18以显示。例如,键盘模块22可以生成包括图形键盘18的表示的数据。UI模块20可以生成用户界面14并且基于表示图形键盘18的数据,将图形键盘18包括在用户界面14中。UI模块20可以将包括用于在UID 12的存在敏感屏上显示用户界面14的指令的信息发送到UID 12。UID 12可以接收该信息并且使UID 12的存在敏感屏呈现包括编辑区16和图形键盘18的用户界面14。图形键盘18可以包括多个键。
计算设备10可以接收对多个键中的一个或多个的选择的指示。例如,当UID 12在存在敏感屏上呈现用户界面14时,用户可以在显示图形键盘18的UID 12的存在敏感屏上的位置处提供输入。手势模块24可以从UID 12接收指示用户输入的信息并且将信息汇集成运动事件的按时间排序的序列。UI模块20可以从手势模块24接收该运动事件的序列并且确定对应于呈现图形键盘18的UID 12的区域的序列中的每个运动事件的位置分量。UI模块20可以确定UID 12接收了对多个键中的一个或多个的选择的指示。
计算设备10可以至少部分基于键的选择的指示,确定字符串。例如,UI模块20可以将运动事件的序列连同UID 12呈现图形键盘18的键的每一个的位置一起传输到键盘模块22。键盘模块22可以从UI模块20接收运动事件的序列连同键位置。键盘模块22可以确定运动事件的序列中的每个运动事件的位置分量和每个键位置来确定与该运动事件共用UID 12的同一位置的键。例如,对于序列中的每个运动事件,键盘模块22的SM模块26可以确定运动事件的位置分量与每个键的位置之间的欧几里德距离。基于欧几里德距离,SM模块26可以确定一个或多个运动事件对应于键的选择的SMP。键盘模块22可以将具有最高SMP的键汇集成键的序列。键盘模块22可以确定表示所选择的键的序列的字符串。例如,键盘模块22可以确定所选择的键的序列包括“<D键><E键><A键><D键>”。键盘模块22可以确定所选择的键的序列对应于字符串“dead”。
计算设备10可以至少部分基于该字符串,确定多个候选词。例如,键盘模块22可以利用词典来生成与字符串(例如“dead”)共用类似的字符的序列的一个或多个候选词。键盘模块22可以将该字符串作为输入而传递到词典,并且接收包括所述字符串内的字符的一部分或全部的多个词。例如,词典可以基于每个词与字符串的比较,将杰卡德相似系数指定给词典中的每个词。键盘模块22可以将来自词典的具有最大杰卡德相似系数的词选择为多个候选词(例如“dead”、“deaf”、“deal”、“dean”、“dear”和“deadly”)。
计算设备10可以至少部分基于多个候选词和多个特征,确定字符串包括多个候选词的至少一个的不正确拼写的拼写概率。多个特征至少包括与一个或多个候选词的每一个相关联的空间模型概率。例如,键盘模块22可以从词典确定字符串表示候选词的至少一个的不正确拼写的拼写概率。超出阈值(例如50%)的拼写概率可以向键盘模块22指示用户输入中的错误,使得用户可能想要使用图形键盘18键入一个候选词,而不是先前由键盘模块22从多个键的选择所生成和确定的字符串。
键盘模块22可以利用有关用户输入和候选词的各种类型的数据,包括用于每个候选词的SMP,以确定字符串的拼写概率。例如,如上所述,SM模块26可以对运动事件序列中的每个运动事件,确定图形键盘18中的每个键的SMP。在生成字符串中,键盘模块22最初仅将具有最高SMP的键汇集成对应于运动事件序列的键的序列。在一些示例中,可以将用于包括在键的初始序列中的每个键的SMP的乘积称为字符串SMP。在其他示例中,用于包括在键的初始序列中的每个键的SMP的总和可以称为字符串SMP。
键盘模块22能类似地(例如,从词典)确定与候选词的每一个相关联的SMP。例如,键盘模块22可以确定用于每个候选词的键的空间测试序列。键的空间测试序列表示如果用户在图形键盘18上键入,将对应于候选词的字符的键选择。键盘模块22可以例如确定键的空间测试序列中的每个键的SMP的乘积表示与候选词相关联的SMP。与候选词相关联的高值SMP(例如大于90%)可以指示最初从手势模块24接收的运动事件序列包括与到键的空间测试序列中的键的位置共用接近的欧几里德距离的位置分量。键盘模块22可以重复这些步骤来确定与每个候选词相关联的SMP。
从与每个候选词相关联的SMP,并且从参考其他图在下文所述的其他特征,键盘模块22可以确定字符串的拼写概率。键盘模块22可以首先将0拼写概率指定给该字符串,指示该字符串包括错误的0可能性或低可能性。在一个或多个候选词的SMP超出50%的情况下,键盘模块22可以递增字符串的拼写概率(例如,使用与每个候选词相关联的SMP的加权平均和从其他特征确定的概率)。候选词的较高值拼写概率可以指示更大可能性,而不是字符串表示候选词的不正确拼写。
响应于确定拼写概率满足阈值,UI设备12可以输出多个候选词的至少一个。换句话说,如果字符串的拼写概率超出阈值(例如约50%),则键盘模块22可以确定字符串表示错误。同样在当拼写概率不超出阈值的情况下,键盘模块22可以命令UI模块20更新用户界面14并且使UID 12在存在敏感屏上输出对字符串的建议校正。例如,键盘模块22可以确定所包括的字符串的拼写概率超出90%。基于90%超出50%阈值的确定,键盘模块22可以将多个候选词中的至少一个作为输出而传输到UI模块20,以用于包括在用户界面14的编辑区16中。UI模块20可以将多个候选词中的至少一个作为输入而从键盘模块22接收,并且修改用户界面14的编辑区16来将多个候选词中的至少一个作为文本串而包括。UI模块20可以使UID 12在存在敏感屏上呈现所修改的用户界面。图1包括在用户界面14的编辑区16内以及字符串“dead”上方的候选词30来图示计算设备10可以响应于确定字符串“dead”的拼写概率满足阈值而输出候选词30的一种方式。
以这种方式,计算设备10可以不对UID 12的存在敏感屏输出不可能的校正,并且因此,不会不必要地干扰用户。计算设备10可以将唯一用户界面14输出到屏幕,该唯一用户界面14高亮和呈现用于每个所检测的错误的替代建议。不必提供另外的输入,用户能快速地扫描在UID 12的存在敏感屏上呈现的用户界面14内的文本来浏览任何潜在错误。依赖于该计算设备来检测和高亮稍后能易于校正的任何键入错误,用户可以在图形键盘18上更快地键入。
本公开内容的技术可以使计算设备检测、高亮和/或校正自动校正错误以及其他类型的键入错误。本公开内容的技术可以区分和/或补充计算设备的拼写检查特征来校正通常由拼写检查特征遗漏的错误。
本公开内容的技术可适用于常规键盘和接收轻敲和/或手势输入的图形键盘,其中,拼写检查可能通常不太有用,和/或其中,识别正确的键选择本来就不明确。因此,本公开内容的技术可以提高计算设备(例如移动计算设备)的文本输入效率和置信度。
本公开内容的技术可以使得计算设备能够呈现对检测到错误的词,具有高亮和替代建议用户界面。该用户界面的一个优点是用户可以更快速地扫描用户界面中呈现的文本并且浏览任何潜在错误。在一些示例中,用户可以浏览所呈现的文本和潜在错误,而不必执行任何另外的点击或对计算设备提供另外的输入。在一些示例中,用户可以在计算设备上比以前更快速地键入,诸如已知任何键入错误将被高亮并且稍后易于校正。
尽管本公开内容的技术论述了存在敏感屏和图形键盘的使用,但这些技术还适合于具有物理键的物理键盘(例如有线,无线等等)。本公开内容的技术可以应用于各种轻敲、手势、物理和图形键盘。本公开内容的技术可以用于手势键盘,因为手势识别可以基于字典词(并且由此通过拼写检查)。因此,当使用手势键盘时,本公开内容的技术可以通过减少模糊度和错误率来帮助用户。
本公开内容的技术可以有利于能接收键盘上的文本的短语级别输入的计算设备,其中,用户能键入整个短语和句子,而不敲击空格键。该计算设备可以呈现建议校正并且用户可以以一种手势快速地键入大量文本,推迟错误校正(例如校正选择)直到句子结束为止。
本公开内容的技术也可以有利于执行标准拼写检查的计算设备(例如,通过在下划线词的上方有选择地显示校正,使用空间模型信息(触摸和手势)来通知校正,以及使用过去和将来语言上下文来通知校正)。
图2是图示根据本公开内容的一个或多个方面的示例计算设备的框图。在下文中,在图1的上下文内描述图2的计算设备10。图2仅示例计算设备10的一个具体示例,以及在其他实例中,可以使用计算设备10的许多其他示例,以及可以包括在示例性计算设备10中包括的组件的子集或可以包括图2中未示出的另外的组件。
如图2的示例中所示,计算设备10包括用户接口设备12(“UID12”)、一个或多个处理器40、一个或多个输入设备42、一个或多个通信单元44、一个或多个输出设备46以及一个或多个存储设备48。计算设备10的存储设备48还包括UI模块20、键盘模块22、手势模块24和词典数据存储60。键盘模块22包括空间模型26(“SM模块26”)、语言模型模块28(“LM模块28”)。通信信道50可以互连组件12、13、20、22、24、26、28、40、42、44、46和60的每一个,用于组件间通信(物理地、可通信地和/或可操作地)。在一些示例中,通信信道50可以包括系统总线、网络连接、进程间通信数据结构,或用于传送数据的任何其他方法。
计算设备10的一个或多个输入设备42可以接收输入。输入的示例是触觉、音频和视频输入。计算设备10的输入设备42在一个示例中,包括存在敏感屏、触摸敏感屏、鼠标、键盘、语音应答系统、视频摄像机、麦克风,或用于检测来自人或机器的输入的任何其他类型的设备。
计算设备10的一个或多个输出设备46可以生成输出。输出的示例是触觉、音频和视频输出。计算设备10的输出设备46在一个示例中,包括存在敏感屏、声卡、视频图形适配卡、扬声器、阴极射线管(CRT)监视器、液晶显示器(LCD),或用于生成到人或机器的输出的任何其他类型的设备。
计算设备10的一个或多个通信单元44可以通过在一个或多个网络上传送和/或接收网络信号,经由一个或多个网络,与外部设备通信。例如,计算设备10可以使用通信单元44来在无线电网络,诸如蜂窝无线电网络上传送和/或接收无线电信号。同样地,通信单元44可以在卫星网络,诸如GPS网络上传送和/或接收卫星电信号。通信单元44的示例包括网络接口卡(例如,诸如以太网卡)、光学收发器、射频收发器、GPS接收机,或能发送和/或接收信息的任何其他类型的设备。通信单元44的其他示例可以包括在移动设备中建立的GPS、3G、4G和无线电以及通用串行总线(USB)控制器。
在一些示例中,计算设备10的UID 12可以包括输入设备42和/或输出设备46的功能性。在图2的示例中,UID 12可以是或可以包括存在敏感屏。在一些示例中,存在敏感屏可以检测存在敏感屏处和/或附近的对象。作为一个示例范围,存在敏感屏可以检测存在敏感屏的2英寸或更小内的对象,诸如手指或铁笔。存在敏感屏可以确定检测到对象的存在敏感屏的位置(例如(x,y)坐标)。在另一示例性范围中,存在敏感屏可以检测离存在敏感屏6英寸或更小的对象,以及其他示例性范围也是可能的。存在敏感屏可以使用电容、电感和/或光学识别技术,确定由用户的手指选择的屏幕的位置。在一些示例中,存在敏感屏使用触觉、音频或视频刺激,向用户提供输出,如参考输出设备46所述。在图2的示例中,UID 12在UID 12的存在敏感屏处,呈现用户界面(诸如图1的用户界面14),以及在计算设备10上执行的其他各种功能和应用。
尽管图示为计算设备10的内部组件,但UID 12也表示与计算设备10共享数据路径,用于传输和/或接收输入和输出的外部组件。例如,在一个示例中,UID 12表示位于计算设备10的外部封装内并且物理连接到其的计算设备10的内置组件(例如移动电话上的屏幕)。在另一示例中,UID 12表示位于计算设备10的封装外并且与其物理分离的计算设备10的外部组件(例如,与平板计算机共享有线和/或无线数据路径的监视器、投影仪等等)。
计算设备10内的一个或多个存储设备48可以存储在计算设备10的操作期间,用于处理的信息(例如,计算设备10的词典数据存储60可以存储与一个或多个书写语言有关的数据,诸如词或词的常见搭配,其在计算设备10上执行期间,由LM模块28访问)。在一些示例中,存储设备48是临时存储器,意指存储设备48的主要目的不是长期存储。计算设备10上的存储设备48可以被配置为易失存储器,用于信息的短期存储,并且因此,如果断电,则不保留所存储的内容。易失存储器的示例包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)和本领域已知的其他形式的易失存储器。
在一些示例中,存储设备48还包括一个或多个计算机可读存储介质。存储设备48可以被配置成存储比易失存储器更大量的信息。存储设备48可以进一步被配置成非易失存储空间,用于信息的长期存储,以及在通电/断电周期后,保留信息。非易失存储器的示例包括磁硬盘、光盘、软盘、闪存,或电可编程存储器(EPROM)或电可擦可编程(EEPROM)存储器的形式。存储设备48可以存储与UI模块20、键盘模块22、手势模块24、SM模块26、LM模块28和词典数据存储60相关联的程序指令和/或数据。
一个或多个处理器40可以实现计算设备10内的功能性和/或执行指令。例如,计算设备10上的处理器40可以接收和执行由存储设备48存储的指令,其执行UI模块20、键盘模块22、手势模块24、SM模块26和LM模块28的功能性。由处理器40执行的这些指令可以使计算设备10在程序执行期间,将信息存储在存储设备48内。处理器40可以执行模块20至28的指令来使UID 12在UID 12的存在敏感屏处显示具有编辑区16和图形键盘18的用户界面14。即,模块20至28可由处理器40操作来执行各种动作,包括接收在UID 12的存在敏感屏的位置处检测的用户输入,并且使UID 12在UID 12的存在敏感屏处呈现用户界面14。
根据本公开内容的多个方面,图2的计算设备10可以输出包括多个键的图形键盘,以用于在UID 12的存在敏感屏处显示。例如,在计算设备10的操作使用期间,计算设备10的UI模块20可以查询键盘模块22的键盘布局(例如,英文QWERT键盘等等)。UI模块20可以在通信信道50上,将用于键盘布局的请求传输到键盘模块22。键盘模块22可以接收该请求并且利用与键盘布局相关联的数据应答UI模块20。UI模块20可以在通信信道50上接收键盘布局数据并且使用该数据来生成用户界面14。UI模块20可以生成包括编辑区16和作为图形键盘18来自键盘模块22的键盘布局的多个键的用户界面14。UI模块20可以在通信信道50上,传输显示命令和数据来使UID 12在UID12的存在敏感屏处呈现用户界面14。UI模块20可以将包括用于在UID12的存在敏感屏处显示用户界面14的指令的信息发送到UID 12。UID12可以从UI模块20接收显示命令和数据并且使UID 12的存在敏感屏呈现用户界面14。
计算设备10可以接收对多个键中的一个或多个的选择的指示。例如,计算设备10的用户可以通过在呈现图形键盘18的键的UID 12的存在敏感屏的位置处轻敲和/或挥扫,在UID 12处提供输入。UID 12可以接收在UID 12的存在敏感屏处检测的用户输入并且在通信信道50上,将有关用户输入的信息发送到手势模块24。UID 12可以将坐标网格实际上重叠在UID 12的存在敏感屏上。该网格可以由UID 12不可视地显示。该网格可以对每个位置指定包括水平分量(X)和垂直分量(Y)的坐标。每次UID 12检测UID 12的存在敏感屏处的用户输入时,手势模块24可以从UID 12接收信息。该信息可以包括一个或多个坐标位置以及相关联的时间,向手势模块24指示UID 12在UID 12的存在敏感屏处的何处检测到用户输入和UID 12何时检测到用户输入两者。
手势模块24可以将从UID 12接收的信息排序成运动事件的按时间排序的序列。运动事件的序列可以表示在UID 12的存在敏感屏处,由用户执行的一个或多个轻敲和/或手势的序列(该序列简称为“手势”)。序列中的每个运动事件可以包括作为用户输入的坐标位置的位置分量、作为与用户输入相关联的时间的时间分量和动作分量。动作分量可以指示该运动事件对应于UID 12的存在敏感屏处的按下还是UID 12的存在敏感屏处的提起。
手势模块24可以确定该序列中的第一运动事件的动作分量对应于按下事件。手势模块24可以基于序列中的先前运动事件,确定序列中的当前运动事件(不同于第一运动事件并且在其之后)的动作分量。手势模块24可以将当前运动事件的时间和位置分量与先前运动事件的时间和位置分量进行比较。手势模块24可以确定两个运动事件之间的时间和/或距离的大差值(例如十毫秒和/或十像素)表示按下事件之前的提起事件。手势模块24可以将手势的起始位置确定为具有按下动作分量的序列中的第一运动事件的位置分量。手势模块24可以将手势的结束位置确定为具有提起动作分量的序列中的第一运动事件的位置分量。手势模块24可以将第二后续手势的起始位置确定为具有在具有提起动作分量的序列中的运动事件之前的、具有按下动作分量的序列中的第一运动事件的位置分量。
基于运动事件的序列,手势模块24可以确定用户输入对应于一个或多个手势以及可以确定包括长度、形状、速率等等的每个手势的一个或多个特性。手势模块24可以将手势的长度确定为手势的起始位置和在包括手势的结束位置的序列中的运动事件之前发生的序列中的最后一个运动事件的位置分量之间的UID 12的存在敏感屏处的物理距离。手势模块24可以在检测到手势的结束之前确定手势的长度。例如,随着序列中的运动事件的位置分量远离手势的开始移动,手势的长度可以增加。在手势的结束之前,随着序列中的运动事件的位置分量朝向手势的开始位置移动,手势的长度可以减小。
手势模块24可以将手势的形状确定为线性形状、弧状等等。手势模块24可以通过确定与序列中的运动事件的每个位置相关联的UID 12的存在敏感屏的共用线性面,将手势的形状确定为线性形状。手势模块24可以确定序列中的运动事件的位置的90%之间的共用线性面并且确定该位置十分接近线性形状。手势模块24可以进一步区分水平线性形状和垂直线性形状(例如,通过确定位置之间的共用线性面对应于UID 12的存在敏感屏处的水平或垂直位置)。
手势模块24可以通过确定与序列中的运动事件的每个位置相关联的UID 12的存在敏感屏处的共用中心点和从中心点到每个运动事件的位置的共同距离(即半径),将手势的形状确定为弧状。手势模块24可以确定序列中的运动事件的位置的90%之间的共用中心和距离并且确定这些位置十分接近弧状。
手势模块24可以确定手势的速率对应于手势的长度除以手势的经过时间。如上所述,手势模块24可以确定手势的长度、手势的起始位置和手势的结束。当手势模块24确定手势的起始位置时,手势模块24还可以确定手势的开始时间。手势模块24可以确定该手势的起始时间对应于与该手势的起始位置对应的、序列中的运动事件的时间分量。
当手势模块24确定手势的结束位置时,手势模块24也可以确定手势的结束时间。手势模块24可以确定该手势的结束时间对应于与该手势的结束位置对应的、序列中的运动事件的时间分量。手势模块24可以将手势的经过时间确定为手势的起始时间和结束时间之间的差。手势模块24可以将手势的速率确定为手势的长度除以手势的经过时间。
在确定对应于用户输入的这些特征(例如速率、距离等等)后,手势模块24可以在通信信道50上,将一个或多个手势的序列传输到UI模块20。对序列中的每个手势,手势模块24可以包括每个手势的特性和对应的运动事件。例如,序列中的每个手势,不管该手势表示轻敲还是连续挥扫手势,均可以包括起始位置、结束位置、长度、速率、形状、两个或以上动作分量、两个或以上时间分量和两个或以上位置分量。
UI模块20可以从手势模块24接收手势的序列并且确定UID 12接收到对多个键中的一个或多个的选择的指示。换句话说,UI模块20可以将序列中的每个手势的位置分量与呈现图形键盘18的UID 12的存在敏感屏的区域比较。基于该比较,UI模块20可以确定每个手势的位置分量对应于图形键盘18内的位置,并且可以确定手势的每一个接近图形键盘18的一个或多个键的选择。为译码一个或多个键的选择,UI模块20可以在通信信道50上,将手势的序列,连同UID 12的存在敏感屏呈现每个键的位置一起传输到键盘模块22。
计算设备10可以至少部分基于键的选择的指示,确定字符串。例如,键盘模块22可以从UI模块20接收手势的序列和键位置。键盘模块22可以基于手势的序列,生成键选择的序列。至少部分基于键序列,键盘模块22可以生成表示键的选择的字符串。键盘模块22可以在通信信道50上,将有关字符串的数据传输到UI模块20。UI模块20可以将字符串包括在用户界面14的编辑区16内并且可以使UID 12将如在UID 12的存在敏感屏处显示的用户界面14更新为包括该字符串。
键盘模块22可以利用SM模块26来从手势序列生成键序列并且生成表示键的选择的字符串。例如,键盘模块22可以与SM模块26共享手势的序列和每个键位置。SM模块26可以基于每个手势的位置和时间分量,确定该手势是否表示一个或多个键选择。例如,SM模块26可以将手势的序列中的每个手势的位置分量与每个键位置进行比较,并且对每个键,生成发生键的选择的SMP。序列中的每个手势的位置分量可以包括UID 12的一个或多个位置。键位置(例如键的中心)可以包括UID 12的不同位置。
SM模块26可以基于键位置和一个或多个手势位置之间的欧几里德距离,确定该手势对应于键的选择的概率。SM模块26可以将较高概率和与手势的位置分量共享较小欧几里德距离的键而不是与手势的位置分量共享较大欧几里德距离的键关联(例如,当键与手势的位置分量共享几乎0的欧几里德距离时,键选择的概率可以超出99%,以及随着欧几里德距离增加,键选择的概率成比例地下降)。基于与每个键相关联的SMP,键盘模块22可以将具有最高空间模型概率的单独键选择汇集成用于每个手势的键的按时间排序的序列。键盘模块22可以将手势的序列中的一个或多个手势的键序列连结成单一键序列(例如,手势的序列可以包括多个轻敲和/或挥扫手势并且键盘模块22可以确定单个键序列表示序列中的所有手势)。按图1中所示的示例,键序列可以包括<D键>、<E键>、<A键>、<D键>。
键盘模块22可以从键的序列确定字符的序列和键盘操作以确定由手势的序列表示的字符串。例如,图形键盘18的每个键可以表示字符或键盘操作。键盘模块22可以基于键的序列,通过使单独字符键选择与键盘操作键选择结合,确定由一个或多个键选择表示的特定字符。诸如数字或小写字母的字符可能需要单个字符键选择(例如<字母键>,<数字键>等等)。诸如大写字母的字符可能需要两个键选择(例如<换档键>+<字母键>等等)。键盘模块22可以基于键盘操作键选择前的一个或多个字符键选择(例如<字母键>+<退格键>等等),确定键序列中的校正。键盘模块22可以通过将单独键按压组合成考虑校正的字符的序列,从键的序列确定字符串(例如<D键>+<E键>+<A键>+<D键>可以对应于字符串“dead”)。
计算设备10可以至少部分基于字符串,确定多个候选词。例如,键盘模块22可以基于词典数据存储60内的数据,自动校正(例如拼写检查和/或语法检查)从键的序列生成的字符串。基于自动校正,键盘模块22可以将共享字符的类似序列(例如类似拼写)的一个或多个候选词生成为字符串。
词典数据存储60可以包括表示用于一个或多个书写语言的字典的一个或多个排序的数据库(例如,散列表、链接列表、排序的阵列、图形等等)。每个字典可以包括书写语言词汇内的词列表和词组合。键盘模块22可以通过比较字符串与词典数据存储60中的词的每一个,在词典数据存储60中执行查找字符串。键盘模块22可以基于该比较,将杰卡德相似系数指定给字典中的每个词并且确定具有最大杰卡德相似系数的一个或多个候选词。换句话说,具有最大杰卡德相似系数的一个或多个候选词可以表示具有与字符串的拼写具有最紧密关联的拼写的字典数据存储60中的词。键盘模块22可以确定包括字符串的部分或全部字符的一个或多个候选词并且确定具有最高杰卡德相似系数的候选词表示自动校正的字符串。在一些示例中,具有最高杰卡德相似系数的候选词与从键序列生成的字符串匹配。例如,用于字符串“dead”的候选词可以包括“dead”、“deaf”、“deal”、“dean”、“dear”和“deadly”。
除使用词典数据存储60确定一个或多个候选词外,键盘模块22将处理卸载到外部计算源,诸如服务器或可操作地耦接到计算设备10的其他远程计算设备。以这种方式,计算设备10可以通过不执行在词典数据存储60中搜索候选词的指令,节省计算资源、存储和/或存储器空间。例如,计算设备10可以使用通信单元44,与服务器设备或在互联网上通信。计算设备10可以经由本地网络或互联网,向一个或多个外部计算设备,诸如服务器传输和接收数据。键盘模块22可以将字符串发送到处理字符串的服务器来基于该字符串,远程地确定一个或多个候选词的列表。作为响应,键盘模块22可以基于字符串,接收多个候选词(例如,可能的自动校正)。
不是仅依赖于字典来确定从该序列生成的字符串是否包括错误,计算设备10的键盘模块22可以使用多个特征来确定所输入的字符串是错误的拼写概率。如果拼写概率满足阈值,则键盘模块22可以使UI模块20不仅将自动校正的字符串包括在用户界面14的编辑区16内,而且包括基于多个特征识别的建议校正。
计算设备10可以至少部分基于多个候选词和多个特征,确定字符串包括多个候选词的至少一个的不正确拼写的拼写概率。多个特征至少包括与一个或多个候选词的每一个相关联的空间模型概率。例如,键盘模块22可以确定字符串表示在自动校正期间识别的至少一个候选词的不正确拼写的拼写概率。键盘模块22可以利用多个特征(例如有关用户输入和候选词的各种类型的数据)来确定与每个候选词相关联的拼写概率。例如,对每个候选词,键盘模块22可以基于多个特征的每一个,确定特征概率,并且使用所有特征概率的加权平均,确定与候选词相关联的拼写概率。如果与给定候选词相关联的拼写概率满足阈值,则该字符串可以表示给定候选词的不正确拼写。
多个特征可以包括用于每个候选词的SMP、与每个候选词相关联的语言模型概率(“LMP”)、对多个键中的一个或多个的选择的键入速度、与对多个键中的一个或多个的选择相关联的退格使用百分比,以及建议栏使用百分比。在下文中,详细地描述多个特征的每一个。
响应于确定与多个候选词的至少一个相关联的拼写概率满足阈值,计算设备10可以使UID 12的存在敏感屏输出多个候选词中的至少一个以显示。例如,基于多个特征和对候选词“dear”、“dead”、“dean”等等的每一个,键盘模块22可以确定字符串(例如“dead”)表示候选词的不正确拼写的拼写概率。键盘模块22可以将与候选词的每一个相关联的字符串的拼写概率与阈值(例如90%)比较。如果候选词的拼写概率超出该阈值,则键盘模块22可以确定该拼写概率满足该阈值。
响应于确定与至少一个候选词相关联的拼写概率超出该阈值,键盘模块22可以使计算设备10在UID 12的存在敏感屏的位置处输出至少一个候选词。例如,键盘模块22可以确定对候选词30(例如,“dear”),与字符“dead”相关联的拼写概率超出90%。键盘模块22可以在通信信道50上,将使UI模块20更新用户界面14的数据传输到UI模块20。UI模块20可以命令UID 12,以使UID 12的存在敏感屏呈现包括候选词30(例如“dear”)的更新的用户界面14,表示对字符串“dead”的建立校正。
键盘模块22用于确定字符串的拼写概率的一个特征可以包括用于每个候选词的SMP。键盘模块22可以使用SM模块26,确定用于每个候选词的SMP。例如(如上所述确定用来生成字符串的键序列),键盘模块22可以使SM模块26将手势的序列中的每个手势的位置分量与每个键位置比较,并且对每个键,生成发生键的选择的SMP。换句话说,在最初生成字符串中,键盘模块22可能已经生成对应于手势的序列的键的序列,包括具有最高SMP的键,如由SM模块26确定的。键盘模块22还确定字符串的字符串SMP(例如,包括在键的初始序列中的每个键的SMP的乘积)。
键盘模块22可以类似地确定与基于字符串的自动校正生成的候选词的每一个相关联的SMP。例如,键盘模块22可以确定用于每个候选词的键的空间测试序列。键的空间测试序列可以表示如果用户在图形键盘18上键入,将使键盘模块22将候选词生成为字符串的键选择。用于键的空间测试序列中的每个键的SMP的乘积表示与那一候选词相关联的SMP。具有候选词的高值SMP可以指示手势的序列内的位置分量与键的相应的空间测试序列中的键的键位置共享接近的欧几里德距离。键盘模块22可以重复这些步骤来确定与每个候选词相关联的SMP。
用于由键盘模块22用来确定字符串的拼写概率的另一特征可以包括与每个候选词相关联的LMP。键盘模块22可以确定字符串是否表示基于过去上下文的不可能的词,和/或基于未来上下文的不可能的词。如果校正或键入的词对于在语言模型上下文中的之前词(例如n元语法)具有低概率,则有关该校正(例如字符串)具有更大不确定性。
换句话说,键盘模块22的LM模块28可以指定每个候选词语法上位于词的序列(例如句子)之后、之前和/或之内的概率(例如LMP),该词的序列从在接收对应于该字符串的选择的指示之前和/或之后接收的用户输入生成。在一些示例中,LM模块28可以确定候选词语法上位于在句子中在字符串之前接收的一个或多个词之后的概率。LM模块28可以确定候选词在语法上位于在句子中在字符串之后接收的一个或多个词之前的概率。LM模块28可以确定候选词在语法上位于在句子中的一个或多个先前词之后和在句子中的一个或多个后续词之前的概率。
在一些示例中,LM 28可以使用不基于语法的规则(例如,俚语或口语词使用的模式)来确定候选词位于在字符串之前或之后接收的词的序列之前、之后或之内的概率。LM模块28可以确定在包括字符串之前接收的一个或多个词和候选词的词的序列之中,候选词位于在字符串之前接收的一个或多个词之后的概率。LM模块28可以确定在包括字符串之后接收的一个或多个词和候选词的词的序列中,候选词位于在字符串之后接收的一个或多个词之前的概率。LM模块28可以确定在包括字符串之前接收的一个或多个词、在字符串之后接收的一个或多个词以及候选词的词的序列之中,候选词位于一个或多个先前词之后和一个或多个后续词之前的概率。
为确定与每个候选词相关联的LMP,LM模块28可以使用一个或多个n元语法语言模型。n元语法语言模型可以基于序列(即P(xi|xi-(n-1),...,xi-1))中的先前项,对项的连续序列中的项xi(字母或词),提供概率分布或基于序列(即P(xi|xi+1,...,xi+(n-1)))中的后续项,对项的连续序列中的项xi,提供概率分布。类似地,n元语法语言模型可以基于序列中的先前项和序列中的后续项(即P(xi|xi-(n-1),...,xi+(n-1))),对项的连续序列中的项xi,提供概率分布。例如,二元语法语言模型(n元语法模型,其中,n=2)可以提供词“dead”在序列(即句子)中的“My”之后的概率。三元语法语言模型(n元语法模型,其中,n=3)可以提供词“dead”在序列中的两个词“friend is”之前的概率。
LM模块28可以使用n元语法语言模型结合词典数据存储60中的数据来确定与字符串和候选词的每一个相关联的LMP。键盘模块22可以将与字符串和候选词的每一个相关联的LMP用作多个特征的一个来生成与每个候选词相关联的拼写概率。
例如,计算设备10可以确定在接收选择的指示之前的时间接收的多个词(例如,用户可以在UID 12的存在敏感屏处呈现的图形键盘18处提供用户输入以及计算设备10可以确定该用户输入对应于词“My”)。键盘模块22可以基于多个词,确定在包括多个词和一个或多个候选词的每一个的词的序列中,一个或多个候选词的每一个位于多个词之后的一个或多个候选词的每一个的LMP。换句话说,键盘模块22可以使LM模块28确定与出现在包括词“My”和相应的候选词的序列(例如句子)中的词“My”之后的候选词“dead”、“deaf”、“deal”、“dean”、“dear”和“deadly”的每一个相关联的LMP。
计算设备10可以确定在接收选择的指示之后的时间接收的多个词(例如,用户可以在UID 12的存在敏感屏处呈现的图形键盘18处提供另外的用户输入,并且计算设备10可以确定该另外的用户输入对应于词“friend is visiting tomorrow”)。键盘模块22可以基于多个词,确定在包括多个词和一个或多个候选词的每一个的词的序列中,一个或多个候选词的每一个位于多个第二词之前的一个或多个候选词的每一个的LMP。换句话说,键盘模块22可以使LM模块28确定在包括词“friend is”和相应的候选词的序列(例如句子)中,与出现在词“friendis”之前的每个候选词,“dead”、“deaf”,“deal”、“dean”、“dear”和“deadly”相关联的LMP。
计算设备10可以确定在接收选择的指示之前的时间接收的多个第一词和在接收选择的指示之后的时间接收的多个第二词(例如,当计算设备10接收对应于“My dead friend is visiting tomorrow”的用户输入时,键盘模块22可以在LM模块28查询与“dead”相关联的候选词的LMP)。键盘模块22可以基于多个第一词和多个第二词,确定在包括多个第一词、一个或多个候选词的每一个和多个第二词的词的序列中,一个或多个候选词的每一个位于多个第一词之后和位于多个第二词之前的一个或多个候选词的每一个的LMP。换句话说,键盘模块22可以使LM模块28确定在包括词“My”、相应的候选词和词“friendis”的序列(例如句子)中,与出现在词“My”之后和词“friend is”之前的候选词的每一个“dead”、“deaf”、“deal”、“dean”、“dear”和“deadly”相关联的LMP。
一些计算设备10可以检测过去词(例如,从在字符串之前接收的用户输入确定的词)中的潜在错误,本公开内容的技术可以提供考虑语言模型上下文中的将来词的优点。例如,如果计算设备10首先预测对第一词,“Do”比“So”更可能,当所键入的下一词是“happy”时,计算设备10可以确定和高亮潜在错误。与常规的自动校正机制不同,本公开内容的技术能使用过去和将来词的上下文。
由键盘模块22用来确定字符串的拼写概率的另一特征可以包括使键盘模块22生成字符串的多个键的一个或多个的选择的键入速度。如果非常快速地键入词(例如字符串),则计算设备10可以确定该词非常可能包含错误并且不太可能由用户人工校验。换句话说,计算设备10可以将高键入速度(例如当用户快速键入时)与较高拼写概率相关联,以及将低键入速度(例如当用户缓慢键入时)与较低拼写概率相关联。
键盘模块22可以将与选择的指示相关联的键入速度确定为在一定量的时间期间键入的字符的数目。换句话说,键盘模块22可以将键入速度计算为字符串中的字的数量除以用户键入字符串的持续时间。键盘模块22可以基于键入速度,以因子(例如正或负10%)调整字符串的拼写概率。
例如,选择的指示可以在第一时间点开始(例如,当用户在UID 12的存在敏感屏处首次开始键入“dead”时)并且可以在第二时间点结束(例如,当用户在UID 12的存在敏感屏停止键入“dead”时)。如前所述,手势模块24可以确定分别包括与UID 12何时和何地检测到UID12的存在敏感屏处的每个手势相关联的位置和时间分量的手势的序列。序列中的最早时间分量可以对应于选择的指示的开始。序列中的最新时间分量可以对应于选择的指示的结束。
键盘模块22可以确定字符串中包括的字符的数量(例如“dead”包括四个字符)。键盘模块22可以确定从第一时间点到第二时间点的持续时间。换句话说,键盘模块22可以确定选择的指示的开始和结束之间的经过时间。键盘模块22可以基于持续时间和字符的数量,确定选择的键入速度(例如,如果接收对应于“d-e-a-d”的选择的持续时间是2秒,则键盘模块22可以将字符串“dead”的键入速度表示为每秒两个字符)。
键盘模块22用来确定字符串的拼写概率的另一特征可以包括与使键盘模块22生成字符串的多个键的一个或多个的选择相关联的退格使用百分比。如果用户删除和重新键入当前词(例如字符串)中的字母,则计算设备10可以确定用户可能正关注当前词并且人工地校验它。换句话说,计算设备10可以将高退格使用百分比(例如当用户使用键入时,用户频繁地使用删除键或退格键来手动地编辑特定字符串时)与较低拼写概率相关联,以及将低退格使用百分比与较低拼写概率相关联。
为确定退格使用百分比,键盘模块22可以确定包括在多个键的一个或多个的选择中的键选择的总数量。例如,键盘模块22可以将键选择的总数量确定为从手势序列生成的键序列中的键的总数量。键盘模块22可以确定包括在多个键的一个或多个的选择中的退格键选择的数量以及包括在多个键的一个或多个的选择中的删除键选择的数量。例如,键盘模块22可以遍历键序列并且对删除键的每个选择和退格键的选择,递增计数器的值。键盘模块22可以基于退格键选择的数量、删除键选择的数量和键选择的总数量,确定退格使用百分比。例如,键盘模块22可以将退格使用百分比确定为计数器值除以键的总数量。
即使字符串对应于有效词典词(例如,词典中的词),键盘模块22可以确定一个或多个候选词来输出,代替该字符串。字符串可以对应于词典中的第一词,并且响应于确定与字符串相关联的上下文,键盘模块22可以至少部分基于上下文,将词典中的第二词识别为多个候选词的一个候选词。
换句话说,即使字符串可以对应于在词典数据存储60中找到的有效字典词,位于该字符串之前和/或之后的词(例如上下文)可以指示该字符串表示不同有效字典词的不正确拼写。类似地,与基于手势输入的运动事件的序列相关联的位置(例如上下文)可以指示字符串基于的图形键盘18中的键的一个的选择中的模糊度。
键盘模块22可以利用上述的一个或多个技术来确定词典中的具有表示字符串的正确拼写的较高似然性的第二词。例如,使用上述的LM模块28的n元语法语言模型,键盘模块22可以确定在词“My”之后和词“friend is”之前,与位于词的序列中的词“dead”相关联的LM概率。键盘模块22可以确定词典数据存储60中的第二词“dead”和确定在词“My”之后和词“friend is”之前,与位于词的序列中的词“dear”相关联的LM概率。响应于确定与第二词“dear”相关联的LM概率超出第一词“dead”,键盘模块22可以将第二词“dear”包括在多个候选词中。
在其他实例中,使用SM模块26,键盘模块22可以确定用来生成字符串“dead”的一个或多个键的选择的模糊度。例如,基于手势输入的运动事件的序列可以包括与“D”键、“E”键、“A”键相关联的位置,以及键“D”和“R”之间的位置。即使键盘模块22可能首先将词“dead”识别为字符串的准确表示,使用SM模块26,键盘模块22可以将词典数据存储60中的词“dear”识别为字符串的同样精确表示并且将词“dear”包括为多个候选词中的一个候选词。
图3A-3B是根据本公开内容的一个或多个方面,图示用于呈现文本的建议校正的示例图形用户界面的原理图。在下文中,在来自图1和图2的计算设备10(如上所述)的上下文中,描述图3A-3B。
计算设备10可以输出包括编辑区82A和图形键盘84A的图形用户界面80A以显示。图形键盘84A可以包括建议栏86,该建议栏86包括能包括在编辑区82A中的建议词92A-92N(统称为“建议词92”)。由计算设备10用来确定字符串的拼写概率的多个特征可以包括建议栏使用百分比。如果用户将建议栏用于该词(例如,字符串)或相邻词,则计算设备10可以确定用户很可能正关注自动校正建议和人工地校验它们(例如人工地校验字符串,并且因此,高建议栏使用降低字符串的拼写概率)。与在持续时间内,从由计算设备10接收的用户输入中由计算设备10生成的总数量词相比,计算设备10可以将建议栏使用百分比确定为在持续时间内,在存在敏感屏处检测的选择建议词92的数量。
计算设备10的多个特征中的一个可以用来将字符串的拼写概率确定为建议栏使用百分比。计算设备10的UI模块20可以使UID 12在包括编辑区82A和图形键盘84A的UID 12的存在敏感屏处呈现用户界面80A。UI模块20可以将建议栏86包括为图形键盘84A的一部分。建议栏86可以包括表示用户可以选择并且使计算设备10包括为编辑区82A内的文本的建议词92的图形元素。例如,图3A将从用户输入解释的文本串图示为“give me fi”。当计算设备10检测到用户输入时,键盘模块22和UI模块20可以使建议词92A、建议词92B和建议词92N(例如,“five”,“fib”和“fig”)出现在建议栏86处,作为完成部分词“fi”的建议词92。用户可以选择在图形键盘84A的键处继续提供输入来完成词“fi”或用户可以选择建议栏86中的一个建议词92。
计算设备10可以确定对高建议栏使用百分比,字符串的拼写概率减小。例如,如果在与字符串或相邻词(例如先前词或后续词)相关联的输入期间,则从建议栏86选择建议词。换句话说,计算设备10可以将建议栏86的频繁使用与来自不要求帮助校验字符串的拼写的用户的用户输入相关联。从建议栏86频繁选择建议词92的用户可能更关注在编辑区中呈现的文本。
与在持续时间内,从由计算设备10接收的用户输入,由计算设备生成的总数量的词相比,计算设备10可以将建议栏使用百分比确定为在持续时间内,在存在敏感屏处检测的一个或多个建议词92的选择的数量。换句话说,以某一周期性速率(例如,每1-59秒等等),计算设备10的键盘模块22可以计数在用户界面80A的编辑区82A内出现的、从用户输入生成的词。以同一周期性速率,键盘模块22同样地计数与在建议栏86处检测的用户输入相关联的这些词的子集(例如,键盘模块22可以计数对应于建议栏86内的建议词92的选择、编辑区82A内的词的数目)。与编辑区82A内的总词相比,建议栏使用百分比可以对应于词的子集的计数。如果建议栏使用百分比超出阈值(例如50%),则键盘模块22可以减小字符串的拼写概率。
本公开内容的技术使得计算设备能够检测由用户做出的潜在键入错误和/或自动校正由拼写检查遗漏的错误(例如,当词出现在词典,诸如词典数据存储60中,然而也表示错误时)。下划线潜在错误检测。对目前检测,在词上方的框中有选择地示出替代建议。
换句话说,当输出候选词以用于在UID 12的存在敏感屏处显示时,计算设备10可以定位候选词并且格式化与该候选词相关联的字符串。计算设备10可以输出字符串以显示(例如在UID 12的存在敏感屏处)并且在该字符串的上方输出至少一个候选词。
计算设备10可以输出具有包括下划线、高亮、字体大小和字体颜色的至少一个的格式的字符串。例如,图3A图示出现在字符串“food”上方的候选词88A(“good”)。字符串food包括下划线格式以及候选词good以词泡、框等等出现。
在框上轻敲将用建议替代下划线词。换句话说,在计算设备10在UID 12的存在敏感屏处呈现候选词后,用户可以选择该候选词来替换最初由用户录入的字符串。例如,计算设备10可以接收在UID 12的存在敏感屏的位置处检测到的用户输入的指示。计算设备10可以至少部分基于用户输入的指示,确定所选则的候选词。所选则的候选词是在字符串上方输出的多个候选词中的一个。计算设备10可以输出所选择的候选词,替代编辑区82A中的字符串。例如,用户可以在UID 12的存在敏感屏的位置处提供用户输入,其中,UID 12的存在敏感屏呈现候选词88A。计算设备10可以确定该输入是候选词88A的选择。作为响应,计算设备10可以使UID 12的存在敏感屏呈现候选词88A(“good”),代替字符串“food”。
图3B将用户界面80B图示为在一段时间后图3A的用户界面80A的示例。为图示目的,将理解到计算设备10可以输出用户界面80A,包括在第一时间点的UID 12的存在敏感屏处的候选词88A。计算设备10可以确定第一时间点和第二时间点之间的经过时间。响应于确定经过时间超出时间阈值(例如,1分钟),计算设备10可以抑制输出候选词80A。
计算设备10在呈现用户界面80A后一分钟,可以在UID 12的存在敏感屏处呈现用户界面80B。在呈现用户界面80B中,虚线圆区域88B图示候选词88A和相关联的词泡、框等等不再出现在UID 12的存在敏感屏处。换句话说,在呈现候选词88A后一分钟,并且未接收与候选词88A的选择对应的用户输入以代替字符串“food”,候选词88A从UID 12的存在敏感屏消失。
图3B图示用于呈现多个候选词的示例用户界面80B。计算设备10的用户可以使用向上挥扫手势,扩展任何框来显露另外的建议(例如候选词)。换句话说,计算设备10可以接收在UID 12的存在敏感屏的位置处检测的用户输入的指示,其中,在编辑区82B内显示多个候选词的至少一个。响应于接收用户输入的指示,计算设备10可以输出多个候选词的至少一个另外的候选词以在UID 12的存在敏感屏处显示。例如,计算设备10可以接收用户输入94的指示。手势模块24可以处理该指示并且确定用户输入94对应于挥扫手势。UI模块20可以从来自手势模块24接收的信息,确定挥扫手势的起始位置开始于UID12的存在敏感屏呈现用户界面80A的候选词90A的UID 12的存在敏感屏上的位置。UI模块20可以确定该挥扫手势表示来自用户的命令来将另外的候选词(例如,不仅仅是候选词90A)呈现为用于字符串“nun”的建议替换。
UI模块20可以查询键盘模块22另外的候选词来在UID 12的存在敏感屏处呈现。换句话说,键盘模块22可以确定与多个候选词相关联的拼写概率超出阈值,并且首先可以使UI模块20仅将具有最高拼写概率的候选词包括在用户界面80A中。来自UI模块20的查询可以使键盘模块22将具有较低拼写概率的其他候选词传输到UI模块20,用于包括在用户界面80B中。词泡90B图示用于字符串“nun”的多个候选词建议。
图4是根据本公开内容的一个或多个方面,图示用于呈现对文本的建议校正的示例图形用户界面的原理图。在如前在图1和图2中所述的计算设备10的上下文中,在下文中描述图4。
计算设备10可以输出包括编辑区98和图形键盘100的用户界面96,以在UID 12的存在敏感屏处显示。如上所述,计算设备10可以接收图形键盘100处的用户输入并且基于用户输入,生成字符串。计算设备10可以基于词典内的数据(例如词典数据存储60),自动校正字符串。此外,计算设备10可以将一个或多个候选词生成为用于该字符串的建议替换。在一些示例中,计算设备10可以确定与一个或多个候选词的每一个相关联的空间模型概率是与一个或多个候选词的每一个相关联的候选词SMP。计算设备10可以确定与字符串相关联的字符串SMP,该字符串包括多个键的选择的正确拼写。计算设备10可以确定该字符串不包括在词典中。响应于确定该字符串不包括在词典中,计算设备10可以确定该字符串的字符串SMP超出字符串阈值。如果字符串的字符串SMP超出字符串阈值,则计算设备10可以确定多个候选词包括该字符串。
换句话说,本公开内容的技术使得计算设备能够检测错误的自动校正的词汇表外的词。用户可以在图形键盘100的键处有意地提供用户输入来使计算设备10生成不包括在任何词典中的编辑区98内的字符串(例如,在词典数据存储60中未找到的非字典字符串)。即,字符串可以是个人姓名、俚语术语等等。如上参考图2所述,使用SM模块26,计算设备10可以确定图形键盘100的每个键的SMP并且生成键的序列,每个键具有最高SMP。从键序列,计算设备10可以生成字符串SMP和相关联的字符串。用于包括在键的序列中的每个键的SMP的乘积是该字符串空间模型概率。
如上进一步所述,计算设备10可以将字符串自动校正成具有在词典数据存储60中找到的最高杰卡德相似系数的词。换句话说,如果计算设备10确定该字符串不在词典数据存储60内,则计算设备10可以将该字符串自动校正成与非字典字符串相比,具有最高杰卡德相似系数的字典词,并且确定一个或多个候选词(也在词典数据存储60中找到)。此外,基于多个特征,计算设备10可以确定字符串表示一个或多个候选词的不正确拼写的拼写概率。
计算设备10可以确定(自动校正前生成的字符串的)字符串SMP超出字符串阈值。换句话说,计算设备10可以确定非字典字符串的字符串SMP对应于通常与从有意和/或准确用户输入生成的字符串相关联的SMP。如果计算设备10确定字符串SMP超出字符串阈值,则计算设备10可以将非字典字符串(例如,自动校正前生成的字符串)包括在计算设备10可以在编辑区98内显示的多个候选词中。
例如,图4图示计算设备10从“muggle”自动校正成“muffin”的编辑区98内的字符串。与字符串“muggle”相关联的SMP可能超出字符串阈值(例如,50%至95%的阈值值可以表示对应于准确键选择的词的最小空间模型概率)。计算设备10可以呈现自动校正的字符串“muffin”,同时还将不正确字符串“muggle”呈现为候选词102。
计算设备10可以基于多个因素(例如特征),检测由字符串的自动校正产生的潜在校正错误。一种这种因素或特征是校正模糊度,即,如果用于该词(例如字符串)的第二最佳校正(例如候选词)具有近似等效于(即,接近)最高校正的拼写概率,则在由计算设备10确定拼写概率的进行判定中可能存在模糊度。计算设备10可以指示所检测到的模糊度并且将第二选择可能显示为潜在替代。
换句话说,计算设备10可以将多个候选词确定为用于字符串的建议替换,并且还确定与每个候选词相关联的拼写概率。计算设备10可以基于每个相关联的拼写概率之间的值的相近度,确定两个或以上候选词之间的不确定度(例如模糊度)。当计算设备10确定不确定度时,计算设备10可以将每个候选词输出为建议,而不仅仅是具有可能值略高的拼写概率的候选词。
例如,计算设备10可以确定字符串包括多个候选词的第一词的不正确拼写的第一拼写概率。计算设备10可以确定该字符串包括多个候选词的第二词的不正确拼写的第二拼写概率。计算设备10可以确定第一拼写概率和第二拼写概率之间的差。响应于确定该差不超出模糊阈值(例如1%至5%),计算设备10可以将第一词和第二词输出为用于字符串的两个建议替换,以在UID 12的存在敏感屏处显示。
图5是根据本公开内容的一个或多个方面,图示计算设备的示例操作的流程图。由计算设备(诸如图1和图2中所示的计算设备10)的一个或多个处理器,执行图5的过程。为示例目的,在图1和图2的计算设备10的上下文内,在下文中,描述图5。
在图5的示例中,计算设备10可以输出包括多个键的图形键盘18(110)。例如,UI模块20可以命令UID 12在UID 12的存在敏感屏处呈现用户界面14,包括具有多个键的图形键盘18。计算设备10可以接收对多个键中的一个或多个的选择的指示(120)。例如,手势模块24可以从UID 12接收信息并且将该信息汇集成运动事件的序列和/或手势的序列。UI模块20可以确定手势的序列的位置分量指示在UID 12的存在敏感屏呈现图形键盘18的多个键的UID 12的存在敏感屏的位置处的用户提供的输入。
如图5所示,计算设备10可以确定字符串(130)。例如,键盘模块22可以将手势的序列中的每个手势的位置分量与多个键的位置比较(例如,使用SM模块26)。键盘模块22可以生成键序列并且从该键序列,生成对应于键的序列的字符串。计算设备10可以确定多个候选词(140)。例如,键盘模块22可以将字符串与词典数据存储60内的每个词比较并且向词典数据库60内的每个词指定杰卡德相似系数。键盘模块22可以确定与最高杰卡德相似系数相关联的词典数据存储60内的词的子集表示多个候选词。
计算设备10可以确定字符串包括多个候选词的至少一个的不正确拼写的拼写概率(150)。例如,键盘模块22可以确定与每个候选词相关联的空间模型概率。基于空间模型概率和多个特征,键盘模块22可以确定字符串表示候选词的不正确拼写的用于每个候选词的拼写概率。
在图5的示例中,计算设备10可以确定拼写概率是否满足阈值(160)。例如,键盘模块22可以将与候选词的每一个相关联的拼写概率与字符串比较来确定与每个候选词相关联的拼写概率是否超出阈值值(例如50%)。
如果拼写概率不满足阈值,则计算设备10可以抑制输出候选词。如果拼写概率满足阈值,则计算设备10可以输出多个候选词的至少一个(170)。例如,键盘模块22可以确定与候选词30相关联的拼写概率超出阈值并且与其他候选词相关联的拼写概率不超出该阈值。键盘模块22可以将会使UI模块20更新用户界面14的数据发送到UI模块20,以在编辑区16内,在字符串的文本的上方包括候选词30。UI模块20可以使UID 12在UID 12的存在敏感屏处呈现更新的用户界面14。
在一些示例中,操作可以包括由计算设备10,确定在接收对多个词中的一个或多个的选择的指示前由计算设备10接收的多个词。该操作还包括由计算设备10并且基于多个词,确定用于一个或多个候选词的至少一个的至少一个语言模型概率。至少一个语言模型概率可以指示一个或多个候选词中的至少一个是否在包括多个词和一个或多个候选词中的至少一个的词的序列中位于多个词之后。
在一些示例中,操作可以包括由计算设备10,确定在接收对多个键中的一个或多个的选择的指示之后由计算设备10接收的多个词。操作还可以包括由计算设备10并且基于多个词,确定用于一个或多个候选词中的至少一个的至少一个语言模型概率。至少一个语言模型概率可以指示一个或多个候选词中的至少一个是否在包括多个词和一个或多个候选词中的至少一个的词的序列中位于多个词之前。
在一些示例中,操作可以包括由计算设备10,确定在接收到对多个键中的一个或多个的选择的指示之前由计算设备10接收到的第一多个词。操作可以进一步包括由计算设备10,确定在接收到对多个键中的一个或多个的选择的指示之后由计算设备10接收到的第二多个词。操作可以进一步包括由计算设备10并且基于第一多个词和第二多个词,确定用于一个或多个候选词中的至少一个的至少一个语言模型概率。语言模型概率可以指示一个或多个候选词中的至少一个是否在包括第一多个词、一个或多个候选词中的至少一个和第二多个词的词的序列中位于第一多个词之后和第二多个词之前。
在一些示例中,多个特征可以包括对多个键的一个或多个的选择的键入速度,以及操作可以进一步包括由计算设备10确定当计算设备10开始接收对多个键中的一个或多个的选择的指示时的第一时间点。操作可以进一步包括由计算设备10确定当计算设备停止接收对多个键中的一个或多个的选择的指示时的第二时间点。该操作可以进一步包括由计算设备10确定包括在字符串中的字符的数量。操作可以进一步包括由计算设备10确定从第一时间点到第二时间点的持续时间。操作可以进一步包括由计算设备10并且基于该持续时间和字符的数量,确定选择的键入速度。
在一些示例中,多个特征可以包括与对多个键中的一个或多个的选择相关联的退格使用百分比。操作可以进一步包括由计算设备10确定包括在对多个键中的一个或多个的选择中的键选择的数量。操作可以进一步包括由计算设备10确定包括在对多个键中的一个或多个的选择中的退格键选择的数量和包括在对多个键中的一个或多个的选择中的删除键选择的数量。操作可以进一步包括由计算设备10并且至少部分基于:退格键选择的数量、删除键选择的数量和键选择的总数量,确定退格使用百分比。
在一些示例中,多个特征可以包括建议栏使用百分比。操作可以进一步包括由计算设备10输出包括一个或多个建议词替换的建议栏区以在存在敏感屏上显示处显示。操作可以进一步包括由计算设备10确定建议栏使用百分比包括以下的比:在持续时间内,一个或多个建议词替换的选择的数量,以及在持续时间内,由计算设备10并且至少部分基于由计算设备10接收的用户输入的指示所生成的总数量词。
在一些示例中,与一个或多个候选词中的至少一个相关联的空间模型概率可以是与一个或多个候选词中的至少一个相关联的候选词空间模型概率。操作可以进一步包括由计算设备10基于对多个键中的一个或多个的选择,确定指示字符串是否表示字符的准确序列的字符串空间模型概率。操作可以进一步包括由计算设备10确定该字符串不包括在词典中。响应于确定字符串不包括在词典中,操作可以进一步包括由计算设备10确定字符串的字符串空间模型概率大于字符串阈值。响应于确定字符串的字符串空间模型概率大于字符串阈值,操作可以进一步包括由计算设备10确定多个候选词包括该字符串。
在一些示例中,对多个键中的一个或多个的选择的指示可以包括存在敏感屏的至少一个输入位置,操作可以进一步包括由计算设备10确定与至少一个输入位置和与多个键中的一个相关联的键位置相关联的欧几里德距离。操作可以进一步包括由计算设备10并且基于欧几里德距离,确定字符串的字符串空间模型概率。
在一些示例中,选择的指示可以包括存在敏感屏的至少一个输入位置。操作可以进一步包括由计算设备10确定与至少一个输入位置和多个键中的至少一个的键位置相关联的欧几里德距离。操作可以进一步包括由计算设备10并且基于欧几里德距离,确定与候选词的至少一个相关联的空间模型概率。
在一些示例中,对可以包括输出多个候选词中的至少一个的操作,操作可以进一步包括由计算设备10输出字符串以在存在敏感屏处显示。操作可以进一步包括由计算设备10在字符串上方的预定距离内输出多个候选词中的至少一个以在存在敏感屏处显示。
在用于可以包括输出字符串的操作的一些示例中,操作可以进一步包括由计算设备10输出具有格式的字符串以在存在敏感屏处显示,其中,所述格式包括下划线、高亮、字体大小和字体颜色中的至少一个。
在一些示例中,操作可以进一步包括由计算设备10接收在存在敏感屏的位置处检测的用户输入的指示。操作可以进一步包括由计算设备10并且至少部分基于用户输入的指示,确定所选择的候选词。所选择的候选词可以是在字符串上方输出的多个候选词中的一个。操作可以进一步包括由计算设备10输出所选择的候选词来替换该字符串以在存在敏感屏处显示。
在一些示例中,可以在第一时间点输出多个候选词中的至少一个,以及操作可以进一步包括由计算设备10确定第一时间点和第二时间点之间的经过时间。响应于确定经过时间大于时间阈值,操作可以进一步包括由计算设备10抑制输出多个候选词以显示。
在一些示例中,操作可以进一步包括由计算设备将字符串发送到可操作地耦接到计算设备的远程计算设备。操作可以进一步包括由计算设备10并且从该计算系统接收多个候选词。
在一些示例中,操作可以进一步包括由计算设备10并且至少部分基于词典,确定字符串包括多个候选词的第一词的不正确拼写的第一拼写概率。操作可以进一步包括由计算设备10并且至少部分基于词典,确定字符串包括多个候选词的第二词的不正确拼写的第二拼写概率。操作可以进一步包括由计算设备10确定包括第一拼写概率和第二拼写概率之间的差的值。响应于确定该值不超出模糊阈值,操作可以进一步包括由计算设备10输出第一词和第二词以在存在敏感屏处显示。
在一些示例中,操作可以进一步包括由计算设备10接收在输出多个候选词中的至少一个的存在敏感屏的位置处检测到的用户输入的指示。响应于接收到用户输入的指示,操作可以进一步包括由计算设备10输出多个候选词中的至少一个另外的候选词以在存在敏感屏处显示。
在一些示例中,操作可以进一步包括由计算设备10从键盘输入设备接收对多个键中的一个或多个的选择的指示。在一些示例中,字符串可以是词典中的第一词并且操作可以进一步包括响应于确定与字符串相关联的上下文,由计算设备10并且至少部分基于上下文,将词典中的第二词选择为多个候选词中的至少一个。
项1.一种方法,包括:由计算设备输出包括多个键的图形键盘以在存在敏感屏处显示;由计算设备接收对多个键中的一个或多个的选择的指示;由计算设备并且至少部分基于选择的指示,确定字符串;由计算设备并且至少部分基于字符串,确定多个候选词;由计算设备并且至少部分基于多个候选词和多个特征,确定字符串包括多个候选词中的至少一个的不正确拼写的拼写概率,多个特征至少包括与一个或多个候选词中的至少一个相关联的空间模型概率;以及响应于确定拼写概率满足阈值,由计算设备输出多个候选词中的至少一个以显示。
项2.项1所述的方法,进一步包括:由计算设备确定在接收多个键的一个或多个的选择的指示之前由计算设备接收的多个词;由计算设备并且基于多个词,确定用于一个或多个候选词中的至少一个的至少一个语言模型概率,其中,所述至少一个语言模型概率指示一个或多个候选词中的至少一个是否在包括多个词和一个或多个候选词中的至少一个的词的序列中位于多个词之后。
项3.项1至2中的任何一项所述的方法,进一步包括:
由计算设备确定在接收对多个键中的一个或多个的选择的指示之后由计算设备接收的多个词;由计算设备并且基于多个词,确定用于一个或多个候选词中的至少一个的至少一个语言模型概率,其中,所述至少一个语言模型概率指示一个或多个候选词中的至少一个是否在包括多个词和一个或多个候选词中的至少一个的词的序列中位于多个词之前。
项4.项1至2中的任何一项所述的方法,进一步包括:由计算设备确定在接收到对多个键中的一个或多个的选择的指示之前由计算设备接收到的第一多个词;由计算设备确定在接收到多个键的一个或多个的选择的指示之后由计算设备接收到的第二多个词;由计算设备并且基于第一多个词和第二多个词,确定用于一个或多个候选词中的至少一个的至少一个语言模型概率,其中,所述语言模型概率指示一个或多个候选词中的至少一个是否在包括多个第一词、一个或多个候选词中的至少一个和多个第二词的词的序列中位于第一多个词之后并且第二多个词之前。
项5.项1至4中的任何一项所述的方法,其中,多个特征包括对多个键中的一个或多个的选择的键入速度,该方法进一步包括:由计算设备确定当计算设备开始接收多个键的一个或多个的选择的指示时的第一时间点;由计算设备确定当计算设备停止接收多个键的一个或多个的选择的指示时的第二时间点;由计算设备确定包括在字符串中的字符的数量;由计算设备确定从第一时间点到第二时间点的持续时间;以及由计算设备并且基于持续时间和字符的数量,确定选择的键入速度。
项6.项1至5中的任何一项所述的方法,其中,多个特征包括与对多个键中的一个或多个的选择相关联的退格使用百分比,该方法进一步包括:由计算设备确定包括在对多个键中的一个或多个的选择中的键选择的数量;由计算设备确定包括在对多个键中的一个或多个的选择中的退格键选择的数量和包括在对多个键中的一个或多个的选择中的删除键选择的数量;以及由计算设备并且至少部分基于:退格键选择的数量、删除键选择的数量和键选择的总数量,确定退格使用百分比。
项7.项1至6中的任何一项所述的方法,其中,所述多个特征包括建议栏使用百分比,该方法进一步包括:由计算设备输出包括一个或多个建议词替换的建议栏区以在存在敏感屏处显示;以及由计算设备确定建议栏使用百分比包括以下的比:在持续时间内,一个或多个建议词替换的选择的数量,以及在持续时间内,由计算设备并且至少部分基于由计算设备接收的用户输入的指示所生成的总数量词。
项8.项1至7中的任何一个所述的方法,进一步包括:其中,与一个或多个候选词中的至少一个相关联的空间模型概率是与一个或多个候选词中的至少一个相关联的候选词空间模型概率,该方法进一步包括:由计算设备基于对多个键中的一个或多个的选择,确定指示字符串是否表示字符的准确序列的字符串空间模型概率;由计算设备确定字符串不包括在词典中;响应于确定字符串不包括在词典中,由计算设备确定字符串的字符串空间模型概率大于字符串阈值;以及
响应于确定字符串的字符串空间模型概率大于字符串阈值,由计算设备确定多个候选词包括字符串。
项9.项8所述的方法,其中,对多个键中的一个或多个的选择的指示包括存在敏感屏的至少一个输入位置,该方法进一步包括:由计算设备确定与至少一个输入位置和与对多个键中的一个相关联的键位置相关联的欧几里德距离;并且由计算设备并且基于欧几里德距离,确定字符串的字符串空间模型概率。
项10.项1至9中的任何一项所述的方法,其中,选择的指示包括存在敏感屏的至少一个输入位置,该方法进一步包括:由计算设备确定与至少一个输入位置和多个键的至少一个的键位置相关联的欧几里德距离;并且由计算设备并且基于欧几里德距离,确定与候选词的至少一个相关联的空间模型概率。
项11.项1至10中的任何一项所述的方法,其中,输出多个候选词中的至少一个进一步包括:由计算设备输出字符串以在存在敏感屏处显示;以及由计算设备在字符串上方的预定距离内输出多个候选词中的至少一个以在存在敏感屏处显示。
项12.项11的方法,其中,输出字符串进一步包括:由计算设备输出具有格式的字符串以在存在敏感屏处显示,其中,所述格式包括下划线、高亮、字体大小和字体颜色中的至少一个。
项13.项11-12中的任何一项所述的方法,进一步包括:由计算设备接收在存在敏感屏的位置处检测的用户输入的指示;由计算设备并且至少部分基于用户输入的指示,确定所选择的候选词,其中,所选择的候选词是在字符串上方输出的多个候选词中的一个;并且由计算设备输出所选择的候选词来替换该字符串以在存在敏感屏处显示。
项14.项1至13中的任何一项所述的方法,其中,多个候选词的至少一个是在第一时间点输出的,该方法进一步包括:由计算设备确定第一时间点和第二时间点之间的经过时间;响应于确定经过时间大于时间阈值,由计算设备抑制输出多个候选词以显示。
项15.项1至14的任何一项所述的方法,进一步包括:由计算设备将字符串发送到可操作地耦接到计算设备的远程计算设备;并且由计算设备并且从计算系统接收多个候选词。
项16.项1至15的任何一项所述的方法,进一步包括:由计算设备并且至少部分基于词典,确定字符串包括多个候选词的第一词的不正确拼写的第一拼写概率;由计算设备并且至少部分基于词典,确定字符串包括多个候选词的第二词的不正确拼写的第二拼写概率;由计算设备确定包括第一拼写概率和第二拼写概率之间的差的值;以及响应于确定该值不超出模糊阈值,由计算设备输出第一词和第二词以在存在敏感屏处显示。
项17.项1至16的任何一项所述的方法,进一步包括:由计算设备接收在输出多个候选词中的至少一个的存在敏感屏的位置处检测到的用户输入的指示;并且响应于接收到用户输入的指示,由计算设备输出多个候选词中的至少一个另外的候选词以在存在敏感屏上处显示。
项18.项1至18的任何一项所述的方法,其中,字符串是词典中的第一词,该方法进一步包括:响应于确定与字符串相关联的上下文,由计算设备并且至少部分基于上下文,将词典中的第二词选择为多个候选词中的至少一个。
项19.一种编码有指令的计算机可读存储介质,所述指令当被执行时,使计算设备的至少一个处理器以:输出包括多个键的图形键盘以在存在敏感屏处显示;接收对多个键中的一个或多个的选择的指示;至少部分基于选择的指示,确定字符串;至少部分基于字符串,确定多个候选词;至少部分基于多个候选词和多个特征,确定字符串包括多个候选词中的至少一个的不正确拼写的拼写概率,所述多个特征至少包括与一个或多个候选词的每一个相关联的空间模型概率;以及响应于确定拼写概率满足阈值,输出多个候选词中的至少一个。
项20.一种计算设备,包括:至少一个处理器;以及至少一个模块,所述至少一个模块可由至少一个处理器操作以:接收对键盘输入设备的多个键中的一个或多个的选择的指示;至少部分基于选择的指示,确定字符串;至少部分基于字符串,确定多个候选词;至少部分基于多个候选词和多个特征,确定字符串包括多个候选词中的至少一个的不正确拼写的拼写概率,所述多个特征至少包括与一个或多个候选词的每一个相关联的空间模型概率;以及响应于确定拼写概率满足阈值,输出多个候选词的至少一个以显示。
项21.项20的计算设备,其中,键盘输入设备包括图形键盘,其中,至少一个模块可由至少一个处理器操作以输出图形键盘以在存在敏感屏处显示。
项22.一种编码有指令的计算机可读存储介质,所述指令用于使一个或多个可编程处理器执行由项1至18的任何一项所述的方法。
项23.项20的计算设备,进一步包括用于执行项1-18的方法的任何一项的装置。
在一个或多个示例中,所述的功能可以用硬件、软件、固件或其任意组合实现。如果用软件实现,功能可以作为一个或多个指令或代码存储在计算机可读介质上或在其上传输,并且由基于硬件的处理单元执行。计算机可读介质可以包括对应于有形介质,诸如数据存储介质的计算机可读存储介质,或包括便于例如根据通信协议,将计算机程序从一个地方传送到另一地方的任何介质的通信介质。用这种方式,计算机可读介质通常可以对应于(1)有形计算机可读存储介质,其是非瞬时的,或(2)通信介质,诸如信号或载波。数据存储介质可以是能由一个或多个计算机或一个或多个处理器访问来检索指令、代码和/或数据结构,用于实现本公开内容中所述的技术的任何可用介质。计算机程序产品可以包括计算机可读介质。
举例但不是限制,这种计算机可读存储介质能包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁性存储设备、闪存或能用来以指令或数据结构的形式存储所需程序代码并能由计算机访问的的任何其他介质。同时,任何连接适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字订户线路(DSL)或无线技术,诸如红外、无线电和微波,从网站、服务器或其他远程源传输指令,则在介质的定义中,包括同轴电缆、光纤电缆、双绞线、DSL或无线技术,诸如红外、无线电和微波。然而,应理解到计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他瞬时介质,相反,针对非瞬时、有形的存储介质。磁盘和圆盘,如在此所使用的,包括压缩盘(CD)、激光盘、光盘、数字通用盘(DVD)、软盘和蓝光盘,其中,磁盘通常磁性地再现数据,而圆盘通过激光,光学地再现数据。上述组合应当也包括在计算机可读介质的范围内。
可以由一个或多个处理器,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其他等效的集成或分立逻辑电路执行指令。因此,术语“处理器”,如在此所使用的,可以指上述结构的任何一个或适合于实现在此所述技术的任何其他结构。此外,在一些方面中,在此所述的功能性可以在专用硬件和/或软件模块内提供。同时,完全能在一个或多个电路或逻辑元件中实现上述技术。
可以在多种设备或装置,包括无线耳机、集成电路(IC)或IC集(例如芯片集)中实现本公开内容的技术。在本公开内容中描述了各种组件、模块或单元来强调被配置成执行所公开的技术的设备的功能性方面,但不一定要求由不同的硬件单元实现。相反,如上所述,各个单元可以组合在硬件单元中或由互操作硬件单元的集合,包括如上所述的一个或多个处理器,结合适当的软件和/或固件来提供。
已经描述了各种示例。这些和其他示例在下述权利要求的范围内。

Claims (15)

1.一种方法,包括:
由计算设备输出包括多个键的图形键盘以在存在敏感屏处显示;
由所述计算设备接收对所述多个键中的一个或多个的选择的指示;
由所述计算设备并且至少部分基于所述选择的所述指示来确定字符串;
由所述计算设备并且至少部分基于所述字符串来确定多个候选词;
由所述计算设备并且至少部分基于所述多个候选词和多个特征来确定所述字符串包括所述多个候选词中的至少一个的不正确拼写的拼写概率,所述多个特征至少包括与所述一个或多个候选词中的至少一个相关联的空间模型概率;以及
响应于确定所述拼写概率满足阈值,由所述计算设备输出所述多个候选词中的所述至少一个以显示。
2.根据权利要求1所述的方法,进一步包括:
由所述计算设备确定在接收对所述多个键中的一个或多个的所述选择的所述指示之前由所述计算设备接收的多个词;
由所述计算设备并且基于所述多个词来确定用于所述一个或多个候选词中的至少一个的至少一个语言模型概率,其中,所述至少一个语言模型概率指示所述一个或多个候选词中的至少一个是否在包括所述多个词和所述一个或多个候选词中的所述至少一个的词序列中位于所述多个词之后。
3.根据权利要求1至2中的任何一项所述的方法,进一步包括:
由所述计算设备确定在接收对所述多个键中的一个或多个的所述选择的所述指示之后由所述计算设备接收的多个词;
由所述计算设备并且基于所述多个词来确定用于所述一个或多个候选词中的至少一个的至少一个语言模型概率,其中,所述至少一个语言模型概率指示所述一个或多个候选词中的至少一个是否在包括所述多个词和所述一个或多个候选词中的所述至少一个的词序列中位于所述多个词之前。
4.根据权利要求1至3中的任何一项所述的方法,进一步包括:
由所述计算设备确定在接收到对所述多个键中的一个或多个的所述选择的所述指示之前由所述计算设备接收到的第一多个词;
由所述计算设备确定在接收到对所述多个键中的一个或多个的所述选择的所述指示之后由所述计算设备接收到的第二多个词;
由所述计算设备并且基于所述第一多个词和所述第二多个词来确定用于所述一个或多个候选词中的至少一个的至少一个语言模型概率,其中,所述语言模型概率指示所述一个或多个候选词中的至少一个是否在包括所述第一多个词、所述一个或多个候选词中的所述至少一个和所述第二多个词的词序列中位于所述第一多个词之后并且所述第二多个词之前。
5.根据权利要求1至4中的任何一项所述的方法,其中,所述多个特征包括对所述多个键中的一个或多个的选择的键入速度,所述方法进一步包括:
由所述计算设备确定当所述计算设备开始接收对所述多个键中的一个或多个的所述选择的所述指示时的第一时间点;
由所述计算设备确定当所述计算设备停止接收对所述多个键中的一个或多个的所述选择的所述指示时的第二时间点;
由所述计算设备确定包括在所述字符串中的字符的数量;
由所述计算设备确定从所述第一时间点到所述第二时间点的持续时间;以及
由所述计算设备并且基于所述持续时间和所述字符的数量来确定所述选择的键入速度。
6.根据权利要求1至5中的任何一项所述的方法,其中,所述多个特征包括与对所述多个键中的一个或多个的所述选择相关联的退格使用百分比,所述方法进一步包括:
由所述计算设备确定包括在对所述多个键中的一个或多个的所述选择中的键选择的数量;
由所述计算设备确定包括在对所述多个键中的一个或多个的所述选择中的退格键选择的数量和包括在对所述多个键中的一个或多个的所述选择中的删除键选择的数量;以及
由所述计算设备并且至少部分基于:所述退格键选择的数量、所述删除键选择的数量和键选择的总数量,来确定所述退格使用百分比。
7.根据权利要求1至6中的任何一项所述的方法,其中,所述多个特征包括建议栏使用百分比,所述方法进一步包括:
由所述计算设备输出包括一个或多个建议词替换的建议栏区以在所述存在敏感屏处显示;以及
由所述计算设备确定所述建议栏使用百分比包括以下的比:
在持续时间内对所述一个或多个建议词替换的选择的数量,以及
在所述持续时间内由所述计算设备并且至少部分基于由所述计算设备接收的用户输入的指示所生成的总数量词。
8.根据权利要求1至7中的任何一项所述的方法,进一步包括:
其中,与所述一个或多个候选词中的所述至少一个相关联的所述空间模型概率是与所述一个或多个候选词中的所述至少一个相关联的候选词空间模型概率,所述方法进一步包括:
由所述计算设备基于对所述多个键中的一个或多个的所述选择来确定指示所述字符串是否表示字符的准确序列的字符串空间模型概率;
由所述计算设备确定所述字符串不包括在词典中;
响应于确定所述字符串不包括在所述词典中,由所述计算设备确定所述字符串的所述字符串空间模型概率大于字符串阈值;以及
响应于确定所述字符串的所述字符串空间模型概率大于所述字符串阈值,由所述计算设备确定所述多个候选词包括所述字符串。
9.根据权利要求1至8中的任何一项所述的方法,
其中,所述选择的所述指示包括所述存在敏感屏的至少一个输入位置,所述方法进一步包括:
由所述计算设备确定与所述至少一个输入位置和所述多个键中的至少一个的键位置相关联的欧几里德距离;以及
由所述计算设备并且基于所述欧几里德距离来确定与所述候选词中的至少一个相关联的所述空间模型概率。
10.根据权利要求1至9中的任何一项所述的方法,其中,输出所述多个候选词中的所述至少一个进一步包括:
由所述计算设备输出所述字符串以在所述存在敏感屏处显示;以及
由所述计算设备在所述字符串上方的预定距离内输出所述多个候选词中的所述至少一个以在所述存在敏感屏处显示。
11.根据权利要求1至10中的任何一项所述的方法,
其中,所述多个候选词中的至少一个是在第一时间点输出的,所述方法进一步包括:
由所述计算设备确定所述第一时间点和第二时间点之间的经过时间;
响应于确定所述经过时间大于时间阈值,由所述计算设备抑制输出所述多个候选词以显示。
12.根据权利要求1所述的方法,进一步包括:
由所述计算设备并且至少部分基于词典来确定所述字符串包括所述多个候选词中的第一词的不正确拼写的第一拼写概率;
由所述计算设备并且至少部分基于词典来确定所述字符串包括所述多个候选词中的第二词的不正确拼写的第二拼写概率;
由所述计算设备确定包括所述第一拼写概率和所述第二拼写概率之间的差的值;
响应于确定所述值不超出模糊阈值,由所述计算设备输出所述第一词和所述第二词以在所述存在敏感屏处显示。
13.一种编码有指令的计算机可读存储介质,所述指令用于使一个或多个可编程处理器执行根据权利要求1至12中的任何一项所述的方法。
14.一种计算设备,包括:
至少一个处理器;以及
至少一个模块,所述至少一个模块可由所述至少一个处理器操作以:
接收对键盘输入设备的多个键中的一个或多个的选择的指示;
至少部分基于所述选择的所述指示来确定字符串;
至少部分基于所述字符串来确定多个候选词;
至少部分基于所述多个候选词和多个特征来确定所述字符串包括所述多个候选词中的至少一个的不正确拼写的拼写概率,所述多个特征至少包括与所述一个或多个候选词中的每一个相关联的空间模型概率;以及
响应于确定所述拼写概率满足阈值,输出所述多个候选词中的所述至少一个以显示。
15.根据权利要求14所述的计算设备,进一步包括用于执行根据权利要求1至12所述的方法中的任何一项的装置。
CN201380052562.4A 2012-10-16 2013-10-09 一种用于建议校正的方法和计算系统 Expired - Fee Related CN104718543B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810865668.0A CN109120511B (zh) 2012-10-16 2013-10-09 基于特征的自动校正方法、计算设备和系统

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261714589P 2012-10-16 2012-10-16
US61/714,589 2012-10-16
US13/733,701 2013-01-03
US13/733,701 US8713433B1 (en) 2012-10-16 2013-01-03 Feature-based autocorrection
PCT/US2013/064145 WO2014062453A1 (en) 2012-10-16 2013-10-09 Feature-based autocorrection

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201810865668.0A Division CN109120511B (zh) 2012-10-16 2013-10-09 基于特征的自动校正方法、计算设备和系统

Publications (2)

Publication Number Publication Date
CN104718543A true CN104718543A (zh) 2015-06-17
CN104718543B CN104718543B (zh) 2018-08-28

Family

ID=50474896

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201380052562.4A Expired - Fee Related CN104718543B (zh) 2012-10-16 2013-10-09 一种用于建议校正的方法和计算系统
CN201810865668.0A Active CN109120511B (zh) 2012-10-16 2013-10-09 基于特征的自动校正方法、计算设备和系统

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201810865668.0A Active CN109120511B (zh) 2012-10-16 2013-10-09 基于特征的自动校正方法、计算设备和系统

Country Status (4)

Country Link
US (2) US8713433B1 (zh)
EP (1) EP2909703B1 (zh)
CN (2) CN104718543B (zh)
WO (1) WO2014062453A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107229627A (zh) * 2016-03-24 2017-10-03 华为技术有限公司 一种文本处理方法、装置及计算设备
CN108701124A (zh) * 2016-05-17 2018-10-23 谷歌有限责任公司 预测接下来的字母并在图形键盘的键中显示它们

Families Citing this family (112)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10255566B2 (en) 2011-06-03 2019-04-09 Apple Inc. Generating and processing task items that represent tasks to perform
EP2383970B1 (en) * 2010-04-30 2013-07-10 beyo GmbH Camera based method for text input and keyword detection
JP6066354B2 (ja) * 2011-07-01 2017-01-25 日本電気株式会社 信頼度計算の方法及び装置
US9323746B2 (en) * 2011-12-06 2016-04-26 At&T Intellectual Property I, L.P. System and method for collaborative language translation
EP2637128B1 (en) 2012-03-06 2018-01-17 beyo GmbH Multimodal text input by a keyboard/camera text input module replacing a conventional keyboard text input module on a mobile device
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
JP5910345B2 (ja) * 2012-06-21 2016-04-27 富士通株式会社 文字入力プログラム、情報処理装置および文字入力方法
KR20140089696A (ko) * 2013-01-07 2014-07-16 삼성전자주식회사 가상 키패드 운용 방법 및 이를 지원하는 단말기
EP2954514B1 (en) 2013-02-07 2021-03-31 Apple Inc. Voice trigger for a digital assistant
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US9199155B2 (en) * 2013-03-14 2015-12-01 Google Inc. Morpheme-level predictive graphical keyboard
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
KR101294558B1 (ko) * 2013-04-15 2013-08-07 김민철 오타 수정 방법
US9122376B1 (en) * 2013-04-18 2015-09-01 Google Inc. System for improving autocompletion of text input
JP6155821B2 (ja) * 2013-05-08 2017-07-05 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
JP2014235612A (ja) 2013-06-03 2014-12-15 富士通株式会社 端末装置、補正方法および補正プログラム
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
US9838486B2 (en) * 2013-09-12 2017-12-05 International Business Machines Corporation Checking documents for spelling and/or grammatical errors and/or providing recommended words or phrases based on patterns of colloquialisms used among users in a social network
KR101381101B1 (ko) * 2013-11-13 2014-04-02 주식회사 큐키 문자열 사이의 연관성 판단을 통한 오타 수정 방법
US9037967B1 (en) * 2014-02-18 2015-05-19 King Fahd University Of Petroleum And Minerals Arabic spell checking technique
US9014481B1 (en) * 2014-04-22 2015-04-21 King Fahd University Of Petroleum And Minerals Method and apparatus for Arabic and Farsi font recognition
US9959296B1 (en) * 2014-05-12 2018-05-01 Google Llc Providing suggestions within a document
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10534532B2 (en) 2014-08-08 2020-01-14 Samsung Electronics Co., Ltd. Electronic device and method for processing letter input in electronic device
CN105446572A (zh) * 2014-08-13 2016-03-30 阿里巴巴集团控股有限公司 一种用于屏幕显示设备的文字编辑方法及装置
KR102380833B1 (ko) * 2014-12-02 2022-03-31 삼성전자주식회사 음성 인식 방법 및 음성 인식 장치
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9703394B2 (en) * 2015-03-24 2017-07-11 Google Inc. Unlearning techniques for adaptive language models in text entry
US9678664B2 (en) * 2015-04-10 2017-06-13 Google Inc. Neural network for keyboard input decoding
US10200824B2 (en) 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
CN104915264A (zh) * 2015-05-29 2015-09-16 北京搜狗科技发展有限公司 一种输入纠错方法和装置
US9807045B2 (en) 2015-06-10 2017-10-31 Google Inc. Contextually driven messaging system
US10048842B2 (en) 2015-06-15 2018-08-14 Google Llc Selection biasing
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
US10782859B2 (en) 2015-12-14 2020-09-22 International Business Machines Corporation Intelligent gesture based word sentence augmentation and systems for the implementation thereof
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
CN106959977A (zh) * 2016-01-12 2017-07-18 广州市动景计算机科技有限公司 文字输入中的候选集合计算方法及装置、文字纠错方法及装置
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
US9858257B1 (en) * 2016-07-20 2018-01-02 Amazon Technologies, Inc. Distinguishing intentional linguistic deviations from unintentional linguistic deviations
US20180039608A1 (en) * 2016-08-03 2018-02-08 Google Inc. Correction of previously received textual messages based on one or more later received textual messages
CN107688398B (zh) * 2016-08-03 2019-09-17 中国科学院计算技术研究所 确定候选输入的方法和装置及输入提示方法和装置
US10372814B2 (en) 2016-10-18 2019-08-06 International Business Machines Corporation Methods and system for fast, adaptive correction of misspells
US10579729B2 (en) * 2016-10-18 2020-03-03 International Business Machines Corporation Methods and system for fast, adaptive correction of misspells
US10831366B2 (en) * 2016-12-29 2020-11-10 Google Llc Modality learning on mobile devices
CN106933809A (zh) * 2017-03-27 2017-07-07 三角兽(北京)科技有限公司 信息处理装置及信息处理方法
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770428A1 (en) 2017-05-12 2019-02-18 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
US11263399B2 (en) * 2017-07-31 2022-03-01 Apple Inc. Correcting input based on user context
USD859453S1 (en) 2017-08-01 2019-09-10 Google Llc Display screen with an animated graphical user interface
US20190050391A1 (en) * 2017-08-09 2019-02-14 Lenovo (Singapore) Pte. Ltd. Text suggestion based on user context
CN109992120B (zh) * 2017-12-29 2022-10-04 北京搜狗科技发展有限公司 一种输入纠错方法和装置
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US11386266B2 (en) * 2018-06-01 2022-07-12 Apple Inc. Text correction
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
CN109284501A (zh) * 2018-08-30 2019-01-29 上海与德通讯技术有限公司 一种文字更正方法、装置、服务器及存储介质
CN110019748B (zh) * 2018-09-27 2021-12-24 联想(北京)有限公司 一种数据处理方法及电子设备
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11170166B2 (en) * 2018-09-28 2021-11-09 Apple Inc. Neural typographical error modeling via generative adversarial networks
CN111079412B (zh) * 2018-10-18 2024-01-23 北京嘀嘀无限科技发展有限公司 文本纠错方法及装置
WO2020130708A1 (en) 2018-12-20 2020-06-25 Samsung Electronics Co., Ltd. Method and apparatus for augmented reality
CN109858473B (zh) * 2018-12-28 2023-03-07 天津幸福生命科技有限公司 一种自适应纠偏方法、装置、可读介质及电子设备
US11328123B2 (en) * 2019-03-14 2022-05-10 International Business Machines Corporation Dynamic text correction based upon a second communication containing a correction command
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
CN110020432B (zh) * 2019-03-29 2021-09-14 联想(北京)有限公司 一种信息处理方法和信息处理设备
CN110147549A (zh) * 2019-04-19 2019-08-20 阿里巴巴集团控股有限公司 用于执行文本纠错的方法和系统
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
US11537789B2 (en) * 2019-05-23 2022-12-27 Microsoft Technology Licensing, Llc Systems and methods for seamless application of autocorrection and provision of review insights through adapted user interface
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
DK201970511A1 (en) 2019-05-31 2021-02-15 Apple Inc Voice identification in digital assistant systems
US11468890B2 (en) 2019-06-01 2022-10-11 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
CN112651230B (zh) * 2019-09-25 2022-04-26 亿度慧达教育科技(北京)有限公司 融合语言模型生成方法和装置、单词纠错方法和电子设备
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11043220B1 (en) 2020-05-11 2021-06-22 Apple Inc. Digital assistant hardware abstraction
US11755276B2 (en) 2020-05-12 2023-09-12 Apple Inc. Reducing description length based on confidence
US11544467B2 (en) 2020-06-15 2023-01-03 Microsoft Technology Licensing, Llc Systems and methods for identification of repetitive language in document using linguistic analysis and correction thereof
US11640544B2 (en) * 2020-06-18 2023-05-02 Microsoft Technology Licensing, Llc Advances in data provisioning including bulk provisioning to aid management of domain-specific data via software data platform
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
KR102517978B1 (ko) * 2020-11-23 2023-04-05 부산대학교 산학협력단 문맥의존 철자오류 교정 테스트 문서 생성을 위한 시스템 및 방법
CN112417103A (zh) * 2020-12-02 2021-02-26 百度国际科技(深圳)有限公司 用于检测敏感词的方法、装置、设备和存储介质
CN112528980B (zh) * 2020-12-16 2022-02-15 北京华宇信息技术有限公司 Ocr识别结果纠正方法及其终端、系统
KR20230116772A (ko) * 2020-12-18 2023-08-04 구글 엘엘씨 온-디바이스 문법 검사
CN112580324B (zh) * 2020-12-24 2023-07-25 北京百度网讯科技有限公司 文本纠错方法、装置、电子设备以及存储介质
WO2022199784A1 (en) * 2021-03-22 2022-09-29 Telefonaktiebolaget Lm Ericsson (Publ) Electronic communications device, and methods of the electronic communications device for updating a previously sent text message
US11240266B1 (en) * 2021-07-16 2022-02-01 Social Safeguard, Inc. System, device and method for detecting social engineering attacks in digital communications
US20230128244A1 (en) * 2021-10-26 2023-04-27 Vmware, Inc. Automated processes and systems for performing log message curation
CN117556817A (zh) * 2024-01-10 2024-02-13 国开启科量子技术(安徽)有限公司 基于量子电路的文本检测方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6654733B1 (en) * 2000-01-18 2003-11-25 Microsoft Corporation Fuzzy keyboard
CN1928860A (zh) * 2005-09-05 2007-03-14 日电(中国)有限公司 用于校正按键错误的方法、搜索引擎和搜索系统
CN100472600C (zh) * 2003-12-22 2009-03-25 美国在线服务公司 文字输入自动更正的虚拟键盘系统
CN101605171A (zh) * 2008-06-09 2009-12-16 Lg电子株式会社 移动终端及其中的文本校正方法

Family Cites Families (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6126176A (ja) 1984-07-17 1986-02-05 Nec Corp 言語処理用辞書
JPS63766A (ja) * 1986-06-20 1988-01-05 Canon Inc 文書処理装置
US4873634A (en) 1987-03-27 1989-10-10 International Business Machines Corporation Spelling assistance method for compound words
JPH01214964A (ja) * 1988-02-23 1989-08-29 Sharp Corp コレクト機能付欧文作成装置
US6978277B2 (en) * 1989-10-26 2005-12-20 Encyclopaedia Britannica, Inc. Multimedia search system
US6850252B1 (en) * 1999-10-05 2005-02-01 Steven M. Hoffberg Intelligent electronic appliance system and method
US5537317A (en) 1994-06-01 1996-07-16 Mitsubishi Electric Research Laboratories Inc. System for correcting grammer based parts on speech probability
US5761689A (en) 1994-09-01 1998-06-02 Microsoft Corporation Autocorrecting text typed into a word processing document
US5802205A (en) 1994-09-09 1998-09-01 Motorola, Inc. Method and system for lexical processing
US5883986A (en) * 1995-06-02 1999-03-16 Xerox Corporation Method and system for automatic transcription correction
US5940847A (en) 1995-06-07 1999-08-17 Microsoft Corporation System and method for automatically correcting multi-word data entry errors
US5953541A (en) 1997-01-24 1999-09-14 Tegic Communications, Inc. Disambiguating system for disambiguating ambiguous input sequences by displaying objects associated with the generated input sequences in the order of decreasing frequency of use
US6047300A (en) 1997-05-15 2000-04-04 Microsoft Corporation System and method for automatically correcting a misspelled word
EP1248183B1 (en) 1997-09-25 2012-07-04 Tegic Communications, Inc. Reduced keyboard disambiguating system
KR100327209B1 (ko) 1998-05-12 2002-04-17 윤종용 첨펜의자취를이용한소프트웨어키보드시스템및그에따른키코드인식방법
US6424983B1 (en) 1998-05-26 2002-07-23 Global Information Research And Technologies, Llc Spelling and grammar checking system
US7358956B2 (en) * 1998-09-14 2008-04-15 Microsoft Corporation Method for providing feedback responsive to sensing a physical presence proximate to a control of an electronic device
US7256770B2 (en) * 1998-09-14 2007-08-14 Microsoft Corporation Method for displaying information responsive to sensing a physical presence proximate to a computer input device
US6284104B1 (en) 1999-03-04 2001-09-04 Catalytic Distillation Technologies Apparatus and process for hydrogenations
US7293231B1 (en) 1999-03-18 2007-11-06 British Columbia Ltd. Data entry for personal computing devices
US6618697B1 (en) 1999-05-14 2003-09-09 Justsystem Corporation Method for rule-based correction of spelling and grammar errors
JP4519381B2 (ja) 1999-05-27 2010-08-04 テジック コミュニケーションズ インク 自動訂正機能を備えたキーボード・システム
US7750891B2 (en) 2003-04-09 2010-07-06 Tegic Communications, Inc. Selective input system based on tracking of motion parameters of an input device
US7286115B2 (en) * 2000-05-26 2007-10-23 Tegic Communications, Inc. Directional input system with automatic correction
EP3367268A1 (en) * 2000-02-22 2018-08-29 Nokia Technologies Oy Spatially coding and displaying information
ATE457486T1 (de) 2000-07-21 2010-02-15 Speedscript Ag Verfahren für ein schnellschreibsystem und schnellschreibgerät
US7349987B2 (en) * 2000-11-13 2008-03-25 Digital Doors, Inc. Data security system and method with parsing and dispersion techniques
DE10117041C1 (de) 2001-04-05 2002-07-25 Infineon Technologies Ag Carry-Ripple Addierer
GB2381884A (en) * 2001-07-16 2003-05-14 Pablo D Cappellini A search engine of flexibly-defined paths applicable to the search of transportation-related routes
US7158678B2 (en) * 2001-07-19 2007-01-02 Motorola, Inc. Text input method for personal digital assistants and the like
US7042443B2 (en) 2001-10-11 2006-05-09 Woodard Scott E Speed Writer program and device with Speed Writer program installed
US7296019B1 (en) * 2001-10-23 2007-11-13 Microsoft Corporation System and methods for providing runtime spelling analysis and correction
US7075520B2 (en) 2001-12-12 2006-07-11 Zi Technology Corporation Ltd Key press disambiguation using a keypad of multidirectional keys
US7620538B2 (en) 2002-03-26 2009-11-17 University Of Southern California Constructing a translation lexicon from comparable, non-parallel corpora
US7680649B2 (en) 2002-06-17 2010-03-16 International Business Machines Corporation System, method, program product, and networking use for recognizing words and their parts of speech in one or more natural languages
US7151530B2 (en) 2002-08-20 2006-12-19 Canesta, Inc. System and method for determining an input selected by a user through a virtual interface
EP2501161B1 (en) * 2002-11-11 2014-03-26 Nokia Corp. Location dependent messaging
KR100548204B1 (ko) 2002-11-19 2006-02-02 삼성전자주식회사 무선통신기기의 소형 평면안테나 장치 및 이를 이용한pda
US7199786B2 (en) 2002-11-29 2007-04-03 Daniel Suraqui Reduced keyboards system using unistroke input and having automatic disambiguating and a recognition method using said system
US7251367B2 (en) 2002-12-20 2007-07-31 International Business Machines Corporation System and method for recognizing word patterns based on a virtual keyboard layout
US7453439B1 (en) 2003-01-16 2008-11-18 Forward Input Inc. System and method for continuous stroke word-based text input
US7098896B2 (en) 2003-01-16 2006-08-29 Forword Input Inc. System and method for continuous stroke word-based text input
SG135918A1 (en) 2003-03-03 2007-10-29 Xrgomics Pte Ltd Unambiguous text input method for touch screens and reduced keyboard systems
US7398210B2 (en) * 2003-10-23 2008-07-08 Microsoft Corporation System and method for performing analysis on word variants
US7250938B2 (en) 2004-01-06 2007-07-31 Lenovo (Singapore) Pte. Ltd. System and method for improved user input on personal computing devices
US7706616B2 (en) 2004-02-27 2010-04-27 International Business Machines Corporation System and method for recognizing word patterns in a very large vocabulary based on a virtual keyboard layout
US20060005017A1 (en) * 2004-06-22 2006-01-05 Black Alistair D Method and apparatus for recognition and real time encryption of sensitive terms in documents
US20060176283A1 (en) 2004-08-06 2006-08-10 Daniel Suraqui Finger activated reduced keyboard and a method for performing text input
US7508324B2 (en) 2004-08-06 2009-03-24 Daniel Suraqui Finger activated reduced keyboard and a method for performing text input
US20060048055A1 (en) * 2004-08-25 2006-03-02 Jun Wu Fault-tolerant romanized input method for non-roman characters
US20060075044A1 (en) * 2004-09-30 2006-04-06 Fox Kevin D System and method for electronic contact list-based search and display
US7996208B2 (en) * 2004-09-30 2011-08-09 Google Inc. Methods and systems for selecting a language for text segmentation
US8180759B2 (en) * 2004-11-22 2012-05-15 International Business Machines Corporation Spell checking URLs in a resource
US7215258B2 (en) * 2005-02-22 2007-05-08 Research In Motion Limited Handheld electronic device having reduced keyboard and multiple password access, and associated methods
US20120166371A1 (en) * 2005-03-30 2012-06-28 Primal Fusion Inc. Knowledge representation systems and methods incorporating data consumer models and preferences
US7584093B2 (en) 2005-04-25 2009-09-01 Microsoft Corporation Method and system for generating spelling suggestions
US8036878B2 (en) 2005-05-18 2011-10-11 Never Wall Treuhand GmbH Device incorporating improved text input mechanism
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
US7831911B2 (en) * 2006-03-08 2010-11-09 Microsoft Corporation Spell checking system including a phonetic speller
US7956844B2 (en) 2006-04-07 2011-06-07 Research In Motion Limited Handheld electronic device providing a learning function to facilitate correction of erroneous text entry in environment of text requiring multiple sequential actuations of the same key, and associated method
KR100834570B1 (ko) * 2006-06-23 2008-06-02 한국전자통신연구원 실시간 상태 기반 패킷 검사 방법 및 이를 위한 장치
US7739264B2 (en) * 2006-11-15 2010-06-15 Yahoo! Inc. System and method for generating substitutable queries on the basis of one or more features
US20080182599A1 (en) * 2007-01-31 2008-07-31 Nokia Corporation Method and apparatus for user input
US7912700B2 (en) * 2007-02-08 2011-03-22 Microsoft Corporation Context based word prediction
US8078978B2 (en) 2007-10-19 2011-12-13 Google Inc. Method and system for predicting text
CN101295293B (zh) * 2007-04-29 2010-06-02 摩托罗拉公司 用于对表意字符的输入字符串进行自动纠错的方法
US8059101B2 (en) 2007-06-22 2011-11-15 Apple Inc. Swipe gestures for touch screen keyboards
EP2171037A2 (en) 2007-06-22 2010-04-07 Algaedyne Corportion Bioreactor
US8630841B2 (en) * 2007-06-29 2014-01-14 Microsoft Corporation Regular expression word verification
CA2694327A1 (en) * 2007-08-01 2009-02-05 Ginger Software, Inc. Automatic context sensitive language correction and enhancement using an internet corpus
US8091023B2 (en) * 2007-09-28 2012-01-03 Research In Motion Limited Handheld electronic device and associated method enabling spell checking in a text disambiguation environment
US8077983B2 (en) * 2007-10-04 2011-12-13 Zi Corporation Of Canada, Inc. Systems and methods for character correction in communication devices
US8176419B2 (en) * 2007-12-19 2012-05-08 Microsoft Corporation Self learning contextual spell corrector
US8232973B2 (en) 2008-01-09 2012-07-31 Apple Inc. Method, device, and graphical user interface providing word recommendations for text input
CN101692187A (zh) * 2008-05-11 2010-04-07 捷讯研究有限公司 使能对文本输入进行直译的移动电子设备及相关方法
US8103669B2 (en) * 2008-05-23 2012-01-24 Xerox Corporation System and method for semi-automatic creation and maintenance of query expansion rules
US8464150B2 (en) 2008-06-07 2013-06-11 Apple Inc. Automatic language identification for dynamic text processing
GB2476754A (en) * 2008-09-15 2011-07-06 Erik Thomsen Extracting semantics from data
US20100070908A1 (en) 2008-09-18 2010-03-18 Sun Microsystems, Inc. System and method for accepting or rejecting suggested text corrections
US9460708B2 (en) * 2008-09-19 2016-10-04 Microsoft Technology Licensing, Llc Automated data cleanup by substitution of words of the same pronunciation and different spelling in speech recognition
US8239570B2 (en) * 2008-10-01 2012-08-07 International Business Machines Corporation Using link send and receive information to select one of multiple links to use to transfer data for send and receive operations
EP2342684A4 (en) 2008-10-23 2017-09-20 Ab Initio Technology LLC Fuzzy data operations
US8739055B2 (en) 2009-05-07 2014-05-27 Microsoft Corporation Correction of typographical errors on touch displays
US20110035209A1 (en) 2009-07-06 2011-02-10 Macfarlane Scott Entry of text and selections into computing devices
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
DE212010000169U1 (de) 2009-10-26 2012-07-26 Google, Inc. Prädiktive Texteingabe für Eingabeeinrichtungen
US20110161829A1 (en) 2009-12-24 2011-06-30 Nokia Corporation Method and Apparatus for Dictionary Selection
US9600134B2 (en) * 2009-12-29 2017-03-21 International Business Machines Corporation Selecting portions of computer-accessible documents for post-selection processing
US20110179353A1 (en) * 2010-01-19 2011-07-21 Research In Motion Limited Mobile Electronic Device and Associated Method Providing Proposed Spelling Corrections Based Upon a Location of Cursor At or Adjacent a Character of a Text Entry
US8179370B1 (en) 2010-02-09 2012-05-15 Google Inc. Proximity based keystroke resolution
US8782556B2 (en) * 2010-02-12 2014-07-15 Microsoft Corporation User-centric soft keyboard predictive technologies
US8918734B2 (en) 2010-07-28 2014-12-23 Nuance Communications, Inc. Reduced keyboard with prediction solutions when input is a partial sliding trajectory
US20120246133A1 (en) * 2011-03-23 2012-09-27 Microsoft Corporation Online spelling correction/phrase completion system
US8676937B2 (en) * 2011-05-12 2014-03-18 Jeffrey Alan Rapaport Social-topical adaptive networking (STAN) system allowing for group based contextual transaction offers and acceptances and hot topic watchdogging
US20130002553A1 (en) * 2011-06-29 2013-01-03 Nokia Corporation Character entry apparatus and associated methods
US20130120268A1 (en) 2011-11-10 2013-05-16 Research In Motion Limited Touchscreen keyboard predictive display and generation of a set of characters
US20130232006A1 (en) * 2012-03-05 2013-09-05 Tim Holcomb Filtered Search Query Data for Context and User Intent within a Location-Based Search Engine
US10296581B2 (en) 2012-06-06 2019-05-21 Apple Inc. Multi-word autocorrection
US9229924B2 (en) * 2012-08-24 2016-01-05 Microsoft Technology Licensing, Llc Word detection and domain dictionary recommendation
US8612213B1 (en) 2012-10-16 2013-12-17 Google Inc. Correction of errors in character strings that include a word delimiter

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6654733B1 (en) * 2000-01-18 2003-11-25 Microsoft Corporation Fuzzy keyboard
CN100472600C (zh) * 2003-12-22 2009-03-25 美国在线服务公司 文字输入自动更正的虚拟键盘系统
CN1928860A (zh) * 2005-09-05 2007-03-14 日电(中国)有限公司 用于校正按键错误的方法、搜索引擎和搜索系统
CN101605171A (zh) * 2008-06-09 2009-12-16 Lg电子株式会社 移动终端及其中的文本校正方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107229627A (zh) * 2016-03-24 2017-10-03 华为技术有限公司 一种文本处理方法、装置及计算设备
CN108701124A (zh) * 2016-05-17 2018-10-23 谷歌有限责任公司 预测接下来的字母并在图形键盘的键中显示它们

Also Published As

Publication number Publication date
EP2909703B1 (en) 2017-12-06
US20140188460A1 (en) 2014-07-03
US20140104175A1 (en) 2014-04-17
CN109120511A (zh) 2019-01-01
CN109120511B (zh) 2021-03-26
CN104718543B (zh) 2018-08-28
US8713433B1 (en) 2014-04-29
EP2909703A1 (en) 2015-08-26
US9747272B2 (en) 2017-08-29
WO2014062453A1 (en) 2014-04-24

Similar Documents

Publication Publication Date Title
CN104718543B (zh) 一种用于建议校正的方法和计算系统
US10156981B2 (en) User-centric soft keyboard predictive technologies
US10073536B2 (en) Virtual keyboard input for international languages
US9122376B1 (en) System for improving autocompletion of text input
CN105009064B (zh) 使用语言和空间模型的触摸键盘
US9081482B1 (en) Text input suggestion ranking
US10095405B2 (en) Gesture keyboard input of non-dictionary character strings
US20150160855A1 (en) Multiple character input with a single selection
US20140344748A1 (en) Incremental feature-based gesture-keyboard decoding
CN104718545A (zh) 递增的多词识别
US20150169212A1 (en) Character Recognition Using a Hybrid Text Display
US10846602B2 (en) Temporal based word segmentation
CN104123012A (zh) 使用替代评分的非字典字符串的姿态键盘输入
US10146764B2 (en) Dynamic key mapping of a graphical keyboard
EP3485361B1 (en) Pressure-based gesture typing for a graphical keyboard
US9298276B1 (en) Word prediction for numbers and symbols

Legal Events

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

Address after: American California

Applicant after: Google limited liability company

Address before: American California

Applicant before: Google Inc.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180828

Termination date: 20191009

CF01 Termination of patent right due to non-payment of annual fee