首页> 中国专利> 基于多个语言模型的文本预测

基于多个语言模型的文本预测

摘要

在一个或多个实现中,根据自适应语言模型生成对应于所检测到的文本字符的文本预测候选者。自适应语言模型可以被配置成包括多个单独的语言模型字典,其具有组合在一起以对用于不同交互场景的预测候选者进行排名和选择的相应评分数据。除预定义的普通人群字典之外,字典可以包括个性化字典和/或交互特定字典,其通过监视用户的打字活动以将预测适配于用户风格而学习到。然后针对预测的组合概率被计算为来自自适应语言模型的多个字典的各个概率的加权组合。在实现中,对应于多个不同语言的字典可以组合以产生多语种预测。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-01-26

    授权

    授权

  • 2016-02-03

    实质审查的生效 IPC(主分类):G06F3/023 申请日:20140310

    实质审查的生效

  • 2016-01-06

    公开

    公开

说明书

背景技术

诸如移动电话、便携式和平板计算机、娱乐设备、手持式导航设备等等之类的计算设备通常实现有屏上键盘(例如软键盘),其可以被用于文本输入和/或与计算设备的其它交互。当用户使用屏上键盘或类似输入设备将文本字符输入到文本框中或以其它方式输入文本时,计算设备可以应用自动校正以自动地校正拼写错误和/或应用文本预测以基于输入字符来预测和提供候选词语/短语。

在传统方案中,使用可以在测试模拟中开发并且硬编码在设备上的静态语言模型来产生自动校正和文本预测。用户可能能够明确地将词语添加到模型或者省略词语,但是否则静态语言模型可能不适配于特定用户和交互场景。因此,使用传统技术提供的文本预测候选者通常对于用户和/或场景而言是不恰当的或者不相关的,这可能引起预测中的挫败和信任缺失。

发明内容

本文描述用于文本预测的自适应语言模型。在一个或多个实现中,在与设备的交互期间检测文本字符的录入。根据自适应语言模型生成对应于所检测到的文本字符的文本预测候选者。自适应语言模型可以被配置成包括多个单独的语言模型字典,其具有组合在一起以在不同交互场景中对预测候选者进行排名和选择的相应评分数据。除预定义的普通人群字典之外,字典可以包括个性化字典和/或交互特定字典,其通过监视用户的打字活动以将预测适配于用户的风格而学习到。用于预测的组合概率被计算为来自自适应语言模型的多个字典的各个概率的加权组合。在实现中,对应于多个不同语言的字典可以组合以产生多语种预测。

提供本发明内容来以简化的形式引入以下在具体实施方式中进一步描述的概念的选择。本发明内容不旨在标识所要求保护的主题的关键特征或本质特征,也不旨在用作帮助确定所要求保护的主题的范围。

附图说明

参照附图描述具体实施方式。在图中,参考标号的最左侧的(多个)数字标识参考标号第一次出现在的图。相同参考标号在描述和图中的不同实例中的使用可以指示类似或等同的项目。

图1图示了其中可以实现用于文本预测的自适应语言模型的各方面的示例操作环境。

图2图示了依照一个或多个实现的示例用户接口。

图3图示了依照一个或多个实现的示例文本预测场景。

图4A图示了依照一个或多个实现的自适应语言模型的示例表示。

图4B图示了依照一个或多个实现的语言模型字典之间的示例关系的表示。

图5描绘了依照一个或多个实现的其中提供文本预测的示例过程。

图6描绘了依照一个或多个实现的其中交互特定字典被用于文本预测的示例过程。

图7描绘了依照一个或多个实现的其中使用来自多个字典的评分数据的加权组合来选择文本预测候选者的示例过程。

图8描绘了依照一个或多个实现的其中生成多语种文本预测候选者的示例过程。

图9描绘了可以在用于文本预测的自适应语言模型的一个或多个实现中采用的示例系统和设备。

具体实施方式

概述

在传统方案中,文本预测可以依赖于在测试模拟中开发并且硬编码在设备上的静态语言模型。由于静态语言模型可能不适配于用户的个人风格,因此使用传统技术所生成的文本预测候选者通常是不恰当的或不相关的,这可能引起预测中的挫败和信心缺失。

本文描述用于文本预测的自适应语言模型。在一个或多个实现中,在与设备的交互期间检测文本字符的录入。根据自适应语言模型来生成对应于所检测到的文本字符的文本预测候选者。自适应语言模型可以被配置成包括多个单独的语言模型字典,其具有组合在一起以针对不同交互场景对预测候选者进行排名和选择的相应评分数据。除预定义的普通人群字典之外,字典可以包括个性化字典和/或通过监视用户的打字活动以将预测适配于用户的风格所学习到的交互特定字典。用于预测的组合概率被计算为来自自适应语言模型的多个字典的各个概率的加权组合。在实现中,对应于多个不同语言的字典可以组合以产生多语种预测。

在接下来的讨论中,题为“操作环境”的章节描述依照用于文本预测的自适应语言模型的一个或多个实现可以采用的示例环境和示例用户接口。紧随其后,题为“自适应语言模型细节”的章节描述依照一个或多个实现的示例自适应语言模型细节和过程。最后,提供题为“示例系统”的章节,其描述可以针对用于文本预测的自适应语言模型的一个或多个实现而采用的示例系统和设备。

操作环境

图1图示了其中可以实现用于文本预测的自适应语言模型的实施例的示例系统100。示例系统100包括计算设备102,其可以是以消费品、计算机、便携式设备、通信、导航、媒体回放、娱乐、游戏、平板和/或电子设备的任何形式的固定或移动设备中的任何一个或组合。例如,计算设备102可以实现为电视客户端设备104、计算机106和/或连接到显示设备110以显示媒体内容的游戏系统108。可替换地,计算设备可以是任何类型的便携式计算机、移动电话或者包括集成显示器114的便携式设备112。任何计算设备可以实现有诸如一个或多个处理器和存储器设备之类的各种组件,以及实现有如参照图9中所示的示例设备进一步描述的不同组件的任何组合。

计算设备102的集成显示器114或者显示设备110可以是触摸屏显示器,其被实现以感测触摸和手势输入,诸如显示于触摸屏显示器上的用户接口中的用户发起的字符、按键、键入或选择器输入。可替换地或此外,计算设备的示例可以包括其它各种输入机制和设备,诸如键盘、鼠标、屏上键盘、远程控制设备、游戏控制器、或者任何其它类型的用户发起的和/或用户可选择的输入设备。

