CN107430448B - 针对文本录入中的自适应语言模型的反学习技术 - Google Patents

针对文本录入中的自适应语言模型的反学习技术 Download PDF

Info

Publication number
CN107430448B
CN107430448B CN201680017892.3A CN201680017892A CN107430448B CN 107430448 B CN107430448 B CN 107430448B CN 201680017892 A CN201680017892 A CN 201680017892A CN 107430448 B CN107430448 B CN 107430448B
Authority
CN
China
Prior art keywords
string
input
new
likelihood value
computing device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201680017892.3A
Other languages
English (en)
Other versions
CN107430448A (zh
Inventor
欧阳瑜
翟树民
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN107430448A publication Critical patent/CN107430448A/zh
Application granted granted Critical
Publication of CN107430448B publication Critical patent/CN107430448B/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04808Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen

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)
  • Probability & Statistics with Applications (AREA)
  • User Interface Of Digital Computer (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

在一些示例中,一种方法包括:输出图形键盘(120)以供显示,并且响应于接收到第一输入(124)的指示,确定在所述语言模型中不包括的新字符串。所述方法可以包括:将所述新字符串添加至所述语言模型并且将似然值与所述新字符串相关联。所述方法可以包括:响应于接收到第二输入的指示,预测所述新字符串,并且响应于接收到拒绝所述新字符串的第三输入的指示,降低与所述新字符串相关联的所述似然值。

Description

针对文本录入中的自适应语言模型的反学习技术
背景技术
一些计算设备提供图形键盘作为用于文本输入的用户界面的一部分。例如,包括在计算设备中或者耦合至计算设备的存在敏感显示器可以输出使得用户能够通过选择显示在存在敏感显示器处的按键来录入数据的图形键盘。在一些情况下,计算设备可以呈现图形键盘,用户可以通过轻敲该键盘的各按键或者通过在与期望按键相关联的连续区域上滑动手指来与该图形键盘交互。按照这种方式,图形键盘提供允许用户利用一个或者多个手势来录入字符、词、或者词组的输入方法。因此,图形键盘可以允许用户将文本快速且准确地录入计算设备中。
接收来自图形键盘的输入的计算设备可以采用词预测、自动校正、和/或建议技术来确定手势输入所指示的词。一些图形键盘可以学习由用户输入的新词,所述新词先前并未存储在计算设备的词典中。这样的技术可以提供对新添加的词的稍后预测,但是在一些实例下,用户可能不期望计算设备预测新添加的词。因此,用户可能需要执行附加动作来校正错误的预测,从而使用户输入减慢并且降低基于手势的文本输入的效率。
附图说明
图1是图示了根据本公开的一个或者多个方面的,配置为响应于拒绝新字符串的随后的用户输入而反学习新字符串的示例计算设备的概念图。
图2是图示了根据本公开的一个或者多个方面的示例计算设备的框图。
图3是图示了根据本公开的一个或者多个技术的,输出图形内容以供显示在远程设备处的示例计算设备的框图。
图4是图示了根据本公开的一个或者多个方面的,配置为响应于拒绝新字符串的随后的用户输入而反学习该新字符串的计算设备的示例操作的流程图。
图5是图示了根据本公开的一个或者多个方面的,配置为响应于拒绝新字符串的随后的用户输入而反学习该新字符串的示例计算设备的概念图。
具体实施方式
本公开的技术可以使得计算设备能够自适应地反学习(unlearn)计算设备先前学习过并且存储在语言模型中的字符串。例如,如果计算设备学习先前不包括在语言模型中的新词,并且稍后响应于用户输入而预测新字符串,则用户可以拒绝新字符串从而使得用户设备逐渐“反学习”该新字符串。在一些示例中,反学习字符串可以包括:降低与新字符串相关联的似然值(likelihood value)。例如,如果计算设备接收到拒绝字符串的用户输入的指示,则计算设备可以降低似然值,而不从由计算设备存储的语言模型和/或词典彻底移除新字符串。不同于仅准许用户从语言模型彻底移除新字符串,本公开的技术可以基于拒绝新字符串的用户输入来逐渐降低字符串的似然值。因此,本公开的技术可以使得计算设备能够更加激进地学习先前不包括在语言模型中的新字符串,并且从而基于先前拒绝新字符串的用户输入来提高在各种输入上下文(context)中预测新字符串的准确性。
图1是图示了根据本公开的一个或者多个方面的,配置为响应于拒绝新字符串的随后的用户输入而反学习新字符串的示例计算设备的概念图。在图1的示例中,计算设备100可以是移动电话。然而,在其它示例中,计算设备100可以是平板计算机、个人数字助理(PDA)、膝上型计算机、便携式游戏设备、便携式媒体播放器、电子书阅读器、智能手表、电视平台、或者另一种类型的计算设备。
如图1所示,计算设备100包括与计算设备100的客体物理地集成在一起的存在敏感显示器102。在一些示例中,该客体可以由塑料、铝、钢、或者任何其它合适的材料构建而成。该客体可以是刚性壳体,该刚性壳体包围并且以其他方式保护提供计算设备100的功能的电子组件。
计算设备100的存在敏感显示器102可以充当输入设备并且充当计算设备100的输出组件。在一些示例中,存在敏感显示器102可以包括集成的存在敏感输入组件和显示组件。例如,存在敏感显示器102可以充当存在敏感输入组件,该存在敏感输入组件使用存在敏感屏幕,诸如,电阻式触摸屏、表面声波触摸屏、电容式触摸屏、投射式电容触摸屏、压力敏感触摸屏、声波脉冲识别触摸屏、或者另一存在敏感屏幕技术。存在敏感显示器102可以充当输出组件(诸如,显示组件),该输出组件使用能够将可见信息输出至计算设备100的用户的液晶显示器(LCD)、点阵显示器、发光二极管(LED)显示器、有机发光二极管(OLED)显示器、电子墨水、或者相似的单色显示器或者彩色显示器中的任何一个或者多个。对图2的描述中包括存在敏感显示器102的其它细节。
存在敏感显示器102可以通过检测从计算设备100的用户(例如,利用手指或者触控笔来触摸或者指向存在敏感显示器102的一个或者多个位置的用户)接收到的一个或者多个轻敲和/或非轻敲手势、连续手势、或者其它任何触摸手势(例如,多点触摸手势)来接收用户输入的指示。基于用户输入的指示,存在敏感显示器102的显示组件可以将输出呈现给用户。例如,存在敏感显示器102的显示组件可以呈现在计算设备100上执行的应用(例如,电子消息应用、互联网浏览器应用)的各种用户界面。计算设备100的用户可以在存在敏感显示器102的存在敏感输入组件处提供用户输入,以与这些应用中的一个或者多个交互。
计算设备100可以包括应用模块106、用户界面模块108、和键盘模块110。模块106、108、和110可以通过使用驻留在计算设备100中并且在计算设备100上执行或者在一个或者多个其它远程计算设备处执行的软件、硬件、固件、或者硬件、软件、与固件的混合来执行本文描述的操作。计算设备100可以利用一个或者多个处理器来执行模块106、108、和110。计算设备100可以执行模块106、108、和110中的任何一个以作为在底层硬件上执行的虚拟机,或者在底层硬件上执行的虚拟机内执行模块106、108、和110中的任何一个。可以按照各种方式来实现模块106、108、和110。例如,可以将模块106、108、和110中的任何一个实现为可下载的或者预安装的应用或者“app”。在另一示例中,可以将模块106、108、和110中的任何一个实现为计算设备100的操作系统的一部分。
如图1所示,计算设备100包括一个或者多个应用模块106。应用模块106可以包括用于对计算设备100执行各种操作的功能。例如,应用模块106可以包括电子邮件应用、文本消息收发应用、即时消息收发应用、天气应用、视频会议应用、社交联网应用、天气应用、股市应用、紧急警报应用、运动应用、办公生产力应用、多媒体播放器等。尽管示出为可由计算设备100操作,应用模块106中的一个或者多个可以是可由通信地耦合至计算设备100的远程计算设备操作。在这样的示例中,在远程计算设备处执行的应用模块可以通过使用任何合适形式的数据通信(例如,有线或者无线网络、短距离无线通信——诸如近场通信或者蓝牙等)来使得远程计算设备发送信息。在一些示例中,远程计算设备可以是与计算设备100分开的计算设备。例如,远程计算设备可以通过网络操作地耦合至计算设备100。远程计算设备的示例可以包括但不限于服务器、智能电话、平板计算设备、智能手表、和台式计算机。在一些示例中,远程计算设备可以不是计算设备100的集成组件。
计算设备100还可以包括UI模块108。计算设备100的UI模块108可以从存在敏感显示器102接收在存在敏感显示器102处检测到的用户输入的一个或者多个指示。通常,每当存在敏感显示器102接收到在存在敏感显示器102的特定位置处检测到的用户输入的指示时,UI模块108可以从存在敏感显示器102接收关于用户输入的信息。UI模块108可以将从存在敏感显示器102接收到的信息组装成指示手势的、可以是时间排序(time-ordered)的事件集,诸如一个或者多个触摸事件的序列。在该序列中的每个触摸事件可以包括表示参数(例如,何时、何地、发起方向)的数据或者分量,该参数表征在存在敏感屏幕处的输入的存在和/或移动。在序列中的每个触摸事件可以包括与存在敏感显示器102的位置相对应的位置分量、与存在敏感显示器102检测到在该位置处的用户输入的时间有关的时间分量、和/或与触摸事件是否与在该位置处的抬起或者推下相对应的动作分量。
UI模块108可以基于触摸事件的序列来确定用户输入的一个或者多个特性,并且包括关于触摸事件的序列中的每个触摸事件内的这些一个或者多个特性的信息。例如,UI模块108可以确定用户输入的开始位置、用户输入的结束位置、用户输入的一部分的密度、用户输入的一部分的速度、用户输入的一部分的方向、或者用户输入的一部分的曲率,仅举几例。在触摸事件的序列中的一个或者多个触摸事件可以包括(除了如上所述的时间分量、位置分量、和动作分量之外)特性分量,该特性分量包括关于用户输入的一个或者多个特性(例如,密度、速度等)的信息。UI模块108可以将包括与每个触摸事件相关联的分量或者参数化数据的触摸事件的序列作为输出传送至键盘模块110。
UI模块108可以充当计算设备100的各种组件之间的中介,以基于由存在敏感显示器102检测到的输入来进行确定并且生成由存在敏感显示器102呈现的输出。例如,UI模块108可以初始地从键盘模块110接收表示包括在图形键盘120中的按键的键盘布局的数据作为输入。UI模块108可以使得存在敏感显示器102输出图形键盘120。响应于接收到用户输入,UI模块108可以将触摸事件和/或存在敏感显示器102呈现每个按键的位置的序列作为输出传送至键盘模块110。键盘模块110可以接收从关于由存在敏感显示器102检测到的用户输入的信息生成的触摸事件的序列。键盘模块110可以基于在序列触摸事件中的位置分量来确定接近对一个或者多个按键的选择的一个或者多个位置分量(例如,键盘模块110可以确定触摸事件中的一个或者多个的位置与存在敏感显示器102的呈现图形键盘120的区相对应)。UI模块108可以从键盘模块110基于对一个或者多个按键的选择来接收一个或者多个字符串,可以输出该一个或者多个字符串以显示在存在敏感显示器102处。UI模块108可以将图形用户界面114更新为包括一个或者多个字符串。UI模块108可以使得存在敏感显示器102显示更新的用户界面,该更新的用户界面包括一个或者多个字符串作为文本。
在图1的示例中,键盘模块110将数据发送至使得存在敏感显示器102呈现示例用户界面114的UI模块108。在该示例中,用户界面114包括显示在存在敏感显示器102的不同位置处的图形元素。图1图示了用户界面114的编辑区域116和用户界面114的图形键盘120。编辑区域116可以包括图形元素,诸如图像、对象、超链接、文本字符等。图形键盘120包括显示为按键的图形元素。用户界面114包括建议的字符串区域118A-118C,该建议的字符串区域118A-118C包括可选择的拼写校正或者字符串建议,以替换或者添加包括在编辑区域116中的字符串。在图1的示例中,编辑区域116包括显示为文本字符(例如,字符串)的图形元素。计算设备100的用户可以通过在存在敏感显示器102的显示图形键盘120的按键的位置处提供用户输入来在编辑区域116中录入文本。响应于诸如文本的用户输入,计算设备100可以在建议的字符串区域118A-118C中输出一个或者多个建议的字符串。
在一些示例中,计算设备100的键盘模块110可以将包括与一种或者多种书面语言(例如,英语、西班牙语)有关的多个按键的键盘布局作为输出传送至UI模块108(包含作为GUI 114的图形键盘120)。键盘模块110可以将一个或者多个字符或者操作分配给键盘布局中的多个按键中的每个按键。例如,键盘模块110可以生成QWERTY键盘布局,该QWERTY键盘布局包括表示用于键入英语语言的字符的按键。QWERTY键盘布局还可以包括表示用于键入英语的操作的按键(例如,退格、删除、空格键、回车等)。
键盘模块110可以从UI模块108接收表示由UI模块108生成的触摸事件的序列的数据。键盘模块110还可以确定存在敏感显示器102的、该存在敏感显示器102呈现图形键盘120的每个按键的位置。键盘模块110可以基于按键的位置来确定触摸事件的表示对一个或者多个按键的选择的序列。键盘模块110可以将指示一个或者多个字符串的数据发送至UI模块以供包含在用户界面114中。
在一些示例中,键盘模块110可以使用语言模型112来预测一个或者多个词。键盘模块110可以在语言模型112中执行查找以识别一个或者多个字符串——例如在语言模型中的词,该一个或者多个字符串包括与和一个或者多个用户输入——诸如连续手势和/或离散轻敲输入——相对应的按键相关联的一组字符的一部分或者全部。语言模型112可以实现或者存储一个或者多个n-gram(n元)。n-gram语言模型可以基于序列中的前一项(即,P(xi|xi-(n-l),...,xi-1))来为项的连续序列中的项xi(字母、词、标点字符、或者其它定界符)提供概率分布。例如,字符级bigram(二元)语言模型(n-gram模型,其中,n=2)可以提供字母“w”跟随在字母序列“no”后的概率。在另一示例中,词级trigram(三元)语言模型可以提供“fox”跟随在词序列“the quick brown”后的概率。
计算设备100的语言模型112可以包括在书面语言词汇表内的例如的词字符串列表。在一些示例中,语言模型可以基于和/或包括字符串集,其基于存储在计算设备100或者可由计算设备100访问的远程计算设备处的词典(例如,该词典包括词的词汇表)。在一些示例中,词典可以包括词的词汇表。当词典初始安装在计算设备时,可以将词典初始化为包括在书面词汇表或者口语词汇表中的最常用的字符串的语料库。词的词汇表可以是在书面语言和/或口头语言中使用的词的主体。可以将词典实现为按照结构化的方式存储词汇表的一个或者多个词的数据结构。语言模型可以基于字符串在给定语言场境中出现的频率来指示每个相应字符的似然值(例如,出现的概率或者频率)。例如,与例如跟随在字符串“the”之后的字符串“run”相比,在英语语言中跟随在字符串“the”之后的字符串“door”可能使用的更频繁,并且从而与更大的似然值相关联。在一些示例中,似然值可以是整数值或者非整数值。
键盘模块110可以使用语言模型112基于语言场境来确定字符串的语言模型分值,该语言场境可以包括但不限于例如与由用户执行的手势的指示相对应的字符、在词典中的字符串、和/或先前输入的字符串等。例如,键盘模块110可以确定和与手势相对应的按键相关联的一组字符。这组字符可以是在语言模型112中包括的字符串的前缀或者一部分。在一些示例中,键盘模型110可以搜索或者“预查(look ahead)”以确定语言模型中的分别与前缀相对应的一个或者多个字符串。例如,给定字符串u-t-a,键盘模块110可以通过使用语言模型来确定字符串Utah的似然值。键盘模块110可以基于与字符串相关联的似然值来确定语言模型分值。在给定语言场境中具有较高的似然值的语言模型112中的字符串可以具有较高分值(或者较低成本),其中,可以输出具有最低语言模型成本的字符串集以供显示。
为了确定触摸事件的序列表示对一个或者多个按键的选择,键盘模块110可以使用一个或者多个空间模型(未示出)和/或手势的一个或者多个特性——诸如速度、方向、长度、曲率,仅举几例。通常,空间模型可以基于与用户输入相关联的位置数据来生成图形键盘的特定按键已经由用户选择的一个或者多个概率。在一些示例中,空间模型包括每个按键的双变量Gaussian模型。按键的双变量Gaussian模型可以包括与存在敏感显示器102的呈现给定按键的位置相对应的坐标(例如,(x,y)坐标对)的分布。更具体地,在一些示例中,按键的双变量Gaussian模型可以包括存在敏感显示器102的当用户意图选择给定按键时该用户最频繁选择的位置相对应的坐标的分布。用户输入的输入位置与空间模型的较高密度区之间的距离越短,则已经选择与该空间模型相关联的按键的概率越高。用户输入的位置数据与空间模型的较高密度区之间的距离越大,则已经选择与该空间模型相关联的按键的概率越低。
键盘模块110可以使用一个或者多个空间模型来将触摸事件的序列中的一个或者多个触摸事件的位置分量(例如,坐标)与图形键盘120的一个或者多个按键的相应位置进行比较,并且基于对出现的按键的选择的这些比较来生成概率。在一些示例中,键盘模块110可以通过使用一个或者多个空间模型来生成空间模型分值。空间模型分值可以至少部分地基于存在敏感显示器102的由手势穿过的位置来指示所选择的按键的概率。
尽管已经参照空间模型描述了空间分值,但是键盘模块110还可以基于手势的一个或者多个特征——诸如手势的速度、方向、长度、曲率来确定空间分值。例如,如果手势的一部分在特定位置处具有高曲率,则键盘模块110可以确定用户已经穿过了该位置处的期望按键并且正在改变方向以选择随后的按键。因此,在特定位置处的较高曲率水平可以指示意图的按键。类似地,如果手势的一部分具有比其他先前部分更慢的速度,则键盘模块110可以确定用户已经降低了手势的速度以更准确地穿过意图按键。键盘模块110还按照相似的方式使用手势的方向和/或长度或者手势的一部分来确定用户意图选择哪些按键。在一些示例中,键盘模块110可以使用一个或者多个空间模型和手势的特性的组合来确定空间分值。
当键盘模块110接收到一个或者多个手势的指示时,键盘模块110可以增量地确定与字符串相对应的空间和语言模型分值。通过使用空间和语言模型分值,键盘模块110可以基于每个相应字符串的空间和语言模型分值来确定每个字符串的组合分值。随着键盘模块110确定手势的后续指示时,键盘模块110可以增量地更新空间分值、语言分值、和/或组合分值。即,键盘模块110可以维护基于一个或者多个输入上下文的候选字符串集和由用户所提供的用户输入穿过的按键的一个或者多个不同可能的组合。每个候选字符串可以具有对应的组合分值。在一些示例中,键盘模块110可以输出具有最高组合分值(例如,语言和空间模型概率的最高组合,或者替选地,最低语言和空间成本)的候选字符串的子集以供显示。基于所确定的一个或者多个组合分值,键盘模块110可以执行各种操作中的一个或者多个,包括但不限于,词预测、自动校正、和/或建议技术。
如参照图1进一步描述的,键盘模块110可以实现用以响应于拒绝新字符串的随后的用户输入而反学习新字符串的技术。在图1的示例中,计算设备100输出包括多个按键的图形键盘120以供显示。例如,键盘模块110可以生成包括图形键盘120的表示的数据。UI模块108可以生成用户界面114并且基于表示图形键盘120的数据来将图形键盘120包括在用户界面114中。UI模块108可以将信息发送至存在敏感显示器102,该存在敏感显示器102包括用于将用户界面114显示在存在敏感显示器102的存在敏感屏幕处的指令。存在敏感显示器102可以接收信息并且使得存在敏感显示器102的存在敏感屏幕呈现用户界面114,该用户界面114包括编辑区域116、图形键盘120、和具有字符串建议条122的建议字符串区域118A-118C。
在一些示例中,编辑区域116、建议条122、和图形键盘120是用户界面114的三个非重叠区域。在一些示例中,编辑区域116、图形键盘120、和具有字符建议条122的建议字符串区域118A-118C中的一个或者多个可以与其它编辑区域116、图形键盘120、和具有字符建议条122的建议字符串区域118A-118C中的一个或者多个重叠(例如,字符串建议区域118A-118C可以与字符串建议条122重叠)。
计算设备100可以接收在存在敏感显示器102的位置处检测到的手势的指示,其中,该位置与存在敏感显示器102的输出图形键盘120的位置相对应。在一些示例中,手势可以是单击手势,在该单击手势中用户的手指在存在敏感显示器102的特定位置处被检测到,并且随后在用户从存在敏感显示器102进行的检测中移除手指时不再被存在敏感显示器102检测到,并且用户的手指不按照相同的手势穿越至存在敏感显示器102的不同位置。在一些示例中,如图1所示,手势可以是连续手势,在该连续手势中用户的手指在存在敏感显示器102的第一位置处被检测到,并且当用户的手指仍然被存在敏感显示器102检测到时,在用户从存在敏感显示器102的检测中移除手指之前,在与第一位置不同的一个或者多个位置处检测用户的手指(例如,用户的手指正在滑动或者以其他方式穿过存在敏感显示器102的多个位置)。在一些示例中,手势可以是更大的连续手势的一部分。手势可以是从用户的手指被存在敏感显示器102检测到的时刻起一直到用户的手指不再被存在敏感显示器102检测到的时刻为止的整个完整的连续手势。
在图1的示例中,当存在敏感显示器102输出用户界面114时,用户可以在存在敏感显示器102的呈现图形键盘120的区域处执行手势用户输入124(或者仅称为“手势124”)。图1图示了手势124穿过存在敏感显示器102的位置126A-126D的路径。例如,位置126A表示手势124的开始位置,并且位置126B-126D表示由手势124穿过的存在敏感显示器102的附加位置。出于示例之目的,每个位置126由图1中的虚线圆圈界定,尽管存在敏感显示器102在一些示例中可能不会输出这样的虚线圆圈,并且在每个不同的示例中这样的位置可能会更大和/或更小。
当手势124被存在敏感显示器102检测到时,UI模块108可以从存在敏感显示器102接收指示手势124的信息并且将信息组装成时间排序的触摸事件(例如,包括位置分量、时间分量、和动作分量的每个触摸事件)的序列。UI模块108可以将触摸事件发送至键盘模块110。键盘模块110可以从UI模块108接收触摸事件的序列连同与每个触摸事件相关联的信息(例如,位置、时间、动作等)。即,UI模块108可以在手势124被检测到时同时生成触摸事件并且将该触摸事件发送至键盘模块110。因此,在一些示例中,键盘模块110可以接收表示触摸事件的时间采样数据。
键盘模块110可以基于如上所述的触摸事件、语言模型112、一个或者多个空间模型、和/或手势的一个或者多个特征来确定一个或者多个字符串。如上所述,键盘模块110可以基于当前存储在词典中的现有字符串来确定各种候选字符串。例如,语言模型112可以包括基于当前存储在词典中的字符串的n-gram。来自词典的候选字符串可以由键盘模块110沿着字典树(lexicon trie)数据结构中的路径来建模,其中树的每个节点表示字符串的字符,并且在第一节点与第二节点之间的边表示第二节点的字符跟随在第一节点的字符后的可能性。通过确定沿着从起始节点到终端节点的字符的路径的边的所有可能性的总值,键盘模块110可以确定该路径的字符串的可能性。基于确定字典树中的一个或者多个字符串的可能性,键盘模块110可以输出具有一个或者多个最高可能性的一个或者多个最有可能的字符串的集合以作为字符串建议条122中的预测。
在一些示例中,键盘模块110可以在计算设备100接收到用户输入的指示时接收不与存储在语言模型112中的字符串相对应的用户输入的一个或者多个指示。例如,诸如“Zhai”的姓氏可以不包括在词典中,并且因此“Zhai”可以不包括在语言模型112中。键盘模块110可以基于用户输入来确定“Zhai”的组合分值满足将Zhai添加至词典和/或语言模型112的阈值。例如,因为手势30精确地穿过图形键盘120的‘Z’、‘H’、‘A’、和‘I’按键,所以字符‘Z’、‘H’、‘A’、‘I’的空间分值可以显著高于字符的其它组合。尽管字符串“Zhai”的语言模型分值可能较低,但是“Zhai”的基于空间模型分值和语言模型分值的组合分值可以满足将字符串“Zhai”添加至词典和/或语言模型112的阈值(例如,组合分值大于或者等于阈值)。
键盘模块110可以通过将字符串添加至词典和/或语言模型112来学习字符串“Zhai”。例如,将似然值与新字符串相关联可以包括键盘模块110将新字符串与似然值一起存储在语言模型112的至少一个n-gram中,使得似然值与语言模型112中的n-gram相对应。键盘模块110可以将unigram(一元)添加至语言模型112,其中,该unigram的字符串是“Zhai”并且该unigram的似然值等于整数值1。键盘模块110还可以将bigram添加至语言模型112,其中,该bigram的字符串是“Mr.Zhai”,并且该bigram具有等于整数值1的对应似然值。值1指示用户已经选择或者提交作为编辑区域116中的期望文本的相应字符串的出现次数。在一些示例中,如果用户将文本保留作为编写的文本的一部分而不是删除或者修改字符串,则可以选择或者提交字符串。例如,如果用户在输入“aim”之后不删除或者修改“aim”,则可以选择或者提交在输入上下文“We aim”中的字符串“aim”,并且随后输入“higher”以组成短语“We aim higher.”。
在稍后的时间点,用户可以再次提供一个或者多个用户输入来录入文本。用户可以在存在敏感显示器102处提供用户输入,诸如与字符串“Zhai”相对应的一个或者多个手势和/或轻敲。如果“Zhai”的组合分值处于候选字符串的集合中——该集合具有比不包括在该集合中的任何其它候选字符串的组合分值更大的组合分值,则键盘模块110可以至少部分地基于语言模型112来输出“Zhai”作为编辑区域116和/或字符串建议条122中的一个或者多个中的预测。
响应于接收到用户输入,如果“Zhai”由键盘模块110预测并且由用户选择或者提交作为编辑区域116中的期望文本,则键盘模块110可以增加unigram中的与字符串“Zhai”相对应的似然值。例如,键盘模块110可以将似然值递增增量值(或者幅度)。增量值可以是整数值(例如,1)、分数值、或者任何合适的值,这些值可以是用户定义的、硬编码的、和/或自适应地发生变化的。如果当“Zhai”由用户选择或者提交作为编辑区域116中的期望文本时输入上下文在“Zhai”之前包括“Mr.”,则键盘模块110可以增加bigram中的与字符串“Mr.Zhai”相对应的似然值。按照这种方式,键盘模块110可以执行学习以更新和维护语言模型112中的基于用户选择或者提交字符串的决定的似然值。
在对“Zhai”的似然值进行增量之后,如图1所示,键盘模块110可以接收在用户界面114处的用户输入的一个或者多个指示,该一个或者多个指示使得键盘模块110再次确定字符串“Mr.”和随后的“Zhai”并且输出字符串“Mr.”和随后的“Zhai”以供显示。键盘模块110可以基于用户输入的指示来确定“Zhai”、“Zhao”、和“Chao”的相应组合分值。例如,键盘模块110可以按照可能性的降序从左至右将词建议区域118中的字符串排序。然而,用户可能意图录入“Zhao”而不是“Zhai”。为了将文本“Zhai”校正为“Zhao”,用户可以提供用户输入以拒绝字符串“Zhai”。即,键盘模块110可以接收拒绝新字符串的用户输入的一个或者多个指示。如图1所示,用户输入的一个或者多个指示可以包括对退格键128的多个选择,其导致在编辑区域116中删除字符“Zhai”。在一些示例中,诸如图1所示,可以在存在敏感显示器102处暂时地显示具有删除线格式的文本“Zhai”以指示在从显示中移除之前的删除,而在其它示例中在选择退格键128时可以从存在敏感显示器102的显示中移除字符“Zhai”。
响应于接收到拒绝“Zhai”的用户输入的一个或者多个指示,键盘模块110可以对与包括字符串“Zhai”的至少一个n-gram相关联的至少一个似然值进行减量。键盘模块110可以将至少一个似然值递减减量值(或者幅度),其中,减量值可以是整数值(例如,1)、分数值、或者任何合适的值,其可以是用户定义的、硬编码的、和/或自适应地发生变化的。例如,键盘模块110可以对包括“Zhai”的unigram中的似然值进行减量。键盘模块110还可以对包括“Mr.Zhai”的bigram中的似然值进行减量,因为bigram包括字符串“Zhai”,该字符串“Zhai”由用户校正为“Zhao”。参照图2描述了改变似然值和拒绝字符串的用户输入的指示的其它细节。
在对n-gram的与“Zhai”相关联的至少一个似然值进行减量之后,键盘模块110可以接收与手势124相似或者相同的用户输入的指示。键盘模块110可以基于用户输入的指示来确定“Zhai”、“Zhao”、和“Chao”的相应组合分值。然而,因为键盘模块110基于用户先前对“Zhao”的选择和对“Zhai”的拒绝而先前降低了“Zhai”的似然值,所以键盘模块110可以确定“Zhao”具有比“Zhai”更高的组合分值。因此,键盘模块110可以在编辑区域116中输出“Zhao”和/或在建议条122中输出“Zhao”作为最有可能的字符串。因此,键盘模块110可以在最左边的词建议区域118A中输出“Zhao”,并且“Zhai”可以处于中间词建议区域118B中。通过基于拒绝字符串的用户输入的指示来自适应地反学习“Zhai”,“Zhai”仍然可以包括以作为供建议的字符串(例如,并且仍然包括在词典和/或语言模型中),但是可以由存在敏感显示器102显示为不太可能的字符串。
如图1所示,当手势124正在由用户执行时,UI模块108可以通过包括三个最高排名的候选字符串作为建议的字符串来更新建议的字符串区域118A-118C。从用户界面114中,用户可以通过在存在敏感显示器102的—存在敏感显示器102输出建议的字符串区域118A-118C的—位置处轻击或者提供输入来从建议的字符串区域118A-118C选择字符串。例如,用户可以通过在存在敏感显示器102—存在敏感显示器102呈现例如“Zhao”的建议的字符串—的位置上轻敲或者做手势来选择建议的字符串区域。选择建议的字符串区域118B可以使得UI模块108更新用户界面114并且包括在编辑区域中的字符串“Zhao”。
图2是图示了根据本公开的一个或者多个方面的示例计算设备的框图。图2仅图示了计算设备200(还如图1中的计算设备100所图示)的一个特定示例。计算设备200的许多其它示例可以在其它实例中使用并且可以包括在示例计算设备200中包括的组件的子集,或者可以包括图2中的示例计算设备200未示出的附加组件。
如图2的示例所示,计算设备200包括一个或者多个处理器240、一个或者多个输入组件242、一个或者多个通信单元244、一个或者多个输出组件246、一个或者多个存储设备248、和存在敏感显示器202。计算设备200的存储设备248还包括UI模块208、应用模块206、操作系统227、语言模型212、和键盘模块210。通信信道250可以将组件206、208、210、212、227、240、242、244、246、248、256、258、270、和272中的每一个互连以供(物理地、通信地、和/或操作地)组件间通信。在一些示例中,通信信道250可以包括系统总线、网络连接、一个或者多个进程间通信数据结构、或者用于在硬件和/或软件之间传输数据的任何其它组件。
一个或者多个处理器240可以在计算设备200内实现功能和/或执行指令。例如,在计算设备200上的处理器240可以接收并且执行由提供UI模块208、应用模块206、操作系统227、语言模型212、和键盘模块210的功能的存储设备248存储的指令。由处理器240执行的这些指令可以使得计算设备200在程序执行期间在存储设备248内存储和/或修改信息。处理器240可以执行UI模块208、应用模块206、操作系统227、语言模型212、和键盘模块210的指令以执行一个或者多个操作。即,UI模块208、应用模块206、操作系统227、语言模型212、和键盘模块210可以是可由处理器240操作以执行本文描述的各种功能。
计算设备200的一个或者多个输入组件242可以接收输入。输入的示例为触觉输入、音频输入、体感输入、和光学输入,仅举几例。在一个示例中,计算设备200的输入组件242包括鼠标、键盘、语音响应系统、摄像机、按钮、控制板、麦克风、或者用于检测来自人或者机器的输入的任何其它类型的设备。在一些示例中,输入组件242可以是存在敏感输入组件,该存在敏感输入组件可以包括存在敏感屏幕、触摸敏感屏幕等。
计算设备200的一个或者多个输出组件246可以生成输出。输出的示例是触觉输出、音频输出、和视频输出。在一些示例中,计算设备200的输出组件246包括存在敏感屏幕、声卡、视频图形适配器卡、扬声器、阴极射线管(CRT)监视器、液晶显示器(LCD)、或者用于对人或者机器生成输出的任何其它类型的设备。输出组件可以包括显示组件,诸如,阴极射线管(CRT)监视器、液晶显示器(LCD)、发光二极管(LED)、或者用于生成触觉输出、音频输出、和/或视频输出的任何其它类型的设备。
在一些示例中,计算设备200的存在敏感显示器202可以包括输入组件242和/或输出组件246的功能。在图2的示例中,存在敏感显示器202可以包括存在敏感输入组件272,诸如,存在敏感屏幕或者触摸敏感屏幕。在一些示例中,存在敏感输入组件272可以检测存在敏感输入组件处和/或附近的对象。作为一个示例范围,存在敏感输入组件272可以检测处于存在敏感输入组件272的两英寸或者以下内的对象,诸如手指或者触控笔。存在敏感输入组件272可以确定存在敏感输入组件的检测到对象的位置(例如,(x,y)坐标)。在另一示例范围中,存在敏感输入组件272可以检测距离存在敏感输入组件272两英寸或者以下的对象,并且其它范围也是可能的。存在敏感输入组件272可以通过使用电容技术、电感技术、和/或光学识别技术来确定存在敏感输入组件272的用户的手指所选择的位置。
在一些示例中,存在敏感显示器202还可以通过使用如针对输出组件246所描述的触觉刺激、音频刺激、或者视频刺激来将输出提供给用户。例如,存在敏感显示器202可以包括呈现图形用户界面的显示组件270。显示组件270可以是提供视觉输出的任何类型的输出组件,诸如,针对输出组件246所描述的组件。虽然图示为计算设备200的集成组件,但是在一些示例中,存在敏感显示器202可以是外部组件,该外部组件与计算设备200的其它组件共享数据路径以供传送和/或接收输入和输出。例如,存在敏感显示器202可以是计算设备200的内置组件,该内置组件位于计算设备200的外部封装(例如,移动电话上的屏幕)内并且物理地连接至计算设备200的外部封装。在另一示例中,存在敏感显示器202可以是计算设备200的外部组件,该外部组件位于计算设备200的封装(例如,与平板计算机共享有线和/或无线数据路径的监视器、投影仪等)外部并且与计算设备200的封装物理地分开。在一些示例中,存在敏感显示器202在位于计算设备200的封装外部并且与计算设备200的封装物理地分开时,可以由两个单独的组件实现:用于接收输入的存在敏感输入组件272和用于提供输出的显示组件270。
计算设备200的一个或者多个通信单元244可以通过传送和/或接收数据来与外部设备通信。例如,计算设备200可以使用通信单元244来传送和/或接收诸如蜂窝无线电网络的无线电网络上的无线电信号。在一些示例中,通信单元244可以传送和/或接收卫星网络——诸如全球定位系统(GPS)网络——上的卫星信号。通信单元244的示例包括网络接口卡(例如,诸如以太网卡)、光学收发器、射频收发器、GPS接收器、或者可以发送和/或接收信息的任何其它类型的设备。通信单元244的其它示例可以包括在移动设备以及通用串行总线(USB)控制器等中找到的
Figure BDA0001416481690000181
GPS、3G、4G、和
Figure BDA0001416481690000182
无线电。
在计算设备200内的一个或者多个存储设备248可以存储信息以供在计算设备200的操作期间进行处理。在一些示例中,存储设备248是暂时性存储器,这意味着存储设备248的主要目的不是长期存储。在计算设备200上的存储设备248可以配置用于短期存储信息以作为易失性存储器,并且因此如果停用则不保留所存储的内容。易失性存储器的示例包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、和在本领域中已知的其它形式的易失性存储器。
在一些示例中,存储设备248还包括一个或者多个计算机可读存储介质。存储设备248可以配置为存储比易失性存储器更大量的信息。存储设备248可以进一步配置用于长期存储信息以作为非易失性存储空间,并且在激活/关闭循环之后保留信息。非易失性存储器的示例包括磁性硬盘、光盘、软盘、闪速存储器、或者电可编程存储器(EPROM)或者电可擦除和可编程(EEPROM)存储器。存储设备248可以存储与UI模块208、应用模块206、操作系统227、语言模型212、和键盘模块210相关联的程序指令和/或数据。
如图2所示,计算设备200可以包括一个或者多个传感器256。传感器256可以包括加速度计,该加速度计生成加速度计数据。加速度计数据可以指示计算设备200的加速度和/或加速度的变化。传感器256可以包括陀螺仪,该陀螺仪生成陀螺仪数据。陀螺仪数据可以指示计算设备200的物理定向和物理定向的变化。在一些示例中,定向可以与一个或者多个参考点有关。传感器256可以包括磁力计,该磁力计生成磁力计数据。磁力计数据可以指示接触或者接近计算设备200的对象的磁化强度(magnetization)。磁力计数据可以指示地球的磁场,并且在一些示例中,提供罗盘的方向功能。传感器256可以包括环境光传感器,该环境光传感器生成环境光数据。环境光数据可以指示暴露出计算设备200的光的强度。传感器256可以包括接近传感器,该接近传感器生成接近数据。接近数据可以指示对象是否在计算设备200近邻内。在一些示例中,接近数据可以指示对象与计算设备200有多近。在一些示例中,传感器256可以包括时钟,该时钟生成日期和时间。日期和时间可以是当前日期和时间。
如图2所示,计算设备200可以包括电源258。在一些示例中,电源258可以是电池。电源258可以将电力提供给计算设备200的一个或者多个组件。电源258的示例可以包括但不一定限于,具有锌碳、铅酸、镍铬(NiCD)、镍金属氢化物(NiMH)、锂离子(Li-ion)、和/或锂离子聚合物(Li-ion聚合物)化学物质的电池。在一些示例中,电源258可以具有有限的电容(例如,1000-3000mAh)。
根据本公开的技术,计算设备200可以包括一个或者多个处理器240和至少一个键盘模块210,该至少一个键盘模块210可由一个或者多个处理器240操作以输出图形键盘。响应于键盘模块210接收到在存在敏感输入组件272的位置处检测到的第一输入的指示,至少部分地基于该第一输入的指示来确定在词典或者语言模型中不包括的新字符串。存在敏感输入组件272的位置可以与诸如显示组件270的输出组件的位置相对应。键盘模块210可以将新字符串添加至词典或者语言模型并且将似然值与该字符串相关联。响应于接收到在存在敏感输入组件272的位置处检测到的第二输入的指示,键盘模块210可以响应于用户输入的第二指示而预测字符串。响应于接收到拒绝新字符串的第三输入的指示,降低与新字符串相关联的似然值。
如本公开所述,文本录入方法(即,移动键盘)可以适应于用户,从用户的联系人学习新词,键入历史记录、个人内容(电子邮件、社交、聊天等)。例如,如果用户频繁地键入短语“cu soon”,则键盘模块210可以学习缩写词“cu”(若键盘模块210尚未学习该缩写词)并且响应于用户键入“cu”而建议“soon”。然而,自适应地将新词添加至词典可能存在两个相冲突的目标之间的折衷:(1)在只有几个实例(或者甚至只有一个实例)中确定词之后,快速地学习新词和短语以及(2)使学到“错误的”词或者短语的风险最小化,例如,不慎学到打字错误或者拼写错误(比如,针对意图词“birthday”的“birfhday”)并且将该打字错误或者拼写错误添加至词典,或者学习与另一个更流行的词相干扰的词,诸如,“AMD”与“and”。
在一些键盘中,当用户恢复字符串建议时,计算设备可能从其自适应语言模型彻底移除该词。然而,这可能过于简单和/或过于激进,其可能会导致有效(或者频繁)词的过快遗忘(例如,移除)。一些键盘可以提供干扰过滤器。干扰过滤器可以防止学习“过于接近”已知的词或者与已知的词相似(并且因此很可能会是打字错误或者拼写错误)的新词。例如,即使有效字符串(比如,“AMD”)与用户极为相关,但是因为该有效字符串(比如,“AMD”)与“and”的相似性,干扰过滤器可以防止该有效字符串(比如,“AMD”)被学习。然而,干扰过滤器可能不会防止其它类型的不想要的词被学习。一些键盘可以允许用户长按输出的词以能够选择从语言模型彻底移除这个词,但是这种特征不容易被发现并且可能不会准许逐渐地反学习字符串。
本公开的技术提出了一种基于用户行为来适配语言模型的强化学习方法。在一些示例中,当存在来自用户的用于选择词或者短语的肯定指示时,该技术可以学习在计算设备200的词典或者语言模型中尚未包括的新词和短语。按照这种方式,本公开的技术可以允许新字符串的学习由于改进的反学习能力而变得更快且更积极。因此,在一些示例中即使在没有来自用户的明确指令的情况下,也可以快速地校正学习“错误”(例如,用户不意图的字符串)。
响应于输出词,键盘模块210可以在从用户接收到否定指示时反学习词(例如,从词典移除词、从语言模型移除词、将似然值降低至零或者空,仅举反学习的几个示例)。否定指示或者拒绝的指示的示例可以包括但不限于:删除词、拒绝建议的词(通过从建议条选择替选项、忽略建议的词、在自动校正之后退格);或者手动地指示不想要某个词,仅举几例。
在一些示例中,键盘模块110可以根据用户输入的给定一个或者多个指示的特定速率或者幅度来执行对字符串的反学习。速率或者幅度可以是整数或者非整数,并且可以基于一个或者多个准则(例如,用户输入的速度、输入上下文、已经拒绝字符串的次数,仅举一个或者多个准则的几个示例)来进行硬编码、用户定义、或者自适应。随着键盘模块110积聚拒绝字符串的用户输入的更多指示时,键盘模块110可以逐渐地(或者快速地)反学习词,而不是在第一次出现拒绝字符串的用户输入时彻底忘记该字符串。在一些示例中,如果键盘模块210将新字符串添加至词典和/或语言模型,并且然后用户随后在键盘模块210第一次预测或者输出新字符串时立即拒绝字符串,则键盘模块210可以忘记词,因为似然值为1并且基于拒绝而降低至0。
在一些示例中,键盘模块210可以在反学习字符串(例如,“aim”)或者包括一组字符串的短语(“we aim”)时将短语或者输入上下文纳入考虑。在一些示例中,本公开的技术可以反学习对应短语或者输入上下文的词。例如,本公开的技术可以在前一个词为“this”时针对bigram“this AMD”仅反学习“AMD”,但是针对bigram“from AMD”不反学习“AMD”,因为输入上下文包括“this”而不是“from”。更普遍地,键盘模块210可以仅针对特定输入上下文来更新与字符串相关联的似然值。
在一些示例中,键盘模块210可以适配由键盘模块210检测到的特定行为的学习/反学习的速率或者幅度。例如,由键盘模块210检测到的一些动作可以使得键盘模块210执行比其它动作更快的反学习(例如,用户输入的速度、输入上下文、已经拒绝字符串的次数,仅举几例)。在一些示例中,如果快速反学习非预期词是强目标(strong goal),则键盘模块210的反学习速率或者幅度可以远远大于学习速率或者幅度。
在本公开的技术的一个示例中,键盘模块210可以立即反学习打字错误或者拼写错误。例如,用户可能会将“birthday”错键入成“bjrtjdy”并且忘记或者不愿费心去校正该词。因此,键盘模块210可以通过将“bjrtjdy”添加至词典和/或语言模型212中的一个或者多个来学习“bjrtjdy”。在稍后的时间,用户可能会再次将“birthday”错键入成“birtjdy”。键盘模块210可能建议新学到的词“bjrtjdy”,该新学到的词被输出以供由存在敏感显示器202显示。然而,在这种实例下,用户提供用户输入以拒绝建议并且再次键入“birtjdy”。在这种实例下,由键盘模块210已经反学习了“bjrtjdy”,所以键盘模块210建议“birthday”,输出“birthday”以供显示。
在一些示例中,本公开的技术可以逐渐地反学习键盘模块210先前基于一个或者多个用户输入来添加至词典或者语言模型的流行的个性化词或者新字符串。例如,用户可能频繁地键入电影标题“Gattaca”。键盘模块210可以以高概率来学习“Gattaca”。用户随后可以输入“Gattaca”。键盘模块210可以建议新学到的词“Gattaca”。用户可以拒绝建议“Gattaca”并且作为替代键入“inception”。响应于用户的拒绝,键盘模块210可以例如通过对Gattaca的似然值进行减量来减小“Gattaca”的概率,但是不彻底移除“Gattaca”。然后,用户可以再次输入“Gattaca”。键盘模块210仍然可以建议“Gattaca”。用户随后可以在建议“Gattaca”和/或输出“Gattaca”以供显示的多个随后的实例中拒绝“Gattaca”。对于“Gattaca”的每次连续拒绝,键盘模块210持续降低“Gattaca”的似然值,直到键盘模块210从语言模型212移除该词或者以其他方式将该词的似然值设置为零或者空为止。当用户随后提供与“Gattaca”相似的输入时,因为“Gattaca”已被移除或者以其他方式在语言模型中指示成未使用过,所以键盘模块210可以建议与字符串“Gattaca”最接近的替选项。
一些常规键盘可以立即从词典和/或语言模型忘记或者移除流行的个性化词。例如,在常规键盘中,用户可以频繁地键入电影标题“Gattaca”。常规键盘最终可以以高概率学习“Gattaca”。用户随后可以用手势表示“Gattaca”并且常规键盘建议学到的词“Gattaca”。然而,在这种特定实例下,用户可以拒绝建议Gattaca并且作为替代键入“Inception”。常规键盘可能彻底忘记或者移除词“Gattaca”,使得在用户再次提供“Gattaca”的随后手势时,常规键盘无法建议“Gattaca”。因此,与本公开的技术相比,常规键盘可能不会逐渐地反学习字符。
键盘模块210可以基于正强化和负强化来适配n-gram语言模型,诸如语言模型212。例如,键盘模块210可以使用语言模型212的n-gram来存储非个性化和个性化语言模型,以便使n-gram语言模型适应正强化和负强化。在一些情况下,本公开的技术可以应用于其它(非基于n-gram的)语言模型。
如表1所示,键盘模块210可以包括初始n-gram模型似然值的下面的示例。下面的表1图示了从句子中积聚n-gram的计数或者似然值,其中,a、b、和c表示单独的词:
unigram bigram trigram
#(a)=3 #(a b)=1 #(a b a)=1
#(b)=1 #(b a)=1 #(b a c)=1
#(c)=2 #(a c)=2
表1
例如,bigram#(a b)=1表示词‘b’紧随在词‘a’之后的似然值1。
键盘模块210可以在下面的公式1中计算根据n-gram的条件概率:
p(b|a)=p(a,b)/p(a)=#(a,b)/#(a) (1)
键盘模块210可以使用语言模型212来计算p(b|a),并且在一些示例中,随着UI模块208生成的触摸事件而递增。例如,键盘模块210可以分别利用公式2来计算unigram的以下示例并且利用公式3-4来计算bigram的以下示例:
p(a)=#(a)/(#(a)+#(b)+#(c))=3/6 (2)
p(b|a)=#(a b)/#(a)=1/3 (3)
p(c|a)=#(a c)/#(a)=2/3 (4)
为了图示学习的示例,用户可以起始新文档或者开始在用户界面的文本编辑区域中进行键入,并且接受或者提交由键盘模块210针对词(a)提供的建议。因此,键盘模块210可以如表2所示从3→4对unigram(a)的计数或者似然值进行增量。
unigram bigram trigram
#(a)=3→4 #(a b)=1 #(a b a)=1
#(b)=1 #(b a)=1 #(b a c)=1
#(c)=2 #(a c)=2
表2
根据本公开的技术,键盘模块210还可以执行反学习。例如,用户可以起始新文档或者开始键入用户界面的文本编辑区域,并且拒绝由键盘模块210针对词(a)提供的建议。在本公开的技术的一个示例方法中,键盘模块210可以从3→1对unigram(a)的计数或者似然值进行减量。如先前的学习示例中所述,通过以用于学习的增量的两倍的量来对用于反学习的似然值进行减量,键盘模块210可以应用强的负强化以使得反学习速率或者幅度是学习速率的2倍。因此,键盘模块210可以应用与学习速率或者幅度不同的反学习速率或者幅度。例如,学习速率(或者幅度)可以大于反学习速率(或者幅度)或者小于反学习速率(幅度)。由于键盘模块210已经以学习速率1的2倍来对unigram(a)进行减量,所以包括(a)的bigram和trigram的条件概率可以总计多于1.0,例如,如公式5-6所表达的bigram:
p(b|a)=#(a b)/#(a)=l/l=1.0(?) (5)
p(c|a)=#(a c)/#(a)=2/1=2.0(?) (6)
根据该公开的技术,键盘模块210可以调整一个或者多个n-gram以避免较高阶n-gram(例如,bigram)具有比较低阶n-gram(例如,unigram)更高的似然值的。较高阶n-gram可以比较低阶n-gram包括更多的词。在一个示例中,当较高阶子n-gram的似然值大于unigram#(a)时,键盘模块210可以移除任何较高阶子n-gram(a,...),诸如,#(a b)、(a b)、和(a b a)。在一些示例中,键盘模块210可以将较高阶子n-gram似然值更新为小于或者等于较低阶子n-gram似然值。在另一示例中,当用户在unigram#(a)的输入上下文中拒绝(a)时,键盘模块210可以跨如表3所示的较高阶子n-gram来分布在计数或者似然值方面的减量。
unigram bigram trigram
#(a)=3→1 #(a b)=1→0 #(a b a)=1→0
#(b)=1 #(b a)=1 #(b a c)=1
#(c)=2 #(a c)=2→0
表3
例如,当(a)是输入上下文中的唯一字符串时,如果用户拒绝(a),则键盘模块210可以对子n-gram#(a b)、#(a b)、和#(a b a)的似然值进行减量。通过在较高阶子n-gram的似然值大于unigram#(a)时移除任何较高阶子n-gram或者跨较高阶n-gram来分布在计数或者似然值方面的减量,键盘模块210可以避免具有比较低阶n-gram(例如,unigram)更高的似然值的较高阶n-gram(例如,bigram)。
在反学习的另一示例中,根据本公开的技术,用户可以起始新文档或者开始在用户界面的文本编辑区域中进行键入,并且拒绝由键盘模块210针对词(a)提供的建议。如表4所示,键盘模块210可以从0→1对unigram(a)的单独的“拒绝-计数(rejection-count)”进行增量:
unigram bigram trigram
#(a)=3(1) #(a b)=1(0) #(a b a)=1(0)
#(b)=1(0) #(b a)=1(0) #(b a c)=1(0)
#(c)=2(0) #(a c)=2(0)
表4
在一些示例中,如果键盘模块210计算(a)的条件概率,则键盘模块210可以将“接受-计数(acceptance-count)”或者似然值降低“拒绝-计数”。即,当计算p(b|a)=#(a b)/#(a)时,例如,键盘模块210可以计算(acceptance-count(#(a b))-rejection-count((#(ab))/(acceptance-count(#(a))-rejection-count((#(a))。通过存储单独的拒绝-计数,键盘模块210可以跟踪由用户针对特定词或者字符串提供的否定反馈的总量,而不是对单个似然值进行增量/减量。
在反学习的另一示例中,用户可以起始新文档或者开始在用户界面的文本编辑区域中进行键入,该文本编辑区域包括词(b,a,c)并且在该文本编辑区域中,用户提供删除或者拒绝词(b,a,c)中的最后一个录入的词(c)的用户输入。响应于接收到拒绝或删除的指示,键盘模块210可以对包含序列(b,a,c)中的最后一个词项的所有n-gram的计数或者似然值进行减量。按照这种方式,如表5所图示并且通过下面的操作,键盘模块210可以提供弱负强化,使得反学习速率是学习速率的1倍:
trigram#(b a c)从1→0的减量计数
bigram#(a c)从2→1的减量计数
unigram#(c)从2→1的减量计数
unigram bigram trigram
否定#(a)=3 #(a b)=1 #(a b a)=1
#(b)=1 #(b a)=1 #(b a c)=1→0
#(c)=2→1 #(a c)=2→1
表5
在一些示例中,由于前述的减量操作,如公式7和8所图示,当输入上下文是(b,a)时,键盘模块210可以针对(c)执行反学习,但是不针对任何其它输入上下文执行反学习。
p(c|b,a)=0/1=0 (7)
p(c|a)=l/3=0.33 (8)
如本公开所述,键盘模块210可以接收拒绝字符串的输入的一个或者多个指示,以为反学习提供负强化。拒绝字符串的这样的指示的示例包括:跟随输入字符串之后,立即删除先前由用户输入的删除字符串。跟随在输入字符串之后用户立即删除字符串的这样的示例中,键盘模块210可以将此确定为用户的较强的意图指示,即立即键入替换词。因此,在一些示例中,键盘模块210可以基于这种较强形式的负强化来应用更大的反学习的速率。
如本公开所述,键盘模块210可以确定对新字符串的各种不同的拒绝。在一些示例中,拒绝字符串的输入的一个或者多个指示可以包括删除词的序列。在一些示例中,拒绝字符串的输入的一个或者多个指示可以包括用户从用户界面的建议条中挑选不同的词的指示,例如,通过选择另一个词而忽略词建议或者完全忽略词。在一些示例中,拒绝字符串的输入的一个或者多个指示可以包括用户取消对由键盘模块210执行的字符串的自动校正的指示。在一些示例中,取消对字符串的自动校正可以包括在自动校正之后立即按压退格键的用户输入的指示。在一些示例中,拒绝字符串的输入的一个或者多个指示可以包括用户通过使用拼写检查程序来校正由该用户输入的字符串的指示。
如本公开所述,键盘模块210可以接收为用于学习的字符串提供正强化的输入的一个或者多个指示。在一些示例中,为字符串提供正强化的输入的一个或者多个指示包括用户键入或者用手势表示词。在一些示例中,为字符串提供正强化的输入的一个或者多个指示包括从建议条中挑选建议。在一些示例中,为字符串提供正强化的输入的一个或者多个指示包括学习来自外部源(例如,联系人、消息等)的词。
在一些示例中,输入上下文可以包括由用户键入的一个或者多个先前输入的字符和/或字符串。例如,当编写消息时,用户先前可能已经键入了“We aim”,可以将“We aim”包括作为输入上下文的一部分来确定“We aim high.”。因此,可以基于输入上下文“We aim”来预测或者以其他方式确定“high”。在一些示例中,输入上下文可以包括计算设备的用户的身份、计算设备的地理位置、计算设备的环境和/或气候、由计算设备确定的音频和/或视频信息、由计算设备检测到的传感器信息、用户录入其文本的输入字段的类型、用户录入其文本的应用、用户录入的文本的接收者,仅举几例。本公开的技术可以提供以每输入上下文方式来自适应地反学习字符串。在每输入上下文的反学习的这样的示例中,键盘模块210可以基于特定输入上下文来降低字符串的似然值,而不是降低所有输入上下文中的字符串的似然值。键盘模块210可以基于输入上下文来调整学习和反学习的速率。例如,键盘模块210可以针对不同的相应输入上下文来将学习或者反学习的速率或者幅度调整得更高或者更低。
图3是图示了根据本公开的一个或者多个技术的,输出图形内容以供显示在远程设备处的示例计算设备的框图。通常,图形内容可以包括可以输出以供显示的任何视觉信息,诸如文本、图像、移动图像的群组,仅举几例。图3中示出的示例包括计算设备300、存在敏感显示器302、通信单元344、投影仪380、投影仪屏幕382、移动设备386、和视觉显示组件390。在一些示例中,存在敏感显示器302可以是如图1-2中描述的存在敏感显示器。尽管出于示例之目的在图1和图2中示出为独立计算设备100,但是诸如计算设备300的计算设备通常可以是任何组件或者系统,该任何组件或者系统包括用于执行软件指令的处理器或者其它合适的计算环境,并且例如不需要包括存在敏感显示器。
如图3的示例所示,计算设备300可以是包括如关于图2中的处理器240所描述的功能的处理器。在这样的示例中,计算设备300可以通过通信信道362A操作地耦合至存在敏感显示器,该通信信道可以是系统总线或者其它合适的连接。如下面进一步描述的,计算设备300还可以通过通信信道362B操作地耦合至通信单元344,该通信信道362B也可以是系统总线或者其它合适的连接。尽管在图3中单独地示出为示例,但是计算设备300可以通过一个或者多个通信信道中的任何数目的通信信道来操作地耦合至存在敏感显示器302和通信单元344。
在其它示例中,诸如先前通过图1-2中的计算设备100所图示,计算设备可以指代便携式或者移动设备,诸如移动电话(包括智能电话)、膝上型计算机等。在一些示例中,计算设备可以是台式计算机、平板计算机、智能电视平台、相机、个人数字助理(PDA)、服务器、或者大型主机。
存在敏感显示器302可以包括显示组件370和存在敏感输入组件372。例如,显示组件370可以从计算设备300接收数据并且显示图形内容。在一些示例中,存在敏感输入组件372可以通过使用电容技术、电感技术、和/或光学识别技术来确定在存在敏感显示器302处的一个或者多个用户输入(例如,连续手势、多点触摸手势、单点触摸手势)并且通过使用通信信道362A将这样的用户输入的指示发送至计算设备300。在一些示例中,存在敏感输入组件372可以物理地定位于显示组件370顶部,使得当用户将输入单元定位在由显示组件370显示的图形元素上方时,存在敏感输入组件372所处的位置与显示组件370的显示图形元素的位置相对应。
如图3所示,计算设备300还可以包括通信单元344和/或可操作地与通信单元344耦合。通信单元344可以包括如图2所述的通信单元244的功能。通信单元344的示例可以包括网络接口卡、以太网卡、光学收发器、射频收发器、或者可以发送和接收信息的任何其它类型的设备。这样的通信单元的其它示例可以包括蓝牙、3G、和WiFi无线电、通用串行总线(USB)接口等。出于简洁和说明之目的,计算设备300还可以包括图3中未示出的一个或者多个其它设备(例如,输入设备、输出组件、存储器、存储设备)和/或操作地与图3中未示出的一个或者多个其它设备(例如,输入设备、输出组件、存储器、存储设备)耦合。
图3还图示了投影仪380和投影仪屏幕382。投影设备的其它这样的示例可以包括电子白板、全息显示组件、和用于显示图形内容的任何其它合适的设备。投影仪380和投影仪屏幕382可以包括使得相应设备能够与计算设备300通信的一个或者多个通信单元。在一些示例中,一个或者多个通信单元可以实现投影仪380与投影仪屏幕382之间的通信。投影仪380可以从包括图形内容的计算设备300接收数据。响应于接收到数据,投影仪380可以将图形内容投影到投影仪屏幕382上。在一些示例中,投影仪380可以通过使用光学识别技术或者其它合适的技术来确定在投影仪屏幕处的一个或者多个用户输入(例如,连续手势、多点触摸手势、单点触摸手势)并且通过使用一个或者多个通信单元将这样的用户输入的指示发送至计算设备300。在这样的示例中,投影仪屏幕382可以是非必需的,并且投影仪380可以将图形内容投影在任何合适的介质上,并且通过使用光学识别技术或者其它这样的合适的技术来检测一个或者多个用户输入。
在一些示例中,投影仪屏幕382可以包括存在敏感显示器384。存在敏感显示器384可以包括如本公开中所描述的存在敏感显示器102和/或302的功能的子集或者所有功能。在一些示例中,存在敏感显示器384可以包括附加功能。投影仪屏幕382(例如,电子白板)可以从计算设备300接收数据并且显示图形内容。在一些示例中,存在敏感显示器384可以通过使用电容技术、电感技术、和/或光学识别技术来确定在投影仪屏幕382处的一个或者多个用户输入(例如,连续手势、多点触摸手势、单点触摸手势)并且通过使用一个或者多个通信单元将这样的用户输入的指示发送至计算设备300。
尽管已经针对n-gram描述了本公开的技术,但是这些技术还可以应用于其它实施方式。例如,当通过使用由神经网络——诸如常规神经网络、递归神经网络、长短期记忆(LSTM))实现的语言模型或者任何其它类型的在线学习来执行词预测时,可以使用本公开的技术。另一示例可以包括保留原始词/短语计数,而不是将这些值分解成n-gram。在这样的示例中,原始词/短语计数可以与k最近邻搜索一起使用来找到词与用户输入之间的匹配。
图3还图示了移动设备386和视觉显示组件390。移动设备386和视觉显示组件390均可以包括计算能力和连接能力。移动设备386的示例可以包括电子阅读器设备、可转换笔记本设备、混合板设备等。视觉显示组件390的示例可以包括其它半固定式设备,诸如,电视、计算机监视器等。如图3所示,移动设备386可以包括存在敏感显示器388。视觉显示组件390可以包括存在敏感显示器392。存在敏感显示器388、392可以包括如本公开中所描述的存在敏感显示器102和/或302的功能的子集或者所有功能。在一些示例中,存在敏感显示器388、392可以包括附加功能。在任何情况下,例如,存在敏感显示器392都可以从计算设备300接收数据并且显示图形内容。在一些示例中,存在敏感显示器392可以通过使用电容技术、电感技术、和/或光学识别技术来确定在投影仪屏幕处的一个或者多个用户输入(例如,连续手势、多点触摸手势、单点触摸手势)并且通过使用一个或者多个通信单元将这样的用户输入的指示发送至计算设备300。
如上所述,在一些示例中,计算设备300可以输出图形内容以供显示在存在敏感显示器302处,该存在敏感显示器302通过系统总线或者其它合适的通信信道耦合至计算设备300。计算设备300还可以输出图形内容以供显示在一个或者多个远程设备处,该远程设备诸如投影仪380、投影仪屏幕382、移动设备386、和视觉显示组件390。例如,计算设备300可以根据本公开的技术来执行一个或者多个指令以生成和/或修改图形内容。计算设备300可以将包括图形内容的数据输出至计算设备300的通信单元,诸如通信单元344。通信单元344可以将数据发送至远程设备,诸如投影仪380、投影仪屏幕382、移动设备386、和/或视觉显示组件390中的一个或者多个。按照这种方式,计算设备300可以输出图形内容以供显示在远程设备中的一个或者多个处。在一些示例中,远程设备中的一个或者多个可以在包括在相应远程设备中和/或操作地耦合至相应远程设备的存在敏感显示器处输出图形内容。
在一些示例中,计算设备300可以不在操作地耦合至计算设备300的存在敏感显示器302处输出图形内容。在其它示例中,计算设备300可以输出图形内容以供显示在通过通信信道362A耦合至计算设备300的存在敏感显示器302处和一个或者多个远程设备处二者。在这样的示例中,图形内容可以基本同时显示在每个相应设备处。例如,可以通过通信时延来引入一些延迟以将包括图形内容的数据发送至远程设备。在一些示例中,由计算设备300生成的并且输出以供显示在存在敏感显示器302处的图形内容可以与输出以供显示在一个或者多个远程设备处的图形内容不同。
计算设备300可以通过使用任何合适的通信技术来发送和接收数据。例如,计算设备300可以通过使用网络链路373A操作地耦合至外部网络374。在图3中图示的远程设备中的每一个可以通过相应网络链路373B、373C、和373D中的一个操作地耦合至外部网络374。外部网络374可以包括网络集线器、网络交换机、网络路由器等,这些组件可操作地相互耦合,从而提供图3中图示的计算设备300与远程设备之间的信息交换。在一些示例中,网络链路373A-373D可以是以太网、ATM、或者其它网络连接。这些连接可以是无线和/或有线连接。
在一些示例中,计算设备300可以通过使用直接设备通信378来操作地耦合至包括在图3中的远程设备中的一个或者多个。直接设备通信378可以包括这样的通信:计算设备300通过该通信来使用有线或者无线通信直接与远程设备发送和接收数据。即,在直接设备通信378的一些示例中,由计算设备300发送的数据可以在远程设备处被接收之前,不被一个或者多个附加设备转发,并且反之亦然。直接设备通信378的示例可以包括蓝牙、近场通信、通用串行总线、WiFi、红外等。在图3中图示的远程设备中的一个或者多个可以通过通信链路376A-376D与计算设备300操作地耦合。在一些示例中,通信链路376A-376D可以是使用蓝牙、近场通信、通用串行总线、红外等的连接。这样的连接可以是无线和/或有线连接。
根据本公开的技术,计算设备300可以输出图形键盘以供显示在视觉显示组件390的存在敏感显示器392处。例如,计算设备300可以将表示图形键盘的数据发送至通信单元344。通信单元344可以经由外部网络374或者直接设备通信378将数据发送至视觉显示组件390。视觉显示组件390可以使得存在敏感显示器392输出图形键盘以供显示。
存在敏感显示器392可以检测与字符串相对应的第一用户输入(例如,一个或者多个轻敲和/或手势)。视觉显示组件390可以经由外部网络将指示第一用户输入的数据发送至计算设备300,该计算设备最初从通信单元344接收数据。响应于接收到在操作地耦合至计算设备300的存在敏感显示器392的位置处检测到的第一输入的该指示,至少部分地基于第一输入的指示,确定在词典或者语言模型中不包括的新字符串。在一些示例中,词典或者语言模型可以存储在计算设备300处和/或远程计算设备处。
计算设备300可以将新字符串添加至词典并且将似然值与新字符串相关联。存在敏感显示器392可以检测与添加至词典的字符串相对应的第二用户输入(例如,一个或者多个轻敲和/或手势)。视觉显示组件390可以经由外部网络将指示第二用户输入的数据发送至计算设备300,该计算设备300最初从通信单元344接收数据。响应于接收到第二输入的指示,计算设备300可以预测新字符串。在一些示例中,计算设备300可以将数据发送至视觉显示组件390,该视觉显示组件390使得存在敏感显示器392输出新字符串以供显示。
存在敏感显示器392可以检测拒绝新字符串的第三用户输入(例如,一个或者多个轻敲和/或手势)。视觉显示组件390可以经由外部网络将指示第三用户输入的数据发送至计算设备300,该计算设备300最初从通信单元344接收数据。响应于接收到第三用户输入的该指示,计算设备300可以降低与新字符串相关联的似然值。
图4是图示了根据本公开的一个或者多个方面的,配置为响应于拒绝新字符串的随后的用户输入而反学习该新字符串的计算设备的示例操作的流程图。出于说明之目的,下面在计算设备100的场境中描述了示例操作,如图1所示。
在图4中,计算设备100可以输出(400)图形键盘以供显示在操作地耦合至计算设备的输出组件处。计算设备100可以响应于接收到在操作地耦合至计算设备100的存在敏感输入组件的位置处检测到的第一输入的指示,至少部分地基于该第一输入的指示来确定(402)在词典或者语言模型中不包括的新字符串,其中,存在敏感输入组件的位置与输出组件的位置相对应。计算设备100可以将新字符串添加(404)至词典或者语言模型并且将似然值与新字符串相关联。计算设备100可以响应于接收到在存在敏感输入组件的位置处检测到的第二输入的指示,预测(406)新字符串。计算设备100可以响应于接收到拒绝该新字符串的第三输入的指示,降低(408)与新字符串相关联的似然值。
图5是图示了根据本公开的一个或者多个方面的,配置为响应于拒绝新字符串的随后的用户输入而反学习该新字符串的示例计算设备500的概念图。与图示了利用连续手势的反学习技术的图1相比,图5图示了本公开的针对轻敲输入的反学习技术。图5的相似命名和相似编号的元素(例如,语言模型512和语言模型112、或者计算设备500和计算设备100,作为两个示例)可以包括与图1中描述的元素相同或者相似的功能。
计算设备500可以接收在存在敏感显示器502的位置526A-526D处检测到的离散轻敲用户输入集,其中,每个位置与存在敏感显示器502的输出图形键盘520的位置相对应。出于示例之目的,位置526中的每一个由图5中的实心圆圈图示,尽管存在敏感显示器502在一些示例中可能不会输出这样的实心圆圈,并且在各个不同的示例中这样的位置可以更大和/或更小。
当轻敲手势的序列被存在敏感显示器502检测到时,UI模块508可以从存在敏感显示器502接收指示轻敲手势的信息并且将该信息组装成时间排序的触摸事件(例如,包括位置分量、时间分量、和动作分量的每个触摸事件)的序列。UI模块508可以将触摸事件发送至键盘模块510。键盘模块510可以从UI模块508接收触摸事件的序列连同与每个触摸事件相关联的信息(例如,位置、时间、动作等)。
键盘模块510可以基于触摸事件、语言模型512、一个或者多个空间模型、和/或轻敲手势的一个或者多个特性来确定一个或者多个字符串。如图1所述,键盘模块510可以基于当前存储在词典和/或语言模型512中的现有字符串来确定各个候选字符串。基于确定一个或者多个字符串的似然性,诸如基于语言模型和空间模型分值的组合分值,键盘模块510可以输出具有一个或者多个最高似然性的一个或者多个最有可能的字符串的集合作为字符串建议条522中的预测。
在图5中,在计算设备500接收到用户输入的指示时,键盘模块510可以接收不与存储在语言模型512中的字符串相对应的用户输入的一个或者多个指示。如图5所示,诸如“Zhai”的姓氏可以不包括在词典或者语言模型512中。键盘模块510可以基于用户输入来确定“Zhai”的组合分值满足将Zhai添加至词典和/或语言模型512的阈值。
键盘模块510可以通过将字符串添加至词典和/或语言模型512来学习字符串“Zhai”。键盘模块110还可以将unigram添加至语言模型512,其中,unigram的字符串是“Zhai”并且unigram的似然值等于整数值1。键盘模块510还可以将bigram添加至语言模型512,其中,bigram的字符串是“Mr.Zhai”并且bigram具有等于整数值1的对应似然值。值1指示用户已经选择或者提交作为编辑区域516中的期望文本的相应字符串的出现次数。
在稍后的时间点,用户可以再次提供一个或者多个用户输入来录入文本。用户可以在存在敏感显示器502处提供用户输入,诸如与字符串“Zhai”相对应的一个或者多个手势和/或轻敲。如果“Zhai”的组合分值处于候选字符串的集合中——该集合具有比不包括在该集合中的任何其它候选字符串的组合分值更大的组合分值,则键盘模块510可以至少部分地基于语言模型512来输出“Zhai”作为编辑区域516和/或字符串建议条522中的一个或者多个中的预测。
响应于接收到用户输入,如果“Zhai”由键盘模块510预测并且由用户选择或者提交作为编辑区域516中的期望文本,则键盘模块510可以增加unigram中的与字符串“Zhai”相对应的似然值。例如,键盘模块510可以将似然值递增增量值。增量值可以是整数值(例如,1)、分数值、或者任何合适的值,这些值可以是用户定义的、硬编码的、和/或自适应地发生变化的。如果当“Zhai”由用户选择或者提交作为编辑区域516中的期望文本时输入上下文在“Zhai”之前包括“Mr.”,则键盘模块510可以增加bigram中的与字符串“Mr.Zhai”相对应的似然值。按照这种方式,键盘模块510可以执行学习以更新和维护语言模型112中的基于用户选择或者提交字符串的决定的似然值。
在对“Zhai”的似然值进行增量之后,如图5所示,键盘模块510可以接收在用户界面514处的用户输入的一个或者多个指示,该一个或者多个指示使得键盘模块510再次确定字符串“Mr.”和随后的“Zhai”并且输出字符串“Mr.”和随后的“Zhai”以供显示。键盘模块510可以基于用户输入的指示来确定“Zhai”、“Zhao”、和“Chao”的相应组合分值。例如,键盘模块510可以按照可能性的降序从左至右将词建议区域518中的字符串排序。然而,用户可能意图录入“Zhao”而不是“Zhai”。为了将文本“Zhai”校正为“Zhao”,用户可以提供用户输入以拒绝字符串“Zhai”。即,键盘模块510可以接收拒绝新字符串的用户输入的一个或者多个指示。如图5所示,用户输入的一个或者多个指示可以包括对退格键528的多个选择,其导致在编辑区域516中删除字符“Zhai”。在一些示例中,诸如图5所示,可以在存在敏感显示器502处暂时地显示具有删除线格式的文本“Zhai”以指示在从显示中移除之前的删除,而在其它示例中在选择退格键528时可以从存在敏感显示器502的显示中移除字符“Zhai”。
响应于接收到拒绝“Zhai”的用户输入的一个或者多个指示,键盘模块510可以对与包括字符串“Zhai”的至少一个n-gram相关联的至少一个似然值进行减量。键盘模块510可以将至少一个似然值递减减量值,其中,减量值可以是整数值(例如,1)、分数值、或者任何合适的值,其可以是用户定义的、硬编码的、和/或自适应地发生变化的。例如,键盘模块510可以对在包括“Zhai”的unigram中的似然值进行减量。键盘模块510还可以对包括“Mr.Zhai”的bigram中的似然值进行减量,因为bigram包括字符串“Zhai”,该字符串“Zhai”由用户校正为“Zhao”。
在对n-gram的与“Zhai”相关联的至少一个似然值进行减量之后,键盘模块110可以接收与位置526相对应的轻敲输入的序列相似或者相同的轻敲输入的随后的序列。键盘模块510可以基于用户输入的指示来确定“Zhai”、“Zhao”、和“Chao”的相应组合分值。然而,因为键盘模块510基于用户先前对“Zhao”的选择和对“Zhai”的拒绝而先前降低了“Zhai”的似然值,所以键盘模块510可以确定“Zhao”具有比“Zhai”更高的组合分值。因此,键盘模块510可以在编辑区域516中输出“Zhao”和/或在建议条522中输出“Zhao”作为最有可能的字符串。因此,键盘模块110可以在最左边的词建议区域518A中输出“Zhao”,并且“Zhai”可以处于中间词建议区域518B中。通过基于拒绝字符串的用户输入的指示来自适应地反学习“Zhai”,“Zhai”仍然可以包括以作为建议的字符串(例如,并且仍然包括在词典和/或语言模型中),但是可以由存在敏感显示器102显示为不太可能的字符串。
如图5所示,当轻敲输入的序列正在由用户执行时,UI模块508可以通过包括三个最高排名的候选字符串作为建议的字符串来更新建议的字符串区域518A-518C。从用户界面514中,用户可以通过在存在敏感显示器502的—存在敏感显示器502输出建议的字符串区域518A-518C的—位置处轻击或者提供输入来从建议的字符串区域518A-518C选择字符串。例如,用户可以通过在存在敏感显示器502—存在敏感显示器502呈现例如“Zhao”的建议的字符串的位置上轻敲或者做手势来选择建议的字符串区域。选择建议的字符串区域518B可以使得UI模块508更新用户界面514并且包括在编辑区域中的字符串“Zhao”。
示例1:一种方法,包括:由计算设备输出图形键盘以供显示在操作地耦合至该计算设备的输出组件处;响应于接收到在操作地耦合至计算设备的存在敏感输入组件的位置处检测到的第一输入的指示,至少部分地基于该第一输入的指示来确定在语言模型中不包括的新字符串,其中,该存在敏感输入组件的位置与该输出组件的位置相对应;将该新字符串添加至该语言模型并且将似然值与该新字符串相关联;响应于接收到在该存在敏感输入组件的第二位置处检测到的第二输入的指示,预测该新字符串;以及响应于接收到拒绝该新字符串的第三输入的指示,降低与该新字符串相关联的似然值。
示例2:根据示例1所述的方法,其中,将该似然值与该新字符串相关联包括:将该新字符串与该似然值一起存储在该语言模型的至少一个n-gram中,使得该似然值与该语言模型中的该n-gram相对应,该方法进一步包括:响应于接收到拒绝新字符串的第三输入的指示:确定该语言模型中的包括该新字符串的多个n-gram;以及降低与该多个n-gram中的每个相应n-gram相对应的相应似然值。
示例3:根据示例1至2中任一个所述的方法,该方法进一步包括:响应于确定与语言模型的较高阶n-gram相对应的第一似然值大于与较低阶n-gram相对应的第二似然值,对语言模型进行修改以至少进行以下操作:移除该较高阶n-gram,或者将第一似然值更新为小于或者等于该第二似然值,其中,该较高阶n-gram包括比该较低阶n-gram更多的字符串。
示例4:根据示例1至3中任一个所述的方法,其中,降低与该新字符串相关联的似然值进一步包括:降低与该新字符串相关联的似然值而不从该语言模型中移除该新字符串。
示例5:根据示例1至4中任一个所述的方法,进一步包括:在预测新字符串时确定特定输入上下文,其中,该特定输入上下文包括在预测该新字符串时输出以供显示的一个或者多个先前输入的字符串,其中,降低与该新字符串相关联的似然值包括:仅针对该特定输入上下文来降低与该新字符串相关联的似然值。
示例6:根据示例1至5中任一个所述的方法,进一步包括:在预测新字符串时确定特定输入上下文,其中,降低与该新字符串相关联的似然值包括:以至少部分地基于该输入上下文的速率或者幅度来降低与该新字符串相关联的似然值。
示例7:根据示例1至6中任一个所述的方法,其中,响应于学习该新字符串而增加与该新字符串相对应的似然值的速率或者幅度与响应于反学习该新字符串而降低似然值的速率或者幅度不同。
示例8:根据示例1至7中任一个所述的方法,其中,拒绝新字符串的第三输入包括进行以下操作的输入:删除该新字符串;删除包括该新字符串的字符串序列;忽略该新字符串;取消对该新字符串的自动校正;或者使用拼写检查程序来校正该新字符串。
示例9:根据示例1至8中任一项的方法,其中,该第一输入和第二输入中的每一个包括离散轻敲手势或者连续手势的一部分中的至少一种。
示例10:一种计算设备,该计算设备包括:一个或者多个计算机处理器;输出组件;存在敏感输入组件;以及存储器,该存储器包括指令,该指令在由一个或者多个计算机处理器执行时使得一个或者多个计算机处理器进行以下操作:输出图形键盘以供显示在输出组件处;响应于接收到在存在敏感输入组件的位置处检测到的第一输入的指示,至少部分地基于该第一输入的指示来确定在语言模型中不包括的新字符串,其中,存在敏感输入组件的位置与输出组件的位置相对应;将该新字符串添加至该语言模型并且将似然值与该新字符串相关联;响应于接收到在存在敏感输入组件的第二位置处检测到的第二输入的指示,预测该新字符串;以及响应于接收到拒绝该新字符串的第三输入的指示,降低与该新字符串相关联的似然值。
示例11:根据示例10所述的计算设备,其中,存储器包括指令,该指令在由一个或者多个计算机处理器执行时使得一个或者多个计算机处理器进行以下操作:将新字符串与似然值一起存储在语言模型的至少一个n-gram中,使得似然值与语言模型中的n-gram相对应;以及响应于接收到拒绝新字符串的第三输入的指示:确定语言模型中的包括该新字符串的多个n-gram;以及降低与多个n-gram中的每个相应n-gram相对应的相应似然值。
示例12:根据示例10至11中任一个所述的计算设备,其中,存储器包括指令,该指令在由一个或者多个计算机处理器执行时使得一个或者多个计算机处理器进行以下操作:响应于确定与语言模型的较高阶n-gram相对应的第一似然值大于与较低阶n-gram相对应的第二似然值,对语言模型进行修改以至少进行以下操作:移除该较高阶n-gram,或者将第一似然值更新为小于或者等于第二似然值,其中,该较高阶n-gram包括比该较低阶n-gram更多的字符串。
示例13:根据示例10至12中任一项的计算设备,其中,存储器包括指令,该指令在由一个或者多个计算机处理器执行时使得一个或者多个计算机处理器进行以下操作:降低与该新字符串相关联的似然值而不从语言模型中移除该新字符串。
示例14:根据示例10至13中任一项的计算设备,其中,存储器包括指令,该指令在由一个或者多个计算机处理器执行时使得一个或者多个计算机处理器进行以下操作:在预测新字符串时确定特定输入上下文,其中,该特定输入上下文包括在预测新字符串时输出以供显示的一个或者多个先前输入的字符串;以及仅针对特定输入上下文来降低与该新字符串相关联的似然值。
示例15:根据示例10至14中任一项的计算设备,其中,该第一输入和第二输入中的每一个包括离散轻敲手势或者连续手势的一部分中的至少一种。
示例16:一种非暂时性计算机可读存储介质,该非暂时性计算机可读存储介质编码有指令,该指令在被执行时使得计算设备的至少一个处理器进行以下操作:输出图形键盘以供显示在操作地耦合至该计算设备的输出组件处;响应于接收到在操作地耦合至计算设备的存在敏感输入组件的位置处检测到的第一输入的指示,至少部分地基于该第一输入的指示来确定在语言模型中不包括的新字符串,其中,存在敏感输入组件的位置与输出组件的位置相对应;将该新字符串添加至该语言模型并且将似然值与该新字符串相关联;响应于接收到在存在敏感输入组件的第二位置处检测到的第二输入的指示,预测新字符串;以及响应于接收到拒绝新字符串的第三输入的指示,降低与新字符串相关联的似然值。
示例17:根据示例16所述的非暂时性计算机可读存储介质,该非暂时性计算机可读存储介质编码有指令,该指令在被执行时使得计算设备的至少一个处理器进行以下操作:将该新字符串与似然值一起存储在语言模型的至少一个n-gram中,使得似然值与该语言模型中的n-gram相对应;以及响应于接收到拒绝新字符串的第三输入的指示:确定语言模型中的包括新字符串的多个n-gram;以及降低与多个n-gram中的每个相应n-gram相对应的相应似然值。
示例18:根据示例16至17中任一个所述的非暂时性计算机可读存储介质,该非暂时性计算机可读存储介质编码有指令,该指令在被执行时使得计算设备的至少一个处理器进行以下操作:响应于确定与该语言模型的较高阶n-gram相对应的第一似然值大于与较低阶n-gram相对应的第二似然值,对该语言模型进行修改以至少进行以下操作:移除该较高阶n-gram,或者将第一似然值更新为小于或者等于第二似然值,其中,该较高阶n-gram包括比较低阶n-gram更多的字符串。
示例19:根据示例16至18中任一项的非暂时性计算机可读存储介质,该非暂时性计算机可读存储介质编码有指令,该指令在被执行时使得计算设备的至少一个处理器进行以下操作:降低与该新字符串相关联的似然值而不从语言模型中移除新字符串。
示例20:根据示例16至19中任一项的非暂时性计算机可读存储介质,该非暂时性计算机可读存储介质编码有指令,该指令在被执行时使计算设备的至少一个处理器:在预测新字符串时确定特定输入上下文,其中,该特定输入上下文包括在预测新字符串时输出以供显示的一个或者多个先前输入的字符串,并且仅针对特定输入上下文降低与新字符串相关联的似然值。
示例21:根据示例16至20中任一个所述的非暂时性计算机可读介质,其中,该第一输入和第二输入中的每一个包括离散轻敲手势或者连续手势的一部分中的至少一种。
示例22:一种器件(apparatus),该器件包括:用于输出图形键盘以供显示在操作地耦合至计算设备的输出组件处的装置;用于响应于接收到在操作地耦合至设备的存在敏感输入组件的位置处检测到的第一输入的指示而至少部分地基于该第一输入的指示来确定在语言模型中不包括的新字符串的装置,其中,存在敏感输入组件的位置与输出组件的位置相对应;用于将该新字符串添加至语言模型并且将似然值与该新字符串相关联的装置;用于响应于接收到在存在敏感输入组件的第二位置处检测到的第二输入的指示而预测新字符串的装置;以及用于响应于接收到拒绝该新字符串的第三输入的指示而降低与该新字符串相关联的似然值的装置。
示例23:根据示例22所述的仪器包括用于执行示例1至9中任一项的方法的装置。
在一个或者多个示例中,可以利用硬件、软件、固件、或者它们的任何组合来实施所描述的功能。如果利用软件来实现,则所述功能可以作为一个或者多个指令或者代码存储在计算机可读介质上或者通过计算机可读介质来传输并且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,该计算机可读存储介质对应于有形介质——诸如数据存储介质;或者通信介质,其包括例如根据通信协议促进计算机程序从一个地点传输至另一个地点的任何介质。按照这种方式,计算机可读介质通常可以对应于(1)非暂时性有形计算机可读存储介质;或者(2)通信介质——诸如信号或者载波。数据存储介质可以是任何可用介质,该任何可用介质可以由一个或者多个计算机或者一个或者多个处理器访问以检索指令、代码、和/或数据结构,以用于实现本公开所描述的技术。一种计算机程序产品可以包括计算机可读介质。
作为示例而不是为了限制,这样的计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM、或者其它光盘存储设备、磁盘存储设备、或者其它磁性存储设备、闪速存储器、或者可以用于按照指令或者数据结构的形式存储期望的程序代码并且可以由计算机访问的任何其它介质。而且,将任何连接适当地称为计算机可读介质。例如,如果通过使用同轴线缆、光纤线缆、双绞线、数字订户线路(DSL)、或者无线技术——诸如红外、无线电、和微波——从网站、服务器、或者其它远程源传送指令,则同轴线缆、光纤线缆、双绞线、DSL、或者无线技术——诸如红外、无线电、和微波——均包括在介质的定义中。然而,应该理解,该计算机可读存储介质和数据存储介质不包括连接、载波、信号、或者其它瞬时性介质,而是涉及非瞬时性有形存储介质。所使用的磁盘和光盘包括压缩盘(CD)、激光盘、数字通用盘(DVD)、软盘和蓝光盘,其中,磁盘通常以磁性方式复制数据,而光盘利用激光来光学地复制数据。上述的组合也应该包括在计算机可读介质的范围内。
指令可以由一个或者多个处理器执行,该处理器诸如一个或者多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)、或者其它等效的集成或者分立逻辑电路。因此,所使用的术语“处理器”可以指代任何前述结构或者适合于实现所描述的技术的任何其它结构。另外,在一些方面中,可以在专用硬件和/或软件模块内提供所描述的功能。而且,本技术可以在一个或者多个电路或者逻辑元素中完全实现。
本公开的技术可以以各种设备或者仪器来实现,所述设备或仪器包括无线手持设备、集成电路(IC)、或者IC集合(例如,芯片集))中。本公开中描述了各个组件、模块、或者单元以强调被配置为执行所公开的技术的设备的功能方面,但不一定需要由不同的硬件单元实现。相反,如上所述,各个单元可以组合在硬件单元中或者由结合合适的软件和/或固件的协作硬件单元——包括如上所述的一个或者多个处理器——的集合提供。
应该认识到,根据实施例,本文描述的任何方法的特定动作或者事件可以按照不同的顺序执行,可以共同添加、合并、或者排除(例如,并非所有描述的动作或者事件对实践该方法都有必要)。而且,在特定实施例中,例如,通过多线程处理、中断处理、或者多个处理器,可以并发执行动作或者事件,而不是顺序执行该动作或者事件。
在一些示例中,计算机可读存储介质包括非暂时性介质。在一些示例中,术语“非暂时性”指示存储介质并不体现为载波或者传播信号。在特定示例中,非暂时性存储介质存储可以随着时间变化的数据(例如,在RAM或者高速缓存中)。
已经描述了每个示例。这些和其它示例在所附权利要求书的范围内。

