用于生成预测的系统和方法与流程

文档序号:15575594发布日期:2018-09-29 05:27阅读:167来源:国知局

本发明总体上涉及用于生成与应用相关联的动作的预测的系统和方法。



背景技术:

计算设备通常安装有许多软件应用(或者“app”)。当使用计算设备时,通常需要用户在应用之间切换。例如,当使用消息应用时,用户会希望切换到显示公共运输时间表信息的网页浏览应用、地图应用或者日历应用。这通常将要求用户关闭或最小化第一应用,在计算设备的应用启动接口内定位第二应用,并且选择期望应用来打开或最大化该应用。这会在应用之间切换的时间量方面导致用户不满,尤其在非常大量的应用安装在设备上的情况下。

本发明的目的在于克服这种以及其他问题。



技术实现要素:

在本发明的第一方面中,提供了一种系统,该系统包括:模型,被配置为将文本与至少一个动作相关联,至少一个动作与多个应用中的至少一个应用相关联;模型更新器,被配置为监控多个应用中的第一应用内的文本,监控与多个应用中的第二应用相关联的动作,以及更新模型,以将第一应用内的文本的至少一部分与动作相关联,该动作与第二应用相关联;以及预测器,被配置为基于第一应用内的文本的至少一部分,使用模型,生成用于多个应用中的至少一个应用的至少一个动作的预测。

第一应用内的文本可以是第一应用中显示的文本、被第一应用接收的文本和/或由用户输入至第一应用的文本。

用于更新模型的文本不同于预测所基于的文本。

模型可进一步被配置为将文本与应用类别相关联;模型更新器可进一步被配置为更新模型以将第一应用内的文本的至少一部分与第二应用的应用类别相关联;以及预测器可进一步被配置为基于应用类别生成预测。

与第二应用相关联的动作可包括:打开或最大化第二应用或者从第一应用切换到第二应用,任选地,其中与第二应用相关联的动作还包括执行第二应用中的内部动作或者打开第二应用中的特定视图。

模型更新器可被配置为响应于与第一应用相关联的动作来监控第一应用内的文本,任选地,其中该动作是关闭或最小化第一应用或者执行第一应用中的内部动作或者打开第一应用中的特定视图。

模型更新器可被配置为响应于与第二应用相关联的动作来更新模型,任选地,其中该动作是打开或最大化第二应用或者从第一应用切换到第二应用。

该系统还包括通用键盘,与第一应用同时以及与第二应用同时地显示通用键盘。

模型更新器可被配置为使用通用键盘通过监控用户输入第一应用的文本来监控第一应用内的文本。

模型更新器可被配置为通用键盘监控与第二应用相关联的动作。

预测器可被配置为向用户呈现预测来用于选择。

预测器可被配置为响应于预测显示触发来向用户呈现预测。

预测显示触发可包括第一应用内的文本,该文本与预测所基于的文本的部分不同或者与预测所基于的文本的部分相同。

预测显示触发可包括以下至少之一:与第一应用相关联的动作,任选地,其中该动作是关闭或最小化第一应用;或者来自多个应用中的不是第一应用的一个应用的应用程序接口请求。

预测器可进一步被配置为基于预测显示触发的发生与预测所基于的文本的部分的发生之间的时间延迟来生成预测。

预测器可被配置为在通用键盘上向用户呈现预测。

模型更新器可被配置为通过通用键盘上呈现的预测的用户选择来监控与第二应用相关联的动作。

预测器可被配置为通过以下任何之一向用户呈现预测:系统的主屏幕上的用户接口元件、系统的通知或警告、数字个人助理和/或第一应用内的用户接口元件。

模型可被配置为将上下文数据与一个或多个动作相关联,该一个或多个动作与多个应用相关联;模型更新器可被配置为更新模型,以将上下文数据与动作相关联,该动作与第二应用相关联;以及预测器可进一步被配置为基于上下文数据生成预测。

可以从以下数据中选择上下文数据:活跃应用数据;从第一应用中显示的文本中得到的数据;时间数据和/或位置数据。

模型可包括贝叶斯模型或神经网络。

由预测器生成的至少一个动作的预测包括安装应用的动作,任选地,安装应用的动作可以包括推荐将被安装的应用,或者打开应用商店内提供关于应用的更多信息的视图。