在实现中,计算设备102可以包括输入模块116,其检测和/或识别与诸如屏上键盘字符输入、触摸输入和手势、基于相机的手势、控制器输入和其它用户选择的输入之类的各种不同种类的输入有关的输入传感器数据118。输入模块116代表标识触摸输入和/或手势并且导致执行对应于触摸输入和/或手势的操作的功能性。输入模块116例如可以被配置成识别通过用户的手部与触摸屏显示器(例如使用触摸屏功能性)的交互而检测到的手势。此外或可替换地,输入模块116可以被配置成识别由相机检测到的手势,诸如用户手部的摆动、抓取手势、手臂位置或其它经定义的手势。因此,还可以通过输入传感器数据118将触摸输入、手势和其它输入识别为包括可用于在输入模块116所识别的不同输入之间进行区分的属性(例如移动、选择点、位置、速度、取向等等)。该区分然后可以充当标识来自输入的手势的基础以及因此基于手势的标识而执行的操作。

计算设备包括键盘输入模块120,其可以被实现为计算机可执行指令,诸如由一个或多个处理器执行以实现本文所描述的各种实施例的软件应用或模块。键盘输入模块120表示提供并且管理屏上键盘以用于与计算设备102的键盘交互的功能性。键盘输入模块120可以被配置成使屏上键盘的表示在不同时间处被选择性地呈现,诸如在激活文本输入框、搜索控制或者其它文本输入控制时。屏上键盘可以提供用于在诸如显示设备110之类的外部显示器上或在诸如集成显示器114之类的集成显示器上显示。此外,要指出的是,硬件键盘/输入设备也可以实现具有适合用于本文描述的技术的至少一些软按键的可适配的“屏上”键盘。例如,被提供为外部设备或与计算设备102集成的硬件键盘可以并入显示设备、触摸按键、和/或可以用于显示如本文所描述的文本预测按键的触摸屏。在该情况下,键盘输入模块120可以提供为用于硬件键盘/输入设备的设备驱动器的组件。

键盘输入模块120可以包括或以其它方式利用文本预测引擎122,其表示处理和解释字符条目124以形成和提供对应于字符条目124的候选词语的预测的功能性。例如,屏上键盘可以在不同交互场景中选择性地暴露以用于在文本录入框、口令录入框、搜索控制、数据表、消息线程、或者诸如表、HTML页面、应用UI或文档之类的用户接口126的其它文本输入控制中输入文本以促进字符条目124(例如字母、数字和/或其它字母数字字符)的用户输入。

一般而言,文本预测引擎122探明最接近地匹配所输入的字符条目124的一个或多个可能的候选者。以此方式,文本预测引擎122可以通过提供响应于用户所输入的字符条目124而探明的一个或多个预测词语来促进文本录入。例如,由文本预测引擎122预测的词语可以被用于执行输入文本的自动校正,呈现作为供用户选择的候选者的一个或多个词语以完成、修改或校正输入文本,自动改变用于对应于所预测的词语的屏上键盘的按键的触摸命中区域等等。

依照本文所描述的技术,文本预测引擎122可以被配置成包括或利用如上文和下文所描述的自适应语言模型128。一般地,自适应语言模型128代表在单独的基础上对文本预测引擎122所做出的预测进行适配以符合不同用户打字的不同方式的功能性。因此,自适应语言模型128可以监视和收集关于设备的用户所做出的文本录入的数据。监视和数据收集可以在可能涉及不同应用、人员(例如联系人或目标)、文本输入机制和用于交互的其它上下文因素的不同交互场景中跨设备而发生。在一个方案中,自适应语言模型128被设计成利用多个语言模型字典作为可以用于基于文本录入来预测下个词语或预期词语的词语源和对应评分数据(例如条件概率、词语计数、n元语法模型等等)。来自多个字典的词语概率和/或其它评分数据可以以各种方式组合以对可能的候选词语逐个地排名并且将至少一些候选者选择为针对给定文本录入的最可能的预测。如下文更加详细地描述的,针对给定交互场景所应用的多个字典可以从普通人群字典、个性化字典和/或通过自适应语言模型128使其可得到的一个或多个交互特定字典来选择。关于用于文本预测的自适应语言模型的这些和其它方面的细节可以与以下各图有关地找到。

图2一般地在200处图示了依照一个或多个实施例的文本预测示例。所描绘的示例可以通过参照图1所描述的计算设备102和各种组件来实现。具体地,图2描绘了可以输出以促进与计算设备102的交互的示例用户接口126。用户接口126代表可以针对计算设备诸如由操作系统或其它应用程序提供的任何合适的接口。如所描绘的,用户接口126可以包括或以其它方式被配置成利用键盘202。在该示例中,键盘202是可以被再现和/或输出以用于显示在合适的显示设备上的屏上键盘。在一些情况下,键盘202可以作为应用的部分而并入并且出现在对应用户接口126内以促进文本录入、导航以及与应用的其它交互。此外或者可替换地,当文本录入恰当时,键盘202的表示可以由用户接口126内的键盘输入模块选择性地暴露。例如,当用户激活诸如搜索控制、数据表或文本输入框之类的文本输入控制时,键盘202可以选择性地出现。如所提及的,适当配置的硬件键盘也可以被用来提供导致确定和使用文本预测以促进另外的文本输入的输入。

在至少一些实施例中,键盘输入模块120可以导致从文本预测引擎122可得到的一个或多个合适的文本预测候选者的表示经由用户接口呈现。例如,文本预测条204或其它合适的用户接口控制或工具可以被配置成呈现一个或多个合适的文本预测候选者的表示。例如,可以使用适当的用户接口工具来显示所预测的文本、词语或短语的表示,所述用户接口工具诸如是所图示的预测条204、下拉框、滑出元件、弹出框、祝词(toast)消息窗口、或者列表框,举几个例子。文本预测候选者可以被提供为可选择元件(例如按键、按钮、命中区域),其在被选择时导致对应文本的输入。用户可以与可选择元件交互以通过来自用户手部206的触摸输入的方式或者以其它方式选择所显示的候选者之一。此外或者可替换地,由文本预测引擎122得到的文本预测候选者可以用于自动校正输入文本、扩大用于键盘202的一个或多个按键的底层命中区域、或者以其它方式使用所预测的文本来促进文本录入。