Claims (14)

1.一种用于执行文本输入的方法,包括:
由计算设备输出图形键盘以供显示在操作地耦合至所述计算设备的输出组件处;
响应于接收到在操作地耦合至所述计算设备的存在敏感输入组件的位置处检测到的第一输入的指示,至少部分地基于所述第一输入的指示来确定未包括在语言模型中的新字符串,其中,所述存在敏感输入组件的位置与所述输出组件的位置相对应;
将所述新字符串添加至所述语言模型并且将似然值与所述新字符串相关联;
响应于接收到在所述存在敏感输入组件的第二位置处检测到的第二输入的指示,预测所述新字符串,其中,预测所述新字符串包括确定特定输入上下文;以及
响应于接收到拒绝所述新字符串的第三输入的指示,降低与所述新字符串相关联的所述似然值,其中,至少部分地基于所述特定输入上下文降低所述似然值的速率或者幅度。
2.根据权利要求1所述的方法,其中,将所述似然值与所述新字符串相关联包括:将所述新字符串与所述似然值一起存储在所述语言模型的至少一个n-gram中,使得所述似然值与所述语言模型中的所述至少一个n-gram相对应,所述方法进一步包括:
响应于接收到拒绝所述新字符串的所述第三输入的指示:
确定所述语言模型中的包括所述新字符串的多个n-gram;以及
降低与所述多个n-gram中的每个相应n-gram相对应的相应似然值。
3.根据权利要求2所述的方法,进一步包括:
响应于确定与所述语言模型的较高阶n-gram相对应的第一似然值大于与较低阶n-gram相对应的第二似然值,对所述语言模型进行修改以至少:
移除所述较高阶n-gram,或者
将所述第一似然值更新为小于或者等于所述第二似然值,
其中,所述较高阶n-gram比所述较低阶n-gram包括更多的字符串。
4.根据权利要求1至3中任一项所述的方法,其中,降低与所述新字符串相关联的所述似然值进一步包括:降低与所述新字符串相关联的所述似然值而不从所述语言模型中移除所述新字符串。
5.根据权利要求1至3中任一项所述的方法,其中,所述特定输入上下文包括当预测所述新字符串时被输出以供显示的一个或者多个先前输入的字符串;以及
其中,降低与所述新字符串相关联的所述似然值包括:仅针对所述特定输入上下文来降低与所述新字符串相关联的所述似然值。
6.根据权利要求1至3中任一项所述的方法,其中,响应于学习所述新字符串而增加与所述新字符串相对应的所述似然值的速率或者幅度与响应于反学习所述新字符串而降低所述似然值的速率或者幅度不同。
7.根据权利要求1至3中任一项所述的方法,其中,拒绝所述新字符串的所述第三输入包括进行以下操作的输入:
删除所述新字符串;
删除包括所述新字符串的字符串序列;
忽略所述新字符串;
取消对所述新字符串的自动校正;或者
使用拼写检查程序来校正所述新字符串。
8.根据权利要求1至3中任一项所述的方法,其中,所述第一输入和所述第二输入中的每一个包括离散轻敲手势和连续手势的一部分中的至少一种。
9.一种计算设备,包括:
一个或者多个计算机处理器;
输出组件;
存在敏感输入组件;以及
存储器,所述存储器包括指令,所述指令在由所述一个或者多个计算机处理器执行时使得所述一个或者多个计算机处理器:
输出图形键盘以供显示在所述输出组件处;
响应于接收到在所述存在敏感输入组件的位置处检测到的第一输入的指示,至少部分地基于所述第一输入的指示来确定未包括在语言模型中的新字符串,其中,所述存在敏感输入组件的位置与所述输出组件的位置相对应;
将所述新字符串添加至所述语言模型并且将似然值与所述新字符串相关联;
响应于接收到在所述存在敏感输入组件的第二位置处检测到的第二输入的指示,预测所述新字符串,其中,预测所述新字符串包括确定特定输入上下文;以及
响应于接收到拒绝所述新字符串的第三输入的指示,降低与所述新字符串相关联的所述似然值,其中,至少部分地基于所述特定输入上下文降低所述似然值的速率或者幅度。
10.根据权利要求9所述的计算设备,其中,所述存储器进一步包括指令,所述指令在由所述一个或者多个计算机处理器执行时使得所述一个或者多个计算机处理器:
将所述新字符串与所述似然值一起存储在所述语言模型的至少一个n-gram中,使得所述似然值与所述语言模型中的所述至少一个n-gram相对应;以及
响应于接收到拒绝所述新字符串的所述第三输入的指示:
确定所述语言模型中的包括所述新字符串的多个n-gram;以及
降低与所述多个n-gram中的每个相应n-gram相对应的相应似然值。
11.根据权利要求10所述的计算设备,其中,所述存储器进一步包括指令,所述指令在由所述一个或者多个计算机处理器执行时使得所述一个或者多个计算机处理器:
响应于确定与所述语言模型的较高阶n-gram相对应的第一似然值大于与较低阶n-gram相对应的第二似然值,对所述语言模型进行修改以至少:
移除所述较高阶n-gram,或者
将所述第一似然值更新为小于或者等于所述第二似然值,
其中,所述较高阶n-gram比所述较低阶n-gram包括更多的字符串。
12.根据权利要求9至11中任一项所述的计算设备,其中,所述存储器进一步包括指令,所述指令在由所述一个或者多个计算机处理器执行时使得所述一个或者多个计算机处理器:
降低与所述新字符串相关联的所述似然值而不从所述语言模型中移除所述新字符串。
13.根据权利要求9至11中任一项所述的计算设备,其中,所述特定输入上下文包括当预测所述新字符串时被输出以供显示的一个或者多个先前输入的字符串;以及
其中降低与所述新字符串相关联的所述似然值包括仅针对所述特定输入上下文来降低与所述新字符串相关联的所述似然值。
14.一种包括用于执行权利要求1至8中任一项所述的方法的装置的系统。
CN201680017892.3A 2015-03-24 2016-02-04 针对文本录入中的自适应语言模型的反学习技术 Active CN107430448B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562137621P 2015-03-24 2015-03-24
US62/137,621 2015-03-24
US14/873,147 2015-10-01
US14/873,147 US9703394B2 (en) 2015-03-24 2015-10-01 Unlearning techniques for adaptive language models in text entry
PCT/US2016/016569 WO2016153606A1 (en) 2015-03-24 2016-02-04 Unlearning techniques for adaptive language models in text entry

Publications (2)

Publication Number Publication Date
CN107430448A CN107430448A (zh) 2017-12-01
CN107430448B true CN107430448B (zh) 2021-03-16

Family

ID=56975330

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680017892.3A Active CN107430448B (zh) 2015-03-24 2016-02-04 针对文本录入中的自适应语言模型的反学习技术

Country Status (6)

Country Link
US (2) US9703394B2 (zh)
EP (1) EP3245580B1 (zh)
CN (1) CN107430448B (zh)
DE (1) DE112016001365T5 (zh)
GB (1) GB2551919A (zh)
WO (1) WO2016153606A1 (zh)

Families Citing this family (152)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
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
US10002189B2 (en) 2007-12-20 2018-06-19 Apple Inc. Method and apparatus for searching using an active ontology
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
CN113470641B (zh) 2013-02-07 2023-12-15 苹果公司 数字助理的语音触发器
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
KR101772152B1 (ko) 2013-06-09 2017-08-28 애플 인크. 디지털 어시스턴트의 둘 이상의 인스턴스들에 걸친 대화 지속성을 가능하게 하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스
CN105453026A (zh) 2013-08-06 2016-03-30 苹果公司 基于来自远程设备的活动自动激活智能响应
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
WO2015184186A1 (en) 2014-05-30 2015-12-03 Apple Inc. Multi-command single utterance input method
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9785630B2 (en) * 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US10152299B2 (en) 2015-03-06 2018-12-11 Apple Inc. Reducing response latency of intelligent automated assistants
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
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
US9965546B2 (en) * 2015-03-24 2018-05-08 Sap Se Fast substring fulltext search
US9678664B2 (en) 2015-04-10 2017-06-13 Google Inc. Neural network for keyboard input decoding
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
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
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and 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
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
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
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10118696B1 (en) 2016-03-31 2018-11-06 Steven M. Hoffberg Steerable rotating projectile
US20170293678A1 (en) * 2016-04-11 2017-10-12 Nuance Communications, Inc. Adaptive redo for trace text input
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
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
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
GB201619724D0 (en) * 2016-11-22 2017-01-04 Microsoft Technology Licensing Llc Trained data input system
US11281993B2 (en) 2016-12-05 2022-03-22 Apple Inc. Model and ensemble compression for metric learning
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
US11609692B2 (en) * 2017-04-07 2023-03-21 Hewlett-Packard Development Company, L.P. Cursor adjustments
US11899904B2 (en) * 2017-04-12 2024-02-13 Microsoft Technology Licensing, Llc. Text input system with correction facility
US10754441B2 (en) * 2017-04-26 2020-08-25 Microsoft Technology Licensing, Llc Text input system using evidence from corrections
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
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
DK201770429A1 (en) 2017-05-12 2018-12-14 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
DK201770411A1 (en) 2017-05-15 2018-12-20 Apple Inc. MULTI-MODAL INTERFACES
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
DK179560B1 (en) 2017-05-16 2019-02-18 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US11188158B2 (en) 2017-06-02 2021-11-30 Samsung Electronics Co., Ltd. System and method of determining input characters based on swipe input
KR102474245B1 (ko) * 2017-06-02 2022-12-05 삼성전자주식회사 스와이프 입력에 기초하여 입력 문자를 판단하는 시스템 및 방법
US10657328B2 (en) 2017-06-02 2020-05-19 Apple Inc. Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling
US11093709B2 (en) * 2017-08-10 2021-08-17 International Business Machine Corporation Confidence models based on error-to-correction mapping
US10445429B2 (en) 2017-09-21 2019-10-15 Apple Inc. Natural language understanding using vocabularies with compressed serialized tries
US10755051B2 (en) 2017-09-29 2020-08-25 Apple Inc. Rule-based natural language processing
US10636424B2 (en) 2017-11-30 2020-04-28 Apple Inc. Multi-turn canned dialog
US10733982B2 (en) 2018-01-08 2020-08-04 Apple Inc. Multi-directional dialog
US10733375B2 (en) 2018-01-31 2020-08-04 Apple Inc. Knowledge-based framework for improving natural language understanding
US10789959B2 (en) 2018-03-02 2020-09-29 Apple Inc. Training speaker recognition models for digital assistants
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
US11712637B1 (en) 2018-03-23 2023-08-01 Steven M. Hoffberg Steerable disk or ball
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
CN108519870A (zh) * 2018-03-29 2018-09-11 联想(北京)有限公司 一种信息处理方法及电子设备
US10909331B2 (en) 2018-03-30 2021-02-02 Apple Inc. Implicit identification of translation payload with neural machine translation
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US10984780B2 (en) 2018-05-21 2021-04-20 Apple Inc. Global semantic word embeddings using bi-directional recurrent neural networks
DK201870355A1 (en) 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
US11386266B2 (en) 2018-06-01 2022-07-12 Apple Inc. Text correction
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US10496705B1 (en) 2018-06-03 2019-12-03 Apple Inc. Accelerated task performance
US10721190B2 (en) * 2018-07-31 2020-07-21 Microsoft Technology Licensing, Llc Sequence to sequence to classification model for generating recommended messages
JP7263712B2 (ja) * 2018-08-23 2023-04-25 富士通株式会社 制御方法,情報処理装置および制御プログラム
US11010561B2 (en) 2018-09-27 2021-05-18 Apple Inc. Sentiment prediction from textual data
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
US10839159B2 (en) 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
CN110162617B (zh) * 2018-09-29 2022-11-04 腾讯科技(深圳)有限公司 提取摘要信息的方法、装置、语言处理引擎和介质
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
CN109885180B (zh) 2019-02-21 2022-12-06 北京百度网讯科技有限公司 纠错方法和装置、计算机可读介质
JP7263857B2 (ja) * 2019-03-14 2023-04-25 オムロン株式会社 文字入力装置、文字入力方法、及び、文字入力プログラム
US10956474B2 (en) 2019-03-14 2021-03-23 Microsoft Technology Licensing, Llc Determination of best set of suggested responses
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
DK201970510A1 (en) 2019-05-31 2021-02-11 Apple Inc Voice identification in digital assistant systems
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
US11468890B2 (en) 2019-06-01 2022-10-11 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
US11029845B2 (en) * 2019-07-11 2021-06-08 Microsoft Technology Licensing, Llc Virtual keyboard engagement
WO2021056255A1 (en) 2019-09-25 2021-04-01 Apple Inc. Text detection using global geometry estimators
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11183193B1 (en) 2020-05-11 2021-11-23 Apple Inc. Digital assistant hardware abstraction
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
US11181988B1 (en) 2020-08-31 2021-11-23 Apple Inc. Incorporating user feedback into text prediction models via joint reward planning
US20220229985A1 (en) * 2021-01-21 2022-07-21 Apple Inc. Adversarial discriminative neural language model adaptation
US11880511B1 (en) * 2023-01-30 2024-01-23 Kiloma Advanced Solutions Ltd Real-time automatic multilingual input correction

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011113057A1 (en) * 2010-03-12 2011-09-15 Nuance Communications, Inc. Multimodal text input system, such as for use with touch screens on mobile phones
US8712931B1 (en) * 2011-06-29 2014-04-29 Amazon Technologies, Inc. Adaptive input interface
US8825474B1 (en) * 2013-04-16 2014-09-02 Google Inc. Text suggestion output using past interaction data
CN104123012A (zh) * 2013-04-29 2014-10-29 谷歌公司 使用替代评分的非字典字符串的姿态键盘输入

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4783803A (en) * 1985-11-12 1988-11-08 Dragon Systems, Inc. Speech recognition apparatus and method
US5146405A (en) * 1988-02-05 1992-09-08 At&T Bell Laboratories Methods for part-of-speech determination and usage
US5502774A (en) * 1992-06-09 1996-03-26 International Business Machines Corporation Automatic recognition of a consistent message using multiple complimentary sources of information
JP3004254B2 (ja) * 1998-06-12 2000-01-31 株式会社エイ・ティ・アール音声翻訳通信研究所 統計的シーケンスモデル生成装置、統計的言語モデル生成装置及び音声認識装置
US7403888B1 (en) * 1999-11-05 2008-07-22 Microsoft Corporation Language input user interface
JP4215418B2 (ja) * 2001-08-24 2009-01-28 インターナショナル・ビジネス・マシーンズ・コーポレーション 単語予測方法、音声認識方法、その方法を用いた音声認識装置及びプログラム
AU2003271083A1 (en) * 2002-10-08 2004-05-04 Matsushita Electric Industrial Co., Ltd. Language model creation/accumulation device, speech recognition device, language model creation method, and speech recognition method
US8095364B2 (en) * 2004-06-02 2012-01-10 Tegic Communications, Inc. Multimodal disambiguation of speech recognition
US20050283724A1 (en) * 2004-06-18 2005-12-22 Research In Motion Limited Predictive text dictionary population
JP4652737B2 (ja) * 2004-07-14 2011-03-16 インターナショナル・ビジネス・マシーンズ・コーポレーション 単語境界確率推定装置及び方法、確率的言語モデル構築装置及び方法、仮名漢字変換装置及び方法、並びに、未知語モデルの構築方法、
US20090193334A1 (en) * 2005-05-18 2009-07-30 Exb Asset Management Gmbh Predictive text input system and method involving two concurrent ranking means
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
BRMU8702846U2 (pt) * 2006-02-10 2010-06-15 Spinvox Ltd sistema de mensagem de voz em escala de massa, independente de usuário, independente de dispositivo
US7912700B2 (en) * 2007-02-08 2011-03-22 Microsoft Corporation Context based word prediction
US7877258B1 (en) * 2007-03-29 2011-01-25 Google Inc. Representing n-gram language models for compact storage and fast retrieval
US7813929B2 (en) * 2007-03-30 2010-10-12 Nuance Communications, Inc. Automatic editing using probabilistic word substitution models
US7925505B2 (en) * 2007-04-10 2011-04-12 Microsoft Corporation Adaptation of language models and context free grammar in speech recognition
US20080294982A1 (en) * 2007-05-21 2008-11-27 Microsoft Corporation Providing relevant text auto-completions
US20100070908A1 (en) 2008-09-18 2010-03-18 Sun Microsystems, Inc. System and method for accepting or rejecting suggested text corrections
US9189472B2 (en) * 2009-03-30 2015-11-17 Touchtype Limited System and method for inputting text into small screen devices
US8798983B2 (en) * 2009-03-30 2014-08-05 Microsoft Corporation Adaptation for statistical language model
US9424246B2 (en) * 2009-03-30 2016-08-23 Touchtype Ltd. System and method for inputting text into electronic devices
US8725509B1 (en) * 2009-06-17 2014-05-13 Google Inc. Back-off language model compression
US8914275B2 (en) * 2011-04-06 2014-12-16 Microsoft Corporation Text prediction
US8260615B1 (en) * 2011-04-25 2012-09-04 Google Inc. Cross-lingual initialization of language models
PL2639749T3 (pl) * 2012-03-15 2017-05-31 Cortical.Io Gmbh Sposoby, urządzenia i produkty do przetwarzania semantycznego tekstu
US9824085B2 (en) * 2012-08-31 2017-11-21 Microsoft Technology Licensing, Llc Personal language model for input method editor
US8498864B1 (en) * 2012-09-27 2013-07-30 Google Inc. Methods and systems for predicting a text
US8713433B1 (en) * 2012-10-16 2014-04-29 Google Inc. Feature-based autocorrection
US8701032B1 (en) * 2012-10-16 2014-04-15 Google Inc. Incremental multi-word recognition
US8819574B2 (en) * 2012-10-22 2014-08-26 Google Inc. Space prediction for text input
US20140278349A1 (en) * 2013-03-14 2014-09-18 Microsoft Corporation Language Model Dictionaries for Text Predictions
US9665246B2 (en) * 2013-04-16 2017-05-30 Google Inc. Consistent text suggestion output
US9672818B2 (en) * 2013-04-18 2017-06-06 Nuance Communications, Inc. Updating population language models based on changes made by user clusters
US20140358519A1 (en) * 2013-06-03 2014-12-04 Xerox Corporation Confidence-driven rewriting of source texts for improved translation
US9218804B2 (en) * 2013-09-12 2015-12-22 At&T Intellectual Property I, L.P. System and method for distributed voice models across cloud and device for embedded text-to-speech
US9286897B2 (en) * 2013-09-27 2016-03-15 Amazon Technologies, Inc. Speech recognizer with multi-directional decoding
US9412365B2 (en) * 2014-03-24 2016-08-09 Google Inc. Enhanced maximum entropy models
US10078631B2 (en) * 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
KR102325724B1 (ko) * 2015-02-28 2021-11-15 삼성전자주식회사 다수의 기기에서 텍스트 데이터 동기화
US9703394B2 (en) * 2015-03-24 2017-07-11 Google Inc. Unlearning techniques for adaptive language models in text entry
US20170293678A1 (en) * 2016-04-11 2017-10-12 Nuance Communications, Inc. Adaptive redo for trace text input

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011113057A1 (en) * 2010-03-12 2011-09-15 Nuance Communications, Inc. Multimodal text input system, such as for use with touch screens on mobile phones
US8712931B1 (en) * 2011-06-29 2014-04-29 Amazon Technologies, Inc. Adaptive input interface
US8825474B1 (en) * 2013-04-16 2014-09-02 Google Inc. Text suggestion output using past interaction data
CN104123012A (zh) * 2013-04-29 2014-10-29 谷歌公司 使用替代评分的非字典字符串的姿态键盘输入