在本发明的又一方面中,提供了一种方法,该方法包括:监控多个应用中的第一应用内的文本;监控与多个应用中的第二应用相关联的动作;更新模型,以将第一应用内的文本的至少一部分与动作相关联,该动作与第二应用相关联,其中模型被配置为将文本与一个或多个动作相关联,一个或多个动作与多个应用中的至少一个应用相关联;以及基于第一应用内的文本的至少一部分,使用模型,生成用于多个应用中的至少一个应用的至少一个动作的预测。

监控第一应用内的文本的步骤可以包括:监控第一应用中显示的文本、由第一应用接收的文本和/或由用户输入第一应用的文本。

更新模型的步骤中使用的文本可以不同于生成预测的步骤中预测所基于的文本。

与第二应用相关联的动作可以包括:打开或最大化第二应用或者从第一应用切换到第二应用,任选地,其中与第二应用相关联的动作还包括执行第二应用中的内部动作或者打开第二应用中的特定视图。

可响应于与第一应用相关联的动作来监控第一应用内的文本,任选地,其中该动作是关闭或最小化第一应用或者执行第一应用中的内部动作或者打开第一应用中的特定视图。

可响应于与第二应用相关联的动作来更新模型,任选地,其中该动作是打开或最大化第二应用或者从第一应用切换到第二应用。

该方法可进一步包括在第二应用中显示通用键盘的步骤。

可通过通用键盘监控与第二应用相关联的动作。

该方法可进一步包括向用户呈现预测用于选择的步骤。

可响应于预测显示触发来向用户呈现预测。

预测显示触发可包括第一应用内的文本,该文本与预测所基于的文本的部分不同或者与预测所基于的文本的部分相同。

预测显示触发可包括以下至少之一:与第一应用相关联的动作,任选地,其中该动作是关闭或最小化第一应用;或者来自多个应用中的不是第一应用的一个应用的应用程序接口请求。

预测可进一步基于预测显示触发的发生与预测所基于的文本的部分的发生之间的时间延迟。

可在通用键盘上向用户呈现预测。

可通过通用键盘上呈现的预测的用户选择来监控与第二应用相关联的动作。

可通过以下任何之一向用户呈现预测:系统的主屏幕上的用户接口元件、系统的通知或警告、数字个人助理和/或第一应用内的用户接口元件。

模型可被配置为将上下文数据与一个或多个动作相关联,一个或多个动作与多个应用相关联,并且更新模型的步骤可进一步包括:更新模型,以将上下文数据与动作相关联,该动作与第二应用相关联;以及预测可进一步基于上下文数据来生成。

可从以下数据中选择上下文数据:活跃应用数据;从第一应用中显示的文本中得到的数据;时间数据和/或位置数据。

模型可包括贝叶斯模型或神经网络。

被预测的至少一个动作的预测包括安装应用的动作。

在本发明的又一方面中,提供了一种计算机可读介质,计算机可读介质包含程序指令,其中通过计算机系统的一个或多个处理器执行程序指令使得一个或多个处理器:监控多个应用中的第一应用内的文本;监控与多个应用中的第二应用相关联的动作;更新模型,以将第一应用内的文本的至少一部分与动作相关联,该动作与第二应用相关联,其中模型被配置为将文本与一个或多个动作相关联,该一个或多个动作与多个应用中的至少一个应用相关联;以及基于第一应用内的文本的至少一部分,使用模型,生成用于多个应用中的至少一个应用的至少一个动作的预测。

在本发明的又一示例中,提供了一种电子设备,电子设备包括:模型,被配置为将文本与至少一个动作相关联,至少一个动作与多个应用中的至少一个应用相关联;模型更新器,被配置为监控多个应用中的第一应用内的文本,监控与多个应用中的第二应用相关联的动作;更新模型,以将第一应用内的文本的至少一部分与动作相关联,该动作与第二应用相关联;以及预测器,被配置为基于第一应用内的文本的至少一部分,使用模型,生成用于多个应用中的至少一个应用的至少一个动作的预测;以及用户接口,被配置为显示用于选择由预测器生成的至少一个动作的预测。

附图说明

图1是根据本发明的系统的示意图。

图2a、图2b和图2c是使用根据本发明的系统的手持计算设备的示例图。

图3是示出提取应用内显示的处理文本的流程图。

图4示出了用于训练示例性的基于朴素贝叶斯类别器的模型的数据。

图5a和图5b示出了被执行以基于文本和上下文数据生成应用动作的预测的示例性计算。

图6示出了示例性的基于神经网络的模型的流程图。

图7示出了本发明的方法的流程图。

具体实施方式