图3一般地在300处图示了依照示例交互场景的文本预测的表示。具体地,将被配置用于与搜索提供者交互的用户接口126描绘成具有用于移动电话设备的屏上键盘302。接口包括以搜索输入框的形式的文本输入控制304。在所描绘的示例中,用户已经与文本输入控制交互以输入对应于部分短语的文本字符“GoH”。响应于该文本的输入,文本预测引擎122可以操作以确定一个或多个预测候选者。当该文本预测306发生时,键盘输入模块120可以检测到一个或多个预测候选者可用并且经由用户接口126呈现候选者或者以其它方式利用预测候选者。

作为示例而非限制,图3描绘了针对如出现在键盘顶部的文本预测条308中所输出的输入文本“GoH”的各种文本预测选项。具体地,选项“Home(家)”、“Hokies”、“Hotel(旅馆)”、“Hawaii(夏威夷)”和“Huskies”被示出为输入文本的可能完成形式。在该场景中,选项可以被配置为用户接口的可选择元件,其可操作以导致经由文本预测条308所呈现的对应预测候选者的插入。因而,如果用户通过触摸或以其它方式选择“Hokies”选项,则搜索输入框中的输入文本“GoH”可以依照所选选项而自动完成为“GoHokies”。

已经考虑了示例环境,现在考虑一些自适应语言模型示例的讨论以进一步说明各个方面。

自适应语言模型细节

本章节参照图4A和4B的示例表示以及图5-8的示例过程来讨论采用用于文本预测的自适应语言模型的技术的细节。在以下讨论的部分中,可以对其中可以实现各个方面的图1的示例操作环境做出参考。以下描述的每一个过程的各方面可以在硬件、固件或软件或其组合中实现。过程被示出为一组块,其指定由一个或多个设备执行的操作并且未必受限于用于相应块执行操作的所示顺序。在至少一些实现中,过程可以由适当配置的计算设备执行,所述计算设备诸如是包括或利用文本预测引擎122或相当功能性的图1的示例计算设备102。

图4A一般地在400处描绘了依照一个或多个实现的自适应语言模型的表示。如所示出的,自适应语言模型128可以包括或利用依赖于其做出文本预测的多个单独的语言模型字典。具体地,图4A中的自适应语言模型128被图示为并入普通人群字典402、个性化字典404和交互特定字典406。自适应语言模型128可以由文本预测引擎122实现以将文本预测适配于各个用户和交互。为此,自适应语言模型128可以被配置成监视用户如何打字,在用户动态地“飞速”打字时学习用户打字的特性,使用多个字典基于输入文本字符生成条件概率等等。

具体地,自适应语言模型可以被配置成基于与用户所执行的文本录入结合地检测到的一个或多个类型的用户反馈来学习用户特定打字风格。用户反馈可以是指确定处理什么文本录入并且将其添加到用户的个性化字典的被动或明确动作。例如,当文本输入框、编辑控制或其它UI元件上的聚焦(focus)丢失时,系统可以处理和解析文本录入以用于适配。换言之,系统可以在学习术语之前等待文本录入的完成或用户对文本的定型(commitment)。用户还可以通过明确选择来对文本定型,所述明确选择诸如是发送消息的发送动作、发布状态更新或图片的发布动作、切换应用、手势、保存动作、或者对所录入的文本的某种其它形式的定型。添加到用户词典的词语或选择的明确校正也可以被解释为用于确定何时以及如何适配用户的个性化字典的用户反馈。类似地,如果用户已经通过针对词语的预测条或“按需”提供而选择了预测候选者,则所选词语可以被添加和/或词语概率可以部分地基于词语被选择的次数而进行加权。再进一步地,除了学习词汇之外,可以学习对于字型、大写、表情符号、文本效果以及文本输入的其它特性的用户偏好。自然地,包括但不限于前述示例的不同类型的用户反馈的组合也可以用于驱动系统学习用户的风格和习惯的方式。

语言模型字典一般被配置成将词语与可以用于对可能的候选词语逐个进行排名并且将至少一些候选者选择为针对给定文本录入的最可能的预测的概率和/或其它合适的评分数据(例如条件概率、分数、词语计数、n元语法模型数据、频率数据等等)相关联。自适应语言模型128可以在用户和/或交互特定的基础上追踪打字活动以创建和维护对应字典。字典中所包含的词语和短语也可以与指示在其中使用系统所收集的词语和短语的特定交互场景(例如上下文)的各种使用参数相关联。使用参数可以用于限定不同的交互场景,并且筛选或以其它方式组织数据以产生各种对应的语言模型字典。一个或多个单独的字典的不同组合然后可以相应地应用于不同的交互场景。

图4B一般地在408处描绘了依照一个或多个实现的语言模型字典之间的示例关系的表示。在该示例中,普通人群字典402表示适用于普通人群的字典,其可以被预定义并且加载在计算设备102上。普通人群字典402基于许多用户的集体打字活动来反映针对词语使用的概率和/或评分数据。在实现中,普通人群字典402由开发者使用关于用户打字的大量历史训练数据来构建并且可以预加载到设备上。普通人群字典402被配置成用作用于跨用户和设备的预测的词语源。换言之,普通人群字典402可以表示针对作为整体的用户人群或群体的共同使用并且不针对特定个体进行定制。普通人群字典402可以表示针对所选语言的“已知”词语的整个集合,例如针对英语语言用户的共同使用。

基于个体的实际使用来得到个性化字典404。个性化字典404反映用户通过与设备的交互所键入的词语,自适应语言模型128被配置成学习和追踪所述词语。普通人群字典中的现有词语可以作为用户词典的部分而被分配给个性化字典。尚未包含在普通人群字典中的词语可以作为新词语自动添加在个性化字典404中。个性化字典因此可以涵盖如图4B中所表示的普通人群字典402的子集。个性化字典404可以表示基于个体实际使用(例如用户特定使用)的词语和短语而针对每一个个体所定制的条件使用概率。

交互特定字典406表示用于对应交互场景的词语的交互特定使用。例如,人所使用的词语以及他们打字的方式在不同环境下改变。如所提及的,使用参数可以用于限定不同的交互场景并且在不同交互场景之间进行分辨。而且,自适应语言模型128可以被配置成维护和管理用于多个交互场景的对应交互特定语言模型字典。交互特定字典406每一个可以表示如图4B中所表示的个性化字典404的子集,其具有对应于用于与计算设备的交互的相应上下文的词语、短语和评分数据。

具体地,可以使用可以与用户打字活动相关联的对应使用参数来限定各种交互场景。例如,与交互期间所录入的词语和/或短语相关联的使用参数可以指示交互的一个或多个特性,包括但不限于应用身份、应用类型、人员(例如联系人姓名或目标接收方ID)、一天中的时间、日期、地理位置或地点、一年或一个季节中的时间、设置、人员年龄、最喜欢的项目、购买历史、与输入文本相关联的相关话题、和/或所使用的特定语言,举几个例子。可以形成交互特定字典408,其对应于这些示例使用参数以及描述交互的上下文的其它使用参数中的一个或多个。

作为示例而非限制,图4B表示对应于特定应用(消息、生产力和运动应用)、特定位置(家庭、工作)以及特定人(母亲、配偶)的示例交互特定字典。用户进行通信的方式可能针对这些不同场景中的每一个而改变,并且自适应语言模型128保持追踪针对不同交互的差异以相应地适配预测。还表示了图4B中的示例字典之间的某种重叠,因为用户可能跨不同设置而采用一些相同的词语和短语。关于以下示例过程来讨论关于自适应语言模型技术的这些和其它方面的附加细节。

图5描绘了依照一个或多个实现的其中提供文本预测的过程500。在与设备的交互期间检测文本字符的录入(块502)。例如,文本可以通过屏上键盘、硬件键盘、语音命令、或者其它输入机制的方式而输入。移动电话或其它计算设备102可以被配置成检测和处理输入以经由设备在用户接口输出内表示所录入的文本。

根据自适应语言模型生成对应于所检测到的文本字符的一个或多个文本预测候选者(块504),并且采用一个或多个文本预测候选者来促进用于与设备的交互的另外的文本录入(块506)。可以以任何合适的方式使用上文和下文描述的各种不同技术来生成预测。例如,计算设备可以包括被配置成实现如本文描述的自适应语言模型128的文本预测引擎122。

在操作中,自适应语言模型128可以应用于特定文本字符以通过使用和/或组合一个或多个单独的字典来确定对应预测。自适应语言模型128以可以在不同时间和不同场景中应用的不同水平的特异性(例如普通人群、用户、交互)来建立语言模型字典的层级,诸如关于图4B所表示和描述的示例字典。

如图4B中所示出的语言模型字典的层级可以通过监视和分析用户键入的词语以及其中用户采用不同词语和风格的上下文来随时间针对每一个单独的用户进行建立。最初,设备可以被供给有在收集到关于用户的个人风格的充足数据之前依赖于其进行文本预测的普通人群字典402。当用户开始以各种方式与设备交互时,文本预测引擎122开始学习用户的个人风格。因此,可以构建反映用户的实际使用和风格的个性化字典404。另外,与关于用户的个人风格的数据相关联的使用参数可以用于产生涉及由使用参数所限定的特定交互场景的一个或多个交互特定字典406。当关于用户的个人风格的越来越多的数据变得可得到时,语言模型字典的层级可以变得日益更加特定于和定制于用户的风格。可以应用语言模型字典的层级中的一个或多个字典以产生用于与设备的随后交互的文本预测。

为了得到预测,自适应语言模型128被配置成针对不同的交互场景选择性地使用层级中的字典的不同组合以基于输入文本标识候选者并且对候选者逐个排名。一般地,用于对候选者排名的分数或值可以通过在数学上以指定方式组合来自与给定交互场景相关联的字典的贡献来计算。来自多个字典的贡献可以以各种方式组合。在一个或多个实施例中,自适应语言模型128被配置成使用排名或评分算法,其计算与不同字典中所包含的词语相关联的评分数据的加权组合。以下描述生成和使用预测候选者的技术的另外的示例和细节。

图6描绘了依照一个或多个实现的其中将交互特定字典用于文本预测的过程600。针对与设备的交互场景标识与文本输入相关联的交互特定字典(块602)。这可以以任何合适的方式发生。在一个方案中,根据如之前所描述的使用参数来限定交互场景。文本预测引擎122可以被配置成基于使用参数来识别如与限定的交互场景匹配的当前交互。为此,文本预测引擎122可以通过查询应用、与操作系统交互、解析消息内容或文档内容、检验元数据等等来收集或者以其它方式获得关于当前交互的上下文信息。文本预测引擎122可以基于所收集的信息来针对交互建立一个或多个使用参数。然后,文本预测引擎122可以调用自适应语言模型128来标识适当的交互特定字典以用于与所建立的使用参数匹配的交互场景。

所标识的交互特定字典可以单独地或者与一个或多个其它字典组合地应用以产生文本预测。具体地,通过使用作为由自适应语言模型分配以确定一个或多个文本预测的概率的分量的来自交互特定字典的词语概率来计算针对交互场景的一个或多个文本预测(块604)。例如,语言模型字典可以包含指示针对词语使用的条件概率的评分数据。条件概率可以基于n元语法词语模型,其计算针对可以用于预测的序列中的数个词语“n”的概率。例如,可以实现三元语法(n=3)或二元语法(n=2)词语模型,尽管还设想到具有更高阶的模型。

在一个方案中,来自交互特定字典的条件概率被用作贡献于用来对预测候选者排名的分数的一个分量。在该示例中,分数可以被配置为组合概率,其至少部分地基于交互特定字典。在实现中,来自普通人群字典的条件概率被用作贡献于分数的另一分量。此外或者可替换地,来自个性化字典的条件概率可以被用作贡献于分数的分量。更一般地,分数可以反映概率和/或来自自适应语言模型128所提供的任何两个或更多个单独的字典的其它合适评分数据的组合,包括涉及多个交互特定字典的组合。