Also Published As

Publication number Publication date
EP3245580A1 (en) 2017-11-22
WO2016153606A1 (en) 2016-09-29
GB2551919A (en) 2018-01-03
US20160282956A1 (en) 2016-09-29
US9703394B2 (en) 2017-07-11
CN107430448A (zh) 2017-12-01
DE112016001365T5 (de) 2017-11-30
US20170269708A1 (en) 2017-09-21
GB201713011D0 (en) 2017-09-27
EP3245580B1 (en) 2019-01-02

Similar Documents

Publication Publication Date Title
CN107430448B (zh) 针对文本录入中的自适应语言模型的反学习技术
US11573698B2 (en) Neural network for keyboard input decoding
US11334717B2 (en) Touch keyboard using a trained model
US9471220B2 (en) Posture-adaptive selection
US10073536B2 (en) Virtual keyboard input for international languages
US9122376B1 (en) System for improving autocompletion of text input
EP2992406B1 (en) Alternative hypothesis error correction for gesture typing
AU2014212844B2 (en) Character and word level language models for out-of-vocabulary text input
US8756499B1 (en) Gesture keyboard input of non-dictionary character strings using substitute scoring
CN113407100B (zh) 基于时间的分词
US9298276B1 (en) Word prediction for numbers and symbols
EP3241105B1 (en) Suggestion selection during continuous gesture input

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
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