本发明的目的在于提供用于基于第一应用内的文本生成上下文相关应用动作的预测的系统和方法。

如下面将进一步详细描述的,相关应用动作可包括打开或最大化第二应用、打开特定示图或者执行第一应用或另一应用内的特定内部动作。第一应用内的文本可以是显示在应用的平面上的文本(例如,经由操作系统的平面读取应用程序接口所捕获的)、由应用接收的文本(例如,消息)、与第一应用同时显示的通知或覆盖物中显示的文本、或者可以是由用户输入第一应用的文本。

这在具有多个应用的计算设备中是有利的。根据第一应用内的文本,可以将预测提供给可以上下文相关的应用动作的用户。例如,如果文本“你想要吃晚饭吗?”显示在作为消息应用的第一应用内,则该系统可以预测用户想要切换到饭店预定应用或者网络浏览应用中的饭店查看网页。

该系统可以呈现切换到饭店预定应用或者切换到浏览器应用并在设备的用户接口中打开饭店查看网页的预测动作。然后,用户可以从第一消息应用中选择一种预测动作,而不需要返回到设备的系统应用启动件。

通过模型来生成预测,其中通过模型更新器来更新模型,模型更新器被配置为将文本与特定应用动作相关联。以这种方式,该系统可以在一段时间内响应于特定文本动态地学习用户想要执行哪个应用,并由此生成更精确的预测。

这可以有利地减少用户在应用之间切换所花费的时间。此外,由于系统是动态的,所以其可以在一段时间内响应于特定文本项来精炼特定应用动作的预测相关性。此外,如果安装了新应用或者用户趋向于特定的有特性的语言,则系统将仍然能够随着时间生成与相关应用的相关性,并且向用户呈现应用动作的适当预测。

根据本发明的用于生成预测的系统可以如图1中的框图所示来实施。该系统还将参照图2a和图2b所示的具体示例性实施方式来描述。

该系统包括模型100、模型更新器200和预测器300。该系统被配置为与多个应用交互。例如,如图所示,多个应用可以包括第一应用500、第二应用510等,直到第n个应用520。

模型100被配置为将文本与至少一个动作相关联,其中至少一个动作与多个应用中的至少一个应用相关联。

如箭头401所示,模型更新器200被配置为监控多个应用中的第一应用500内的文本501。在一些实施方式中,在第一应用内被监控的文本501可以在被模型更新器200用于更新模型100和/或被预测器300生成预测(如下面进一步描述的)之前被过滤。例如,过滤可以去除标点符号、数字或者其他特定字符,或者过滤掉特定字或字的序列。通过又一示例,过滤可用于去除近来已经被模型更新器200用于更新模块100的文本的部分,如英国专利申请第1510318.7号标题为“systemandmethodforgeneratingtextpredictions”所描述的,其与被配置为过滤已经被模型更新器用于更新模型的文本块的文本块过滤器相关,其内容通过引证引入本文。英国专利申请第1510318.7号通过引证被全部引入本文。

如箭头402所示,模型更新器进一步被配置为监控与第二应用510相关联的动作515。如箭头405所示,模型更新器进一步被配置为更新模型,以将已经在第一应用500内被监控的文本501的至少一部分与第二应用510相关联的动作515相关联。

通过更新模型以将文本的一部分与动作相关联,意味着如果在文本的至少一部分与动作之间在模型中还不存在这种关联,则模型更新器更新模型以使关联存在,或者如果已经存在关联,则模型更新器可更新模型以使文本的一部分与动作被进一步关联,其中关联性被加强。模型更新器可针对文本的相同部分更新模型多次,例如将字或词组的特定序列与动作相关联并且将来自该词组的单个字与动作相关联,或者将文本与动作相关联并且将文本数据与动作相关联。

预测器300被配置为生成用于多个应用中的至少一个应用的至少一个动作的预测。例如,如箭头410所示,预测器可预测与第二应用510相关联的动作515。例如,预测器可以预测打开或最大化第二应用的动作。备选地或附加地,预测器可以预测与第一应用相关联的动作505和/或与多个应用中的又一应用510相关联的动作525。

如箭头420和421所示,预测器300被配置为基于第一应用500中的文本501的至少一部分以及模型100来生成预测。例如,第一应用的文本501中的特定项或者项的序列可以通过模型100与特定动作相关联,该特定动作与多个应用中的一个应用相关联,由此预测器300可基于模型100生成该动作的预测。

此外,模型100可将文本与特定类别相关联。模型更新器200可被配置为更新模型100,以将文本501与第二应用510的应用类别相关联。例如,模型100可被更新,以将特定文本与打开特定类别的第二应用(例如,导航应用)的动作相关联。当预测器300基于模型和特定文本项生成预测时,其随后可以生成打开作为导航应用类别的应用的动作的预测。当预测器300向用户呈现预测时,其可以呈现来自该应用类别的一个或多个应用。以这种方式,如果模型100将特定文本与应用类别相关联并且用户安装该类别中的新应用(在该示例中为新导航应用),则预测器将能够基于该文本通过应用类别呈现与新安装的应用相关联的动作,而不需要模型更新器基于用户执行与新安装应用相关联的动作来更新模型。应用类别可以是静态的,也就是说,多个应用中的每个应用可以静态地与一个或多个类别相关联。附加地或备选地,类别可以是动态的,即,模型可随着时间被更新以将特定应用成组为类别。

当然,被模型更新器200用于更新模块100的文本的一部分可以不同于被预测器300用于生成预测的文本的一部分。此外,模型更新器200不需要不断地更新模块100,预测器300也不需要不断地生成预测。模型更新器200和预测器300可以同时操作(即,模型更新器200与预测器300生成预测同时地更新模型),或者它们可以在不同时间操作。

也就是说,模型更新器200可以监控第一应用500内的文本511,并且稍后使用文本511的第一部分(例如,第一文本项或者文本项的序列)来更新模型100,将文本的第一部分与第二应用的被监控动作515(例如,打开所述第二应用)相关联。预测器300可同时使用文本511的第二部分(例如,第二文本项或者项的序列),以基于文本的所述第二部分与动作之间的关联性生成动作的预测。

当然,该动作可以是与第二应用510相关联的动作515(例如,打开所述第二应用),或者可以是与多个应用中的另一应用520相关联的动作525,或者甚至是与第一应用相关联的动作505,例如打开第一应用500内的特定示图或者执行第一应用500内的特定命令。

在由预测器300预测的动作是与多个应用中的第二应用510相关联的动作的情况下,动作还可以包括执行第二应用510内的内部动作515。例如,预测器300可生成打开所述第二应用510的预测,然后打开特定示图或者执行所述第二应用内的特定命令。

与不断地更新模型100不同,模型更新器200可以进行操作以响应于特定激励而更新模型100。例如,当发生与第二应用510相关联的动作515时,模型更新器200可进行操作来更新模型100。例如,当第二应用510被打开或最大化时,或者用户从第一应用500切换为第二应用510时,模型更新器200可更新模型100以将该应用动作与在第一应用500中已经被监控的文本501的一部分(例如,特定文本项或者项的序列)相关联。

在特定实施例中,该系统可进一步包括通用键盘700,如图2a和图2b所示。通过通用键盘,意味着在多个应用中的多于一个的应用中显示键盘,例如当第一应用500有效时其可显示在第一应用500中,并且当第二应用510有效时其还显示在第二应用510中。通用键盘700可以实施为设备的操作系统的一部分、操作系统的第三方插件或扩展,或者作为多个应用中的每个应用的第三方插件或扩展。

模型更新器200可被配置为通过通用键盘700来监控应用动作505、510、525。也就是说,如果通用键盘700在第一应用500中有效且通用键盘700被关闭时,模型更新器200可推断第一应用500的动作被关闭或者已经发生最小化。类似地,如果通用键盘700被打开且在第二应用510中有效,则模型更新器可推断第二应用510的动作被打开或者已经发生最大化。

预测器300可被配置为使得预测动作在设备上自动地执行。

备选地,预测器300可被配置为向用户呈现一个或多个预测动作(例如,通过特定的用户接口元件,显示为第一应用500的一部分或者与第一应用500联合)。这可以连续地显示预测器300最可能基于模型100以及第一应用500内的文本501预测的一个或多个预测动作。然后,用户可以选择预测动作。

如图2a和图2b所示,预测器300可被配置为向用户呈现预测作为通用键盘700上的用户接口元件710、711、712。

附加地或备选地,如图2c所示,预测器可被配置为通过系统的主屏幕上的用户接口元件910、系统的通知或警告、覆盖用户接口元件(例如,脸书的“chathead”图标)、数字个人助理和/或第一应用500内的用户接口元件而向用户呈现预测。预测器可被配置为修改预先存在的用户接口元件,例如被配置为重新排序主屏幕或应用菜单上的应用列表。

预测器300可被配置为响应于特定的预测显示触发而向用户呈现预测。也就是说,与预测被连续地呈现给用户不同,可以仅在发生特定的触发事件时向用户呈现。

如图1中的箭头432所示,预测显示触发可以包括与第一应用500相关联的动作505。例如,如果检测到关闭或最小化第一应用500的动作,则这可以触发预测器300以呈现用于多个应用中的另一应用的一个或多个动作的预测。附加地或备选地,预测显示触发可以是来自系统或者来自多个应用中的另一应用的应用程序接口请求,或者可以包括一个应用内的内部事件,例如在应用中接收任选地来自特定接触的消息。

附加地或备选地,如图1中的虚线箭头431所示,预测显示触发可以包括在第一应用500内监控的文本501。该文本可以不同于被模型更新器200用于更新模型100的文本,当然也可以是相同文本。预测显示触发文本可以包括指示用户可能希望执行应用动作的文本,例如文本可以包括特定的标点符号或文本项。

此外,预测器300可被配置为考虑监控用于进行预测420的文本与监控预测显示触发431、432(例如,第一应用中接收消息、关闭或最小化第一应用的动作或者用户输入完全停止等)之间过去的时间。预测器300可被配置为使得预测仅在发生用于进行预测420的文本的预定时间段内出现预测显示触发431、432的情况下呈现。附加地或备选地,预测器300可被配置为根据在用于生成该动作的预测420的文本(即,通过模型100与该动作相关联的文本)的发生与预测显示触发431、432的发生之间过去的时间来改变预测动作的预测相关性。

当然,可以同时生成多于一个的预测。例如,预测器300可以使用多个不同的文本项和/或文本项420的不同序列来生成动作的相应预测。在预测器300附加地被配置为考虑在用于生成预测420的文本的发生与预测显示触发431、432的发生之间过去的时间的情况下,预测器可根据预测显示触发431、432与特定应用动作相关(通过模型)的特定文本的发生之间过去的时间来调整相应预测动作的相对可能性。

预测器300可被配置为仅显示最可能相关的预测动作。

备选地,预测器300可被配置为显示多于一个的预测动作,但是更突出最可能的动作。例如,在列表中显示预测动作的情况下,可根据预测动作的可能性来对列表进行排序。附加地或备选地,预测器300可被配置为通过图形用户接口元件的位置或尺寸来突出具有更大可能性的预测动作,通过该图形用户接口元件用户可以选择所述预测动作。

此外,当预测器300被配置为向用户呈现一个或多个预测动作用于选择时,模型更新器200可被配置为基于用户是否选择特定的预测动作来更新模型中的相关性。例如,在通过预测器300基于用于生成预测420的特定文本生成预测动作且被呈现给用户的情况下,如果用户随后选择该预测动作,则模型更新器200可更新模型100以加强特定文本与特定动作之间的关联性。如果用户忽略预测动作并且继续执行不同的应用动作(通过选择备选的呈现动作或者没有被预测的动作,如上所述被监控),则模型更新器200可更新模型100以弱化特定文本与已被预测的动作之间的关联性,和/或通过加强特定文本与用户执行的应用动作之间的关联性来更新模型100。当然,如果用户执行没有被预测的动作,则模型更新器可如上所述更新模型以创建动作与第一应用500内的文本501之间的关联性。

模型100可被配置为使得上下文数据600也与可能被预测的动作相关联。如箭头440所示,模型更新器200可被配置为基于上下文数据440以及用于更新模型100的文本来更新模型100。如箭头441所示,预测器300可随后不仅基于用于生成预测420的文本而且还基于上下文数据来生成预测。

在这种情况下,术语“上下文数据”表示可由设备、系统或应用提供的数据。

上下文数据可以是活跃应用数据;即,当前活跃或者已经在设备上活跃的应用。模型100可以将特定动作与特定文本相关联,其中特定应用是活跃的或者已经在设备上活跃。预测器300随后可以不仅基于文本420而且还考虑当前活跃或者最近已经活跃的应用来生成预测。

通过又一示例,上下文数据可以是从设备的操作系统得到的时间或位置数据(例如,gps位置数据)。模型100可以将特定动作与特定时间或位置处的特定文本相关联。然后,预测器300可以不仅基于文本420而且还考虑生成预测时设备的当前时间或当前位置或者监控文本420时的设备的当前时间或当前位置来生成预测。

如上所述,在经受用户设备上的动态训练之前,模型100可经受预初始化(静态)训练阶段。也就是说,模型100可以安装在已经具有特定文本或特定项与特定应用动作之间的关联性的设备上。这可以通过许多用户来累积并且用于在远程服务器上预先训练模型。

模型100可以采用多种语言模型中的任何模式的形式。

例如,在一个实施例中,模型100可以是朴素贝叶斯分类器。

朴素贝叶斯分类器是一类基于用于对数据进行分类的贝叶斯理论的概率分类器。关于特定类别、特征的条件被假设是独立的。例如,如果一个水果是红色、圆形且直径大约为6cm,则该水果可被认为是苹果。朴素贝叶斯分类器考虑这些特征中的每一个来独立地分配给该水果将分类为苹果的概率,而不管颜色、形状和直径特征之间的任何可能相关性。

通过本发明相关的示例,模型100可以是朴素贝叶斯分类器,其被模型更新器200训练以将应用动作与特定字相关联或者将应用动作映射至特定字。

模型100可以由使用分数与应用动作相关联或者映射到应用动作的文本项或字组成。图4示出了使用字“where”、“play”、“when”以及打开谷歌地图、谷歌日历和youtube的应用动作的训练处理的简单示例(即,更新模型100)。分数表示映射的相关性并且被预测器300用于进行预测。在动态训练期间,模型更新器200可以基于当特定文本项被监控时的应用动作(例如,打开特定应用)的发生来更新分数。

如上所述,静态数据集可用于初始地训练模型,由此当其被首先使用时进行相关预测(即,在其被设备上的模型更新器200更新之前)。图4a示出了用于初始化模型的初始训练数据。

在该示例中,通过键入字“哪里”并且随后打开谷歌地图,用户第一次使用该应用。该文本和打开谷歌地图的应用动作被监控,并且模型更新器200更新模型100以加强关联性,如图4a所示,计数增加并且分数被重新计算。增加的分数增加了当预测基于包括字“哪里”的文本时,谷歌地图被预测器300预测到的概率。

图4c示出了许多使用之后的计数和分数。在该示例中,当键入“何时”时,用户具有打开谷歌日历的历史,以及当键入字“玩耍”时具有打开youtube的历史。

如上所述。模型100可以进一步被配置为除了特定文本项之外将上下文数据与特定应用动作相关联。这可以通过在字和应用之间创建附加配对来实施(有效地向图4a和图4c所示的表格中添加包含字和应用的行)。如该示例,该上下文数据可以是由设备的操作系统提供的时间。使用分别由图5a和图5b示出的两个实施方式来描述使用该示例的朴素贝叶斯分类器的动态训练的一个示例。

在该示例中,当在15:00之前接收消息时,打开地铁应用的动作被频繁监控到,而在19:00之后,打开michelin(米其林)应用的动作被频繁监控到。模型更新器200利用该时间数据以及文本数据来更新模型100。

在图5a所示示例中,在模型100中独立地记录时间数据与应用动作之间的关联性以及文本项与应用动作之间的关联性。“应用计数”表格记录打开每个应用的总次数。“应用字计数”记录在特定项(在这种情况下为项“进餐”)近来已经被监控之后打开每个应用的次数。“应用时间计数”表格记录在特定时间(在这种情况下为15:00之前且19:00之后的时间段)(其被假设与近来被监控的文本无关)打开被监控的每个应用的动作的次数。

为了生成预测,预测器300在生成预测时将这些数据组合来生成预测。基于字“进餐”和时间段的总(非标准化)概率在“非标准化概率”表格中示出。计算基于三个分量的乘积:给定应用的基础概率p(app),其是特定应用(app)的计数除以被记录的应用动作的总数;字贡献p(word|app),其是给出特定字(word)的特定应用的计数除以该应用发生的总数;以及时间贡献p(time|app),其是给出特定时间周期(time)的特定应用的计数除以该应用的发生总数。通过以下式子给出用于给出特定时间和特定字的特定应用动作的非标准化概率:

p(app)*p(word|app)*p(time|app)。

例如,将基于字“进餐”(meal)和19:00之后的时间预测的“michelin”应用将通过以下给出:

p(“michelin”)*p(“meal”|“michelin”)*p(:>19:00|“michelin”)=(10/30)*(5/10)*(4/10)=0.067

备选地,如图5b所示,模型可被配置为使得应用动作与组合文本和时间数据相关联。在这种情况下,通过以下给出非标准化概率:

p(app)*p(word+time|app)

例如,将基于字“meal”和19:00之后的时间预测的“michelin”应用将通过以下式子给出:

p(“michelin”)*p(“meal”+>19:00|“michelin”)=(10/30)*(4/10)=0.067

通过又一示例,在另一实施例中,模型100可以是神经网络。通过再一示例,模型100可以是由多个节点层组成的深度神经网络。

在训练期间,通过创建相关矢量将应用映射到文本。深度神经网络要求数值矢量作为输入。因此,在可以进行训练之前,文本必须首先被翻译为矢量,处理已知为字嵌入。

这可以使用根据数据库模型生成的字嵌入来实现。这种模型接收文本语料库并将每个字映射到多维数值矢量。类似字(同义字)通过将它们映射到类似矢量来成组到一起,即类似字在矢量空间中紧挨在一起。

这些矢量被用于模型的静态和动态训练,以创建同义字与单个应用之间的相关矢量。这能够使模型精确地预测首次使用字的应用。例如,在键入或接收字“位置”之后,当用户打开地图应用时,模型可以学习将地图应用与字“位置”相关联。由于“位置”和“地方”具有类似的字矢量,所以当用户首次键入“地方”时,会预测出地图应用。

在图6中示出且在下面描述示出可被预测器300用于生成应用动作的预测的示例性神经网络的流程图。

在步骤(1)中,对应于屏幕文本的字矢量被加权和相加。通过训练数据经过网络的迭代流动来确定权重值(w)。根据上述的呈现触发机制,上标“t”表示:当由预测器300进行预测时,使用模型,权重值可以取决于显示或输入字的发生与预测呈现触发发生的时间之间过去的时间。

在步骤(2)中,相对于可能应用映射相加的输出。映射可以通过与加权矩阵的乘法来实施,其中加权还被动态地学习。

在步骤(3)中,然后可以优先于流行或喜欢的应用。

在步骤(4)中,可应用softmax回归函数以生成用于每个可能应用的概率列表。

在步骤(5)中,与一个或多个应用相关联的动作的一个或多个预测以及最高概率通过预测器300呈现给用户。

在步骤(6)和(7)中,模型更新器200可以更新用户从这些建议的应用动作中选择不同的应用动作的关联性。例如,如果用户打开不同的应用,则反向传播算法可以使用负对数似然函数计算与预测应用和被打开应用的误差。误差被反馈回神经网络以调整权重和应用偏差。如果用户打开预测应用,则反向传播算法加强权重和应用偏差的值。

在另一实施例中,模型可以是n元语言模型,其将字或者字的序列与应用动作相关联。应用动作可以与n元序列相关联,使得它们可以响应于用户输入的特定字或字的特定序列而被预测,或者以其他方式在第一应用内被监控。

在模型更新器200可利用文本更新模型100之前,其在第一应用内被监控。现在将参照图3进行描述。

在步骤(1)中,第一应用显示文本(包括字母、数字、空格、标点符号、符号、变音符号和绘文字),其由用户键入、被第一应用接收或者以其他方式在第一应用内显示。

在步骤(2)中,通过监控机制来监控文本。这可以采用操作系统的屏幕读取应用程序接口(api)、对第一应用的api请求、第一应用或操作系统的插件或扩展的形式,或者可以是通过通用键盘监控的用户输入文本。

在步骤(3)中,经由监控机制从第一应用检索的文本串被划分为字符、字片段、字、短语或者其他标记来用于进一步的处理。在该阶段,可以去除标点符号和数字。

在步骤(4)中,标记后的字被映射到已知词汇,并且去除不重要的字。这些可以是诸如“和”、“该”或“例如”的停用词。

在步骤(5)中,剩余的标记字都被转换为数值矢量,其可以在步骤(6)中被模型更新器用于更新模型或者被预测器用于偏置预测。

参照图7公开了本发明的方法。

在步骤1001中,在多个应用的第一应用内监控文本。

在步骤1002中,与多个应用的第二应用相关联的动作被监控。

在步骤1003中,模型被更新,以将第一应用内的文本的至少一部分与第二应用相关的动作相关联,其中模型被配置为将文本与一个或多个动作相关联,这一个或多个动作与多个应用中的至少一个相关联。

在步骤1004中,基于第一应用内的文本的至少一部分,使用模型生成多个应用中的至少一个应用的至少一个动作的预测。

上述系统和方法的优势将进一步通过系统和方法的示例性使用的以下描述来明白。

如图2a所示,在设备800上消息应用是活跃的。本发明的系统的实施方式可在设备800上操作。在消息应用内显示的文本(包括在应用中显示的消息线程中的消息以及由用户输入到应用中的文本)被监控机制(未示出)监控,监控机制例如为由操作系统提供的屏幕读取器api。监控机制可被模型更新器用于监控与应用动作相关联的文本和/或被预测器用于监控活跃应用内的文本,以生成应用动作的预测。

该被监控的本文包括与模型100中的应用动作相关联的两个特定项。消息810“howaboutagameofsquashlater?(去玩壁球怎么样?)”包括项“squash(壁球)”,其在模型100中与打开健身设施预定应用的动作相关联。消息812“ok,howaboutdinnerinstead?(好吧,那去吃晚餐怎么样?)”包括项“dinner(晚餐)”,其在模型100中与打开饭店预定应用的动作以及打开网络浏览器且打开网络浏览器内的饭店查看网站的视图的动作相关联。

预测器可被配置为连续地向用户呈现生成的预测,也就是说,通用键盘700可包括图形用户接口区域,其连续地显示由预测器300生成的预测。然而,在这种情况下,预测器响应于预测呈现触发来呈现预测。在这种情况下,呈现触发是被监控文本中的特定文本项。在这种情况下,在用户输入区域816中监控字“meet(见面)”。响应于该触发,预测器300基于模型100和在消息应用中监控的文本来生成上述三个动作的预测,并且将动作(例如,打开健身预定应用的动作、打开饭店预定应用的动作或者打卡网络浏览器应用、然后打开饭店查看网页的视图的动作)呈现给用户,作为通用键盘700的可选择图形用户接口元件710、811、712。

预测器300以上述方式预测每一个被预测应用动作的相关性。由于模型在字“dinner(晚餐)”与打开饭店预定应用的动作之间具有更强的关联性(与饭店查看网站相比),该动作被预测为更加相关。预测器300还将其预测基于在与应用动作相关联的文本项的发生与预测呈现触发的发生之间过去的时间量。在这种情况下,由于在项“dinner”和触发的发生之间过去较少时间,所以与项“squash”相比,预测器300预测与该项相关联的动作将具有更大相关性。如图2a所示,该更大预测相关性的结果可以是:与该预测相关联的图形用户接口元件711大于图形用户接口元件710、712。备选地或者附加地,在一个实施例中,预测动作可以根据相关性来排序,例如最相关的动作可以在最左边或者是中心的图形用户接口元件。

随后,用户可以选择预测动作中的一个,并且可以通过该图形用户接口元件的选择来监控应用动作(即,打开饭店预定应用)的监控。如上所述,模型更新器200可以随后更新模型,以加强动作与预测所基于的特定项之间的关联性。

备选地,如图2b所示,用户可以不选择任何一个预测应用动作,而是打开地图应用。如上所述,该应用动作可以通过通用键盘700来监控,通用键盘700被激活并且与地图应用同时被显示。由此,通用键盘700能够推断用户选择了打开地图应用的动作,并且模型更新器200由此可以更新模型100,以将消息应用内监控的文本与打开地图应用的动作相关联。

附加地或备选地,为了呈现预测作为通用键盘700的一部分,可以在设备800的主屏幕900上的图形用户接口元件910上呈现预测,如图2c所示。在这种情况下,关闭消息应用的应用动作可触发预测的呈现。

本发明还提供了计算机程序或者计算机程序产品,其包括其上存储有用于使一个或多个处理器执行根据本发明的方法的计算机程序手段的计算机可读介质。

计算机程序产品可以是数据载体,其上存储有用于使数据载体外的处理器(即,计算机系统的一个或多个处理器)执行根据本发明的方法的计算机程序手段。计算机程序可用于例如从数据载体或者从提供者在互联网或其他可用网络上下载,例如下载为移动设备(诸如移动手机)上的app,或者下载到计算机、移动设备或者包括一个或多个处理器的计算机上,用于在下载后执行计算机程序手段。

本发明的系统可以设置在单个电子设备(例如,移动电话、平板电脑等)中。备选地,其可以设置为分布式系统,其中模型、模型更新器、预测器、一个或多个应用中的一个或多个被设置在云中或者远程服务器上,而模型、模型更新器、预测器、一个或多个应用以及任选的键盘中的一个或多个被设置在用户设备上。

当然,应理解,上面仅通过示例描述了本发明的实施例,并且可以在不背离本发明的范围的情况下进行细节的修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1