在计算领域内,存在可基于各种信号来推断关于个体的信息并使用这样的信息来向该个体提供增强的服务以及个性化的内容的许多系统。例如,电子商务网站可基于从个体的先前购买中得到的推断来向该个体推荐感兴趣的产品。作为另一示例,搜索引擎可基于针对用户作出的推断来为用户个性化搜索结果和相关的内容。传统上,搜索引擎从用户查询、点击、查看中并偶尔通过数据挖掘社交网络推导出这样的推断。
概述
提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
提供了使得用户能够提供用于个性化给这些用户的推荐的显式声明的方法、系统和计算机程序产品。这样的显式声明提供关于用户是谁以及用户实际上想要看什么的信息。用户可以按以下方式说出或以其他方式提供显式声明:指示该显式声明将被用来影响后续推荐。可在用户提供了显式声明后立即生成推荐并将该推荐提供给用户,或者可以在稍后提供该推荐。该推荐可基于时间、用户的位置、与用户在一起的一个或多个人、用户的活动、来自用户的对数据的请求、来自用户的对推荐的请求和/或另一触发被触发以被提供给用户。
在一个示例性方法实现中,显式声明是从设备的用户处接收的。该显式声明被用户配置成影响后续推荐。显式声明中的单词被处理以生成记录。推荐规则是基于所生成的记录来生成的。推荐规则被执行以生成给用户的推荐。生成的推荐被提供给用户。
例如,在一个方面,可对显式声明中的单词系列执行自然语言处理以提取一个或多个关键特征。可生成包括(诸)所提取的关键特征的记录。可使用(诸)所提取的关键特征来生成与显式声明相对应的推荐规则。
在一方面,可确定是否存在规则和环境触发之间的匹配。环境触发的示例包括当前时间、将来时间、用户的当前位置、用户的将来位置、与用户在一起的人、用户的活动、应用或服务、来自用户的对数据的请求、来自用户的对推荐的请求等等。当存在匹配时,执行匹配推荐规则以生成给用户的推荐。
在另一实现中,提供在一个或多个计算设备中实现的推荐系统。该推荐系统包括语音输入接口、话音处理模块、规则生成器以及推荐引擎。语音输入接口被配置成接收来自计算设备的用户的显式声明。显式声明包括单词系列,并被配置成影响后续推荐。话音处理模块被配置成处理显式声明中的单词系列以生成记录。规则生成器被配置成基于所生成的记录来生成推荐规则。推荐引擎被配置成执行推荐规则以生成给用户的推荐。
本文中还公开了根据本文中描述的各实施例的其中存储有计算机程序指令的计算机可读存储介质,该计算机程序指令使得用户能够提供显式声明,并使得至少部分地基于该显式声明为用户生成推荐。
下面将参考各个附图,详细描述本发明的进一步特点和优点,以及本发明的各实施例的结构和操作。值得注意的是,本发明不仅限于此处所描述的特定实施例。本文呈现这些实施例仅用于说明性的用途。基于本文所包含的描述,其它实施例对于相关邻域的技术人员将是显而易见的。
附图说明
结合到本说明书并构成本说明书的一部分的附图示出了本发明的各个实施例,且与描述一起,进一步用于说明本发明的原理,并允许相关邻域技术人员实施和使用这些实施例。
图1示出根据一示例实施例的包括启用显式信号的推荐系统的用户设备在其中与一个或多个服务器和/或其他用户设备通信以交换信息的系统的框图。
图2示出根据一示例实施例的提供用于基于显式声明生成给用户的推荐的过程的流程图。
图3示出根据一实施例的提供图2的流程图的示例实现的流程图。
图4示出根据一示例实施例的可任选地与服务器通信以基于显式声明生成给用户的推荐的用户设备的框图。
图5示出根据一示例实施例的提供用于处理接收到的显式声明以生成记录的过程的流程图。
图6示出根据一示例实施例的用于处理接收到的显式声明以生成记录和规则的系统的框图。
图7示出根据一示例实施例的提供用于执行推荐规则以生成给用户的推荐的过程的流程图。
图8示出根据一示例实施例的接收推荐规则以生成给用户的推荐的推荐引擎的框图。
图9示出可用于实现各实施例的示例性用户设备的框图。
图10示出可用来实现各个实施例的示例计算设备的框图。
当结合其中相同的附图标记标识对应的元素的附图时,本发明的特征和优点将从以下阐述的详细描述中变得更加显而易见。在附图中,相同的参考标号一般指相同的、功能上相似的和/或结构上相似的元素。其中元素第一次出现的附图由对应的参考标号中最左侧的数字指示。
详细描述
I.引言
本说明书和附图公开了包括本发明的各特征的一个或多个实施例。本发明的范围不限于所公开的实施例。所公开的实施例仅仅例示本发明,并且所公开的实施例的经修改的版本也被本发明所构思。本发明的各实施例由附加的权利要求所限定。
说明书中对“一个实施例”、“一实施例”、“一示例实施例”等等的引用表示所描述的实施例可包括特定特征、结构或特性,但是,每一个实施例可不必包括该特定特征、结构,或特征。此外,这些短语不一定指相同的实施例。此外,当关于某一实施例描述特定特征、结构或特性时,不管是否被明确描述,关于其他实施例来实现该特征、结构或特性被认为是在本邻域技术人员的知识范围内。
以下描述多个示例性实施例。应当注意,在此提供的任何章节/子章节标题不旨在限制。本文档中描述了各实施例,并且任何类型的实施例可被包括在任何章节/子章节下。此外,在任何章节/子章节中公开的各实施例可与在相同章节/子章节和/或不同章节/子章节中描述的任何其它实施例以任何方式组合。
本文中描述的各实施例使得能够基于显式声明来为用户生成个性化推荐。用户可说出或以其他方式(例如,通过文本输入等)将显式声明提供给计算设备(也被称为“用户设备”)。例如,用户设备可包括数字个人助理或被配置成处理如本文中所公开的显式声明的其他实体。显式声明被配置成影响要向提供了该显式声明的用户作出的后续推荐。这样的显式声明由用户在其正以常规方式使用其设备时“实时地”作出。这样的对显式声明的实时提供不同于其中一个或多个问题和/或选择可被提供给用户回答的训练例程。相反,显式声明由用户提供,而无需用户设备提示。
显式声明可提供对某事物的评级或评论(例如,“记住我真的不喜欢Baja Beach House(巴甲海滩屋)的食物”)、可标识用户感兴趣(或不感兴趣)的事物、和/或可提供用户可能想要用来影响并由此个性化后续推荐的其他信息。
在一实施例中,在作出显式声明时,用户可诸如通过使显式声明以数字个人助理标识符/名称(例如,“助理,记住…”)开始来使显式声明定址到用户设备。通过这种方式,用户设备可意识到显式声明正被提供。然而,这并不是在所有实施例中都是必需。在另一实施例中,用户设备可被配置成接收来自用户的显式声明,即使该显式声明不被定址到数字个人助理。例如,用户可向朋友作出陈述,该陈述被用户设备偶然听到,并且用户设备可将该陈述作为显式声明来识别并处理。在这样的实施例中,用户可能需要“选择加入”,使得用户设备被允许按这种方式监听并处理显式声明。
例如,用户可向搜索引擎提供具有指示推荐系统应当记住它以用于后续应用的单词的显式声明,诸如通过陈述“记住Sophie说我应当尝试Thai Tom(汤姆泰式)餐厅”(即,告诉推荐系统记住从另一人接收到的关于某事物的推荐)、“记住我愿意在某时考察伦敦博物馆”(例如,告诉推荐系统基于用户自己的观察或想法来向用户提醒某事物)等等。
因此,一个或多个显式声明可从用户处被接收,并且可被转换成规则或可被处理以生成给用户的推荐的其他形式。例如,可出现一个或多个环境触发,诸如时间、用户的位置、与用户在一起的一个或多个人的出现和/或用户的活动。具体环境触发的出现可使得相应的推荐被生成并被提供给用户。
推荐可在任何合适的环境中基于显式声明被提供给用户。例如,图1示出根据一示例实施例的通信系统100的框图。在系统100中,用户可与第一用户设备102交互以提供显式声明并接收基于此的推荐。如图1所示,系统100包括第一用户设备102、后端服务器104、第一服务器106a、第二服务器106b和第二用户设备108。此外,第一用户设备102包括用户界面122和设备上个人电子助理112,设备上个人电子助理112包括启用显式信号的推荐系统114。此外,后端服务器104包括基于网络的助理服务120,第一服务器106a包括第三方服务116,且第二服务器106b包括第三方服务118。系统100的这些特征被描述如下。
第一用户设备102和第二用户设备108可各自为任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,设备、个人数字助理(PDA)、膝上型计算机、笔记本计算机、诸如Apple iPadTM的平板计算机、上网本等)、移动电话(例如,蜂窝电话、诸如Microsoft电话、Apple iPhone、实现AndroidTM操作系统的电话、设备、设备等的智能电话)、可佩戴计算设备(例如,智能手表、包括诸如GlassTM等智能眼镜的头戴式设备)、或其它类型的移动设备(例如,汽车)、或诸如台式计算机或PC(个人计算机)之类的静止计算设备。此外,第一用户设备102和第二用户设备108可各自为便携式媒体播放器、静止或手持式游戏控制台、个人导航助理、相机或其他类型的静止或移动设备。虽然在图1中示出了第一和第二用户设备102和108,但在其他实施例中,系统100中可存在其他数目的用户设备,包括数十个、数百个、数千个和数百万个用户设备。
后端服务器104、第一服务器106a和第二服务器106b可各自由能够提供信息的一个或多个计算设备形成。在各实施例中,系统100中可存在比图1中示出的更少数目或更多数目的服务器。
用户设备102和108以及服务器104、106a和106b中的每一者都可包括允许通过网络110的通信的网络接口。这样的网络接口可包括任何类型的有线或无线网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE 802.11无线LAN(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、BluetoothTM接口、近场通信(NFC)接口等等。网络接口的进一步示例在本文中的其他地方描述。网络110的示例包括局域网(LAN)、广域网(WAN)、个域网(PAN)、和/或诸如因特网的通信网络的组合。
用户界面122允许用户提交问题、命令或其他口头和/或非口头输入,并将对这样的输入的响应递送给用户。在一个实施例中,该输入可包括由用户设备102的一个或多个话筒捕捉的用户话音,但是这个示例并不旨在作为限制并且用户输入也可按其他方式(例如,文本地等)被提供。由电子个人助理112生成的响应可以以文本、图像或通过用户界面122显示在用户设备102的显示器上(例如,在图形用户界面内)的其他视觉内容的形式变得对用户可见。这些响应还可包括计算机生成的话音或经由用户设备102的一个或多个扬声器来回放的其他音频内容。此外,这些响应(视觉内容和/或音频内容)还可经由显示器、一个或多个扬声器和/或与用户设备102物理地分开但(例如,通过WiFi或WLAN接口、USB接口、蜂窝网络接口、蓝牙TM接口、近场通信(NFC)接口、MirrorLinkTM接口、MiracastTM接口等)与用户设备102通信地耦合的其他用户界面输出设备被提供给用户。
电子个人助理112是用户可通过用户设备102的用户界面122与其进行交互的应用(例如,在用户设备102的(诸)处理器中执行的一个或多个计算机程序)。电子个人助理112被配置成通过处理用户提供的请求(诸如执行任务和/或服务的请求)来向用户提供一般帮助。例如,在各实施例中,电子个人助理112可被配置成回答各问题、作出推荐和/或执行动作。
电子个人助理112可被完全包含在用户设备102中,或者可进一步包括用于处理请求和/或将各请求委托给一组网络服务的基于网络/云的后端。这样的后端服务的示例被示为作为基于网络的助理服务120包括在后端服务器104中。基于网络的助理服务120可以是包括设备上电子个人助理112和基于网络的助理服务120两者的电子个人助理服务的后端部分。对于向用户提供帮助,基于网络的助理服务120可使得进一步的处理和/或推理能够被执行。此外,基于网络的助理服务120可与一个或多个服务处的服务(诸如第一服务器106a处的第三方服务116和第二服务器106b处的第三方服务118)交互以检索信息、委托信息处理等,这可用于帮助电子个人助理112向用户提供帮助。替换地,电子个人助理112可直接访问诸如第三方服务116和118之类的服务(如图1中的虚线箭头所指示的)。
因此,电子个人助理112(具有或不具有基于网络的助理服务120)可以是电子个人助理、搜索引擎、或被配置成提供一般用户帮助的其他系统。可适用于电子个人助理112的商业上可用的搜索引擎的示例包括(http://www.bing.com处的)BingTM以及(http://www.google.com处的)GoogleTM。可适用于电子个人助理112的商业上可用的电子个人助理的示例包括由加利福尼亚州库珀蒂诺市的苹果公司开发的以及加利福尼亚州的芒廷维尤市开发的Google NowTM。
在各实施例中,电子个人助理112可基于用户输入以及基于诸如位置知晓和访问来自包括在线源在内的各种源的信息(诸如,天气或交通状况、新闻、股票价格、用户时间表、零售价格等等)的能力之类的特征来处理这些用户请求。可由电子个人助理112代表用户执行的任务的示例可包括但不限于,向用户指定的人打电话、启动用户指定的应用、向用户指定的接收者发送用户指定的电子邮件或文本消息、播放用户指定的音乐、在用户日历上安排会议或其他事件、获得到用户指定的位置的路线、获得与用户指定的体育事件相关联的比分、将用户指定的内容张贴到社交媒体网站或微博服务、记录用户指定的提醒或笔记、获得天气报告、获得当前时间、将闹钟设置在用户指定的时间、获得用户指定的公司的股价、寻找附近的商业设施、执行因特网搜索等。电子个人助理112可使用各种人工智能技术中的任意一种来通过与用户持续的交互随着时间来改进其性能。在一些实施例中,电子个人助理112还可被称为搜索引擎、数字个人助理、智能个人助理、智能软件助理、虚拟个人助理等。
如图1所示,电子个人助理112包括启用显式信号的推荐系统114。启用显式信号的推荐系统114使得电子个人助理112能够接收来自用户的显式声明,并生成部分地基于该显式声明的给用户的推荐。
注意,在一实施例中,启用显式声明的推荐系统114的一部分可被包括在后端服务器104处的基于网络的助理服务120中。由此,基于网络的助理服务120可允许相对于显式声明执行进一步推理,以用于生成给用户的推荐。例如,基于网络的助理服务120可相对于用户设备102提供增加的处理/计算功率、可提供搜索引擎能力、可通过(例如,在第三方服务116和/或118中的一者或两者处)维护或访问用户的社交网络信息或其他简档信息和/或通过提供其他功能来提供对用户的增加的理解。
例如,服务器106a处的第三方服务116可任选地存在,并且可以是维护包括用户的社交网络简档在内的社交网络信息的社交网络。电子个人助理112和/或基于网络的助理服务120可通过网络110访问社交网络简档信息。除了显式声明外,社交网络信息也可被电子个人助理112和/或基于网络的助理服务120用来生成给用户的推荐。
任选地,也可存在服务器106a处的第三方服务118(以及其他第三方的任选服务),并且可生成和/或存储可与显式声明124一起被电子个人助理112和/或基于网络的助理服务120用来帮助生成给用户的推荐的信息。例如,第三方服务118可以是餐厅推荐服务,旅行推荐网站,产品推荐网站,或维护用户简档信息、作出推荐和/或存储或生成关于用户的相关信息的其他站点或服务。
在一实施例中,启用显式信号的推荐系统114可根据图2来操作。图2示出根据一示例实施例的提供用户设备中用于基于显式声明来生成给用户的推荐的过程的流程图200。以下参考图1描述流程图200。基于以下描述,其他结构及操作的实施例对于相关邻域的技术人员将是显而易见的。
流程图200开始于步骤202。在步骤202,接收来自用户设备的用户的显式声明。例如,参考图1,可使得用户能够通过与用户界面122进行交互来将显式声明124提供给启用显式信号的推荐系统114。用户可向用户界面122的话筒中说话以提供显式声明124,或者可通过文本或按另一方式提供显式声明124。显式声明124可作为单词系列或按另一方式来提供,并且由具有影响后续推荐的意图的用户提供。显式声明124由启用显式信号的推荐系统114通过用户界面122接收。
例如,在显式声明124的一个说明性示例中,用户可说出“助理,提醒我在某时考察Soho邻域”。通过该显式声明,用户指示其使电子个人助理112(其在本示例中被称用户为“助理”)提供关于Soho邻域的将来推荐的意图。定向到助理的单词“提醒我”、“记住”或类似的单词指示用户的使助理记录该显式声明以用于将来推荐的意图。
在步骤204,部分地基于显式声明来生成给用户的推荐。电子个人助理112的启用显式信号的推荐系统114(任选地与基于网络的助理服务120结合)被配置成至少基于显式声明124生成给用户的推荐。推荐可进一步基于推断出的关于用户的信息、关于用户的用户简档信息、和/或基于与用户有关的其他信息以及一个或多个环境触发来生成。如图1所示,用户界面122可向用户提供由启用显式信号的推荐系统114生成的推荐126。推荐126可以以话音或通过用户界面122中的一个或多个扬声器播放的其他音频的形式来提供、可被显示为用户界面122中的文本、或者可由用户界面122按另一方式提供给用户。
继续以上说明性示例,推荐126可向用户播放为“你好Sophie,你现在在你想要考察的Soho邻域附近—你应当尝试La Esquina的墨西哥食物”。在另一示例中,推荐126可作为显示列表被提供给用户,显示列表为诸如:
你好Sophie!
你想要考察附近的Soho。这里有一些Soho餐厅供尝试:
□La Esquina
□Dos Caminos Soho
在这样的示例中,用户可被允许选择一列出的推荐餐厅以显示该餐厅的位置(以及任选地到该餐厅的路线)。
在这些示例推荐中,助理至少基于由用户向助理提供的显式声明向用户(在本示例中为“Sophie”)指示尝试在Soho邻域的餐厅的推荐。该推荐可已基于诸如用户的位置(例如,在Soho邻域附近)、时间(例如,在就餐时间附近)等一个或多个环境触发被触发。在一个示例中,一旦确定用户在Soho邻域附近,就可触发对Soho邻域中要推荐的餐厅的搜索引擎查询。因此,在一实施例中,推荐的生成可包括查询的发出以生成要被包括在推荐中的一个或多个项。导致一个或多个餐厅被推荐的搜索查询可能已具有任何合适的形式,诸如为对Soho景点的多单词查询(例如“Soho旅游景点”)、对Soho餐厅的查询(“例如“Soho餐厅”)、基于Sophie的简档对Sophie最喜爱的餐厅类型的查询(“Soho墨西哥餐厅”)等。
注意,在图1的实施例中,推荐126由向其提供了显式声明124的同一用户设备(用户设备102)提供给用户。注意,在另一实施例中,推荐126可由与向其提供了显式声明124的设备不同的设备提供给用户。
因此,在各实施例中,用户可被允许提供显式声明,并且后续推荐可至少部分地基于该显式声明为用户生成。以下章节中提供了这些和其他实施例的进一步细节。例如,本章节后面的章节II描述了用于提供显式声明并生成推荐的示例性方法和系统。章节III描述了可被用于实现本文中描述的各实施例的示例性移动和台式计算设备。章节IV提供一些总结性评述。
II.用于提供显式声明并生成推荐的示例实施例
如上所述,启用显式信号的推荐系统114可按各种方式被配置成使得显式声明能够被提供并生成推荐。例如,图3示出根据一示例实施例的提供用于基于显式声明来生成推荐的过程的流程图300。在一实施例中,启用显式信号的推荐系统114可根据流程图300来操作。以下参考图4描述流程图300。图4示出根据一示例实施例的被配置成基于显式声明来生成给用户的推荐的图1的用户设备102和服务器104的框图。如图4所示,用户设备102包括设备上助理服务112,该设备上助理服务112包括启用显式信号的推荐系统(RS)432。启用显式信号的RS 432是启用显式信号的RS 114的示例。启用显式信号的RS 432包括话音处理模块404、规则生成器406、推荐引擎408和UI(用户界面)430。服务器104包括基于网络的助理服务120,该基于网络的助理服务120包括启用显式信号的RS 434。启用显式信号的RS 434包括规则生成器412和推荐引擎414。
服务器401处的启用显式信号的RS 434以及用户设备102中的启用显式信号的RS 432可形成经组合的启用显式信号的RS,或者可彼此分开。启用显式信号的RS 434和启用显式信号的RS 432不需要在所有实施例中两者都存在。
注意,在一个实施例中,流程图300可完全在用户设备102中被执行。在另一实施例中,用户设备102和服务器104可各自执行流程图300的各部分。基于以下描述,其他结构及操作的实施例对于相关邻域的技术人员将是显而易见的。
图3的流程图300以步骤302开始。在步骤302,接收来自用户设备的用户的显式声明,该显式声明被配置成影响后续推荐。参考图4,可允许用户通过与通过UI 430提供的语音输入接口402进行交互来将显式声明416提供给启用显式信号的RS 432。UI 430是图1的用户界面122的示例,并且在一实施例中,语音输入接口402包括被配置成接收话音形式的显式声明416的话筒和电路。在另一实施例中,UI 430可包括用于接收另一形式的显式声明416的非语音输入接口436,非语音输入接口436可包括文本输入接口、按钮(例如,物理和/或虚拟按钮)和/或其他接口。显式声明416可作为单词系列或以其他形式来提供,并且由具有影响后续推荐的意图的用户提供。显式声明416可由话音处理模块404作为单词系列418从UI 430的语音输入接口402处接收。单词系列418可以以记录的话音的形式或提供所说的单词的其他形式来提供。替换地,显式声明416可由话音处理模块104从UI 430的非语音接口436处作为非口头声明指示438来接收。非口头声明指示438可取决于非语音接口436如何接收来自用户的显式声明416而以文本、按钮选择所指示的数据的形式或其他形式被提供。
在步骤304,处理显式声明以生成记录。例如,在一实施例中,话音处理模块404被配置成处理单词系列418以生成记录420。记录420表示显式声明416,并且可任选地被存储在存储(图4中未示出)中。例如,记录420可包括以下中的一者或多者:单词系列418中的内容、显式声明416被接收的时间、显式声明416被接收的位置、以及由话音处理模块404通过处理单词系列418生成的任何信息(例如,在单词系列中标识出的位置、在单词系列418中标识出的人、在单词系列418中标识出的时间、针对单词系列418标识出的上下文和/或在单词系列418中标识出的亲合性)。单词系列418可按任何方式来处理,包括使用话音识别(在提供的显式声明416是以话音形式来提供的情况下),通过解析单词系列418以执行关键特征提取,以及执行或应用自然语言处理、机器学习、人工智能和/或用于导出显式声明416的含义的其他过程。
例如,在一实施例中,步骤304可根据图5来执行。图5示出根据一示例实施例的用于处理接收到的显式声明以生成记录的流程图500。出于说明目的,参考图6来描述流程图500。图6与存储604相关联地示出根据一示例实施例的话音处理模块404和规则生成器602的框图。基于以下描述,其他结构及操作的实施例对于相关邻域的技术人员将是显而易见的。
流程图500开始于步骤502。在步骤502,可对显式声明中的单词系列执行自然语言处理以提取一个或多个关键特征。例如,如图6所示,话音处理模块 404可任选地包括数据转换器620。数据转换器620被配置成接收非口头声明指示438(在存在时)。如上所述,非口头声明指示438可指示以文本形式提供的显式声明,如通过按钮选择指示的数据或以另一形式指示的数据。数据转换器620可被配置成将非口头声明指示438转换成一个或多个单词(例如,类似于单词系列418),该一个或多个单词由数据转换器620作为经转换的非口头声明622输出。通过这种方式,以按钮按压等形式提供的显式声明可被转换成可由话音处理模块404处理以获得含义的单词。例如,在按钮标记为后随搜索结果字符串、由另一人提供的推荐等的“记住”(或类似地标记)的情况下,数据转换器620可生成经转换的非口头声明622以包括包含与搜索结果字符串、推荐文本等相组合的单词“记住”(或其他标记)的字符串。
注意,当非口头声明指示438指示以文本形式从用户处接收到的(例如,被键入到文本输入框的或以其他方式作为文本从用户处接收到的)显式声明时,数据转换器620可能不是必要的(并且非口头声明指示438可被提供给自然语言处理模块606进行处理,如以下描述的)。
可由用户提供并在非口头声明指示438中接收的非口头显式声明的示例包括用户点击在物理或虚拟按钮上的何处来提供显式声明的指示(例如,通过在实体上点击“喜欢”按钮、在诸如www.yelp.com处的Yelp!之类的餐厅评论网站上对某餐厅高度评级、将某事物指示为最喜欢的事物等等)。在这样的情况下,与点击或按钮按压相关联的元数据可被提供在非口头声明指示438中。在示例情况中,可向用户提供另一个人的推荐,并且用户可与UI 430交互以接受该推荐。例如,Sophie可与Anna共享推荐,并且Anna可在消息(例如,电子邮件、文本消息、即时消息、社交网络消息等)中接收来自Sophie的推荐。Anna可被UI 430允许仅说出单词“接受”或按压标记有“接受”的虚拟按钮来提供她希望她的助理(例如,设备上助理服务112)记住来自Sophie的推荐的其显式声明。在另一实施例中,当Sophie的推荐是代表Anna从Sophie处接收的时,Anna的助理可被允许静默地接受Sophie的推荐。例如,Anna的助理可在接收自Anna的消息中检测该推荐。Anna的助理的静默接受可基于Anna可能信任Sophie、Anna已(例如,在UI 430)主动指示她希望自动接受Sophie的推荐等先前结论而被允许。
此外,话音处理模块404可包括自然语言处理模块606,该自然语言处理模块606被配置成对单词系列418(和/或对经转换的非口头声明622)执行自然语言处理(NLP)。在一实施例中,自然语言处理可通过以下中的一者或多者从单词系列418和/或经转换的非口头声明622中提取关键特征:生成解析树、执行词义消歧、执行命名实体识别、执行自然语言理解等。诸如位置单词(或“令牌”)、与人相关的单词、与时间相关的单词、单词表达亲合性和/或与上下文相关的单词之类的关键特征可被从其提取。
例如,在一实施例中,NLP模块606可对单词系列418和/或经转换的非口头声明622执行解析以提取被分类在以下表1中列出的关键特征类型中的一个或多个类型中的一个或多个单词:
表1
在表1中,每一列涉及特定特征类型类别—位置、时间、人、上下文和亲合性。此外,每一特征类型类别可具有一个或多个子类别,其非穷尽性示例在表1的相应列中被示出。
由此,NLP模块606可将单词系列418中的一个或多个单词和/或经转换的非口头声明622分类在这些和/或其他特征类型类别中。该分类可被NLP模块606用来执行对单词系列418和/或经转换的非口头声明622的自然语言理解。然而,注意,表1中的类别是出于说明的目的来提供的,而并不旨在构成限制。NLP模块606可将各单词分类在任何类型的类别中,包括表1中提供的那些类别,和/或原本公知的和/或可对(诸)相关领域中的技术人员显而易见的任何其他类别。任何具体单词或单词系列可被NLP模块606分类成任何数目的类别,包括单个类别或多个类别。在各实施例中,推荐可基于被分类在任何数目的类别中的单词/数据被形成。
回过头参考图5,在步骤504,生成包括所提取的一个或多个关键特征的记录。例如,如图6所示,话音处理模块404生成与接收到的显式声明相对应的记录420。如图6所示,记录420可被存储在存储604中的用户记录日志610中作为新记录614n。指示对单词系列418和/或经转换的非口头声明622的自然语言理解的信息可与所提取的关键特征(包括以上参考记录420描述的信息(图4))一起被存储在新记录614a中。用户记录日志610是基于用户所提供的显式声明来生成的记录的日志。如图6所示,用户可使得记录614a-614n与接收自用户的显式声明的编号“n”相对应地存储在用户记录日志610中。如以下结合规则生成器602进一步描述的,可基于记录614a-614n中的每一者来生成要被用来生成给用户的推荐的一个或多个规则。
在流程图500的一个说明性示例中,名为Anna(用户)的第一人可能正在与她的朋友Sophie(第二人)交谈。Sophie可能向Anna提到了一令人惊奇的新餐厅(“Thai Tom”),她说Anna必须试一下。Anna可取出她的智能电话(例如,用户设备102),激活她的电子个人助理并说“助理,记住Sophie说我应当尝试Thai Tom”。电子个人助理可作出响应“知道了”,或者可提供接收到该显式声明的另一确认。
因此,话音处理模块404的NLP模块606可对该接收到的显式声明执行自然语言处理以解析关键特征,诸如“记住”(助理将该语句用作将来推荐的显式声明的意图的指示)、作为第二人的“Sophie”、作为指示Sophie向该用户提供了推荐的“我应当试一下”、以及作为要尝试的Sophie推荐的位置的“Thai Tom”。该信息可在记录(诸如记录614n)中以任何方式被指示。例如,记录614n可被存储成具有与关键特征类别名称和关键特征值相对应的属性和值并存储关于在本文中的其他地方提到的显式声明的任何附加信息的数据结构。
回过头参考图4,注意虽然话音处理模块404被示为位于用户设备102中,但在另一实施例中,对接收到的显式声明的一些或全部话音处理可改为在服务器104处被执行。
回过头参考图3中的流程图300,在步骤306,基于所生成的记录来生成推荐规则。例如,如图4所示,取决于具体实现,规则生成器406和推荐引擎408可被包括在启用显式信号的RS 432(用户设备102)中,且规则生成器412和推荐引擎414可被包括在启用显式信号的RS 434(服务器104)中。例如,如果用户设备102具有足够的处理能力并对合适的数据资源具有访问权,则规则生成器406和推荐引擎408可处理记录以基于显式声明的记录来生成规则和推荐。在另一实施例中,由于更大的处理能力可在服务器104处被获得,由于期望数据资源可在服务器104处被更容易地访问,和/或出于其他原因,可期望使用服务器104处的规则生成器412和推荐引擎414来基于显式声明的记录生成规则和/或推荐。在各实施例中,规则生成器406、推荐引擎408、规则生成器412和推荐引擎414的任何组合都可被用于生成规则和/或推荐,如本文中所描述的。
取决于具体实施例,规则生成器406和/或规则生成器412可接收记录420。规则生成器406和/或规则生成器412可被配置成基于记录420生成一个或多个推荐规则。每一推荐规则定义何时以及如何提供相应的推荐。推荐规则可具有任何期望格式。例如,规则生成器406和/或规则生成器412可使用诸如OR、XOR、AND、ELSE、NOT、IF-THEN等运算符来生成基于逻辑的规则,和/或可以用其他格式生成推荐规则。如图4所示,规则生成器406(用户设备102)可基于记录420生成推荐规则422,并且规则生成器412(服务器104)可基于记录420生成推荐规则426。
出于说明的目的,结合图6更详细地描述规则生成器406和规则生成器412。图6示出作为规则生成器406和规则生成器412的示例实施例的规则生成器602。规则生成器602被配置为基于记录420生成一个或多个推荐规则。如图6所示,在一实施例中,规则生成器602可包括逻辑语句生成器608。逻辑语句生成器608被配置成接收记录420并基于逻辑运算符生成一个或多个相应的规则(例如,逻辑表达式或语句),诸如IF-THEN(如果-则)规则等。出于说明的目的,在如下示例中示出了IF-THEN规则,但是在各实施例中,可使用任何格式的规则。每一IF-THEN规则都具有IF<第一逻辑表达式>THEN<第二逻辑表达式>的格式。第一逻辑表达式定义用于匹配该规则的条件,并且第二逻辑表达式定义当根据第一逻辑表达式该规则被匹配时,执行什么动作。
如图6所示,逻辑语句生成器608被配置成将生成的规则存储在存储604中。例如,逻辑语句生成器608将对应于记录412的新规则616m存储在存储604中。为用户生成的规则可被存储在对应于该用户的用户规则日志612中。如图6所示,用户规则日志612包括前m个规则616a-616m。前m个规则616a-616m可包括对应于记录614a-614n中的每一者的一个或多个规则。
参考以上Sophie向Anna提供为“Thai Tom”的推荐的示例,逻辑语句生成器608可生成以下推荐规则:
IF<用户请求餐厅>THEN<推荐餐厅“Thai Tom”>
在该示例中,如果Anna请她的数字个人助理向她推荐餐厅,则以上IF逻辑语句被匹配。因此,每一THEN逻辑语句都将向她提供对餐厅“Thai Tom”的推荐。
注意,任何复杂度的IF-THEN语句可由逻辑语句生成器608生成,使得第一逻辑语句可具有一个以上要被满足的条件,并且第二逻辑语句可提供一个以上推荐动作。例如,参考以上Sophie向Anna提供为“Thai Tom”的推荐的示例,Anna可能已在用户简档模型618中指示了仅向其推荐在其当前位置10英里以内的餐厅的偏好。因此,逻辑语句生成器608可生成以下推荐规则:
IF<用户请求餐厅AND餐厅“Thai Tom”在当前位置10英里以内>THEN<推荐餐厅“Thai Tom”>
在该示例中,如果Anna请其数字个人助理向其推荐餐厅,并且Anna位于餐厅“Thai Tom”10英里以内(如由用户设备102中诸如GPS模块等位置确定器确定),则为餐厅“Thai Tom”的推荐将被提供给她。否则,将不向Anna提供该推荐。
注意,所示的存储在存储604中的用户简档模型618包含与用户相关联的个人数据集合(包括她的餐厅距离偏好)。每一用户可具有相应的用户简档模型。用户简档模型618可指示描述用户的信息,诸如用户的名称和年龄、兴趣、技能和知识、偏好、厌恶等。用户简档模型618中包括的信息可由用户(例如,通过训练)主动提供,或者可通过跟踪用户查看网站、与页面交互、与其他用户交互等的行为隐式地确定。可允许用户选择和选择不为该用户维护用户简档模型618中的一些或全部。用户简档模型618可以是静态的或者可以是动态的。用户简档模型618可纳入用户的社交网络信息(例如,对朋友、家庭成员、喜欢的实体等的指示)。
用户简档模型618可用任何格式来存储和/或表示。在一实施例中,用户简档模型618可被表示为针对用户的图。图的节点可表示用户与其具有关系的实体(例如,人、场所、对象等),并且每一节点可具有指示与用户的关系的强度(例如,喜欢还是不喜欢)的权重。加权线可连接在各节点之间,其指示不同节点之间的关系的强度。替换地,用户简档模型618可用其他方式来表示。
存储604(以及用户简档模型618,在存在时)可位于用户设备102、后端服务器104或另一服务器(例如,服务器106a、服务器106b等)中,或者可分布在多个设备和/或服务器上。存储604可包括用于存储数据的任何类型的存储介质/设备中的一个或多个,包括磁盘(例如,在硬盘驱动器中)、光盘(例如,在光盘驱动器中)、磁带(例如,在磁带驱动器中)、诸如RAM设备、ROM设备等的存储器设备、和/或任何其他合适类型的存储介质/设备。
回过头参考图3中的流程图300,在步骤308,执行推荐规则以生成给用户的推荐。例如,如图4所示,推荐引擎408(用户设备102)可接收来自规则生成器106的推荐规则422,和/或推荐引擎414(服务器104)可接收由规则生成器412生成的推荐规则426。推荐引擎408和/或推荐引擎414可执行推荐规则422和/或426以向用户提供推荐。
例如,在推荐引擎408(用户设备102)执行推荐规则422时,推荐引擎408可生成推荐424。推荐424被提供给UI 430,以通过UI 430的输出接口430作为提供的推荐426提供给用户。输出接口430可以是以话音或其他音频形式播放所提供的推荐426的扬声器、可以是以文本或图形形式显示所提供的推荐426的图形用户界面(GUI)或者可具有用于向用户提供所提供的推荐426的另一形式。
替换地,在推荐引擎414(服务器104)执行推荐规则426时,推荐引擎414可生成推荐428,该推荐428被传送给用户设备102。推荐428可作为推荐引擎408的推荐424被提供给输出接口410,并作为所提供的推荐426被提供给用户,或者可以以另一方式被提供给用户。
在步骤308,推荐引擎408和/或推荐引擎414可按任何方式执行推荐规则。例如,图7示出了根据一示例实施例的用于执行推荐规则以生成给用户的推荐的过程的流程图700。出于说明目的,参考图8来描述流程图700。图8示出根据一示例实施例的接收推荐规则以生成给用户的推荐的推荐引擎802的框图。推荐引擎802是推荐引擎408和推荐引擎414的示例。基于以下描述,其他结构及操作的实施例对于相关邻域的技术人员将是显而易见的。
流程图700开始于步骤702。在步骤702,将推荐规则与一个或多个环境触发匹配。例如,推荐引擎802可接收一个或多个环境触发814。(诸)环境触发804可包括以下中的一者或多者:当前时间、将来时间、当前位置、将来位置(例如,预测的或已知/计划的将来位置)、当前与用户在一起的人、将来与用户在一起的人(例如,预测或已知/计划在将来的时间和/位置与用户在一起的人)、用户的活动、接收自应用或服务的信号、用户作出的该用户想要推荐的指示等等。应用或服务可驻留在用户设备102上或者在远程(例如,在第二用户设备108、服务器106a处的第三方服务116、服务器106b处的第三方服务118等)。
例如,如以上所描述的,时间、位置和/或人可以是环境触发。在一个示例中,用户Anna可偶遇Sophie,并且Sophie的出现可以是Anna的推荐系统的环境触发。Sophie的出现可由Anna的用户设备按任何方式检测(例如,通过对Sophie自己的移动设备的位置确定、通过检测Sophie的语音、通过Anna被检测到说了“你好Sophie”或其他问候语、通过Anna在用户设备的UI上提供了指示等)。Sophie的出现可触发围绕Sophie的给Anna的一个或多个推荐。
在另一示例中,用户可提供语句“为我找一家下周六晚上的餐厅”。这样的语句可用于预测将是推荐的环境触发的将来位置(诸如芝加哥),如果推荐系统(例如,从用户的日历、用户作出的先前语句等)知道用户正计划在那个时间范围在芝加哥的话。对将来位置和/或将来与用户在一起的人的预测可从以下确定:用户的历史旅行模式、诸如日历事件之类观察到的计划、从其他助理交互中学到的数据、或位置本身的继承属性。例如,如果“Alinea”是仅在芝加哥才存在的餐厅,并且如果用户将Alinea作为餐厅推荐,则与餐厅Alinea相关联的元数据可指示诸如位置之类的附加特征。对于餐厅或具有许多位置的其他商家(例如,),可使用附加信息来改善该预测(例如,该用户的其他语句等)。
根据步骤702,将一个或多个所指示的环境触发与用户规则日志612中的推荐规则616a-616m进行比较。如果找到了与推荐规则616a-616m中的一者或多者的匹配,则可执行一个或多个相应的推荐。
例如,在一实施例中,当推荐规则616a-616m为IF-THEN推荐规则时,可将(诸)环境触发804与推荐规则616a-616m的IF逻辑语句进行比较。有匹配环境触发的IF逻辑语句的推荐规则616a-616m中的任一者可被选择以供执行。
继续以上Sophie向Anna提供为“Thai Tom”的推荐的示例,Anna可能正在查找课后的快速深夜餐。由此,Anna可问其电子个人助理“什么是就餐的好地方?”该对就餐推荐的请求可作为环境触发804被提供给推荐引擎802。因此,推荐引擎802可尝试将作为餐厅推荐的请求的环境触发与该用户的用户规则日志612中的规则616a-616n匹配。推荐引擎802可找到与以下推荐规则的匹配:
IF<用户请求餐厅>THEN<推荐餐厅“Thai Tom”>
注意,该推荐规则的IF逻辑语句可进一步包括针对要作出的匹配的约束,诸如位置约束、时间约束等。由此,当前时间、当前位置和/或其他环境触发可连同餐厅推荐请求一起在要与规则616a-616n匹配的(诸)环境触发804中被提供给推荐引擎。
在步骤704,相对于一个或多个环境触发执行推荐规则以生成给用户的推荐。在一实施例中,如图8所示,如果推荐引擎802在步骤702确定了匹配,则推荐802被配置成提供与匹配推荐规则相对应的推荐作为推荐424或428。注意,如果在步骤702中将多个推荐规则确定为匹配,则按任何方式确定这些匹配推荐规则的优先级,并按优先级所确定的次序将其提供给用户。替换地,仅最高优先级的推荐可被提供给用户。
注意,在另一实施例中,作为在步骤704生成给用户的推荐的附加或替换,可执行被配置为收集附加数据的推荐规则。由此,不是在步骤704向用户提供推荐,推荐规则可被配置成从用户和/或从其他源(例如,从另一应用或服务等)收集附加数据。例如,推荐规则可导致向用户提出问题(例如,“你现在在你请我记住的Soho邻域并且到吃饭的时间了。你想要吃哪种食物?”)。就在该用户回答了该问题之后、在一个或多个进一步问题被提出之后和/或在某一其他稍后的时间,该问题的答案可用于生成给用户的推荐。
在一实施例中,当推荐规则616a-616m是IF-THEN推荐规则时,推荐引擎802可执行匹配推荐规的THEN逻辑语句的动作。例如,继续以上Sophie向Anna提供为“Thai Tom”的推荐的示例,响应于Anna的问题“什么是就餐的好地方?”,推荐引擎802可归因于所发现的与相应的IF逻辑语句(用户请求餐厅)的匹配而向Anna提供餐厅“Thai Tom”作为推荐。
注意在一个示例中,推荐规则的THEN逻辑语句可包括动作,诸如向诸如搜索引擎之类的查询处理实体提供具体查询的动作。在Sophie和Anna的当前示例中,THEN逻辑语句可以是对附近泰国食物餐厅的查询。通过这种方式,响应于匹配,可提供多个搜索结果建议。
在另一示例中,推荐规则可被配置成当知道将来将发生推荐的环境触发时,提醒用户这些推荐的各方面。例如,某个人Bob可告诉用户在该用户下次在芝加哥时吃饭考察Alinea餐厅。因此,用户可告诉助理“记住我下次在芝加哥时,我应当考察Alinea餐厅”。推荐规则可被配置成在该用户到芝加哥的下一次旅行(该旅行可被计划定于下一个月)的计划期间提醒用户对餐厅Alinea的预约应当被预订(例如,因为该餐厅已知是受欢迎的)。通过在旅行的计划阶段期间提醒用户预订预约,当用户在旅行中实际上到达芝加哥时,预约已经被作出(作出该预约并不是太晚)。
在一实施例中,多个建议可基于包括在用户的用户简档模型618中的用户的简档信息被排名。例如,如果如在用户简档模型618中指示出的Anna对Sophie评价相对较高,则Sophie对“Thai Tom”的推荐即使不在建议餐厅列表的顶部,也可被排名地很高。如果Anna对Sophie评价不高,则Sophie对“Thai Tom”的推荐可被排名地较低,或者根本就不被包括在建议餐厅列表中。
注意,在各实施例中,显式动作可修改或通知其他隐式信号。例如,如果Anna(例如,通过去Thai Tom餐厅的位置并且被检测到在那个位置)实施了以上Sophie对餐厅“Thai Tom”的推荐,则向Anna提供的将来餐厅推荐排名可考虑Sophie的偏好。在这样的实施例中,规则生成器602和/或推荐引擎802在生成规则和/或推荐时可考虑Sophie的偏好。Sophie可使得其偏好对Anna可用,并由此在诸如图1的第三方服务116之类的服务处或者在第二用户设备108(其可以是Sophie的用户设备)处对规则生成器602可用。例如,规则生成器602和/或推荐引擎802可被允许在这些位置中的一者或多者处访问Sophie的用户简档模型。
在这样的情况下,Sophie可变为将来向Anna提供的搜索结果和推荐的标记为高的“影响者”。这也可以被反转,使得由于Anna实施了和/或喜欢Sophie的推荐,而可向Sophie提供Anna的用户简档信息以用于修改向Sophie提供的搜索结果和推荐。
在一实施例中,Anna可采取一个或多个否定动作,诸如去Sophie推荐的餐厅并随后在评价时将该餐厅评分为低,或者告诉其数字个人助理她不喜欢该餐厅。这样的否定动作可提供强否定信号,以使得Sophie成为相对于Anna的低影响者(包括成为否定影响者),和/或减少或防止将Anna的用户简档信息提供给Sophie。因此,提供推荐的人作为用户的影响者的状态可取决于该用户对推荐的反应而被调整为更高或更低。例如,如果用户肯定地作出反应(例如,实施了和/或喜欢推荐),则提供推荐的人的状态可以按成为相对于该用户的高影响者的方向被移动。如果用户否定地作出反应(例如,没有实施推荐和/或指示不喜欢推荐),则提供推荐的人的状态可按成为相对于该用户的低影响者的方向被移动。
注意,在一个实施例中,第二用户(例如,Sophie)可被看作第一用户(例如,Anna)的跨所有领域(例如,餐厅、电影、旅行位置、活动、服装或其他零售项目等)的高或低影响者。在另一实施例中,第二用户可在逐领域的基础上被看作第一用户的高或低影响者。例如,Sophie可被看作Anna与餐厅推荐有关的高影响者(例如,因为她们具有非常相似的食物品味),而Sophie可被看作Anna与电影推荐有关的低影响者(例如,因为她们不共享相同的电影品味)。
通过这种方式,用户的用户简档模型可基于现实世界交互(例如,用户实际上将该推荐付诸了使用或者以其他方式与该建议进行了交互吗?)被构建为包括感兴趣的和信任的影响者的简档。因此,基于对用户的用户简档模型的修改,将来的搜索结果和给用户的推荐可被调节。
在一实施例中,这些技术可通过围绕兴趣类别构建聊天场景来扩展,尤其是在数字个人助理先前不知道这些类别是用户感兴趣的情况下。例如,由用户提供的具体显式声明可被数字个人助理用作立即了解你问题和回答会话的启动点。例如,用户可提供以下显式声明:“助理,Gravity(地心引力)一上映就提醒我在电影院尝试并观看它。”作为响应,数字个人助理可陈述“酷,我会提醒你的”,并且此后可有一个或多个问题陈述,诸如“我不知道你是科幻电影迷,我会记住这个的。或,你仅崇拜George Clooney吗?”
注意,在各实施例中,搜索和推荐可跨各设备发生,并且可依据接收自链接到用户的任一设备的显式或隐式信号来调节。
在另一实施例中,显式声明不需要精确到单个实体(例如,关于诸如“Thai Tom”之类的特定餐厅),而也可以是较概括的。例如,用户可提供以下显式声明:“助理,提醒我在某一其他时间考察该邻域。”对邻域的这一概括陈述可用于训练推荐引擎,以建议在周末探索那个邻域,将与那个邻域相关联的商家推荐评价得更高。在另一实施例中,取代单个餐厅类型,烹饪风格(例如,墨西哥)或连锁店(“”)可被表达。这样的概括可在任何类型的显式声明中被使用。
在各实施例中,显式声明可包含多方面的调节信息。例如,以下示例显式声明“助理,向我提醒Miles和我应当在某时在Urban OutfittersTM购物”传达了对场所(Urban OutfittersTM)的亲合性和对与特定人(Miles)一起去那个场所的亲合性两者。类似地,亲合性可存在于其他信息类型(诸如重要日期),诸如在以下示例显式声明中:“在我计划Luca的下一次生日聚会时,提醒我考察Bounce Palace”。
在一实施例中,显式声明可与位置共享和包括某商业提供的转介元素有关。例如,Sophie可在下次她去“Thai Tom”餐厅时收到“Thai Tom”餐厅的折扣,因为她向Anna提到了该餐厅(“例如,Anna可能已在她到该餐厅签到时收到了“Sophie朋友”折扣,或者被用蓝牙信令或其他证据标记了她在该餐厅的出现)。
此外,共享的映射最喜爱列表可用作使Anna的显式推荐进入Sophie的数字个人助理的笔记的替换方式。例如,Anna可被允许说“哦,我将与你共享我的最喜爱芝加哥餐厅的列表。”当她这么做时,Sophie可告诉她的数字个人助理记住该整个列表或者挑选看上去特别显著的几个。
III.示例移动和静态设备实施例
用户设备102、后端服务器104、服务器106a、服务器106b、第二用户设备108、设备上助理服务112、启用显式信号的推荐系统114、第三方服务116、第三方服务118、基于网络的助理服务120、语音输入接口402、话音处理模块404、规则生成器406、推荐引擎408、输出接口410、UI模块412、规则生成器412、推荐引擎414、启用显式信号的推荐系统432、启用显式信号的推荐系统434、非语音输入接口436、NLP模块606、逻辑语句生成器608、数据转换器620、推荐引擎802、流程图200、流程图300、流程图500和流程图700可用硬件或者组合有软件和/或固件的硬件来实现。例如,设备上助理服务112、启用显式信号的推荐系统114、第三方服务116、第三方服务118、基于网络的助理服务120、语音输入接口402、话音处理模块404、规则生成器406、推荐引擎408、输出接口410、UI模块412、规则生成器412、推荐引擎414、启用显式信号的推荐系统432、启用显式信号的推荐系统434、非语音输入接口436、NLP模块606、逻辑语句生成器608、数据转换器620和/或推荐引擎802以及流程图200、流程图300、流程图500和/或流程图700的一个或多个步骤可被实现为被配置成在一个或多个处理器中执行并被存储在计算机可读存储介质中的计算机程序代码/指令。替换地,用户设备102、后端服务器104、服务器106a、服务器106b、第二用户设备108、设备上助理服务112、启用显式信号的推荐系统114、第三方服务116、第三方服务118、基于网络的助理服务120、语音输入接口402、话音处理模块404、规则生成器406、推荐引擎408、输出接口410、UI模块412、规则生成器412、推荐引擎414、启用显式信号的推荐系统432、启用显式信号的推荐系统434、非语音输入接口436、NLP模块606、逻辑语句生成器608、数据转换器620和/或推荐引擎802以及流程图200、流程图300、流程图500和/或流程图700的一个或多个步骤可被实现为硬件逻辑/电路。
例如,在一实施例中,设备上助理服务112、启用显式信号的推荐系统114、第三方服务116、第三方服务118、基于网络的助理服务120、语音输入接口402、话音处理模块404、规则生成器406、推荐引擎408、输出接口410、UI模块412、规则生成器412、推荐引擎414、启用显式信号的推荐系统432、启用显式信号的推荐系统434、非语音输入接口436、NLP模块606、逻辑语句生成器608、数据转换器620、推荐引擎802、流程图200、流程图300、流程图500和流程图700中的一者或多者(处于任何组合)可一起被实现在SoC中。SoC可包括集成电路芯片,该集成电路芯片包括以下一个或多个:处理器(如中央处理单元(CPU)、微控制器、微处理器、数字信号处理器(DSP)等等)、存储器、一个或多个通信接口、和/或用于执行其功能的进一步的电路和可任选地执行接收到的程序代码和/或包括嵌入的固件。
图9示出示例性移动设备900的框图,该示例性移动设备900包括概括地示为组件902的各种任选硬件和软件组件。例如,在移动设备实施例中,移动设备900的组件902是可被包括在用户设备102、后端服务器104、服务器106a、服务器106b和/或第二用户设备108中的组件的示例。组件902的特征/要素的任何数量和组合以及附加和/或替代特征/要素可被包括在移动设备实施例中,如相关邻域技术人员所知的。注意,组件902中的任一组件可与组件902中的任何其他组件通信,尽管为了便于说明并未示出所有连接。移动设备900可以是本文中其它地方所述或提及的、或者以其它方式已知的各种移动设备(例如,蜂窝电话、智能电话、手持式计算机、个人数字助理(PDA)等)中的任一种,并且可允许经由诸如蜂窝或卫星网络等一个或多个通信网络904或通过局域网或广域网进行与一个或多个移动设备的无线双向通信。
所示移动设备900可包括用于执行诸如信号编码、图像处理、数据处理、输入/输出处理、电源控制、和/或其他功能之类的任务的控制器或处理器(称为处理器电路910)。处理器电路910是在一个或多个物理硬件电子电路设备元件和/或作为中央处理单元(CPU)、微控制器、微处理器、和/或其它物理硬件处理电路的集成电路设备(半导体材料芯片或管芯)中实现的电子和/或光学电路。处理器电路910可执行存储在计算机可读介质中的程序代码,诸如一个或多个应用914、操作系统912的程序代码、存储器920中存储的任何程序代码等。操作系统912可控制对组件902的分配和使用,并支持一个或多个应用程序914(也称为“应用”、“app”等)。应用程序914可包括公共移动计算应用程序(例如,电子邮件应用程序、日历、联系人管理器、web浏览器、消息接发应用程序)、或任何其他计算应用(例如字处理应用、映射应用、介质播放器应用)。
如所示地,移动设备900可包括存储器920。存储器920可以包括不可移动存储器922和/或可移动存储器924。不可移动存储器922可以包括RAM、ROM、闪存、硬盘或者其他公知的存储器存储技术。可移动存储器924可以包括闪存或订户身份模块(SIM)卡,这在GSM通信系统或者其他公知的存储器存储技术中是公知的,诸如“智能卡”。存储器920可用于存储运行操作系统912和应用914的数据和/或代码。示例数据可以包括要经由一个或多个有线或无线网络被发送至和/或接收自一个或多个网络服务器或其他设备的网页、文本、图像、声音文件、视频数据或者其他数据集。存储器920可用于存储诸如国际移动订户身份(IMSI)等订户标识符,以及诸如国际移动设备标识符(IMEI)等设备标识符。这种标识符可以被发射至网络服务器以标识用户和设备。
多个程序可被储存在存储器920中。这些程序包括操作系统912、一个或多个应用程序914、以及其他程序模块以及程序数据。这样的应用程序或程序模块的示例可包括例如用于实现设备上助理服务112、启用显式信号的推荐系统114、第三方服务116、第三方服务118、基于网络的助理服务120、语音输入接口402、话音处理模块404、规则生成器406、推荐引擎408、输出接口410、UI模块412、规则生成器412、推荐引擎414、启用显式信号的推荐系统432、启用显式信号的推荐系统434、非语音输入接口436、NLP模块606、逻辑语句生成器608、数据转换器620、推荐引擎802、流程图200、流程图300、流程图500和/或流程图700(包括流程图200、300、500和700中的任何合适的步骤)计算机程序逻辑(例如,计算机程序代码或指令)和/或本文中描述的其他实施例。
移动设备900可支持诸如触摸屏932、话筒934、相机936、物理键盘938和/或跟踪球940之类的一个或多个输入设备930,以及诸如扬声器952和显示器954之类的一个或多个输出设备950。诸如触摸屏932等触摸屏可以不同方式检测输入。例如,电容式触摸屏在物体(例如,指尖)使流过表面的电流变形或中断时检测到触摸输入。作为另一示例,触摸屏可使用光学传感器,在来自光学传感器的光束被中断时检测到触摸输入。对于通过某些触摸屏被检测到的输入来说,与屏幕表面的物理接触并不是必需的。例如,如本领域公知地,触摸屏932可被配置成支持使用电容感测的手指悬停检测。如一上已经描述的,也可使用其它检测技术,包括基于相机的检测和基于超声波的检测。为了实现手指悬停,用户的手指通常在触摸屏上方预定间隔距离内,诸如在0.1至0.25英寸之间、或0.25至0.05英寸之间、或0.05至0.75英寸之间、或0.75至1英寸之间、或1至1.5英寸之间等等。
为了说明目的,触摸屏932被示为包括控制界面992。控制界面992被配置成控制与显示在触摸屏932上的虚拟元件相关联的内容。在一示例实施例中,控制界面992被配置成控制由一个或多个应用914提供的内容。例如,当移动设备900的用户利用应用时,控制界面992可在触摸屏932上被呈现给用户以使用户能够访问控制这种内容的控件。控制界面992的呈现可基于(例如触发于)距触摸屏932指定距离内的运动的检测、或者没有此类运动。用于基于运动或没有运动使控制界面(例如控制界面992)呈现在触摸屏(例如触摸屏932)上的示例实施例在以下更具体地描述。
其他可能的输出设备(未示出)可以包括压电或其他触觉输出设备。一些设备可以用于多于一个输入/输出功能。例如,触摸屏932和显示器954可被组合在单个输入/输出设备中。输入设备930可以包括自然用户界面(NUI)。NUI是使用户能以“自然”方式与设备交互、免受诸如鼠标、键盘、远程控件等输入设备所施加的人工约束的任一界面技术。NUI方法的示例包括依赖于语音识别、触摸和触笔识别、屏上及邻近屏的姿势识别、空中姿势、头部和眼部跟踪、说话和语音、视觉、触摸、姿势以及机器智能的那些方法。NUI的其他示例包括使用加速度计/陀螺仪、面部识别、3D显示器、头部、眼部和凝视跟踪的运动手势检测、沉浸式增强的现实和虚拟现实系统,这些中的全部都提供更自然的界面,还包括使用电场传感电极(EEG及相关方法)来感测脑部活动的技术。由此,在一特定示例中,操作系统912或应用914可包括作为允许用户经由语音命令来操作设备900的语音控制界面的一部分的语音识别软件。此外,设备900可包括允许经由用户的空间姿势进行用户交互(诸如检测和解释姿势以向游戏应用提供输入)的输入设备和软件。
(诸)无线调制解调器960可被耦合到天线(未示出),并可支持处理器电路910和外部设备之间的双向通信,如本邻域中清楚理解的。(诸)调制解调器960被一般性地示出,并且可以包括用于与移动通信网络904通信的蜂窝调制解调器966和/或其它基于无线电的调制解调器(例如蓝牙964或Wi-Fi 962)。蜂窝调制解调器966可被配置成根据任何适当的通信标准或技术(诸如GSM,3G,4G,5G等)实现电话呼叫(以及可任选地传送数据)。无线调制解调器960的至少之一通常被配置用于与一个或多个蜂窝网络(诸如,用于在单个蜂窝网络内、蜂窝网络之间、或移动设备与公共交换电话网络(PSTN)之间的数据和语音通信的GSM网络)进行通信。
移动设备900还可包括至少一个输入/输出端口980、电源982、诸如全球定位系统(GPS)接收机之类的卫星导航系统接收机984、加速度计986、和/或物理连接器990,该物理连接器990可以是USB端口、IEEE 1394(火线)端口、和/或RS-232端口。所示的组件902并非是必需或者涵盖全部的,因为如本邻域技术人员所理解地,任何组件可不存在且附加地其它组件可存在。
此外,图10示出其中可实现各实施例的计算设备1000的示例性实现。例如,用户设备102、后端服务器104、服务器106a、服务器106b和/或第二用户设备108可在与静态计算机实施例中的计算设备1000相似的一个或多个计算设备中实现,包括计算设备1000的一个或多个特征和/或替代特征。此处所提供的对计算设备1000的描述只是为了说明,并不是限制性的。各实施例也可以在相关邻域的技术人员所知的其它类型的计算机系统中实现。
如图10所示,计算设备1000包括一个或多个处理器(被称为处理器线路1002)、系统存储器1004,以及将包括系统存储器1004的各种系统组件耦合到处理器电路1002的总线1006。处理器电路1002是在一个或多个物理硬件电子电路设备元件和/或作为中央处理单元(CPU)、微控制器、微处理器、和/或其它物理硬件处理电路的集成电路设备(半导体材料芯片或管芯)中实现的电子和/或光学电路。处理器电路1002可执行存储在计算机可读介质中的程序代码,诸如操作系统1030、应用程序1032、其它程序1034等的程序代码。总线1006表示若干类型的总线结构中的任何一种总线结构的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口,以及处理器或使用各种总线体系结构中的任何一种的局部总线。系统存储器1004包括只读存储器(ROM)1008和随机存取存储器(RAM)1010。基本输入/输出系统1012(BIOS)储存在ROM 1008中。
计算系统1000还具有一个或多个以下驱动器:用于读写硬盘的硬盘驱动器1014、用于读或写可移动磁盘1018的磁盘驱动器1016、以及用于读或写诸如CD ROM、DVD ROM或其他光介质之类的可移动光盘1022的光盘驱动器1020。硬盘驱动器1014、磁盘驱动器1016,以及光驱动器1020分别通过硬盘驱动器接口1024、磁盘驱动器接口1026,以及光盘驱动器接口1028连接到总线1006。驱动器以及它们相关联的计算机可读介质为计算机提供了对计算机可读指令、数据结构、程序模块,及其他数据的非易失存储器。虽然描述了硬盘、可移动磁盘和可移动光盘,但是,也可以使用诸如闪存卡、数字视频盘、RAM、ROM等等之类的其他类型的基于硬件的计算机可读存储介质来储存数据。
数个程序模块可被储存在硬盘、磁盘、光盘、ROM或RAM上。这些程序包括操作系统1030、一个或多个应用程序1032、其他程序1034以及程序数据1036。应用程序1032或其他程序1034可包括例如用于实现设备上助理服务112、启用显式信号的推荐系统114、第三方服务116、第三方服务118、基于网络的助理服务120、语音输入接口402、话音处理模块404、规则生成器406、推荐引擎408、输出接口410、UI模块412、规则生成器412、推荐引擎414、启用显式信号的推荐系统432、启用显式信号的推荐系统434、非语音输入接口436、NLP模块606、逻辑语句生成器608、数据转换器620、推荐引擎802、流程图200、流程图300、流程图500和/或流程图700(包括流程图200、300、500和700中的任何合适的步骤)的计算机程序逻辑(例如,计算机程序代码或指令)和/或本文中描述的其他实施例。
用户可以通过诸如键盘1038和定点设备1040之类的输入设备向计算设备1000中输入命令和信息。其它输入设备(未示出)可包括话筒、控制杆、游戏手柄、卫星天线、扫描仪、触摸屏和/或触摸平板、用于接收语音输入的语音识别系统、用于接收手势输入的手势识别系统、诸如此类。这些及其他输入设备常常通过耦合到总线1006的串行端口接口1042连接到处理器电路1002,但是,也可以通过其他接口,诸如并行端口、游戏端口、通用串行总线(USB)端口,来进行连接。
显示屏1044也通过诸如视频适配器1046之类的接口连接到总线1006。显示屏1044可在计算设备1000外部或纳入其中。显示屏1044可显示信息,以及作为用于接收用户命令和/或其它信息(例如,通过触摸、手指姿势、虚拟键盘等等)的用户界面。除了显示屏1044之外,计算设备1000还可包括其他外围输出设备(未示出),如扬声器和打印机。
计算设备1000通过适配器或网络接口1050、调制解调器1052、或用于通过网络建立通信的其他手段连接到网络1048(例如,因特网)。可以是内置的或外置的调制解调器1052可以经由串行端口接口1042连接到总线1006,如图10所示,或者可以使用包括并行接口的另一接口类型连接到总线1006。
如此处所用的,术语“计算机程序介质”、“计算机可读介质”以及“计算机可读存储介质”被用于泛指物理硬件介质,诸如与硬盘驱动器1014相关联的硬盘、可移动磁盘1018、可移动光盘1022、其它物理硬件介质,诸如RAM、ROM、闪存卡、数字视频盘、zip磁盘、MEM、基于纳米的存储设备,以及其它类型的物理/有形硬件存储介质(包括图9的存储器920)。这些计算机可读存储介质与通信介质(不包括通信介质)相区别且不重叠。通信介质通常在诸如载波等已调制数据信号中承载计算机可读指令、数据结构、程序模块或者其它数据。术语“已调制数据信号”是指使得以在信号中编码信息的方式来设置或改变其一个或多个特性的信号。作为示例而非限制,通信介质包括诸如声学、RF、红外线的无线介质和其它无线介质以及有线介质。实施例也针对这些通信介质。
如上文所指示的,计算机程序和模块(包括应用程序1032及其他程序1034)可被储存在硬盘、磁盘、光盘、ROM、RAM或其它硬件存储介质上。这样的计算机程序也可以通过网络接口1050、串行端口接口1042或任何其他接口类型来接收。这些计算机程序在由应用程序执行或加载时使得计算机1000能够实现此处所讨论的实施例的特征。因此,这些计算机程序表示计算机系统1000的控制器。
各实施例还涉及包括存储在任何计算机可读介质上的计算机代码或指令的计算机程序产品。这样的计算机程序产品包括硬盘驱动、光盘驱动、存储器设备包、便携式记忆棒、存储器卡以及其它类型的物理存储硬件。
IV.结语
尽管上文描述了本发明的各实施例,但是,应该理解,它们只是作为示例来呈现的,而不作为限制。那些精通有关技术的人员将理解,在不偏离如所附权利要求书所定义的本发明的精神和范围的情况下,可以在形式和细节方面进行各种修改。因此,本发明的范围不应该受到上述示例性实施例的任一个的限制,而只应根据下面的权利要求和它们的等效内容进行定义。