如所提及的,设想到各种不同的交互场景和对应的交互特定字典。每一个交互场景可以涉及指示交互的上下文特性的一个或多个使用参数。交互场景一般根据上下文特性进行限定,用户的打字风格和行为可能针对上下文特性而改变。本文描述的自适应语言模型技术底层的见解在于,用户键入不同的词语并且打字风格在不同场景中改变。为了进一步说明该概念,以下仅描述几个示例。

用户可以基于所使用的应用或应用类型而以不同方式打字。因此,可以在每一个应用的基础上限定交互场景并且可以针对各个应用建立对应字典。例如,反映设备的用户所采用的不同风格、词语和术语的不同字典可以与文本消息传递应用、浏览器、社交联网应用、文字处理器、电话应用以及web内容应用(举几个例子)相关联。因此,可以取决于当前应用而生成不同的文本预测。例如,文本消息传递应用中的输入“lo”可以生成“lol”,而对于文字处理器,可以基于所应用的不同字典而预测“loud”。为了使得能够实现应用特定字典,文本预测引擎122可以被配置成使用应用标识符、名称或其它分辨参数来在每一个应用的基础上收集打字活动。

此外或者可替换地,可以使用应用类型数据来追踪活动并且产生对应于应用类别的字典。在该情况下,可以将特定字典应用于与对应应用类型相关联的应用分组。尽管打字风格可以针对不同应用而改变,但是用户的打字行为和特性在使用相同类型的应用时可能是类似的,诸如对于两个不同的社交联网应用或者来自不同提供者的浏览器。为了文本预测而通过类型对应用进行分组利用针对类似应用可能存在的打字风格类似性。可以用于基于应用类型来建立字典的一些示例应用类型包括但不限于生产力、商业、消息传递、社交联网、聊天、游戏、web内容、媒体等等。

交互场景还可以在每一个人员的基础上进行限定,并且可以针对用户与之交互的各个人来建立对应的人员特定字典。在一个方案中,可以利用用户的联系人信息来识别与特定人的交互并且将打字活动与联系人信息所指示的各个联系人相关联。文本预测引擎122可以被配置成解析地址字段、消息内容、元数据或者其它合适的数据以识别与交互相关联的联系人。当识别到针对交互的联系人或目标人员时,可以发现对应的人员特定字典并且将其应用于做出针对交互的文本预测。可以跨设备针对其中识别到联系人的不同交互来采用对应于联系人的人员特定字典。这样,可以针对用户的一个或多个联系人建立人员特定字典。此外或者可替换地,与用户的联系人相关联的联系人分组或类别可以用于基于人的分组来建立字典。例如,用户的联系人可以被分组在诸如家庭、朋友、工作、书友会和足球队(举几个例子)之类的类别中或者以其它方式与其相关联。用户与其交互的人的这些分组可以用于形成联系人分组特定字典,其可以用来以本文描述的方式进行文本预测。联系人分组可以对应于与用户和/或设备相关联的任何合适的联系人。这可以包括例如与基于web的服务相关联的联系人和分组和/或关于提供者(例如社交网络服务、消息传递服务等)的用户账户、设备的本地地址薄和联系人、移动电话联系人、应用特定联系人和分组、和/或其组合。

还设想到位置特定字典。例如,可用于设备的位置数据也可以与打字活动相关联并且用于建立对应于特定位置的字典。位置可以对应于地理位置(例如城市、州、国家)和/或诸如工作、家庭或学校之类的设置。计算设备可以被配置成确定其位置并且以各种方式向应用提供指示位置信息的数据。例如,可以经由与设备相关联的GPS、通过蜂窝或Wi-Fi三角测量、通过从网络组件解码位置信标、基于互联网协议地址或以其它方式来确定设备位置。在一个方案中,用户可以向一个或多个位置分配设置名称(例如工作、家庭或学校)以促进基于位置的服务。可以针对频繁检测到的和/或设备/用户在其中花费大量时间的位置呈现分配设置名称的提示。可以针对由用户指定的或者自动检测到的位置设置来创建位置特定字典。还可以针对诸如城市、州等等之类的已知位置来创建位置特定字典。

交互特定字典的附加示例包括根据在不同交互中可以识别的话题关键词(例如超级碗、夏威夷、三月疯狂等)所建立的基于话题的字典。还设想到各种基于时序的字典。基于时序的字典可以包括但不限于根据一天中的时间(白天/夜晚)、一年中的时间(春季/夏季、秋季、冬季)、月份、假日季等等所建立的字典。多个语言特点字典(例如英语、西班牙语、日语等)也可以用来产生多语种文本预测。关于多语种文本预测技术的细节在下文关于图8进行讨论。

要指出的是,一些交互特定字典可以对应于刚刚描述的交互场景示例的组合。作为示例,可以针对应用和人的组合建立字典,诸如针对母亲与消息传递、母亲与电子邮件、兄弟与电子邮件以及同事与电子邮件。可以采用各种其它组合,诸如人与位置、应用与时序、应用与位置、应用与人和位置等等。

图7描绘了依照一个或多个实现的其中使用来自多个字典的评分数据的加权组合来选择文本预测候选者的过程700。基于一个或多个所检测到的文本字符来标识用作用于文本预测的词语源的多个字典(块702)。例如,应用于给定交互的字典可以根据如之前所描述的自适应语言模型128来选择。例如,文本预测引擎122可以根据与所检测到的文本字符匹配的一个或多个使用参数来标识字典。如果可用,则用户特定和/或交互特定字典可以被标识并且由文本预测引擎122用作生成文本预测中的组件。如果不是,则文本预测引擎122可以默认单独地使用普通人群字典402。

使用与包含在多个字典中的词语相关联的评分数据的加权组合对词语逐个进行排名以作为针对所检测到的文本字符的预测候选者(块704)。根据排名将一个或多个顶部排名的词语选择为针对所检测到的文本字符的预测候选者(块706)。候选者的排名和选择可以以各种方式发生。一般地,用于对预测候选者排名的分数可以通过组合来自多个字典的贡献来计算。例如,文本预测引擎122和自适应语言模型128可以被配置成实现计算评分数据的加权组合的排名或评分算法。加权组合可以被设计成内插来自普通人群字典和至少一个其它字典的预测。其它字典可以是个性化字典、交互特定字典、或者甚至是用于不同语言的另一普通人群字典。

如所提及的,语言模型字典包含与概率和/或用于文本预测的其它合适评分数据相关联的词语。可以通过从用于被标识为针对所检测到的文本字符的潜在预测候选者的词语的多个字典得到的各个分数或概率的内插而从多个字典生成相关文本预测候选者的列表。因而,经组合或适配的分数可以被计算为针对两个或更多语言模型字典的各个分数分量的加权平均。经组合的分数可以用于对候选者逐个排名。然后可以根据排名选择指定数目的顶部候选者。例如,可以生成顶部排名的五个或十个候选者的列表以用于向用户呈现文本预测候选者。对于自动校正,可以选择具有最高分数的最可能的候选者并应用其来执行自动校正。

一般地,如本文所描述的语言模型字典的内插可以通过以下公式表示:

其中Sc是通过对来自每一个单独的字典的通过相应内插权重W1,W2...Wn加权的分数S1,S2...Sn进行求和所计算的组合分数。可以应用以上通用公式来使用各种种类的评分数据从两个或更多字典内插。作为示例而非限制,评分数据可以包括概率、词语计数、频率等等中的一个或多个。可以从相应字典得到各个分量。预定义或动态生成的权重可以被分配给各个分量。然后,通过对分别根据所分配的权重加权的各个分量进行求和来计算组合分数。

在实现中,可以采用线性内插来组合来自两个字典的概率。来自两个源的概率的内插可以由以下公式表示:

其中Pc是通过对来自每一个单独的字典的通过相应内插权重W1,W2加权的概率P1,P2进行求和所计算的组合概率。根据以上通用公式,线性内插方案还可以扩展到多于两个源。

被分配给公式的分量的内插权重可以以各种方式计算。例如,权重可以凭经验确定并且被分配为用于评分算法的各个加权参数。在一些实现中,加权参数可以是用户可配置的以改变不同字典的影响,选择性地接通/关断自适应语言模型,或者以其它方式调谐计算。

在至少一些实现中,内插权重可以取决于彼此。例如,W2可以设定成1-W1,其中W1在0和1之间。对于以上示例,这导致以下公式:

此外或者可替换地,加权参数可以被配置成根据内插函数动态地调节。内插函数被设计成自动调节权重以便基于一个或多个加权因子而对分数的不同分量的相对贡献进行改变。在前述等式中,这可以通过动态地设定W1的值而发生,其改变与P1和P2二者相关联的权重。

作为示例,内插函数可以被配置成计及诸如总体可用用户数据的量(例如总词语计数)、各个词语的计数或频率、词语最近多久被使用等等之类的因素。一般地,权重可以适配于在针对用户收集更多数据时增加单独用户的词典的影响,并且还增加更常使用的各个词语的影响。此外,更为最近使用的词语的权重可以被调节以增加最近词语的影响。内插函数可以跨设备和/或针对特定交互场景集体地采用与用户打字活动相关联的词语计数和时序数据以相应地调节权重。因而,取决于交互场景以及所选的对应字典,可以采用不同权重。

因此,权重可以基于总词语计数或所收集的用户数据的量的其它度量、针对候选词语的单独词语计数和/或最近多久使用候选词语中的一个或多个而变化。在方案中,内插函数可以被配置成适配最小值和最大值之间的W1的值,诸如0和0.5。根据具有给定斜率的所选线性等式,值可以在最小值和最大值之间变化。

内插函数还可以针对各个词语计数设定阈值。在阈值以下,W1的值可以被设定为零。这迫使词语的最小数目的实例(例如,2,3,10等)在词语被考虑用于文本预测之前发生。使用阈值可以防止错误拼写和错误的词语立即被用作用户特定词典的部分。

为了计及新近性,W1的值可以通过取决于最近多久使用词语的乘数(multiplier)进行调节。乘数的值可以基于词语的最为新近的出现或者是针对指定数目的最为新近的出现(例如过去10个或过去5个)的移动平均值。作为示例,乘数可以基于特定词语上一次使用是在多少天或多少个月之前。乘数可以增加已经被更为新近地录入的词语的概率/分数的贡献。例如,乘数1.2可以应用到前一月中所使用的词语,并且该值可以针对每一个附加月份而向下减小到针对一年或更久之前最后一次使用的词语的值1。自然,可以采用各种其它值和时间帧以实现计及新近性的方案。也可以采用计及新近性的其它技术,包括但不限于将基于新近性的因子添加到内插等式中、在最后一次出现的时间变得更久时根据衰减函数折低(discount)分配给词语的权重等等。

还可以实现在指定时间段之后移除陈旧词语的机制。这可以以各种方式达成。在一个方案中,周期性清除操作可以标识在指定时间帧(诸如一年或十八个月)内没有使用的词语。可以将所标识的词语从用户的习惯词典移除。另一方案是在指定时间帧之后将词语的权重设定为零。此处,可以针对陈旧词语保留数据,假定存在充足的空间来这样做的话,但是零权重防止系统将陈旧词语用作候选者。如果用户开始再次使用该词语,则该词语可以连同预先存在的历史一起复现。自然,可用存储空间的量可以确定保留多少打字活动以及何时清理用于陈旧词语的数据。

一旦使用刚刚描述的技术对词语进行排名和选择,则利用所选词语来以各种方式促进文本录入(块708)。作为示例而非限制,所选候选词语可以用于修改输入按键上的命中目标(块710)、执行所检测到的文本字符的自动校正(块712)和/或输出作为针对所检测到的文本字符的预测的一个或多个词语(块714)。

图8描绘了依照一个或多个实施例的其中生成多语种文本预测候选者的示例实现中的过程800。识别多个不同语言用于特定交互场景中的文本输入的使用(块802)。对应于多个不同语言的多个字典被激活以用于与交互场景结合的文本预测(块804)。例如,文本预测引擎122可以识别用户何时在语言之间切换或者在不同交互中使用语言的混合。当遇到充足数目的多语种使用的发生时,文本预测引擎122可以通过激活用于不同语言的字典而做出响应。在一个方案中,用于第二语言的语言特定字典可以作为自适应语言模型128的部分而被创建为交互特定字典406。在该情况下,用户对于第二语言的使用可以反映在语言特定字典中。此外或者可替换地,文本预测引擎122可以傍靠(along-side)作为自适应语言模型128的部分的现有普通人群字典而定位和安装用于第二语言的普通人群字典。文本预测引擎122还可以基于用户的打字历史来建议安装特定语言。针对多语种交互的文本预测然后可以依赖于用于多个不同语言的多个字典。

具体地,通过根据自适应语言模型而组合使用对应于多个不同语言的多个字典所获得的词语概率来针对与交互场景相关联的文本录入生成多语种文本预测(块806)。例如,可以使用之前描述的内插技术来组合针对两个或更多单独的语言特定字典的概率。用于内插的权重可以特别地被选择用于多语种场景。在一个方案中,权重可以与用户对不同语言的相对使用成比例。因而,如果对于英语和西班牙语,使用按75/25分割,则用于这些语言之间的内插的所选权重可以反映这些比例。可替换地,可以确定和应用针对不同语言组合的经验值。

在实现中,所激活的每一个普通人群语言字典可以被布置成采用本文的用于自适应语言模型的技术。因而,对应于不同语言的并行自适应语言模型128每一个都可以具有用于相应语言的底层用户特定和交互特定字典。为了产生预测,可以通过将本文描述的内插技术应用于相应自适应语言模型而针对每一个语言分离地生成用于输入文本字符的预测候选者的列表。然后,可以采用第二内插将来自每一个语言特定列表的单独概率组合到共同列表中。以该方式,呈现给用户或者以其它方式用于促进文本录入的文本预测可以通过对来自用于用户所采用的不同语言的多个字典的概率进行内插(或以其它方式组合评分数据)来反映多个语言。

可以以各种方式采用多语种文本预测。例如,可以在文本录入期间经由预测条或者否则以之前描述的方式来提供用于特定场景的多语种文本预测。还可以在编辑期间“按需”提供用于不同语言候选者的选项或语言适当的候选者。在该情况下,用户可以通过触摸或其它输入机制来选择词语以获得预测候选者的列表。可以形成包括其中检测到多个语言使用的场景中的多语种文本预测的列表。

此外,关于多语种使用的知识可以用于选择性地确定何时依赖于不同语言字典和/或是将一个特定语言还是语言的组合用于预测。例如,用户可以做出选择从英语键盘切换到法语键盘。在该情况下,可以默认设定法语字典。此外或者可替换地,可以相应地将英语和法语之间的权重适配成偏好法语。另一方面,当单个键盘用于多个语言(例如键入英语和法语二者的英语键盘)时,本文描述的组合来自多个字典的概率和/或评分数据的一般方案可以用于确定适当语言并且示出语言适当的候选者。因而,系统可以取决于特定文本输入场景而在用于预测的单个字典和多个字典使用之间转变。

用于做出文本录入的键盘的类型也可以连同对应词语一起存储。因而,如果用户选择所预测的词语,则用于该词语的对应键盘可以自动地显示以促进以对应语言的打字,并且可以相应地生成语言适当的预测候选者。再次,这可以涉及默认针对键盘的特定语言的候选者或者至少更重地加权预测以偏好特定语言。因而,文本预测和/或键盘可以自动地适配成匹配特定多语种使用场景。

已经描述了涉及自适应语言模型的一些示例技术,现在考虑可以在本文描述的一个或多个实现中利用的示例系统。

示例系统和设备

图9图示了示例系统900,其包括代表可以实现本文描述的各种技术的一个或多个计算系统和/或设备的示例计算设备902。计算设备902可以例如是服务提供者的服务器、与客户端相关联的设备(例如客户端设备)、片上系统、和/或任何其它合适的计算设备或计算系统。

如所图示的示例计算设备902包括彼此通信耦合的处理系统904、一个或多个计算机可读介质906以及一个或多个I/O接口908。尽管未示出,但是计算设备902还可以包括将各种组件彼此耦合的系统总线或其它数据和命令传递系统。系统总线可以包括不同总线结构中的任何一个或组合,诸如存储器总线或存储器控制器、外围总线、通用串行总线、和/或利用任何各种总线架构的处理器或本地总线。还设想到各种其它示例,诸如控制和数据线。

处理系统904代表使用硬件执行一个或多个操作的功能性。因此,处理系统904被图示为包括可以配置为处理器、功能块等的硬件元件910。这可以包括作为专用集成电路或者使用一个或多个半导体所形成的其它逻辑器件的硬件中的实现。硬件元件910不受形成它们的材料或者其中采用的处理机制的限制。例如,处理器可以包括(多个)半导体和/或晶体管(例如电子集成电路(IC))。在这样的上下文中,处理器可执行指令可以是电子可执行指令。

计算机可读介质906被图示为包括存储器/存储装置912。存储器/存储装置912表示与一个或多个计算机可读介质相关联的存储器/存储容量。存储器/存储装置912可以包括易失性介质(诸如随机存取存储器(RAM))和/或非易失性介质(诸如只读存储器(ROM)、闪速存储器、光盘、磁盘等)。存储器/存储装置912可以包括固定介质(例如RAM、ROM、固定硬盘驱动器等等)以及可移除介质(例如闪速存储器、可移除硬盘驱动器、光盘等)。计算机可读介质906可以以各种其它方式进行配置,如下文进一步描述的。

(多个)输入/输出接口908代表允许用户向计算设备902录入命令和信息并且还允许使用各种输入/输出设备将信息呈现给用户和/或其它组件或设备的功能性。输入设备的示例包括键盘、光标控制设备(例如鼠标)、用于语音操作的麦克风、扫描仪、触摸功能性(例如被配置成检测物理触摸的电容型或其它传感器)、相机(例如,其可以采用可见或不可见波长,诸如红外频率,以检测不涉及触摸的作为手势的移动)等等。输出设备的示例包括显示设备(例如监视器或投影仪)、扬声器、打印机、触觉响应设备等等。计算设备902还可以包括各种组件以使得能够实现有线和无线通信,包括例如用于网络通信的网络接口卡和/或支持无线和/或移动通信的各种天线。设想到合适的各种不同类型的天线,包括但不限于一个或多个Wi-Fi天线、普通群体导航卫星系统(GNSS)或普通群体定位系统(GPS)天线、蜂窝天线、近场通信(NFC)214天线、蓝牙天线等等。因而,计算设备902可以以各种方式配置,如下文进一步描述的,以支持用户交互。

在本文中可以在软件、硬件元件或程序模块的一般上下文中描述各种技术。一般地,这样的模块包括例程、程序、对象、元件、组件、数据结构等,其执行特定任务或实现特定抽象数据类型。如本文所使用的术语“模块”、“功能性”和“组件”一般表示软件、固件、硬件或其组合。本文描述的技术的特征是独立于平台的,这意味着技术可以在具有各种处理器的各种商业计算平台上实现。

所描述的模块和技术的实现可以存储在某种形式的计算机可读介质上或者跨其传输。计算机可读介质可以包括可以由计算设备902访问的各种介质。作为示例而非限制,计算机可读介质可以包括“计算机可读存储介质”和“通信介质”。

“计算机可读存储介质”是指相比于单纯的信号传输、载波或信号本身使得能够存储信息的介质和/或设备。因而,计算机可读存储介质不包括信号承载介质或信号本身。计算机可读存储介质包括诸如易失性和非易失性、可移除和不可移除介质之类的硬件和/或以适合用于存储诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或其它数据之类的信息的方法或技术实现的存储设备。计算机可读存储介质的示例可以包括但不限于RAM、ROM、EEPROM、闪速存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储装置、硬盘、盒式磁带、磁带、磁盘存储装置或其它磁性存储设备、或者适于存储期望信息并且可由计算机访问的其它存储设备、有形介质或制造品。

“通信介质”是指被配置成诸如经由网络将指令传输给计算设备902的硬件的信号承载介质。通信介质典型地可以包含计算机可读指令、数据结构、程序模块或诸如载波、数据信号或其它输运机制之类的调制数据信号中的其它数据。通信介质还包括任何信息递送介质。术语“调制数据信号”是指使其一个或多个特性以便于将信息编码在信号中的这样的方式设定或改变的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声学、RF、红外和其它无线介质之类的无线介质。

如之前描述的,硬件元件910和计算机可读介质906代表可以在一些实施例中采用以实现本文描述的技术的至少一些方面的以硬件形式实现的指令、模块、可编程设备逻辑和/或固定设备逻辑。硬件元件可以包括集成电路或片上系统的组件、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)以及硅中的其它实现或其它硬件设备。在该上下文中,硬件元件可以操作为执行由指令、模块和/或硬件元件所体现的逻辑限定的程序任务的处理设备,以及用于存储供执行的指令的硬件设备,例如之前描述的计算机可读存储介质。

前述组合也可以用于实现本文描述的各种技术和模块。因此,包括文本预测引擎122、自适应语言模型128和其它程序模块的软件、硬件或程序模块可以被实现为体现在某种形式的计算机可读存储介质上和/或由一个或多个硬件元件910体现的一个或多个指令和/或逻辑。计算设备902可以被配置成实现对应于软件和/或硬件模块的特定指令和/或功能。因此,将模块实现为作为软件的计算设备902可执行的模块可以至少部分地在硬件中实现,例如通过使用计算机可读存储介质和/或处理系统的处理元件910。指令和/或功能可以由一个或多个制造品(例如一个或多个计算设备902和/或处理系统904)可执行/可操作以实现本文描述的技术、模块和示例。

如图9中所进一步图示的,当在个人计算机(PC)、电视设备和/或移动设备上运行应用时,示例系统900使得能够实现用于无缝用户体验的普适环境。当在利用应用、播放视频游戏、观看视频等等的同时从一个设备向下一个转变时,服务和应用在所有三个环境中基本上类似地运行以得到共同用户体验。

在示例系统900中,通过中央计算设备互连多个设备。中央计算设备可以在多个设备本地或者可以远离多个设备定位。在一个实施例中,中央计算设备可以是通过网络、因特网或者其它数据通信链路而连接到多个设备的一个或多个服务器计算机的云。

在一个实施例中,该互连架构使得能够跨多个设备递送功能性以向多个设备的用户提供共同且无缝的体验。多个设备中的每一个可以具有不同的物理要求和能力,并且中央计算设备使用平台来使得能够向设备递送既针对设备定制的又是所有设备所共同的体验。在一个实施例中,创建目标设备的类并且针对普通类的设备定制体验。设备的类可以由物理特征、使用类型、或者设备的其它共同特性来限定。

在各种实现中,计算设备902可以采取各种不同配置,诸如供计算机914、移动设备916和电视918使用。这些配置中的每一个包括可以具有一般不同的构造和能力的设备,并且因而计算设备902可以根据不同设备类中的一个或多个进行配置。例如,计算设备902可以实现为计算机914类设备,其包括个人计算机、台式计算机、多屏计算机、膝上型计算机、上网本等。

计算设备902还可以实现为移动设备916类设备,其包括移动设备,诸如移动电话、便携式音乐播放器、便携式游戏设备、平板计算机、多屏计算机等。计算设备902还可以实现为电视918类设备,其包括具有或连接到日常观看环境中的一般较大屏幕的设备。这些设备包括电视、机顶盒、游戏控制台等。

本文描述的技术可以由计算设备902的这些各种配置所支持并且不限于本文描述的技术的具体示例。这通过在计算设备902上包括文本预测引擎122进行图示。文本预测引擎122和其它模块的功能性也可以部分地或全部地通过使用分布式系统而实现,诸如通过如下文所描述的经由平台922的“云”920。

云920包括和/或代表用于资源924的平台922。平台922对云920的硬件(例如服务器)和软件资源的底层功能性进行抽象。资源924可以包括在远离计算设备902的服务器上执行计算机处理时可以利用的应用和/或数据。资源924还可以包括通过因特网和/或通过诸如蜂窝或Wi-Fi网络之类的订户网络所提供的服务。

平台922可以对连接计算设备902与其它计算设备的资源和功能进行抽象。平台922还可以服务于抽象资源的缩放以向针对经由平台922所实现的资源924所遭遇的需求提供对应水平的缩放。因此,在互连设备实施例中,本文描述的功能性的实现可以遍及系统900分布。例如,功能性可以部分地在计算设备902上实现以及经由对云920的功能性进行抽象的平台922而实现。

结论

尽管在以上描述中已经以具体到结构特征和/或方法动作的语言描述了技术,但是要理解到,随附权利要求的主题未必限于所描述的具体特征或动作。相反,具体特征和动作是作为实现所要求保护的主题的示例形式而公开的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号