CN111566652B - 用于辅助用户完成任务的上下文感知的推荐 - Google Patents
用于辅助用户完成任务的上下文感知的推荐 Download PDFInfo
- Publication number
- CN111566652B CN111566652B CN201880086142.0A CN201880086142A CN111566652B CN 111566652 B CN111566652 B CN 111566652B CN 201880086142 A CN201880086142 A CN 201880086142A CN 111566652 B CN111566652 B CN 111566652B
- Authority
- CN
- China
- Prior art keywords
- task
- user
- applications
- data
- application
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 70
- 230000009471 action Effects 0.000 claims abstract description 34
- 238000010801 machine learning Methods 0.000 claims abstract description 32
- 230000000694 effects Effects 0.000 claims description 31
- 230000004044 response Effects 0.000 claims description 28
- 238000012545 processing Methods 0.000 claims description 23
- 238000004891 communication Methods 0.000 claims description 20
- 230000006870 function Effects 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 10
- 238000004422 calculation algorithm Methods 0.000 claims description 8
- 230000000153 supplemental effect Effects 0.000 claims description 8
- 230000001419 dependent effect Effects 0.000 abstract description 5
- 238000005516 engineering process Methods 0.000 description 19
- 230000007246 mechanism Effects 0.000 description 18
- 230000006855 networking Effects 0.000 description 15
- 239000002609 medium Substances 0.000 description 10
- 210000003811 finger Anatomy 0.000 description 8
- 238000005259 measurement Methods 0.000 description 7
- 238000012417 linear regression Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 238000013515 script Methods 0.000 description 6
- 239000007787 solid Substances 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 238000000844 transformation Methods 0.000 description 4
- 238000007476 Maximum Likelihood Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000003032 molecular docking Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 239000006163 transport media Substances 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- WHXSMMKQMYFTQS-UHFFFAOYSA-N Lithium Chemical compound [Li] WHXSMMKQMYFTQS-UHFFFAOYSA-N 0.000 description 1
- HBBGRARXTFLTSG-UHFFFAOYSA-N Lithium ion Chemical compound [Li+] HBBGRARXTFLTSG-UHFFFAOYSA-N 0.000 description 1
- 239000004165 Methyl ester of fatty acids Substances 0.000 description 1
- 244000046146 Pueraria lobata Species 0.000 description 1
- 235000010575 Pueraria lobata Nutrition 0.000 description 1
- 235000017848 Rubus fruticosus Nutrition 0.000 description 1
- 241000414697 Tegra Species 0.000 description 1
- 244000078534 Vaccinium myrtillus Species 0.000 description 1
- 235000021029 blackberry Nutrition 0.000 description 1
- OJIJEKBXJYRIBZ-UHFFFAOYSA-N cadmium nickel Chemical compound [Ni].[Cd] OJIJEKBXJYRIBZ-UHFFFAOYSA-N 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- VJYFKVYYMZPMAB-UHFFFAOYSA-N ethoprophos Chemical compound CCCSP(=O)(OCC)SCCC VJYFKVYYMZPMAB-UHFFFAOYSA-N 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 229910052744 lithium Inorganic materials 0.000 description 1
- 229910001416 lithium ion Inorganic materials 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 229910052987 metal hydride Inorganic materials 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 229910052759 nickel Inorganic materials 0.000 description 1
- PXHVJJICTQNCMI-UHFFFAOYSA-N nickel Substances [Ni] PXHVJJICTQNCMI-UHFFFAOYSA-N 0.000 description 1
- -1 nickel metal hydrides Chemical class 0.000 description 1
- 238000012634 optical imaging Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
- 239000010454 slate Substances 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 210000003371 toe Anatomy 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06316—Sequencing of tasks or work
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9032—Query formulation
- G06F16/90324—Query formulation using system suggestions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/216—Parsing using statistical methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/453—Help systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
Abstract
提供了一种用于通过推荐动作来辅助用户朝着完成任务的方向前进的系统。在本文中所公开的技术使系统能够接收用户输入信号,诸如语音输入、文本输入或者包括指示任务的短语的任何其他类型的输入。然后,系统可以自动生成推荐,以指导用户完成任务。在本文中所公开的技术还可以识别最适合于完成识别出的任务的上下文相关应用。例如,用户可能具有若干消息传送应用。基于用户输入的上下文以及一个或多个机器学习引擎使用的其他历史数据,系统可以推荐适合的应用或者提供应用的排名,以适合于完成识别出的任务。在本文中所公开的技术还采用机器学习引擎来随着时间的推移提高推荐的准确性。
Description
背景技术
在许多生产力应用中,诸如Outlook、Word、Excel、OneNote、Pages、Numbers、Google Docs和Google Sheets,每种应用都具有专门的特征,使得用户能够进行通信、操纵以及以其他方式处理数据。尽管生产力应用能够帮助用户执行许多不同的任务,但是随着更多的特征被添加到每种应用,每种应用的复杂性也随之增加。在一些情况下,给定特定应用的所有特征,用户可能不知道如何执行特定任务。因此,一些应用可能无法提供最佳的用户体验,或者使用户无法充分受益于其可用特征。
一些现有系统能够辅助用户进行一些应用。例如,Apple提供了语音激活的服务,其使得用户能够通过使用语音命令来发起电话呼叫或发送文本消息。尽管这些类型的服务有助于辅助用户进行呼叫或发送消息,但是这些系统本质上是静态的,因为其仅允许将单个应用用于特定任务。该限制并不总是提供最佳的用户体验。例如,当用户说出命令“呼叫Michael”时,所述服务发起电话呼叫。遗憾的是,即使用户具有多个可用的通信应用进行呼叫,这样的服务也仅使用电话应用。这样的现有服务本质上不是动态的,例如,一些服务不能够基于用户的环境来识别和利用上下文相关的应用。这样的缺陷会导致对应用的未充分利用、对应用内的特征的未充分利用等。
发明内容
在本文中所公开的技术使得系统能够通过基于用户输入信号自动化和/或推荐动作来辅助用户朝着完成任务的方向发展。所述输入信号能够包括语音输入、文本输入或者包括指示任务的短语的任何其他类型的输入。所述输入信号能够由系统进行解读以识别用户的意图。基于定义用户的意图的数据,所述系统能够生成定义要完成任务的多个动作的数据。然后,所述设备能够为用户自动执行动作,或者生成一个或多个推荐以指导用户手动地完成任务。在本文中所公开的技术还能够识别最适合于完成识别出的任务的上下文相关的应用。例如,用户可以具有若干消息传送应用,例如,用于个人消息的第一应用、用于工作消息的第二应用、以及用于志愿者工作的第三应用。基于用户输入的上下文(例如,用户的意图)以及其他上下文数据(包括由一个或多个机器学习引擎处理的历史数据),系统能够推荐合适的应用,或者提供适合于完成识别出的任务的应用的排名。
在一个说明性示例中,到计算设备的输入信号能够指示用户想要“向Katie发送关于设计同步的电子邮件”。所述计算设备利用输入信号来生成指示要完成的任务(例如,发送电子邮件的任务)的数据。能够通过分析短语或关键字集合来确定任务。然后,所述计算设备能够选择适合于执行任务的适当应用并且对其进行排名。在一些实施例中,基于对输入信号和/或上下文数据的分析来对应用进行排名。所述上下文数据能够包括有关用户的活动的任何存储信息,诸如用户的位置、日期和/或一天中的时间。所述上下文数据还能够包括由机器学习引擎收集和处理的用户的历史活动数据。能够将经排名的应用的列表显示给用户以供选择。
所述计算设备还能够生成定义与任务相关联的动作列表的数据。在本示例中,所述动作能够包括用于使得计算机执行选定的电子邮件应用并且在电子邮件应用内填充一个或多个字段(诸如电子邮件地址、主题行等)的指令或代码。能够从所述输入信号中取回用于填充应用内的字段的数据,或者还能够从其他资源(诸如数据库、邮件服务器、远程存储服务等)中取回这样的数据。基于输入信号和/或其他上下文数据,所述计算设备还能够识别并且推荐要在电子邮件包含的一个或多个附件、要在电子邮件中使用的语言等。能够向用户显示动作列表以使得用户能够完成任务,或者计算设备能够使用动作列表以自动地完成动作列表。能够向用户显示包括可以被用于执行的动作列表的内容,并且这样的内容能够是帮助用户朝着完成给定的识别出的任务的方向前进的任何格式。内容例如能够包括文本、音频数据和/或视频数据。内容还能够包括用于使得应用或系统使一个或多个动作自动化的代码或数据。
在本文中所公开的技术还利用机器学习技术来选择针对待执行的任务的推荐和/或对其进行排名。例如,能够基于用户的过去模式来生成置信度分数。然后,能够使用置信度分数对推荐进行排名。如将在下文更详细描述的,该特征使得系统能够提供对基于过去识别出的用户活动的推荐应用的动态调节的排名。这样的机器学习技术能够被用于开发对用户意图的理解和/或可能用于完成任务的一个或多个选定动作。在本文中所公开的特征使得计算设备能够提供可动态感知的推荐,以调节用户的环境和变化的场景。在本文中所公开的特征还帮助用户利用广泛的应用,并且帮助用户利用和发现应用内的特征。
应当意识到,上文所描述的主题可以被实现为计算机控制的装置、计算机过程、计算系统或者诸如计算机可读存储介质的制品。除了许多其他益处之外,在本文中所描述的技术相对于广泛的计算资源改善了效率。例如,由于使用在本文中所公开的技术使得用户能够在停留在一个网站上时查看可以被用于任务执行的各种文件类型,因此可以改善与设备的人机交互。另外,经改善的人机交互改善了其他计算资源,诸如处理器和网络资源,例如,用户能够停留在一个网站上并且减少交互、流量和计算机周期。也能够根据在本文中所公开的技术的实现方式实现除了在本文中所提到的那些之外的其他技术效果。
提供本发明内容以简化形式介绍一些概念,这些概念将在下文的详细描述中进一步描述。本发明内容既不旨在识别所要求保护的主题的关键或必要特征,也并不旨在用于辅助确定所要求保护的主题的范围。例如,术语“技术”可以指代上文所描述的并且贯穿全文的由上下文允许的(一个或多个)系统、(一种或多种)方法、计算机可读指令、(一个或多个)模块、算法、硬件逻辑和/或(一个或多个)操作。
附图说明
参考附图来描述详细描述。在附图中,附图标记最左边的(一个或多个)数字标识该附图标记首次出现的附图。不同附图中的相同附图标记指示相似或相同的项目。对多个项目中的个体项目的引用能够使用带有字母序列中的字母的附图标记来指代每个个体项目。对项目的通用引用可以使用不带字母序列的特定附图标记。
图1A是用于显示空任务列表的任务应用的用户界面的屏幕截图。
图1B是图1A的用户界面的屏幕截图,其示出了用于向任务应用提供输入信号的机制的一个示例性实施例。
图1C是用户界面的屏幕截图,其示出了基于指示任务的输入信号对排名应用的推荐。
图1D是图1C的用户界面的屏幕截图,其示出了基于对输入信号的更新来对应用的排名进行更新。
图1E是图1C的用户界面的屏幕截图,其示出了基于对输入信号的额外更新对应用的推荐的更新。
图1F是图1C的用户界面的屏幕截图,其示出了对输入信号的额外更新。
图1G是图1A的用户界面的屏幕截图,其图示了对任务列表的更新。
图1H是用于执行任务列表上的任务项的选定应用的用户界面的屏幕截图。
图2A是用于显示推荐的用户界面的屏幕截图,所述推荐包括响应于包括单个词语的用户输入而显示的可用应用的列表。
图2B是图2A的用户界面的屏幕截图,其示出了响应于额外用户输入而显示的可用应用列表的更新。
图2C是用户界面的屏幕截图,其示出了响应于对在推荐中显示的应用的选择而显示的任务项。
图2D图示了能够与任务项相关联地生成的任务数据的一个示例。
图2E图示了用于执行在图2D中示出的任务项中的任务的应用的用户界面的示例。
图3A是用于显示推荐的用户界面的屏幕截图,所述推荐包括响应于包括单个词语的用户输入而显示的可用应用的列表。
图3B是在图3A中所示的推荐的用户界面的屏幕快照,其示出了响应于额外用户输入而对显示的应用列表的更新。
图3C是用户界面的屏幕截图,其示出了响应于对在推荐中所显示的应用的选择而显示的任务项。
图4A图示了显示应用的有序列表的推荐。
图4B图示了能够如何基于用户活动随时间更新图4A的应用的有序列表。
图5是示出了用于启用在本文中所公开的技术的例程的各方面的流程图。
图6是计算机架构图,其图示了用于能够实现在本文中所提出的技术和技艺的各方面的计算系统的说明性计算机硬件和软件架构。
图7是图示能够实现在本文中所提出的技术和技艺的各方面的分布式计算环境的图。
图8是计算机架构图,其图示了用于能够实现在本文中所提出的技术和技艺的各方面的计算设备的计算设备架构。
具体实施方式
在本文中所公开的技术使得计算机系统能够通过基于用户输入信号自动化和/或推荐动作而辅助用户朝着完成待执行的任务前进。所述输入信号能够包括语音输入、文本输入或者任何其他类型的输入,包括指示任务的短语。所述输入信号能够由系统进行解读以识别用户的意图。基于用户的意图,所述系统能够生成定义多个可用动作以完成任务的数据。然后,所述设备能够为用户自动地执行动作,或者生成一个或多个推荐以指导用户手动地完成任务。在本文中所公开的技术还能够识别最适合于完成识别出的任务的上下文相关应用。例如,用户可以具有若干消息传送应用,例如,用于个人消息的第一应用、用于工作消息的第二应用、以及用于志愿者工作的第三应用。基于用户输入的上下文以及由一个或多个机器学习引擎使用的其他历史数据,系统能够推荐适合的应用,或者提供适合于完成识别出的任务的可用应用的排名。
应当意识到,在本文中所描述的主题可以被实现为计算机控制的装置、计算机过程、计算系统、或者诸如计算机可读存储介质的制品。除了许多其他益处之外,在本文中所描述的技术相对于广泛的计算资源改善了效率。例如,由于使用在本文中所公开的技术使得用户能够理解能够用于特定任务的应用,因此可以改善与设备的人机交互。在本文中所公开的技术还能够显示能够用于执行特定任务的最佳应用。这样的特征提供了对现有系统的改进,因为用户可以发现用于执行任务的更优化的应用或服务,其能够节省许多计算资源,包括网络带宽、处理能力、存储器使用等。还能够根据在本文中所公开的技术的实现方式实现处理在本文中所提到的那些之外的技术效果。
现在转向图1A-1H,使用多个屏幕截图来说明利用在本文中所公开的技术的示例性场景。该示例涉及用户与移动设备进行交互的场景。尽管在该示例中使用了移动设备,但是能够意识到,在本文中所公开的技术能够应用于任何计算设备(诸如图6中的计算设备600、图7中的客户端设备706、以及图8所示的计算设备800),诸如平板计算机、膝上型计算机等。在该示例中,用户与任务应用进行交互以生成任务项。可以基于用户输入信号来向用户推荐应用。尽管使用推荐的应用来说明本公开的各方面,但是能够意识到,在本文中所公开的技术能够推荐服务和/或对服务进行排名,其可以在本地设备或远程设备或者其他类型的软件模块(诸如插件、脚本、宏命令等)上执行。如在对应的图中所示并且如下文所描述的,基于输入信号和其他上下文数据来动态地推荐应用并且对其进行排名。
图1A是显示任务列表102的用户界面101的屏幕截图。为了将任务项添加到任务列表102,用户能够选择“添加任务”图形元件。响应于该选择,如在图1B中所示的,所述设备显示文本字段103和推荐字段104。
如在图1C中所示的,用户开始提供输入信号。在该说明性示例中,用户输入词语“撰写”。响应于接收到该输入信号,计算设备分析该词语以确定用户的意图。在一些配置中,词语“撰写”和其他关键字能够与一个或多个应用相关联。通过关键字与一个或多个应用之间的关联,计算设备能够选择并且推荐适合于执行与给定词语相关联的任务的多个应用。如在本文中所公开的,所选择的应用作为推荐被提供给用户。
在一些配置中,根据置信度分数对所选择的应用进行排名。能够使用多个因素来确定置信度分数。例如,置信度分数能够基于输入信号中提供的关键字。另外,置信度分数能够基于指示用户活动的历史数据。历史数据可以描述用户已经选择了特定应用的次数,或者用户已经选择了与特定关键字相关联地特定应用的次数。能够利用其他上下文数据和任何适合的机器学习算法来确定针对每个个体应用的置信度分数。能够基于置信度分数对个体应用进行排名。
在图1C中所示的示例中,基于置信度分数对推荐的应用进行排名;具有最高置信度分数的应用位于左侧,之后是由置信度分数排列的应用,具有最低置信度分数的应用位于右侧。在该示例中,在由用户输入单个词语的情况下,推荐字段104列出了应用的排名次序:Outlook 111A、Gmail 111B、Word 111C和OneNote 111D。
如上所述,能够基于从用户接收到的信号来动态地更新推荐字段104。图1D图示了推荐字段104的动态性质。当用户提供经更新的信号时,在这种情况下,当用户向词语“撰写”添加词语“电子邮件”时,推荐被动态地更新。如所示的,在给定经更新的短语“撰写电子邮件”的情况下,推荐字段104仅示出上下文相关的推荐。现在,推荐字段仅列出Outlook和Gmail。因此,在一些配置中,某些关键字能够被用作过滤器,以从推荐字段104中去除应用。
本示例在图1E处继续,其中,基于输入信号和上下文信息来进一步更新推荐。当用户继续向文本字段103添加文本时,例如,用户向短语添加姓名“撰写电子邮件给Ben”。在该示例中,假定Ben是同事,因此选择了公司或企业电子邮件应用,诸如Outlook。因此,某些应用,诸如Gmail应用,能够被归类为用于个人联系人或个人用途的应用,而其他应用,诸如Outlook,能够被用于工作联系人或工作目的。因此,响应于识别出被识别为同事的名字,如在图1E中所示的,推荐字段104被更新为仅示出Outlook应用。在该示例中,如果要在输入信号中包括个人联系人的姓名,则Gmail应用可能被排名更高,并且位于Outlook应用的左侧。
本示例在图1F处继续,其中,用户继续添加到文本字段103。在该示例中,用户通过添加“RE设计”来完成输入信号,并且完成了短语“撰写电子邮件给Ben RE设计”。在接收到输入信号后,将动态地解析输入信号并且识别关键字。如上文所描述的,与一个或多个应用相关联的关键字能够改变推荐,并且其他关键字能够被用于填充选定应用的数据字段。如下文所描述的,图1F中提供的额外文本被用于填充选定应用中的字段。
在本示例中,用户能够通过在推荐字段104中选择任何一个推荐应用而将任务项添加到任务列表中。在图1F中所示的示例中,用户选择Outlook图标以发起任务项的生成。图1G示出了任务列表102,任务列表102包括响应于对在图1F所示的outlook图标的选择而生成的任务项112。能够通过重复上文所描述的步骤而将额外任务项112添加到任务列表102中。
为了完成在任务列表102中列出的任务项112,用户能够选择任务项112。响应于该选择,如在图1H中所示的,计算设备执行所选择的应用。在本示例中,执行Outlook并且显示新的电子邮件消息用户界面。如上文所描述的,来自输入信号的选定关键字以及从一个或多个资源取回的其他补充数据能够被用于填充字段。例如,能够从地址簿、数据库等中取回与在输入信号中包含的名称相关联的电子邮件地址。同样在该示例中,来自输入信号中的某些关键字(诸如词语“设计”)能够被包含在主题字段中。电子邮件的正文中能够包含其他数据,诸如问候语或其他文本。还能够分析输入信号的关键字和其他用户活动,以确定用户的意图。例如,如果用户已经在处理与“设计”相关的文件,则这些文件可以自动地附加到电子邮件或在电子邮件正文中引用。在其他实施例中,相关的文件也能够与诸如“附加相关文件”等的动作一起显示为对用户的推荐。
图2A至图2E图示了利用在本文中所公开的技术的另一种用户场景。如在图2A中所示的,示例性输入信号包括词语“撰写”。响应于该输入,计算设备显示与输入的关键字相关的多个应用:Outlook、Gmail、Word和OneNote。如在图2B中所示的,用户继续输入文本并且提供输入“撰写简历”。作为响应,计算设备在输入短语时显示与输入的短语有关的所有应用。计算设备动态地分析该短语以确定关联的应用,在该示例中,所述应用包括将关联的应用缩小到Word和OneNote。在一些配置中,在这种场景中能够对应用重新排序。因此,取代让Outlook和Gmail应用从推荐中消失,经更新的列表能够对应用进行重新排序,以使得Word和OneNote应用被排名为优先级较高的应用,例如,其被定位为指示较高的排名,并且Gmail和Outlook应用被排名为较低优先级的应用。
在该示例中,假定用户选择了Word应用。响应于接收在图2B中对Word应用的用户选择,计算设备能够如在图2C中所示利用任务项112来更新任务列表102。如所示的,任务项112能够包括对所选择的应用的指示以及输入信号的一个或多个方面。
如上文所描述的,当生成任务项112时,计算设备能够生成任务数据,所述任务数据定义用于完成任务的一个或多个动作。图2D图示了包括动作列表251的一些示例性任务数据250的一部分。如所示的,任务数据250包括多个动作,诸如执行Word应用、打开简历模板、取回用户联系人信息、在地址头部填充用户联系人信息等。能够基于由用户提供的输入信号、用户历史数据和/或从一个或多个资源取回的上下文数据来生成这样的动作。任务数据250能够是任何合适的格式,其可以包括脚本、代码、宏命令或者定义用于完成任务的计算机实现的动作的任何其他指令。因此,当用户从任务列表102中选择任务项112时,计算设备可以执行在任务数据250中定义的动作。
在本示例中,当用户选择在图2C中所示的任务项112时,能够执行任务数据250中定义的动作。任务数据250的执行能够促使显示具有如在图2E中所示的预填充的字段的Word文件。
图3A至图3C图示了另一示例性场景,所述场景示出了推荐的动态性质。在该示例中,如在图3A中所示的,用户可以提供指示词语“ping”的输入信号。假定该词语能够与多个应用相关联地使用,可以推荐若干应用。在该示例中,响应于包括单个词语“ping”的输入信号,显示了适合于执行“ping”的多个应用。在该示例中,所述推荐包括应用的排名列表:Outlook、Gmail、电话应用、Skype和浏览器。
随着用户继续向计算设备提供输入,应用的排名列表基于用户的意图而动态地改变,这能够通过对输入信号和在本文中所描述的其他上下文数据进行分析来确定。在图3B的示例中,当短语包括“Ping Cindy”时,推荐字段104仅包括电话应用和Skype。这样的更新能够基于多个因素。例如,历史用户活动数据能够指示用户在过去曾使用这些应用与该特定联系人Cindy进行通信。应用的排名能够基于用户利用每个应用的实例的次数。例如,在图3B的示例中,电话应用的排名可以比Skype应用更高,因为针对该特定联系人Cindy,电话应用可能具有更高的使用次数和/或更高的出现次数。因此,Skype应用可以为另一联系人排名更高。例如,响应于对“Ping Michael”的输入信号,如果与电话应用相比使用Skype应用的次数超过阈值次数,则任务应用可以将Skype应用排在电话应用之上。机器学习引擎能够处理使用应用的次数的阈值和/或比较,用于确定针对每个应用的置信度分数和/或每个应用的排名。
当信号包括与两种不同类别的应用相关联的对象或联系人姓名时,能够使用从接收到的上下文数据中导出的一个或多个因素来确定应用的置信度分数或排名。例如,如果输入信号中包括姓名Cindy,并且碰巧在用户家庭中有第一个Cindy而在用户的办公室中有第二个Cindy,则能够使用一个或多个因素来确定适当的应用。在一个特定示例中,能够使用一天中的时间或日期来确定应用的置信度分数或排名。例如,如果用户在工作时间期间创建任务,则任务应用可以确定用户打算与他或她的同事联系。在这种情况下,企业应用(诸如Skype)可以被评分或排名高于电话应用。然而,如果用户在晚上时间期间创建任务,则任务应用可以确定用户打算与他或她的家人联系。在这种情况下,个人应用(诸如电话应用)可以被评分和排名高于企业应用(诸如Skype)。能够将相同的方法用于其他上下文数据,诸如一周中的一天、位置等。例如,如果在用户工作时创建任务,则Skype可以被评分或排名高于电话应用,而如果任务是在用户在家时创建的,则电话应用可以被评分或排名高于企业应用(诸如Skype)。
每个应用还可以与类别相关联,例如,个人使用、办公使用等。此外,每个联系人姓名可以与至少一个类别相关联。因此,当联系人姓名被包含在输入信号中时,与联系人姓名共享相同类别的应用可以比其他应用具有更高的置信度分数。同时,其他因素(诸如一天中的时间、日期、一周中的一天、用户的位置、或者描述与用户相关的任何场景的上下文数据)能够与类别相关联。当输入信号指示这些因素中的任何一个因素时,与这些因素共享相同类别的应用可以比其他应用具有更高的置信度分数。
如在图3C中所示的,计算设备能够生成任务项112以“Ping Cindy”,并且所述任务项被显示在任务列表102上。可以响应于对推荐字段104中列出的特定应用的用户选择而生成所述任务项,或者可以自动地选择排名最高的应用,其可以在显示推荐之后的预定时间段之后发生。在该示例中,用户已经选择了在推荐字段104中示出的Skype应用。响应于该选择,Skype应用与任务相关联,并且与任务项112相关联地显示。
所述计算设备还能够生成将任务项112与所选择的应用(例如,Skype)相关联的任务数据。所述计算设备还可以生成和处理任务数据,所述任务数据包括能够被用于执行在任务项112中定义的任务的多个动作。例如,任务数据能够被用于使得计算设备取回电话号码、标识符或者进行呼叫或者生成文本消息所需的任何其他信息,并且这样的信息能够与任务项相关联地存储。因此,当用户选择任务项112时,计算设备能够利用取回的信息来执行任务。在该示例中,任务应用可以促使执行Skype应用,并且在Skype应用内填充一个或多个字段,以促进呼叫或者向特定用户生成消息。在该示例中,从电话簿或另一数据库中取回Cindy的联系信息,并且所述联系信息可以被存储在任务数据中。
图4A和图4B图示了应用的排名能够如何随时间变化。图4A示出了具有应用的排名列表的推荐列表。在该示例中,可以基于输入信号和/或其他上下文数据中的关键字来通过置信度分数对应用进行排名。如上文所描述的,当用户活动数据不断被动态地更新时,排名列表可以随时间变化。因此,在用户已经对应用进行了阈值数量的选择并由此改变了该应用的置信度分数之后,该特定应用相对于排名列表中的其他应用被显示的次序可以随时间变化。这样的实施例能够使用机器学习引擎来存储和分析用户历史活动数据,以更新置信度分数并且确定何时要更新应用推荐的次序。
在本示例中,假定第二应用已经被选择了阈值次数。当基于由一个或多个机器学习引擎生成的用户活动数据,第二应用(Gmail 111B应用)被选择了阈值次数时,与第二应用相关联的置信度分数可以增加到第二应用被列为最高优先级的阈值级别,如在图4B中所示的。
能够通过使用多个不同的因素来确定置信度分数。例如,可以通过分析短语和/或用户活动数据(“历史数据”)中的关键字来确定置信度分数。在一些配置中,可以使用机器学习技术来分析用户的活动历史,例如,过去曾针对特定任务使用过哪些应用。当用户与计算机交互时,通过一种或多种机器学习技术来存储和分析用户活动数据。
术语“机器学习”可以指代从其接收的数据中学习的一个或多个程序。例如,机器学习机制可以构建、修改或者以其他方式利用从示例性输入创建的模型,并且使用所述模型进行预测或决策。在当前示例中,机器学习机制可以被用于改善与用户的意图和/或情况相关的应用的识别。能够使用不同的因素来影响对应用的选择和/或排名,诸如用户已经使用应用的次数、用户最近已经使用应用的时间等。另外,能够利用机器学习技术基于在本文中所引用的任何条件数据来确定用户的意图。因此,与短语中包括的对象和/或人相关的活动和环境能够被用于选择和/或排名应用,例如,确定置信度分数。
可以利用不同的机器学习机制。例如,可以利用分类机制来确定置信度分数。所述分类机制可以将应用、关键词或短语分类为不同类别,其提供对特定应用是否适合于任务的指示。置信度分数能够与每个应用相关联。在一些配置中,可以利用更多的分类类别。在其他示例中,可以利用统计机制来确定置信度分数。例如,可以利用线性回归机制来生成置信度分数,所述置信度分数指示应用与特定任务相关联的可能性。线性回归可以指代用于对一个变量与一个或多个其他变量之间的关系进行建模的过程。可以使用不同的线性回归模型来计算置信度分数。例如,可利用最小二乘法、可以利用最大似然估计、或者可以利用另一种方法。
现在转向图5,用于实现在本文中所公开的技术的例程500的各方面。应当理解,在本文中所公开的方法的操作不以任何特定幅次序呈现,并且能够并且设想到了以(一个或多个)替代的次序执行一些或全部操作。为了便于描述和说明,已经按演示的次序呈现了操作。在不背离所附权利要求的范围的情况下,可以添加、省略和/或同时执行操作。
还应当理解,所图示的方法能够在任何时间结束并且不需要整体地执行。能够通过执行被包含在计算机存储介质上的计算机可读指令来执行方法的一些或全部操作和/或基本等效的操作,如下文所定义的。如在说明书和权利要求书中所使用的术语“计算机可读指令”以及其变体在本文中被广泛使用以包括例程、应用、应用模块、程序模块、程序、组件、数据结构、算法等。计算机可读指令能够在各种系统配置上实现,包括单处理器或多处理器系统、小型计算机、大型计算机、个人计算机、手持式计算设备、基于微处理器的可编程消费者电子产品、其组合等。
因此,应当意识到,在本文中所描述的逻辑操作被实现为:(1)作为在计算系统上运行的计算机实现的动作或程序模块的序列,和/或(2)作为在计算系统内的互连机器逻辑电路或电路模块。该实现方式是取决于计算系统的性能和其他要求的选择问题。因此,在本文中所描述的逻辑操作被不同地称为状态、操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以以软件、固件、专用数字逻辑以及其任何组合来实现。
例如,例程500的操作在本文中被描述为至少部分地由运行在本文中所公开的特征的模块来实现,并且能够是动态链接库(DLL)、静态链接库、由应用编程接口(API)产生的功能、编译程序、解释程序、脚本或者任何其他可执行指令集。能够将数据存储在一个或多个存储器组件中的数据结构中。能够通过针对数据结构的寻址链接或引用来从数据结构中取回数据。
尽管以下图示参考了附图的组件,但是能够意识到,例程500的操作也可以以许多其他方式来实现。例如,例程500可以至少部分地由另一远程计算机的处理器或本地电路来实现。另外,例程500的一个或多个操作可以替代地或另外地至少部分地由单独工作或者与其他软件模块结合工作的芯片组来实现。在下文所描述的示例中,计算系统的一个或多个模块能够接收和/或处理在本文中所公开的数据。适合于提供在本文中所公开的技术的任何服务、电路或应用都能够被用于在本文中所描述的操作。
参考图5,例程500在操作501处开始,其中,计算系统的一个或多个模块从一个或多个设备接收输入信号。所述输入信号能够包括语音输入、文本输入或者包括指示任务的短语的任何其他类型的输入。因此,捕获输入信号的设备能够包括键盘、相机、麦克风或者能够捕获用户手势的任何其他设备。在一个说明性示例中,家用设备(诸如Google Home或Amazon Echo)能够提供用于处理的输入信号。这样的信息能够在服务器处记录并且被传输给远程设备,诸如移动电话、平板计算机或者任何其他类型的个人计算机。
接下来,在操作503处,计算系统的一个或多个模块能够解析输入信号以识别指示任务的短语。例如,能够使用一种或多种机器学习算法来解读输入信号的文本以识别任务。指示任务的短语可以包括动词,诸如撰写、发送、设置等。技术能够解析与该动词相关联的对象,诸如人的姓名。指示任务的短语能够是例如“发电子邮件给Bob”或“呼叫Steve”等。
在操作503处,计算系统还能够取回与短语相关的补充数据。例如,如果短语中包含人的姓名,则计算系统可以分析多个不同的数据库,包括用户的联系人列表,以获得人的姓氏、电子邮件地址、地址信息等。计算系统还可以取回其他相关的数据,诸如日历数据、组织数据等。这样的信息能够被用于相对于与短语相关的人或对象来确定额外的上下文。例如,组织数据或日历数据能够被用于确定人是工作联系人还是个人联系人。
接下来,在操作505处,计算系统的一个或多个模块能够选择适合于执行任务的一个或多个应用。例如,如果短语包括词语“撰写”或“发送”,则计算系统可以选择多个应用,诸如文字处理应用、电子邮件应用、无应用等。在一些实现方式中,特定任务可以与应用类别相关联。可以在操作505处选择该类别中的每个应用。还可以通过使用包括用户历史信息的上下文数据来选择应用。例如,如果用户已经提供了短语“发送消息”作为输入,并且在过去用户已经使用了发短信应用,则可以在操作505处选择发短信应用以及其他应用,诸如电子邮件应用、web浏览器等。
接下来,在操作507处,计算设备的一个或多个模块能够确定针对个体应用的置信度分数。所述置信度分数能够通过使用多个不同因素来确定。例如,可以通过对短语和用户活动数据(“历史数据”)中的关键字的分析来确定置信度分数。在操作507处,也能够使用一种或多种机器学习算法。
例如,可以利用机器学习技术来分析用户的活动历史,例如,过去曾针对特定任务使用过哪些应用。当用户与计算机进行交互时,用户活动数据通过一种或多种机器学习技术进行存储和分析。术语“机器学习”可以指代从其接收到的数据中学习的一个或多个程序。例如,机器学习机制可以构建、修改或者以其他方式利用从示例性输入创建的模型,并且使用该模型进行预测或决策。在当前示例中,机器学习机制可以被用于改善对与用户的意图和/或情况相关的应用的识别。能够使用不同的因素来影响对应用的选择和/或排名,诸如用户使用应用的次数、用户最近使用应用的时间等。另外,能够利用机器学习技术基于在本文中所引用的任何条件数据来确定用户的意图。因此,与短语中所包含的对象和/或人相关的活动和环境能够被用于选择和/或排名应用,例如确定置信度分数。
可以利用不同的机器学习机制。例如,可以利用分类机制来确定置信度分数。分类机制可以将应用、关键词或短语分类为不同类别,其提供对特定应用是否适合于任务的指示。置信度分数能够与每个应用相关联。在一些配置中,可以利用更多的分类类别。在其他示例中,可以利用统计机制来确定置信度分数。例如,可以利用线性回归机制来生成置信度分数,所述置信度分数指示应用与特定任务相关联的可能性。线性回归可以指代一种对一个变量与一个或多个其他变量之间的关系进行建模的过程。可以使用不同的线性回归模型来计算置信度分数。例如,可以利用最小二乘法、可以利用最大似然估计、或者可以利用另一种方法。
接下来,在操作509处,计算设备的一个或多个模块能够基于每个应用的置信度分数来显示推荐的排名列表。在图1C中示出了排名列表的一个示例。在该示例中,所述排名列表对应用进行排序,其中,具有最高置信度分数的应用被布置在用户界面的左侧,而其他应用则由置信度分数排序,其中,具有最低置信度分数的应用被布置在用户界面的最右侧。置信度分数也能够与每个应用一起显示。另外,能够显示具有满足阈值的置信度分数的一些应用,并且不显示不满足阈值的其他应用。
接下来,在操作511处,响应于对应用的用户选择,计算设备的一个或多个模块能够利用任务项来更新任务列表。在图1F中示出了一个说明性示例,其中,用户选择了Outlook图标,并且响应于这样的选择,在图1G中示出的任务列表被以新的任务项112更新。任务项112能够包括捕获的短语和所选择的应用(例如,Outlook)的图形指示符的列表。
在操作511处,响应于对任务项112的用户选择,计算设备可以执行所选择的应用以执行任务。计算设备还可以填充应用的一个或多个数据字段,以辅助用户完成任务。可以利用补充的数据或者从在输入信号中提供的短语收集到的数据来填充字段。
在一个说明性示例中,例程500能够包括在计算设备处接收输入信号的操作。例程500还能够包括解析输入信号以识别指示任务的短语。任务能够包括计算设备能够执行的任何类型的数据操纵或数据处理,诸如发送电子邮件、发送消息、生成文档等。例程500还能够包括选择适合于执行任务的多个应用的操作。这些应用能够包括应用、脚本、服务、基于Web的服务、本地服务、脚本或者用于处理数据的任何其他代码。例程500还能够包括基于短语中的关键字来确定多个应用中的个体应用的置信度分数的操作。取决于多个因素,例如,自用户使用特定应用以来已经经过的时间段、自用户利用应用来联系特定用户以来已经经过的时间段、与输入信号中的关键字类别相比的应用类别等,置信度分数能够较高或较低。
所述例程能够包括基于针对个体应用的置信度分数来生成多个应用的排名列表,并且在与计算设备通信的显示屏上显示推荐多个应用的排名列表,其中,个体应用在排名列表中的次序基于相关联的置信度分数。
在一些配置中,计算机能够从应用的排名列表中接收对所选择的应用的用户选择。在一些配置中,能够由计算设备基于置信度分数与阈值的比较来进行对应用的选择。在一些配置中,基于置信度分数,对应用的选择能够包括排名最高的应用。响应于对所选择的应用的选择,例程能够包括更新任务列表以包括提供对任务的描述和所选择的应用的指示的任务项,其中,对任务列表的选择促使所选择的应用的执行。在一些配置中,所述例程能够包括接收任务项的选择,并且在其他配置中,所述选择能够是自动化的。响应于对任务项的选择,所述例程能够包括为了完成任务而执行所选择的应用。应用的字段能够由从输入信号或者从上下文数据或补充数据导出的数据来填充。在一些配置中,所述例程能够包括其中计算机能够基于任务项的个体动作来激活所选择的应用的功能的操作。例如,在任务项中定义的动作能够指导所选择的应用以利用打开模板文档或模板电子邮件的应用的功能。所述功能能够包括使用任何特征,例如,剪切、粘贴、格式化功能、打开特定窗口(诸如新电子邮件草稿)、或者能够由宏命令、脚本、远程应用、源代码、插件、加载项等控制的任何其他应用功能。
图6示出了能够执行在本文中所描述的程序组件的计算机(诸如计算设备106(图1))的示例性计算机架构600的额外细节。因此,图6所图示的计算机架构600图示了用于服务器计算机、移动电话、PDA、智能电话、台式计算机、上网本计算机、平板计算机和/或膝上型计算机(在图6未示出)的示例性架构。计算机架构600可以被用于执行在本文中所提出的软件组件的任何方面。
图6中所示的计算机架构600包括中央处理单元602(“CPU”)、系统存储器604(包括随机存取存储器606(“RAM”)和只读存储器(“ROM”)608)、以及将存储器604耦合到CPU 602的系统总线610。包含帮助在计算机架构600内的元件之间(诸如在启动期间)传递信息的基本例程的基本输入/输出系统被存储在ROM 608中。计算机架构600还包括大容量存储设备612,其用于存储操作系统607、其他数据以及一个或多个应用程序(诸如任务应用141)。
大容量存储设备612通过连接到总线610的大容量存储控制器(图6中未示出)连接到CPU 602。大容量存储设备612以及其相关联的计算机可读介质为计算机架构600提供了非易失性存储装置。尽管在本文中所包含的计算机可读介质的描述指代大容量存储设备,诸如固态驱动器、硬盘或CD-ROM驱动器,但是本领域技术人员应当意识到,计算机可读介质能够是计算机架构600能够访问的任何可用的计算机存储介质或通信介质。
通信介质包括计算机可读指令、数据结构、程序模块或者在经调制的数据信号(诸如载波或其他传输介质)中的其他数据,并且包括任何输送介质。术语“经调制的数据信号”意指具有以编码信号中的信息的方式改变或设置其一个或多个特性的信号。通过示例而非限制,通信介质包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声学、RF、红外和其他无线介质之类的无线介质。上述任一项的组合也应当被包含在计算机可读介质的范围之内。
通过示例而非限制,计算机存储介质可以包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。例如,计算机介质包括但不限于RAM、ROM、EPROM、EEPROM、闪存或者其他固态存储技术、CD-ROM、数字多功能磁盘(“DVD”)、HD-DVD、蓝光、或者其他光学存储装置、盒式磁带、磁带、磁盘存储或其他磁性存储设备,或者能够被用于存储所需的信息并且能够由计算机架构600访问的任何其他介质。为了权利要求,短语“计算机存储介质”、“计算机可读存储介质”以及其变型本身并不包括波、信号和/或其他瞬态和/或无形通信介质。
根据各种配置,计算机架构600可以使用通过网络656和/或另一网络(未示出)到远程计算机的逻辑连接在联网环境中操作。计算机架构600可以通过连接到总线610的网络接口单元614连接到网络656。应当意识到,网络接口单元614也可以被用于连接到其他类型的网络和远程计算机系统。计算机架构600还可以包括输入/输出控制器616,其用于接收和处理来自多个其他设备的输入,包括键盘、鼠标或电子触笔(图6中未示出)。类似地,输入/输出控制器616可以将输出提供给显示屏、打印机或其他类型的输出设备(在图6中也未示出)。
应当意识到,当在本文中所描述的软件组件被加载到CPU 602中并且被执行时,可以将CPU 602和整个计算机架构600从通用计算系统转换为被定制为促进在本文中提出的功能的专用计算系统。CPU 602可以由任意数量的晶体管或其他分立电路元件构成,其可以单独地或共同地呈现任意数量的状态。更具体而言,响应于包含在本文中所公开的软件模块内的可执行指令,CPU 602可以用作有限状态机。这些计算机可执行指令可以通过指定CPU 602如何在各状态之间转换来对CPU 602进行转换,由此对构成CPU 602的晶体管或者其他分立的硬件元件进行转换。
对在本文中所提出的软件模块进行编码也可以转换在本文中所提出的计算机可读介质的物理结构。在本说明书的不同实现方式中,物理结构的具体转换可以取决于各种因素。这样的因素的示例可以包括但不限于用于实现计算机可读介质的技术,无论计算机可读介质被表征为主要存储装置还是次要存储装置等。例如,如果计算机可读介质被实现为基于半导体的存储器,则可以通过转换半导体存储器的物理状态来在计算机可读介质上编码在本文中所公开的软件。例如,所述软件可以转换构成半导体存储器的晶体管、电容器或其他分立电路元件的状态。所述软件还可以转换这样的组件的物理状态,以便在其上存储数据。
作为另一示例,可以使用磁性或光学技术来实现在本文中所公开的计算机可读介质。在这样的实现方式中,当在其中编码软件时,在本文中所呈现的软件可以转换磁性或光学介质的物理状态。这些转换可以包括改变给定磁性介质内的特定位置的磁性特性。这些转换还可以包括改变给定光学介质内的特定位置的物理特征或特性,以改变那些位置的光学特性。在不背离本说明书的范围和精神的情况下,物理介质的其他转换是可能的,所提供的前述示例仅仅是为了促进该讨论。
鉴于以上内容,应当意识到,在计算机架构600中发生了许多类型的物理转换,以便存储和执行在本文中提出的软件组件。还应当意识到,计算机架构600可以包括其他类型的计算设备,包括手持计算机、嵌入式计算机系统、个人数字助理、以及本领域技术人员已知的其他类型的计算设备。还设想到了,计算机架构600可以不被包括在图6中所示的所有组件,可以包括在图6中未明确示出的其他组件,或者可以利用与在图6中所示的架构完全不同的架构。
图7描绘了能够执行在本文中所描述的软件组件的说明性分布式计算环境700。因此,在图7中所图示的分布式计算环境700能够被用于执行在本文中所提出的软件组件的任何方面。例如,分布式计算环境700能够被用于执行在本文中所描述的软件组件的各方面。
根据各种实现方式,分布式计算环境700包括在网络704上、与其通信或者作为其一部分操作的计算环境702。网络704可以是或者可以包括网络656,上文参考图6进行了描述。网络704还能够包括各种接入网络。一个或多个客户端设备706A-706N(以下被统称为和/或一般称为“客户端706”,并且在本文中也被称为计算设备,其生成在本文中所描述的用户界面)能够经由网络704和/或其他连接(在图7中未图示)与计算环境702进行通信。在一个图示的配置中,客户端706包括诸如膝上型计算机、台式计算机或其他计算设备的计算设备706A;板式或平板计算设备(“平板计算设备”)706B;移动计算设备706C,诸如移动电话、智能电话或其他移动计算设备;服务器计算机706D;和/或其他设备706N。应当理解,任何数量的客户端706都能够与计算环境702进行通信。在本文中参考图5和图7图示和描述了针对客户端706的两个示例性计算架构。应当理解,在本文中图示和描述的客户端706和计算架构是示例性的,并且不应当被解释为以任何方式受到限制。每个客户端706能够被用于收集输入信号并且在不同客户端之间对其进行共享。
在所图示的配置中,计算环境702包括应用服务器708、数据存储装置710和一个或多个网络接口712。根据各种实现方式,应用服务器708的功能能够由一个或多个服务器计算机提供,所述服务器计算机作为网络704的一部分或者与网络704通信而执行。应用服务器708能够托管各种服务、虚拟机、门户和/或其他资源。在所图示配置中,应用服务器708托管一个或多个虚拟机714,其用于托管应用或其他功能。根据各种实现方式,虚拟机714托管一个或多个应用和/或软件模块,以使得能够根据生产力应用生成内容。应当理解,该配置是说明性的,并且不应当以任何方式被解释为限制性的。应用服务器708还托管或者提供对一个或多个门户、链接页面、网站和/或其他信息(“网络门户”)716的访问。
根据各种实现方式,应用服务器708还包括一个或多个邮箱服务718以及一个或多个消息传送服务720。邮箱服务718能够包括电子邮件(“电子邮件”)服务。邮箱服务718还能够包括各种个人信息管理(“PIM”)和出席服务,其包括但不限于日历服务、联系人管理服务、协作服务和/或其他服务。消息传送服务720能够包括但不限于即时消息传送服务、聊天服务、论坛服务和/或其他通信服务。
应用服务器708还可以包括一个或多个社交网络服务722。社交网络服务722能够包括各种社交网络服务,包括但不限于:用于共享或发布状态更新、即时消息、链接、照片、视频和/或其他信息的服务;用于评论或显示对文章、产品、博客或其他资源的兴趣的服务;和/或其他服务。在一些配置中,社交网络服务722由FACEBOOK社交网络服务、LINKEDIN专业网络服务、MYSPACE社交网络服务、FOURSQUARE地理网络服务、YAMMER办公室同事网络服务等提供或者包括这些服务。在其他配置中,社交网络服务722由其他服务、站点和/或者提供者来提供,这些服务、站点和/或者提供者可能被明确地称为或不称为社交网络提供者。例如,一些网站允许用户在各种活动和/或上下文(诸如阅读已发布的文章、对商品或服务进行评论、发布、协作、游戏等)期间经由电子邮件、聊天服务和/或其他方式彼此交互。这样的服务的示例包括但不限于,来自Redmond,Washington的Microsoft Corporation的WINDOWSLIVE服务和XBOX LIVE服务。其他服务也是可能的并且被设想到。
社交网络服务722还能够包括评论、博客和/或微博服务。这样的服务的示例包括但不限于YELP评论服务、KUDZU回顾服务、OFFICETALK企业微博服务、TWITTER消息传送服务、GOOGLE BUZZ服务和/或其他服务。应当意识到,以上服务列表不是穷举的,并且为简洁起见,在此未提及许多额外和/或替代社交网络服务722。这样,以上配置是说明性的,并且不应当被解释为以任何方式进行限制。根据各种实现方式,社交网络服务722可以托管一个或多个应用和/或软件模块,以提供在本文中所描述的功能,诸如使得能够根据多个应用生成内容。例如,任何一个应用服务器708可以通信或促进在本文中所描述的功能和特征。例如,在电话或者任何其他客户端706上运行的社交网络应用、邮件客户端、消息传送客户端或浏览器可以与网络服务722通信并且促进功能,甚至部分地,参考图7的以上描述。在本文中所描绘的任何设备或服务能够被用作针对补充数据的资源,包括电子邮件服务器、存储服务器等。
如在图7中所示的,应用服务器708还能够托管其他服务、应用、门户和/或其他资源(“其他资源”)724。其他资源724能够包括但不限于文档共享、呈现或者任何其他功能。其他资源724还能够包括用于处理和生成历史用户活动数据的机器学习引擎。因此,能够意识到,计算环境702能够提供在本文中所公开的概念和技术与各种邮箱、消息传送、社交网络和/或其他服务或资源的集成。
如上文所提到的,计算环境702能够包括数据存储装置710。根据各种实现方式,数据存储装置710的功能由在网络704上操作或者与网络704通信的一个或多个数据库来提供。数据存储装置710的功能还能够由被配置为托管针对计算环境702的数据的一个或多个服务器计算机来提供。数据存储装置710能够包括、托管或者提供一个或多个真实或虚拟数据存储库726A-726N(以下统称为和/或一般称为“数据存储库726”)。数据存储库726被配置为托管由应用服务器708使用或创建的数据和/或其他数据。尽管在图7中未图示,但是数据存储库726还能够托管或存储网页文档、Word文档、演示文档、数据结构、用于由推荐引擎执行的算法、和/或由任何应用程序或另一模块所利用的其他数据。数据存储库726的各方面可以与用于存储文件的服务相关联。
计算环境702能够与网络接口712通信或者被网络接口712访问。网络接口712能够包括用于支持两个或更多个计算设备之间的通信的各种类型的网络硬件和软件,包括但不限于计算设备和服务器。应当意识到,网络接口712还可以被用于连接到其他类型的网络和/或计算机系统。
应当理解,在本文中所描述的分布式计算环境700能够为本文所描述的软件元件的任何方面提供能够被配置为执行在本文中所公开的软件组件的任何方面的任何数量的虚拟计算资源和/或其他分布式计算功能。根据在本文中所公开的概念和技术的各种实现方式,分布式计算环境700将本文描述的软件功能提供为对计算设备的服务。应当理解,计算设备能够包括真实或虚拟机,包括但不限于:服务器计算机、网络服务器、个人计算机、移动计算设备、智能电话和/或其他设备。这样,在本文中所公开的概念和技术的各种配置使被配置为访问分布式计算环境700的任何设备使得能够利用在本文中所描述的功能来提供在本文中所公开的技术以及其他方面。在一个特定示例中,如上所述,本文所述的技术可以至少部分地由网络浏览器应用实现,该网络浏览器应用与图7的应用服务器708协同工作。
现在转到图8,在此描述了用于能够执行各种软件组件的计算设备的说明性计算设备架构800,以使得能够从多个应用生成内容。计算设备架构800能应用于部分由于形状因子、无线连接和/或电池供电的操作而促进移动计算的计算设备。在一些配置中,计算设备包括但不限于移动电话、平板设备、板式设备、便携式视频游戏设备等。计算设备架构800能应用于图1和图7中所示的任何计算设备。此外,计算设备架构800的各方面可应用于常规的台式计算机、便携式计算机(例如,电话、膝上型计算机、笔记本、超便携式机和上网本)、服务器计算机以及其他计算机系统,诸如在本文中参考图1和图7所描述的那些系统。例如,本文下文所公开的单点触摸和多点触摸方面可以被应用于利用触摸屏或一些其他支持触摸设备的台式计算机,诸如支持触摸的跟踪板或支持触摸的鼠标。
图8中所图示的计算设备架构800包括处理器802、存储器组件804、网络连接组件806、传感器组件808、输入/输出组件810和功率组件812。在所图示的配置中,处理器802与存储器组件804、网络连接组件806、传感器组件808、输入/输出(“I/O”)组件810和功率组件812通信。尽管在图8中所图示的个体组件之间未示出连接,但是这些组件能够进行交互以执行设备功能。在一些配置中,组件被布置为经由一条或多条总线(未示出)进行通信。
处理器802包括中央处理单元(“CPU”),其被配置为处理数据,执行一个或多个应用程序的计算机可执行指令,以及与计算设备架构800的其他组件通信,以便执行在本文中所描述的各种功能。处理器802可以被用于执行在本文中所呈现的软件组件的各方面,并且具体是执行至少部分地利用支持触摸的输入的那些方面。
在一些配置中,处理器802包括图形处理单元(“GPU”),其被配置为加速由CPU执行的操作,包括但不限于,通过执行通用科学和/或工程计算应用执行的操作,以及图形密集型计算应用,诸如高分辨率视频(例如,720P、1080P和更高分辨率)、视频游戏、三维(“3D”)建模应用等。在一些配置中,处理器802被配置为与分立GPU(图8中未示出)通信。在任何情况下,都可以根据协处理CPU/GPU计算模型来配置CPU和GPU,其中,应用的顺序部分在CPU上执行,而计算密集型部分则由GPU加速。
在一些配置中,处理器802与下文描述的一个或多个其他组件一起是或包含于片上系统(“SoC”)中。例如,SoC可以包括处理器802、GPU、一个或多个网络连接组件806以及一个或多个传感器组件808。在一些配置中,处理器802部分地利用叠加封装(“PoP”)集成电路封装技术来制造。处理器802可以是单核或多核处理器。
处理器802可以根据可从Cambridge,United Kingdom的ARM HOLDINGS获得许可的ARM架构来创建。替代地,处理器802可以根据x86架构来创建,诸如能从Mountain View,California的INTEL CORPORATION以及其他获得。在一些配置中,处理器802是能从SanDiego,California的QUALCOMM获得的SNAPDRAGON SoC、能从Snta Clara,California的NVIDIA获得的TEGRA SoC、能从Seoul,South Koread的SAMSUNG获得的HUMMINGBIRD SoC、能从Dallas,Texas的TEXAS INSTRUMENTS获得的开放多媒体应用平台(“OMAP”)SoC,上述SoC的任何一个的定制版本或专有SoC。
存储器组件804包括随机存取存储器(“RAM”)814、只读存储器(“ROM”)816、集成存储存储器(“集成存储设备”)818和可移动存储存储器(“可移动存储设备”)820。在一些配置中,RAM 814或者其一部分、ROM 816或其一部分和/或RAM 814与ROM 816的某种组合被集成在处理器802中。在一些配置中,ROM 816被配置为存储固件、操作系统或者其一部分(例如,操作系统内核),和/或引导加载程序以从集成存储装置818和/或可移动存储装置820加载操作系统内核。
集成存储装置818能够包括固态存储器、硬盘、或者固态存储器与硬盘的组合。集成存储装置818可以被焊接或者以其他方式连接到逻辑板,在该逻辑板上还可以连接处理器802和在本文中所描述的其他组件。这样,集成存储装置818被集成在计算设备中。集成存储装置818被配置为存储操作系统或其部分、应用程序、数据和本文所描述的其他软件组件。
可移动存储装置820能够包括固态存储器、硬盘或者固态存储器与硬盘的组合。在一些配置中,提供可移动存储装置820替代集成存储装置818。在其他配置中,提供可移动存储装置820作为额外的可选存储装置。在一些配置中,可移动存储装置820在逻辑上与集成存储装置818相组合,使得总可用存储装置能用作总的组合存储容量。在一些配置中,向用户示出了集成存储装置818和可移动存储装置820的总组合容量,而不是针对集成存储装置818和可移动存储装置820的单独存储容量。
可移动存储装置820被配置为被插入到可移动存储存储器槽(图8中未示出)或其他机构中,通过该槽,可移动存储装置820被插入并且被固定以促进可移动存储装置820能够通过其与计算设备的其他组件(诸如处理器802)通信的连接。可移动存储装置820可以用各种存储卡格式来实现,包括但不限于:PC卡、CompactFlash卡、存储棒、安全数字(“SD”)、miniSD、microSD、通用集成电路卡(“UICC”)(例如,用户识别模块(“SIM”)或通用SIM(“USIM”))、专有格式等
能够理解,一个或多个存储器组件804能够存储操作系统。根据各种配置,所述操作系统包括但不限于:来自Redmond,Washington的Microsoft Corporation的WINDOWSMOBILE OS、来自Microsoft Corporation的WINDOWS PHONE OS、来自MicrosoftCorporation的WINDOWS、来自Palo Alto,California的Hewlett-Packard Company的PALMWEB OS、来自Waterloo,Ontario,Canada的Research In Motion Limited的BLACKBERRYOS、来自Cupertino,California的Apple Inc.的IOS、以及来自Mountain View,California的Google Inc.的ANDROID OS。设想到了其他操作系统
网络连接组件806包括无线广域网组件(“WWAN组件”)822、无线局域网组件(“WLAN组件”)824、以及无线个域网组件(“WPAN组件”)826。网络连接组件806促进与网络856或另一网络的通信,所述另一网络可以是WWAN、WLAN或WPAN。尽管仅图示了网络856,但是网络连接组件806可以促进与包括图6的网络656的多个网络的同时通信。例如,网络连接组件806可以促进经由一个或多个WWAN、WLAN或WPAN网络的多个网络的同时通信。
网络856可以是或者可以包括WWAN,诸如利用一种或多种移动电信技术以经由WWAN组件822利用计算设备架构800向计算设备提供语音和/或数据服务的移动电信网络。移动电信技术可以包括但不限于:全球移动通信系统(“GSM”)、码分多址(“CDMA”)ONE、CDMA7000、通用移动电信系统(“UMTS”)、长期演进(“LTE”)和全球微波访问互操作性(“WiMAX”)。此外,网络856可以利用各种信道接入方法(其可以由上述标准使用或不使用),包括但不限于:时分多址(“TDMA”)、频分多址(“FDMA”)、CDMA、宽带CDMA(“W-CDMA”)、正交频分复用(“OFDM”)、空分多址(“SDMA”)等。可以使用通用分组无线服务(“GPRS”)、全球演进的增强数据速率(“EDGE”)、包括高速下行链路分组接入(“HSDPA”)的高速分组接入(“HSPA”)协议族、增强型上行链路(“EUL”)或者以其他方式被称为高速上行链路分组接入(“HSUPA”)、演进型HSPA(“HSPA+”)、LTE和各种其他当前以及将来的无线数据访问标准,来提供数据通信。网络856可以被配置为利用以上技术的任何组合来提供语音和/或数据通信。网络856可以被配置为或适于根据未来代技术来提供语音和/或数据通信。
在一些配置中,WWAN组件822被配置为提供到网络856的双多模式连接。例如,WWAN组件822可以被配置为提供到网络856的连接,其中,网络856经由GSM和UMTS技术,或者经由其他一些技术组合,来提供服务。替代地,可以利用多个WWAN组件822来执行这样的功能,和/或者提供额外的功能以支持其他不兼容的技术(即,不能由单个WWAN组件支持)。WWAN组件822可以促进到多个网络(例如,UMTS网络和LTE网络)的类似连接。
网络856可以是根据一个或多个电气和电子工程师协会(“IEEE”)802.11标准(诸如IEEE 802.11a、802.11b、802.11g、802.11n)和/或将来的802.11标准(在本文中统称为WI-FI)运行的WLAN。还设想到了802.11标准草案。在一些配置中,利用一个或多个无线WI-FI接入点来实现WLAN。在一些配置中,一个或多个无线WI-FI接入点是连接到作为WI-FI热点的WWAN的另一计算设备。WLAN组件824被配置为经由WI-FI接入点连接到网络856。可以经由各种加密技术来保护这样的连接,这些加密技术包括但不限于:WI-FI保护访问(“WPA”)、WPA2、有线等效保密性(“WEP”)等。
网络856可以是根据红外数据协会(“IrDA”)、蓝牙、无线通用串行总线(“USB”)、Z-Wave、ZIGBEE或一些其他短程无线技术进行操作的WPAN。在一些配置中,WPAN组件826被配置为促进经由WPAN与诸如外围设备、计算机或其他计算设备之类的其他设备的通信。
传感器组件808包括磁力计828、环境光传感器830、接近度传感器832、加速计834、陀螺仪836以及全球定位系统传感器(“GPS传感器”)838。设想到了其他传感器,诸如但不限于,温度传感器或震动检测传感器也可以被并入在计算设备架构800中。
磁力计828被配置为测量磁场的强度和方向。在一些配置中,磁力计828向存储在存储器组件804之一中的罗盘应用程序提供测量,以便在参考系中向用户提供准确的方向,包括基本方向:北、南、东和西。可以向包括罗盘组件的导航应用程序提供类似的测量。设想到了由磁力计828获得的测量的其他用途。
环境光传感器830被配置为测量环境光。在一些配置中,环境光传感器830向存储在一个存储器组件804中的应用程序提供测量,以便自动地调节显示器的亮度(如下文所描述的)以补偿弱光和强光环境。设想到了由环境光传感器830获得的测量的其他用途。
接近度传感器832被配置为在没有直接接触的情况下检测在计算设备附近的物体或事物的存在。在一些配置中,接近度传感器832检测用户身体(例如,用户的面部)的存在,并且将该信息提供给存储在存储器组件804之一中的利用接近度信息来启用或禁用计算设备的一些功能的应用程序。例如,电话应用程序可以响应于接收到邻近度信息而自动地禁用触摸屏(如下文所描述的),使得用户的面部不会在通话期间无意地结束通话或者启用/禁用电话应用程序内的其他功能。设想到了由接近度传感器832检测到的接近度的其他用途。
加速度计834被配置为测量恰当的加速度。在一些配置中,来自加速度计834的输出被应用程序用作输入机制以控制该应用程序的一些功能。例如,所述应用程序可以是视频游戏,其中,响应于经由加速度计834接收到的输入来移动或者以其他方式来操纵角色、其一部分或对象。在一些配置中,将来自加速度计834的输出提供给应用程序,以用于在横向和纵向模式之间切换、计算坐标加速度、或检测跌倒。设想到了加速度计834的其他用途。
陀螺仪836被配置为测量和维持取向。在一些配置中,来自陀螺仪836的输出被应用程序用作输入机制以控制该应用程序的一些功能。例如,陀螺仪836能够被用于准确地识别视频游戏应用或一些其他应用的3D环境内的移动。在一些配置中,应用程序利用来自陀螺仪836和加速度计834的输出来增强对应用程序的一些功能的控制。设想到了陀螺仪836的其他用途。
GPS传感器838被配置为从GPS卫星接收信号以用于计算位置。由GPS传感器838计算出的位置可以由需要或受益于位置信息的任何应用程序使用。例如,由GPS传感器838计算出的位置可以与导航应用程序一起使用,以提供从该位置到目的地的方向或者从目的地到该位置的方向。此外,GPS传感器838可以被用于向外部基于位置的服务(诸如E911服务)提供位置信息。GPS传感器838可以利用一个或多个网络连接组件806来获得经由WI-FI、WIMAX和/或蜂窝三角测量技术生成的位置信息,以辅助GPS传感器838获得定位。GPS传感器838还能够在辅助GPS(“A-GPS”)系统中使用。GPS传感器838还能够与诸如处理器802的其他组件结合操作,以生成用于计算设备800的定位数据。
I/O组件810包括显示器840、触摸屏842、数据I/O接口组件(“数据I/O”)844、音频I/O接口组件(“音频I/O”)846、视频I/O接口组件(“视频I/O”)848和相机850。在一些配置中,显示器840和触摸屏842被组合。在一些配置中,数据I/O组件844、音频FO组件846和视频I/O组件848中的两个或更多个被组合。I/O组件810可以包括被配置为支持下文所描述的各种接口的分立处理器,或者可以包括内置于处理器802中的处理功能。
显示器840是被配置为以视觉形式呈现信息的输出设备。具体地,显示器840可以呈现图形用户界面(“GUI”)元素、文本、图像、视频、通知、虚拟按钮、虚拟键盘、消息传送数据、互联网内容、设备状态、时间、日期、日历数据、偏好、地图信息、位置信息以及能够以视觉形式呈现的任何其他信息。在一些配置中,显示器840是利用任何有源或无源矩阵技术和任何背光技术(如果使用的话)的液晶显示器(“LCD”)。在一些配置中,显示器840是有机发光二极管(“OLED”)显示器。设想到了其他显示类型。
触摸屏842在本文中也被称为“支持触摸的屏幕”,是被配置为检测触摸的存在和位置的输入设备。触摸屏842可以是电阻式触摸屏、电容式触摸屏、表面声波触摸屏、红外触摸屏、光学成像触摸屏、色散信号触摸屏、声脉冲识别触摸屏、或者可以利用任何其他触摸屏技术。在一些配置中,触摸屏842作为透明层被并入在显示器840的顶部上,以使用户能够使用一个或多个触摸来与在显示器840上呈现的对象或其他信息进行交互。在其他配置中,触摸屏842是被并入在不包括显示器840的计算设备的表面上的触摸板。例如,计算设备可以具有被并入在显示器840的顶部上的触摸屏以及被并入在与显示器840相对的表面上的触摸板。
在一些配置中,触摸屏842是单点触摸屏。在其他配置中,触摸屏842是多点触摸屏。在一些配置中,触摸屏842被配置为检测离散触摸、单点触摸手势和/或多点触摸手势。为了方便起见,这些在本文中统称为手势。现在将描述若干手势。应当理解,这些手势是说明性的,并不旨在限制所附权利要求的范围。此外,可以在与触摸屏842一起使用的软件中实现所描述的手势、额外手势和/或替代手势。这样,开发人员可以创建特定于特定应用程序的手势。
在一些配置中,触摸屏842支持点击手势,其中,用户在显示器840上呈现的项目上点击一次触摸屏842。可以出于各种原因使用该点击手势,包括但不限于打开或启动用户点击的内容。在一些配置中,触摸屏842支持双击手势,其中,用户在显示器840上呈现的项目上点击两次触摸屏842。可以出于多种原因使用该双击手势,包括但不限于分阶段进行放大或缩小。在一些配置中,触摸屏842支持点击和保持手势,其中,用户点击触摸屏842并且保持接触达至少预先定义的时间。可以出于多种原因使用点击并保持手势,包括但不限于打开特定于上下文的菜单。
在一些配置中,触摸屏842支持摇动手势,其中,用户将手指放在触摸屏842上并且在触摸屏842上移动手指的同时保持与触摸屏842的接触。可以出于各种原因而使用摇动手势,包括但不限于以受控的速率浏览屏幕、图像或菜单。也设想到了多个手指摇动手势。在一些配置中,触摸屏842支持轻拂手势,其中,用户在用户希望屏幕移动的方向上滑动手指。可以出于多种原因使用轻拂手势,包括但不限于在菜单或页面中水平或垂直滚动。在一些配置中,触摸屏842支持捏放手势,其中,用户用两个手指(例如,拇指和食指)在触摸屏842上进行捏动作或者使两个手指分开。可以出于各种原因使用捏放手势,包括但不限于逐渐放大或缩小网站、地图或图片。
尽管已经参考使用一个或多个手指执行手势来描述了上述手势,但是可以使用诸如脚趾的其他附件或者诸如触笔的对象来与触摸屏842交互。这样,上述手势应当被理解为是说明性的,并且不应当以任何方式解释为限制。
数据I/O接口组件844被配置为促进向计算设备输入数据和从计算设备输出数据。在一些配置中,数据I/O接口组件844包括连接器,所述连接器被配置为例如在同步操作目的下提供在计算设备与计算机系统之间的有线连接。所述连接器可以是专用连接器或标准化连接器,诸如USB、微型USB、迷你USB等。在一些配置中,连接器是用于将计算设备与另一设备(诸如扩充口、音频设备(例如数字音乐播放器)或视频设备)对接的对接连接器。
音频I/O接口组件846被配置为向计算设备提供音频输入和/或输出能力。在一些配置中,音频I/O接口组件846包括被配置为收集音频信号的麦克风。在一些配置中,音频I/O接口组件846包括被配置为提供针对耳机或其他外部扬声器的连接性的耳机插孔。在一些配置中,音频I/O接口组件846包括用于输出音频信号的扬声器。在一些配置中,音频I/O接口组件846包括光学音频电缆输出。
视频I/O接口组件848被配置为向计算设备提供视频输入和/或输出能力。在一些配置中,视频I/O接口组件848包括视频连接器,所述视频连接器被配置为从另一设备(例如,诸如DVD或BLURAY播放器的视频媒体播放器)接收视频作为输入,或者向另一设备(例如,监视器、电视机或一些其他外部显示器)发送视频作为输出。在一些配置中,视频I/O接口组件848包括高清晰度多媒体接口(“HDMI”)、迷你HDMI、微型HDMI、DisplayPort、或者用于输入/输出视频内容的专有连接器。在一些配置中,视频I/O接口组件848或者其部分与音频I/O接口组件846或者其部分组合。
相机850能够被配置为捕获静止图像和/或视频。相机850可以利用电荷耦合器件(“CCD”)或互补金属氧化物半导体(“CMOS”)图像传感器来捕获图像。在一些配置中,相机850包括闪光灯以辅助在弱光环境下拍摄照片。针对相机850的设置可以被实现为硬件或软件按钮。
尽管未图示,但是一个或多个硬件按钮也可以被包含在计算设备架构800中。硬件按钮可以被用于控制计算设备的某一操作方面。硬件按钮可以是专用按钮或多用途按钮。硬件按钮可以是机械按钮或基于传感器的按钮。
所图示的功率组件812包括一个或多个电池852,其能够被连接到电池计量表854。电池852可以是可充电的或者一次性的。可充电电池类型包括但不限于锂聚合物,锂离子,镍镉和镍金属氢化物。每个电池852可以由一个或多个电池制成。
电池计量表854能够被配置为测量电池参数,诸如电流、电压和温度。在一些配置中,电池计量表854被配置为测量电池的放电速率、温度、寿命和其他因素的影响,以在一定百分比的误差内预测剩余寿命。在一些配置中,电池计量表854将测量结果提供给应用程序,所述应用程序被配置为利用测量结果向用户呈现有用的功率管理数据。功率管理数据可以包括以下一项或多项:使用的电池百分比、剩余的电池百分比、电池状况、剩余时间、剩余容量(例如,以瓦特小时为单位)、电流消耗和电压。
功率组件812还可以包括功率连接器(在图8中未示出),所述功率连接器可以与一个或多个上述I/O组件810相组合。功率组件812可以经由I/O组件与外部功率系统或充电设备接口。
最后,尽管已经用特定于结构特征和/或方法动作的语言描述了各种配置,但是应当理解,所附表示中定义的主题不必限于所描述的特定特征或动作。而是,将特定特征和动作公开为实现所要求保护的主题的示例性形式。
Claims (14)
1.一种用于辅助用户朝着完成任务的方向前进的方法,包括:
在计算设备处接收输入信号;
解析所述输入信号以识别指示任务的短语;
选择适合于执行所述任务的多个应用;
基于所述短语中的关键字来确定针对所述多个应用中的个体应用的置信度分数;
基于针对所述个体应用的所述置信度分数来生成所述多个应用的排名列表;
在与所述计算设备通信的显示屏上显示推荐所述多个应用的所述排名列表,其中,所述个体应用在所述排名列表内的次序基于相关联的置信度分数;
从应用的所述排名列表中接收对选定应用的用户选择;
响应于对所述选定应用的所述用户选择,而更新任务列表以包括提供对所述任务的描述以及对所述选定应用的指示的任务项,其中,对所述任务列表的选择促使所述选定应用的执行;
接收对所述任务项的选择;以及
响应于对所述任务项的所述选择而促使所述选定应用的执行以用于完成所述任务。
2.根据权利要求1所述的方法,还包括:
生成定义用于执行所述任务的动作列表的任务数据,其中,在所述动作列表中的个体动作包括从所述短语中的所述关键字导出的参数数据;
接收对所述任务项的选择;
使用所述参数数据来填充所述选定应用的一个或多个数据字段;以及
基于所述任务列表的所述个体动作来激活所述选定应用的功能。
3.根据权利要求2所述的方法,还包括:
基于所述参数数据从资源中取回补充数据;以及
使用所述补充数据来填充所述选定应用的一个或多个数据字段。
4.根据权利要求1所述的方法,还包括:
接收对所述输入信号的更新,所述更新指示对所述短语的更新;
基于对所述短语的所述更新来确定针对所述多个应用中的个体应用的更新的置信度分数;以及
显示基于所述更新的置信度分数的、对所述个体应用在所述排名列表内的所述次序的更新。
5.根据权利要求1所述的方法,其中,所述置信度分数是通过使用处理历史用户活动数据的机器学习算法来生成的,其中,所述用户活动数据指示对所述个体应用的至少一个先前的用户选择。
6.根据权利要求1所述的方法,还包括:存储指示对所述选定应用的所述用户选择的用户历史活动数据,以用于通过机器学习引擎进行处理以及生成额外的用户历史活动数据。
7.根据权利要求1所述的方法,其中,针对个体应用的所述置信度分数还基于指示以下中的至少一项的上下文数据:与所述输入信号相关联的位置、日期或一天中的时间。
8.一种用于辅助用户朝着完成任务的方向前进的系统,包括:
一个或多个处理单元;以及
在其上编码有计算机可执行指令的计算机可读介质,所述计算机可执行指令用于使所述一个或多个处理单元用于:
在所述系统处接收输入信号;
解析所述输入信号以识别指示任务的短语;
选择适合于执行所述任务的多个应用;
基于所述短语中的关键字来确定针对所述多个应用中的个体应用的置信度分数;
基于针对所述个体应用的所述置信度分数来生成所述多个应用的排名列表;
在与所述系统通信的显示屏上显示所述排名列表的所述应用中的至少一个应用,其中,所述个体应用的在所述排名列表内的次序基于相关联的置信度分数;
从所述多个应用中确定选定应用;以及
更新任务列表以包括提供对所述任务的描述以及标识所述选定应用的任务项,其中,对所述任务项的选择促使所述选定应用的执行以完成所述任务。
9.根据权利要求8所述的系统,其中,所述计算机可执行指令还使所述一个或多个处理单元用于:
生成定义用于执行所述任务的动作列表的任务数据,其中,在所述动作列表中的个体动作包括从所述短语中的所述关键字导出的参数数据;
接收对所述任务项的选择;
响应于对所述任务项的所述选择而执行所述选定应用并且使用所述参数数据来填充所述选定应用的一个或多个数据字段;以及
基于所述任务列表的所述个体动作来激活所述选定应用的功能。
10.根据权利要求9所述的系统,其中,所述计算机可执行指令还使所述一个或多个处理单元用于:
基于所述参数数据从资源中取回补充数据;以及
使用所述补充数据来填充所述选定应用的一个或多个数据字段。
11.根据权利要求8所述的系统,其中,所述计算机可执行指令还使所述一个或多个处理单元用于:
接收对所述输入信号的更新,所述更新指示对所述短语的更新;
基于对所述短语的所述更新来确定针对所述多个应用中的个体应用的更新的置信度分数;以及
显示基于所述更新的置信度分数的、对所述个体应用在所述排名列表内的所述次序的更新。
12.根据权利要求8所述的系统,其中,所述置信度分数是通过使用处理历史用户活动数据的机器学习算法来生成的,其中,所述用户活动数据指示对所述个体应用的至少一个先前的用户选择。
13.根据权利要求8所述的系统,其中,所述计算机可执行指令还使所述一个或多个处理单元用于:存储指示对所述选定应用的用户选择的用户历史活动数据,以用于通过机器学习引擎进行处理以及生成额外的用户历史活动数据。
14.根据权利要求8所述的系统,其中,针对个体应用的所述置信度分数还基于指示以下中的至少一项的上下文数据:与所述输入信号相关联的位置、日期或一天中的时间。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/871,806 | 2018-01-15 | ||
US15/871,806 US11410075B2 (en) | 2018-01-15 | 2018-01-15 | Contextually-aware recommendations for assisting users with task completion |
PCT/US2018/066986 WO2019139771A1 (en) | 2018-01-15 | 2018-12-21 | Contextually-aware recommendations for assisting users with task completion |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111566652A CN111566652A (zh) | 2020-08-21 |
CN111566652B true CN111566652B (zh) | 2024-02-27 |
Family
ID=65269037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880086142.0A Active CN111566652B (zh) | 2018-01-15 | 2018-12-21 | 用于辅助用户完成任务的上下文感知的推荐 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11410075B2 (zh) |
EP (1) | EP3740865B1 (zh) |
CN (1) | CN111566652B (zh) |
WO (1) | WO2019139771A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190392345A1 (en) * | 2018-06-26 | 2019-12-26 | Holland & Hart LLP | Automatic action loading based on a data context and a machine-learned model |
US11093510B2 (en) | 2018-09-21 | 2021-08-17 | Microsoft Technology Licensing, Llc | Relevance ranking of productivity features for determined context |
US11163617B2 (en) * | 2018-09-21 | 2021-11-02 | Microsoft Technology Licensing, Llc | Proactive notification of relevant feature suggestions based on contextual analysis |
CN110472143A (zh) * | 2019-07-22 | 2019-11-19 | 平安科技(深圳)有限公司 | 一种信息推送方法、装置、可读存储介质及终端设备 |
US10665204B1 (en) * | 2019-10-08 | 2020-05-26 | Capital One Services, Llc | Automatically adjusting screen brightness based on screen content |
CN112748835A (zh) * | 2019-10-31 | 2021-05-04 | 青岛海信移动通信技术股份有限公司 | 终端、服务器、最近任务列表显示方法和应用推荐方法 |
US11416290B2 (en) | 2020-05-28 | 2022-08-16 | Microsoft Technology Licensing, Llc | Semi-autonomous intelligent task hub |
CN112882786A (zh) * | 2021-02-18 | 2021-06-01 | 北京明略昭辉科技有限公司 | 用于辅助推荐图表类型的方法、装置、电子设备及存储介质 |
US11625148B2 (en) * | 2021-04-19 | 2023-04-11 | Microsoft Technology Licensing, Llc | Intelligent snap assist recommendation model |
US20220334686A1 (en) * | 2021-04-19 | 2022-10-20 | Microsoft Technology Licensing, Llc | Intuitive display of intelligent snap assist recommendations |
US11263063B1 (en) | 2021-07-12 | 2022-03-01 | Lamacchia Realty, Inc. | Methods and systems for device-specific event handler generation |
US11582326B1 (en) * | 2021-08-05 | 2023-02-14 | Paypal, Inc. | Scalable messaging framework for providing machine learning services across multiple availability zones |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104471568A (zh) * | 2012-07-02 | 2015-03-25 | 微软公司 | 对自然语言问题的基于学习的处理 |
CN104699741A (zh) * | 2013-12-05 | 2015-06-10 | 国际商业机器公司 | 分析自然语言问题来确定缺失信息以便提高回答的准确性 |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004334537A (ja) | 2003-05-07 | 2004-11-25 | Sony Corp | プログラム処理システム及びプログラム処理方法、並びにコンピュータ・プログラム |
US8972872B2 (en) * | 2006-03-27 | 2015-03-03 | Fujitsu Limited | Building computing applications based upon metadata |
US8219407B1 (en) | 2007-12-27 | 2012-07-10 | Great Northern Research, LLC | Method for processing the output of a speech recognizer |
US10241644B2 (en) * | 2011-06-03 | 2019-03-26 | Apple Inc. | Actionable reminder entries |
US20130219333A1 (en) * | 2009-06-12 | 2013-08-22 | Adobe Systems Incorporated | Extensible Framework for Facilitating Interaction with Devices |
US9754224B2 (en) * | 2009-06-26 | 2017-09-05 | International Business Machines Corporation | Action based to-do list |
US8301364B2 (en) * | 2010-01-27 | 2012-10-30 | Navteq B.V. | Method of operating a navigation system to provide geographic location information |
US8731902B2 (en) | 2010-12-23 | 2014-05-20 | Sap Ag | Systems and methods for accessing applications based on user intent modeling |
US9754016B1 (en) * | 2010-12-29 | 2017-09-05 | Amazon Technologies, Inc. | Dynamic content discoverability |
US8762156B2 (en) | 2011-09-28 | 2014-06-24 | Apple Inc. | Speech recognition repair using contextual information |
US9020925B2 (en) * | 2012-01-04 | 2015-04-28 | Trustgo Mobile, Inc. | Application certification and search system |
CN110488991A (zh) * | 2012-06-25 | 2019-11-22 | 微软技术许可有限责任公司 | 输入法编辑器应用平台 |
JP5853890B2 (ja) * | 2012-07-25 | 2016-02-09 | カシオ計算機株式会社 | ソフトウェア実行制御装置、実行制御方法、及び実行制御プログラム |
US10528385B2 (en) * | 2012-12-13 | 2020-01-07 | Microsoft Technology Licensing, Llc | Task completion through inter-application communication |
US9092527B2 (en) * | 2013-01-30 | 2015-07-28 | Quixey, Inc. | Performing application search based on entities |
US8996520B2 (en) * | 2013-03-15 | 2015-03-31 | Google Inc. | Ranking of native application content |
US9378196B1 (en) * | 2013-06-27 | 2016-06-28 | Google Inc. | Associating information with a task based on a category of the task |
US9483565B2 (en) * | 2013-06-27 | 2016-11-01 | Google Inc. | Associating a task with a user based on user selection of a query suggestion |
US9251224B2 (en) * | 2014-03-04 | 2016-02-02 | Google Inc. | Triggering and ranking of native applications |
US20150278370A1 (en) * | 2014-04-01 | 2015-10-01 | Microsoft Corporation | Task completion for natural language input |
US9075508B1 (en) * | 2014-04-30 | 2015-07-07 | Grandios Technologies, Llc | Next application suggestions on a user device |
US20160086116A1 (en) * | 2014-07-27 | 2016-03-24 | Supriya Rao | Method and system of an automatically managed calendar and contextual task list |
US10261672B1 (en) * | 2014-09-16 | 2019-04-16 | Amazon Technologies, Inc. | Contextual launch interfaces |
US20160099842A1 (en) | 2014-10-01 | 2016-04-07 | Bank Of America Corporation | Intersystem automated-dialog agent |
US10332184B2 (en) * | 2014-12-15 | 2019-06-25 | Samsung Electronics Co., Ltd. | Personalized application recommendations |
US20160299977A1 (en) * | 2015-04-13 | 2016-10-13 | Quixey, Inc. | Action-Based App Recommendation Engine |
US20160342288A1 (en) * | 2015-05-19 | 2016-11-24 | Ebay Inc. | Intelligent highlighting of item listing features |
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 |
US9740751B1 (en) * | 2016-02-18 | 2017-08-22 | Google Inc. | Application keywords |
CN108604331B (zh) * | 2016-09-09 | 2020-02-14 | 华为技术有限公司 | 一种信息提醒方法以及移动设备 |
WO2018174884A1 (en) * | 2017-03-23 | 2018-09-27 | Rovi Guides, Inc. | Systems and methods for calculating a predicted time when a user will be exposed to a spoiler of a media asset |
KR102298947B1 (ko) * | 2017-04-28 | 2021-09-08 | 삼성전자주식회사 | 음성 데이터 처리 방법 및 이를 지원하는 전자 장치 |
US10860854B2 (en) * | 2017-05-16 | 2020-12-08 | Google Llc | Suggested actions for images |
KR102426704B1 (ko) * | 2017-08-28 | 2022-07-29 | 삼성전자주식회사 | 음성 인식 서비스 운용 방법 및 이를 지원하는 전자 장치 |
WO2019054745A1 (en) * | 2017-09-12 | 2019-03-21 | Samsung Electronics Co., Ltd. | METHOD FOR RECOMMENDING ONE OR MORE ACTIONS AND ASSOCIATED ELECTRONIC DEVICE |
-
2018
- 2018-01-15 US US15/871,806 patent/US11410075B2/en active Active
- 2018-12-21 EP EP18842687.8A patent/EP3740865B1/en active Active
- 2018-12-21 WO PCT/US2018/066986 patent/WO2019139771A1/en unknown
- 2018-12-21 CN CN201880086142.0A patent/CN111566652B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104471568A (zh) * | 2012-07-02 | 2015-03-25 | 微软公司 | 对自然语言问题的基于学习的处理 |
CN104699741A (zh) * | 2013-12-05 | 2015-06-10 | 国际商业机器公司 | 分析自然语言问题来确定缺失信息以便提高回答的准确性 |
Also Published As
Publication number | Publication date |
---|---|
CN111566652A (zh) | 2020-08-21 |
US20190220438A1 (en) | 2019-07-18 |
WO2019139771A1 (en) | 2019-07-18 |
EP3740865A1 (en) | 2020-11-25 |
US11410075B2 (en) | 2022-08-09 |
EP3740865B1 (en) | 2022-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111566652B (zh) | 用于辅助用户完成任务的上下文感知的推荐 | |
US10896284B2 (en) | Transforming data to create layouts | |
US10521251B2 (en) | Hosting application experiences within storage service viewers | |
US10346498B2 (en) | Presenting and interacting with a hyperlink dialog for generating hyperlinks | |
CN116034385A (zh) | 指示相关联内容的可用性的动画视觉提示 | |
CN106537371B (zh) | 可视化建议 | |
US20140074811A1 (en) | Query ranking models | |
US20150120748A1 (en) | Indexing spreadsheet structural attributes for searching | |
CN106663091B (zh) | 摘要数据自动填充 | |
CN110168588B (zh) | 基于位置、使用模式以及内容来识别文档 | |
US20180006983A1 (en) | Enhanced search filters for emails and email attachments in an electronic mailbox | |
US9934331B2 (en) | Query suggestions | |
CN111868767A (zh) | 基于用户洞察来驱动上下文感知的用户协作 | |
US11487512B2 (en) | Generating a services application | |
US11269818B2 (en) | Smart versioning for files | |
US20160042093A1 (en) | Leveraging Data Searches in a Document | |
CN115461713A (zh) | 利用预测姿势分析预加载和执行应用程序组件 | |
US20160124975A1 (en) | Location-aware data access | |
US20160379226A1 (en) | Intelligent identification of multidimensional insights from process data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |