首页 / 专利库 / 人工智能 / 相似性得分 / 使用用户特定信息定制建议的方法和系统

使用用户特定信息定制建议的方法和系统

阅读:249发布:2020-05-12

专利汇可以提供使用用户特定信息定制建议的方法和系统专利检索,专利查询,专利分析的服务。并且本公开提供了用于操作智能自动化助理以基于用户特定信息提供定制建议的系统和过程。示例性方法包括在具有一个或多个处理器的 电子 设备处获得与该电子设备或通信地耦接到该电子设备的附加电子设备中的至少一者相关联的 印象 ;以及基于该印象来确定一个或多个概念。该方法还包括基于一个或多个所确定的概念来生成用户特定信息集合的表示;以及基于该用户特定信息集合的表示向用户提供一个或多个建议。,下面是使用用户特定信息定制建议的方法和系统专利的具体信息内容。

1.一种用于向用户提供一个或多个建议的方法,所述方法包括:
在具有存储器和一个或多个处理器的电子设备处:
获得与所述电子设备或通信地耦接到所述电子设备的附加电子设备中的至少一者相关联的印象
基于所述印象来确定一个或多个概念;
基于所述一个或多个所确定的概念来生成用户特定信息集合的表示;并且基于所述用户特定信息集合的所述表示向用户提供一个或多个建议。
2.根据权利要求1所述的方法,其中获得所述印象包括:
从与所述电子设备或通信地耦接到所述电子设备的所述附加电子设备中的至少一者相关联的一个或多个源收集数据;
确定从所述一个或多个源收集的所述数据是否与一个或多个用户活动相关联;并且根据确定从所述一个或多个源收集的所述数据与一个或多个用户活动相关联,包括所述印象中的所述数据。
3.根据权利要求1和2中任一项所述的方法,其中所述印象包括多个文件。
4.根据权利要求1至3中任一项所述的方法,其中所述印象包括多个搜索查询。
5.根据权利要求1至4中任一项所述的方法,其中所述印象包括多个用户输入。
6.根据权利要求1至5中任一项所述的方法,其中基于所述印象来确定一个或多个概念包括基于所述印象来确定一个或多个主题。
7.根据权利要求6所述的方法,其中基于所述印象来确定一个或多个主题包括:
分析所述印象;
基于对所述印象的分析来生成查询;
基于所述查询和索引结构来执行相似性搜索;并且
基于所述相似性搜索结果来确定所述一个或多个主题。
8.根据权利要求1至7中任一项所述的方法,其中基于所述用户活动数据来确定一个或多个概念包括基于所述印象来确定一个或多个实体。
9.根据权利要求8所述的方法,其中确定所述一个或多个实体包括:
分析所述印象;
基于对所述印象的所述分析来检测结构化信息;并且
基于所检测到的结构化信息来确定所述一个或多个实体。
10.根据权利要求9所述的方法,其中检测所述结构化信息是基于模式识别的。
11.根据权利要求9和10中任一项所述的方法,其中检测所述结构化信息是基于自然语言处理的。
12.根据权利要求1至11中任一项所述的方法,其中基于所述印象来确定所述一个或多个概念包括基于所述印象来确定一个或多个用户的社会状态。
13.根据权利要求12所述的方法,其中确定所述用户的社会状态包括:
基于所述印象来识别用户的社会状态相关信息;并且
基于所述用户的社会状态相关信息来确定所述一个或多个用户的社会状态。
14.根据权利要求1至13中任一项所述的方法,其中基于所述印象来确定所述一个或多个概念包括基于所述印象来确定一个或多个重复的用户输入。
15.根据权利要求14所述的方法,其中确定所述一个或多个重复的用户输入包括:
收集在预先确定的持续时间内的用户输入;并且
基于所收集的用户输入来识别一个或多个重复的用户输入。
16.根据权利要求14和15中任一项所述的方法,其中识别所述一个或多个重复的用户输入包括:
确定接收到基本上相似的用户输入的次数是否满足阈值条件。
17.根据权利要求1至16中任一项所述的方法,其中基于所述一个或多个所确定的概念来生成所述用户特定信息集合的所述表示包括:
对所述一个或多个所确定的概念执行归类和排序中的至少一者;并且
基于所述一个或多个所确定的概念的所述归类和所述排序中的所述至少一者的所述结果来生成所述用户特定信息集合的所述表示。
18.根据权利要求17所述的方法,其中对所述一个或多个概念执行归类和排序中的至少一者包括:
针对所述一个或多个所确定的概念中的每个所确定的概念生成得分,所述得分指示以下中的至少一者:
与所确定的概念相关联的置信平,以及
用户对所确定的概念的兴趣水平;
基于与所述一个或多个所确定的概念中的每个所确定的概念相关联的所述得分对所述一个或多个所确定的概念进行排序。
19.根据权利要求1至18中任一项所述的方法,还包括:
动态地更新所述用户特定信息集合的所述表示。
20.根据权利要求19所述的方法,其中动态地更新所述用户特定信息集合的所述表示包括:
确定附加印象是否可用;
根据确定附加印象可用,基于所述附加印象来生成一个或多个附加概念;并且利用所述附加概念来更新所述用户特定信息集合的所述表示。
21.根据权利要求19和20中任一项所述的方法,其中动态地更新所述用户特定信息集合的所述表示包括从所述用户特定信息集合的所述表示中移除一个或多个概念。
22.根据权利要求1至21中任一项所述的方法,其中向所述用户提供所述一个或多个建议由能够访问所述用户特定信息集合的所述表示的一个或多个查询客户端来执行。
23.根据权利要求1至22中任一项所述的方法,其中基于所述用户特定信息集合的所述表示向所述用户提供所述一个或多个建议包括:
从查询客户端接收请求用户特定信息的一个或多个查询;
响应于所述一个或多个查询,基于所述用户特定信息集合的所述表示来确定所请求的用户特定信息;并且
向所述查询客户端提供所请求的用户特定信息。
24.根据权利要求23所述的方法,其中所述查询客户端与所述电子设备相关联,其中所述电子设备存储所述用户特定信息集合的所述表示。
25.根据权利要求23所述的方法,其中所述查询客户端与通信地耦接到所述电子设备的所述附加电子设备中的一个附加电子设备相关联,其中所述附加电子设备从所述电子设备远程访问或检索所述用户特定信息集合的所述表示。
26.根据权利要求23至25中任一项所述的方法,其中所请求的用户特定信息包括一个或多个名称,所述方法还包括:
由所述查询客户端基于所述一个或多个名称来更新与所述查询客户端相关联的词典;
接收用户输入;
响应于接收到所述用户输入,由所述查询客户端基于所述更新的词典来对所述用户输入执行自动校正、预测或自动大写中的至少一者。
27.根据权利要求23至26中任一项所述的方法,还包括:
基于所请求的用户特定信息来确定所述一个或多个建议;并且
向所述用户提供所确定的一个或多个建议。
28.根据权利要求23至27中任一项所述的方法,还包括:
在向所述查询客户端提供所请求的用户特定信息之前,确定所述查询客户端是否被授权访问所请求的用户特定信息中的至少一部分;
根据确定所述查询客户端被授权访问所请求的用户特定信息的至少一部分,调整所请求的用户特定信息;并且
向所述查询客户端提供所述经调整的用户特定信息。
29.根据权利要求1至28中任一项所述的方法,其中基于所述用户特定信息集合的所述表示向所述用户提供所述一个或多个建议包括:
向与通信地耦接到所述电子设备的所述附加电子设备中的至少一个附加电子设备相关联的一个或多个查询客户端提供所述用户特定信息集合的所述表示;
由与通信地耦接到所述电子设备的所述附加电子设备中的至少一个附加电子设备相关联的所述一个或多个查询客户端基于所述用户特定信息集合的所述表示来确定一个或多个建议;并且
由与通信地耦接到所述电子设备的所述附加电子设备中的至少一个附加电子设备相关联的所述一个或多个查询客户端向所述用户提供所述一个或多个建议。
30.根据权利要求1至29中任一项所述的方法,还包括:
使所述用户特定信息集合的所述表示的多个实例在所述电子设备和通信地耦接到所述电子设备的所述附加电子设备之间同步。
31.一种存储一个或多个程序的非暂态计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由电子设备的一个或多个处理器执行时,使得所述电子设备:
获得与所述电子设备或通信地耦接到所述电子设备的附加电子设备中的至少一者相关联的印象;
基于所述印象来确定一个或多个概念;
基于所述一个或多个所确定的概念来生成用户特定信息集合的表示;并且基于所述用户特定信息集合的所述表示向用户提供一个或多个建议。
32.一种电子设备,所述电子设备包括:
一个或多个处理器;
存储器;和
一个或多个程序,所述一个或多个程序存储在存储器中,所述一个或多个程序包括用于执行以下操作的指令:
获得与所述电子设备或通信地耦接到所述电子设备的附加电子设备中的至少一者相关联的印象;
基于所述印象来确定一个或多个概念;
基于所述一个或多个所确定的概念来生成用户特定信息集合的表示;并且基于所述用户特定信息集合的所述表示向用户提供一个或多个建议。
33.一种电子设备,所述电子设备包括:
用于获得与所述电子设备或通信地耦接到所述电子设备的附加电子设备中的至少一者相关联的印象的装置;
用于基于所述印象来确定一个或多个概念的装置;
用于基于所述一个或多个所确定的概念来生成用户特定信息集合的表示的装置;以及用于基于所述用户特定信息集合的所述表示向用户提供一个或多个建议的装置。
34.一种电子设备,所述电子设备包括:
一个或多个处理器;
存储器;和
一个或多个程序,所述一个或多个程序被存储在存储器中,所述一个或多个程序包括用于执行根据权利要求1至30中任一项所述的方法的指令。
35.一种电子设备,所述电子设备包括:
用于执行根据权利要求1至30所述的方法中的任一方法的装置。
36.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质包括由电子设备的一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括当由所述一个或多个处理器执行时使得所述电子设备执行根据权利要求1至30中任一项所述的方法的指令。
37.一种用于操作数字助理的系统,所述系统包括用于执行根据权利要求1至30所述的方法中的任一方法的装置。

说明书全文

使用用户特定信息定制建议的方法和系统

[0001] 相关申请的交叉引用
[0002] 本申请要求于2017年6月2日提交的名称为“METHODS AND  SYSTEMS FOR CUSTOMIZING SUGGESTIONS USING USER-SPECIFIC INFORMATION”的美国临时专利申请序列号62/514,732和2017年9月1日提交的名称为“METHODS AND SYSTEMS FOR CUSTOMIZING SUGGESTIONS USING USER-SPECIFIC INFORMATION”的美国非临时专利申请序列号15/694,
267的优先权,这两个专利申请中的每个专利申请的内容据此全文以引用方式并入。

技术领域

[0003] 本公开整体涉及智能自动化助理,并且更具体地涉及使用用户特定信息集合在电子设备上向用户提供定制建议。

背景技术

[0004] 智能自动化助理(或数字助理)可在人类用户与电子设备之间提供有利界面。此类助理可允许用户使用自然语言以语音形式和/或文本形式与设备或系统进行交互。例如,用户可向正在电子设备上运行的数字助理提供包含用户请求的语音输入。数字助理可从该语音输入解译用户意图并且将用户意图操作化成任务。随后可通过执行电子设备的一项或多项服务来执行这些任务,并且可将响应于用户请求的相关输出返回给用户。
[0005] 在电子设备上运行的各种应用程序可在具有或不具有用户请求的情况下向用户提供建议。例如,当用户正在寻找吃饭的地方时,餐厅应用程序可向用户提供餐厅建议。又如,新闻文章建议可由新闻应用程序自动推送给用户。通常,这些建议可能不符合用户的兴趣,尤其是在这些建议不是针对特定用户定制的情况下。例如,如果新闻应用程序不具有指示特定用户可能感兴趣的主题的数据,则建议的文章可能不是用户所期望的。此外,许多应用程序无法访问用户特定信息集合,因此无法做出定制建议。
发明内容
[0006] 本公开提供了用于向用户提供一个或多个建议的系统和过程。
[0007] 本文公开了示例性方法。示例性方法包括在具有一个或多个处理器的电子设备处获得与该电子设备或通信地耦接到该电子设备的附加电子设备中的至少一者相关联的印象;以及基于印象来确定一个或多个概念。该方法还包括基于一个或多个所确定的概念来生成用户特定信息集合的表示;以及基于该用户特定信息集合的表示向用户提供一个或多个建议。
[0008] 本文公开了示例性非暂态计算机可读介质。一种示例性非暂态计算机可读存储介质存储一个或多个程序。一个或多个程序包括指令,这些指令在由电子设备的一个或多个处理器执行时使得该电子设备获得与该电子设备或通信地耦接到该电子设备的附加电子设备中的至少一者相关联的印象;以及基于印象确定一个或多个概念。该一个或多个程序还包括使得电子设备基于一个或多个所确定的概念来生成用户特定信息集合的表示的指
令;以及基于该用户特定信息集合的表示向用户提供一个或多个建议。
[0009] 本文公开了示例性电子设备。一种示例性电子设备包括一个或多个处理器;存储器;和一个或多个程序,其中该一个或多个程序被存储在存储器中并且被配置为由一个或多个处理器执行,该一个或多个程序包括指令,这些指令用于获得与电子设备或通信地耦接到该电子设备的附加电子设备中的至少一者相关联的印象;以及基于印象来确定一个或多个概念。该一个或多个程序还包括用于基于一个或多个所确定的概念来生成用户特定信息集合的表示的指令;以及基于该用户特定信息集合的表示向用户提供一个或多个建议。
[0010] 示例性电子设备包括用于获得与该电子设备或通信地耦接到该电子设备的附加电子设备中的至少一者相关联的印象的装置;以及用于基于印象来确定一个或多个概念的装置。该电子设备还包括用于基于一个或多个所确定的概念来生成用户特定信息集合的表示的装置;以及用于基于该用户特定信息集合的表示向用户提供一个或多个建议的装置。
[0011] 基于用户特定信息集合提供定制建议可改善设备的用户交互界面。例如,使用本申请中所述的技术,定制建议可更符合用户兴趣,并因此可减轻用户手动搜索文档、图像、实体等的负担。用户特定信息集合可包括关于用户的社会状态、用户感兴趣的主题和实体、用户的重复输入等的实质性或综合信息。在一些示例中,可在多个应用程序和设备之间共享或访问用户特定信息集合。因此,各种应用程序和设备可使用用户特定信息集合来提供定制建议。用于共享用户特定信息集合的技术可通过提供对用户特定信息集合的集中表示来提高设备的操作效率。此外,可动态更新用户特定信息集合,并因此反映了用户的社会状态、用户感兴趣的主题和实体、用户的重复输入等的变化。用户特定信息集合的动态更新可随着时间流逝进一步提高向用户提供定制建议的效率和功效。
[0012] 此外,本申请中所述的用于提供定制建议的各种技术可增强设备的可操作性,并且可(例如,通过从针对特定用户获得的印象中识别出主题和实体)使得用户设备界面更有效,另外,通过使用户能够更快速和有效地使用设备,这还可以降低电使用并延长设备的电池寿命。附图说明
[0013] 图1为示出了根据各种示例的用于实现数字助理的系统和环境的框图
[0014] 图2A为示出了根据各种示例的实现数字助理的客户端侧部分的便携式多功能设备的框图。
[0015] 图2B为示出了根据各种示例的用于事件处理的示例性部件的框图。
[0016] 图3示出了根据各种示例的实现数字助理的客户端侧部分的便携式多功能设备。
[0017] 图4为根据各种示例的具有显示器和触敏表面的示例性多功能设备的框图。
[0018] 图5A示出了根据各种示例的便携式多功能设备上的应用程序的菜单的示例性用户界面。
[0019] 图5B示出了根据各种示例的具有与显示器分开的触敏表面的多功能设备的示例性用户界面
[0020] 图6A示出了根据各种示例的个人电子设备。
[0021] 图6B为示出了根据各种示例的个人电子设备的框图。
[0022] 图7A为示出了根据各种示例的数字助理系统或其服务器部分的框图。
[0023] 图7B示出了根据各种示例的在图7A中所示的数字助理的功能。
[0024] 图7C示出了根据各种示例的知识本体的一部分。
[0025] 图8示出了根据各种示例的用于向用户提供一个或多个建议的数字助理的框图。
[0026] 图9示出了根据各种示例的印象收集器的框图。
[0027] 图10A示出了根据各种示例的概念发生器的框图。
[0028] 图10B示出了根据各种示例的另一概念发生器的框图。
[0029] 图11A示出了根据各种示例的向多个查询客户端提供用户特定信息集合的表示的电子设备的框图。
[0030] 图11B至图11E示出了根据各种示例的用于向用户提供建议的用户界面。
[0031] 图12A至图12E示出了根据各种示例的用于向用户提供一个或多个建议的过程。

具体实施方式

[0032] 在以下对示例的描述中将引用附图,在附图中以例示的方式示出了可被实施的特定示例。应当理解,在不脱离各个示例的范围的情况下,可使用其他示例并且可作出结构性改变。
[0033] 期望用于向用户提供定制建议的技术。例如,定制建议可包括用户可能有兴趣阅读的文章、用户可能想要尝试的餐厅、用户可能喜欢观看的电影等。为提供定制建议,从多个数据源收集印象。这些印象包括反映用户活动的数据。基于这些印象,确定概念(例如,主题、实体、用户的社会状态、重复的用户输入等),并且生成用户特定信息集合(例如,日志文件)的表示。用户特定信息可包括例如用户的社会状态、用户感兴趣的主题、用户频繁访问的位置、用户的频繁联系人/访问、用户的重复输入等。可在多个客户端(诸如应用程序和设备)之间共享用户特定信息集合的表示。在一些示例中,当客户端(例如,应用程序、键盘、设备、搜索引擎等)接收到用户输入(例如,搜索查询)时,该客户端可查询用户特定信息集合的表示并接收相关的用户特定信息(例如,名称)。因此,客户端可基于接收到的用户特定信息向用户提供建议(例如,预测名称、主题等)。因此,这些技术提供了一个或多个改善且有效的用户交互界面并提高了设备的操作效率。此外,本申请所述的技术增强了数字助理提供的建议与实际用户兴趣相符合的概率,从而减少了用户手动努力的负担。
[0034] 尽管以下描述使用术语“第一”、“第二”等来描述各种元件,但这些元件不应受术语的限制。这些术语只是用于将一个元件与另一元件区分开。例如,在不脱离各种所述示例的范围的情况下,第一输入可被称为第二输入,并且类似地,第二输入可被称为第一输入。第一输入和第二输入均为输入,并且在一些情况下为独立且不同的输入。
[0035] 在本文中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。如在对各种所述示例的描述和所附权利要求书中所使用的那样,单数形式“一个(“a”,“an”)”和“该”旨在也包括复数形式,除非上下文另外明确地指示。还将理解的是,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语“包括”(“includes”、“including”、“comprises”和/或“comprising”)在本说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元件和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件和/或其分组。
[0036] 根据上下文,术语“如果”可被解释为意指“当...时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“如果确定...”或“如果检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
[0037] 1.系统和环境
[0038] 图1示出了根据各种示例的系统100的框图。在一些示例中,系统100实现数字助理。术语“数字助理”、“虚拟助理”、“智能自动化助理”或“自动数字助理”是指解译口头形式和/或文本形式的自然语言输入来推断用户意图并且基于推断出的用户意图来执行动作的任何信息处理系统。例如,为了作用于推断出的用户意图,系统执行下述步骤中的一个或多个:识别具有设计用于实现推断出的用户意图的步骤和参数的任务流,根据推断出的用户意图将特定要求输入到任务流中;通过调用程序、方法、服务、API等执行任务流;以及以可听(例如,语音)和/或可视形式来生成对用户的输出响应。
[0039] 具体地,数字助理能够接受至少部分地为自然语言命令、请求、声明、讲述和/或询问的形式的用户请求。通常,用户请求寻求数字助理作出信息性回答或执行任务。对用户请求的令人满意的响应包括提供所请求的信息性回答、执行所请求的任务或这两者的组合。例如,用户向数字助理提出问题,诸如“我现在在哪里?”。基于用户的当前位置,数字助理回答“你在中央公园西附近。”用户还请求执行任务,例如“请邀请我的朋友们下周来参加我女朋友的生日聚会。”作为响应,数字助理可通过讲出“好的,上”来确认请求,然后代表用户将合适的日历邀请发送到用户电子通讯录中列出的用户朋友中的每位朋友。在执行所请求的任务期间,数字助理有时在很长时间段内在涉及多次信息交换的持续对话中与用户进行交互。存在与数字助理进行交互以请求信息或执行各种任务的许多其他方法。除提供言语响应并采取经编程的动作之外,数字助理还提供其他视频或音频形式的响应,例如作为文本、警报、音乐、视频、动画等。
[0040] 如图1所示,在一些示例中,数字助理根据客户端-服务器模型来实现。数字助理包括在用户设备104上执行的客户端侧部分102(后文称作“DA客户端102”)以及在服务器系统108上执行的服务器侧部分106(后文称作“DA服务器106”)。DA客户端102通过一个或多个网络110与DA服务器106通信。DA客户端102提供客户端侧功能,诸如面向用户的输入和输出处理,以及与DA服务器106通信。DA服务器106为各自位于相应用户设备104上的任意数量的DA客户端102提供服务器侧功能。
[0041] 在一些示例中,DA服务器106包括面向客户端的I/O接口112、一个或多个处理模114、数据与模型116,以及到外部服务的I/O接口118。面向客户端的I/O接口112有利于DA服务器106的面向客户端的输入和输出处理。一个或多个处理模块114利用数据与模型116来处理语音输入,并基于自然语言输入来确定用户意图。此外,一个或多个处理模块114基于推断出的用户意图来执行任务执行。在一些示例中,DA服务器106通过一个或多个网络110与外部服务120通信以完成任务或采集信息。到外部服务的I/O接口118有利于此类通信。
[0042] 用户设备104可以是任何合适的电子设备。在一些示例中,用户设备是便携式多功能设备(例如,下面参考图2A描述的设备200)、多功能设备(例如,下面参考图4描述的设备400)或个人电子设备(例如,下面参考图6A至图6B描述的设备600)。便携式多功能设备是例如还包含诸如PDA和/或音乐播放器功能的其他功能的移动电话。便携式多功能设备的特定示例包括来自Apple Inc.(Cupertino,California)的 iPod 和 设
备。便携式多功能设备的其他示例包括但不限于膝上型电脑或平板电脑。此外,在一些示例中,用户设备104是非便携式多功能设备。具体地讲,用户设备104是台式计算机、游戏机、电视或电视机顶盒。在一些示例中,用户设备104包括触敏表面(例如,触摸屏显示器和/或触控板)。此外,用户设备104任选地包括一个或多个其他物理用户接口设备,诸如物理键盘、鼠标和/或操纵杆。下文更详细地描述了电子设备诸如多功能设备的各种示例。
[0043] 一个或多个通信网络110的示例包括局域网(LAN)和广域网(WAN),例如互联网。一个或多个通信网络110使用任何已知的网络协议来实现,包括各种有线或无线协议,诸如以太网、通用串行总线(USB)、FIREWIRE、全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、Wi-Fi、互联网协议语音(VoIP)、Wi-MAX或任何其他合适的通信协议。
[0044] 服务器系统108在一个或多个独立式数据处理设备或分布式计算机网络上实现。在一些示例中,服务器系统108还采用第三方服务提供方(例如,第三方服务提供方)的各种虚拟设备和/或服务来提供服务器系统108的潜在计算资源和/或基础结构资源。
[0045] 在一些示例中,用户设备104经由第二用户设备122与DA服务器106通信。第二用户设备122与用户设备104相似或相同。例如,第二用户设备122类似于下文参考图2A、图4和图6A至图6B描述的设备200、设备400或设备600。用户设备104被配置为经由直接通信连接诸如蓝牙、NFC、BTLE等或者经由有线或无线网络诸如局域Wi-Fi网络而通信耦接到第二用户设备122。在一些示例中,第二用户设备122被配置为充当用户设备104与DA服务器106之间的代理。例如,用户设备104的DA客户端102被配置为经由第二用户设备122向DA服务器106传输信息(例如,在用户设备104处接收的用户请求)。DA服务器106处理该信息,并经由第二用户设备122将相关数据(例如,响应于用户请求的数据内容)返回到用户设备104。
[0046] 在一些示例中,用户设备104被配置为将针对数据的缩略请求发送到第二用户设备122,以减少从用户设备104传输的信息量。第二用户设备122被配置为确定添加到缩略请求的补充信息,以生成完整的请求来传输到DA服务器106。该系统架构可有利地通过使用具有较强通信能力和/或电池电力的第二用户设备122(例如,移动电话、膝上型计算机、平板电脑等)作为到DA服务器106的代理,允许具有有限通信能力和/或有限电池电力的用户设备104(例如,手表或类似的紧凑型电子设备)访问DA服务器106提供的服务。虽然图1中仅示出两个用户设备104和122,但应当理解,在一些示例中,系统100可包括在此代理配置中被配置为与DA服务器系统106通信的任意数量和类型的用户设备。
[0047] 虽然图1中所示的数字助理包括客户端侧部分(例如,DA客户端102)和服务器侧部分(例如,DA服务器106)两者,但在一些示例中,数字助理的功能被实现为被安装在用户设备上的独立式应用程序。此外,数字助理的客户端部分与服务器部分之间的功能划分在不同的具体实施中可变化。例如,在一些示例中,DA客户端为仅提供面向用户的输入和输出处理功能并将数字助理的所有其他功能委派给后端服务器的瘦客户端。
[0048] 2.电子设备
[0049] 现在将注意力转至用于实现数字助理的客户端侧部分的电子设备的实施方案。图2A是示出了根据一些实施方案的具有触敏显示器系统212的便携式多功能设备200的框图。
触敏显示器212有时为了方便被叫做“触摸屏”,并且有时被称为或被叫做“触敏显示器系统”。设备200包括存储器202(其任选地包括一个或多个计算机可读存储介质)、存储器控制器222、一个或多个处理单元(CPU)220、外围设备接口218、RF电路208、音频电路210、扬声器
211、麦克213、输入/输出(I/O)子系统206、其他输入控制设备216和外部端口224。设备
200任选地包括一个或多个光学传感器264。设备200任选地包括用于检测设备200(例如,触敏表面,诸如设备200的触敏显示器系统212)上的接触的强度的一个或多个接触强度传感器265。设备200任选地包括用于在设备200上生成触觉输出的一个或多个触觉输出发生器
267(例如,在触敏表面诸如设备200的触敏显示器系统212或设备400的触控板455上生成触觉输出)。这些部件任选地通过一个或多个通信总线或信号线203进行通信。
[0050] 如在本说明书和权利要求书中所使用的,术语触敏表面上的接触的“强度”是指触敏表面上的接触(例如,手指接触)的力或压力(每单位面积的力),或是指触敏表面上的接触的力或压力的替代物(代用物)。接触的强度具有值范围,该值范围包括至少四个不同的值并且更典型地包括上百个不同的值(例如,至少256个)。接触的强度任选地使用各种方法和各种传感器或传感器的组合来确定(或测量)。例如,在触敏表面下方或相邻于触敏表面的一个或多个力传感器任选地用于测量触敏表面上的不同点处的力。在一些具体实施中,来自多个力传感器的力测量值被组合(例如,加权平均)以确定所估计的接触力。类似地,触笔的压敏顶端任选地用于确定触笔在触敏表面上的压力。另选地,在触敏表面上检测到的接触区域的大小和/或其变化、接触附近的触敏表面的电容和/或其变化以及/或者接触附近的触敏表面的电阻和/或其变化任选地被用作触敏表面上的接触的力或压力的替代物。在一些具体实施中,接触力或压力的替代物测量直接用于确定是否已经超过强度阈值(例如,强度阈值以对应于替代物测量的单位来描述)。在一些具体实施中,接触力或压力的替代物测量被转换成估计的力或压力,并且估计的力或压力用于确定是否已超过强度阈值
(例如,强度阈值是以压力的单位进行测量的压力阈值)。使用接触的强度作为用户输入的属性,从而允许用户访问用户在实地面积有限的尺寸更小的设备上本来不可访问的附加设备功能,该尺寸更小的设备用于(例如,在触敏显示器上)显示示能表示和/或接收用户输入(例如,经由触敏显示器、触敏表面或物理控件/机械控件,诸如旋钮或按钮)。
[0051] 如本说明书和权利要求书中所使用的,术语“触觉输出”是指将由用户利用用户的触感检测到的设备相对于设备的先前位置的物理位移、设备的部件(例如,触敏表面)相对于设备的另一个部件(例如,外壳)的物理位移、或部件相对于设备的质心的位移。例如,在设备或设备的部件与用户对触摸敏感的表面(例如,手指、手掌或用户手部的其他部分)接触的情况下,通过物理位移生成的触觉输出将由用户解释为触感,该触感对应于设备或设备的部件的物理特征的所感知的变化。例如,触敏表面(例如,触敏显示器或触控板)的移动任选地由用户解释为对物理致动按钮的“按下点击”或“松开点击”。在一些情况下,用户将感觉到触感,诸如“按下点击”或“松开点击”,即使在通过用户的移动而物理地被按压(例如,被移位)的与触敏表面相关联的物理致动按钮没有移动时。又如,即使在触敏表面的光滑度无变化时,触敏表面的移动也会任选地由用户解释或感测为触敏表面的“粗糙度”。虽然用户对触摸的此类解释将受到用户的个体化感官知觉的限制,但是对触摸的许多感官知觉是大多数用户共有的。因此,当触觉输出被描述为对应于用户的特定感官知觉(例如,“按下点击”、“松开点击”、“粗糙度”)时,除非另外陈述,否则所生成的触觉输出对应于设备或其部件的物理位移,该物理位移将会生成典型(或普通)用户的所述感官知觉。
[0052] 应当理解,设备200仅仅是便携式多功能设备的一个示例,并且设备200任选地具有比所示出的部件更多或更少的部件,任选地组合两个或更多个部件,或者任选地具有这些部件的不同配置或布置。图2A中所示的各种部件以硬件软件、或硬件与软件两者的组合来实现,包括一个或多个信号处理和/或专用集成电路
[0053] 存储器202包括一个或多个计算机可读存储介质。这些计算机可读存储介质例如为有形的和非暂态的。存储器202包括高速随机存取存储器,并且还包括非易失性存储器,诸如一个或多个磁盘存储设备、闪存存储器设备或其他非易失性固态存储器设备。存储器控制器222控制设备200的其他部件访问存储器202。
[0054] 在一些示例中,存储器202的非暂态计算机可读存储介质用于存储指令(例如,用于执行下文描述的过程的各方面)以供指令执行系统、装置或设备诸如基于计算机的系统、包含处理器的系统或可从指令执行系统、装置或设备取出指令并执行指令的其他系统使用或与其结合使用。在其他示例中,指令(例如,用于执行下文描述的过程的各方面)存储在服务器系统108的非暂态计算机可读存储介质(未示出)上,或在存储器202的非暂态计算机可读存储介质与服务器系统108的非暂态计算机可读存储介质之间划分。
[0055] 外围设备接口218用于将设备的输入和输出外围设备耦接到CPU 220和存储器202。一个或多个处理器220运行或执行存储器202中所存储的各种软件程序和/或指令集以执行设备200的各种功能并处理数据。在一些实施方案中,外围设备接口218、CPU 220和存储器控制器222在单个芯片诸如芯片204上实现。在一些其他实施方案中,它们在独立的芯片上实现。
[0056] RF(射频)电路208接收和发送也被称作电磁信号的RF信号。RF电路208将电信号转换为电磁信号/将电磁信号转换为电信号,并且经由电磁信号与通信网络及其他通信设备进行通信。RF电路208任选地包括用于执行这些功能的熟知的电路,包括但不限于天线系统、RF收发器、一个或多个放大器、调谐器、一个或多个振荡器数字信号处理器、编解码芯片组、用户身份模块(SIM)卡、存储器等等。RF电路208任选地通过无线通信来与网络和其他设备进行通信,这些网络为诸如互联网(也被称为万维网(WWW))、内联网和/或无线网络(诸如,蜂窝电话网络、无线局域网(LAN)和/或城域网(MAN))。RF电路208任选地包括用于诸如通过近程通信无线电部件来检测近场通信(NFC)场的熟知的电路。无线通信任选地使用多种通信标准、协议和技术中的任一种,包括但不限于全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、高速下行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)、演进、纯数据(EV-DO)、HSPA、HSPA+、双小区HSPA(DC-HSPDA)、长期演进(LTE)、近场通信(NFC)、宽带码分多址(W-CDMA)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、蓝牙低功耗(BTLE)、无线保真(Wi-Fi)(例如,IEEE 802.11a、IEEE 802.11b、IEEE 802.11g、IEEE 802.11n和/或IEEE 802.11ac)、互联网协议语音(VoIP)、Wi-MAX、电子邮件协议(例如,互联网消息访问协议(IMAP)和/或邮局协议(POP))、即时消息(例如,可扩展消息处理和存在协议(XMPP)、用于即时消息和存在利用扩展的会话发起协议(SIMPLE)、即时消息和存在服务(IMPS))和/或短消息服务(SMS),或者任何其他适当的通信协议,包括在本文档提交日期时尚未开发出的通信协议。
[0057] 音频电路210、扬声器211和麦克风213提供用户与设备200之间的音频接口。音频电路210从外围设备接口218接收音频数据,将音频数据转换为电信号,并将电信号传输到扬声器211。扬声器211将电信号转换为人类可听到的声波。音频电路210还接收由麦克风213从声波转换的电信号。音频电路210将电信号转换为音频数据,并且将音频数据传输到外围设备接口218以用于处理。音频数据通过外围设备接口218检索自和/或传输至存储器
202和/或RF电路208。在一些实施方案中,音频电路210还包括麦插孔(例如,图3中的
312)。该耳麦插孔提供音频电路210与可移除的音频输入/输出外围设备之间的接口,该可移除的音频输入/输出外围设备诸如仅输出的耳机或者具有输出(例如,单耳耳机或双耳耳机)和输入(例如,麦克风)两者的耳麦。
[0058] I/O子系统206将设备200上的输入/输出外围设备诸如触摸屏212和其他输入控制设备216耦接到外围设备接口218。I/O子系统206任选地包括显示控制器256、光学传感器控制器258、强度传感器控制器259、触觉反馈控制器261,以及用于其他输入或控制设备的一个或多个输入控制器260。一个或多个输入控制器260从其他输入控制设备216接收电信号/将电信号发送到其他输入控制设备。其他输入控制设备216任选地包括物理按钮(例如,下压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击轮等。在一些另选实施方案中,输入控制器260任选地耦接至以下各项中的任一者(或不耦接至以下各项中的任一者):键盘、红外线端口、USB端口以及指向设备诸如鼠标。一个或多个按钮(例如,图3中的308)任选地包括用于扬声器211和/或麦克风213音量控制的增大/减小按钮。该一个或多个按钮任选地包括下压按钮(例如,图3中的306)。
[0059] 快速按下下压按钮会脱离触摸屏212的定或者开始使用触摸屏上的手势来对设备进行解锁的过程,如在2005年12月23日提交的名称为“Unlocking a Device by 
Performing Gestures on an Unlock Image”的美国专利No.7,657,849的美国专利申请
11/322,549中所述,该美国专利申请据此全文以引用方式并入本文。较长地按下下压按钮(例如,306)使设备200开机或关机。用户能够自定义一个或多个按钮的功能。触摸屏212用于实现虚拟按钮或软按钮以及一个或多个软键盘。
[0060] 触敏显示器212提供设备和用户之间的输入接口和输出接口。显示控制器256从触摸屏212接收电信号和/或将电信号发送至该触摸屏。触摸屏212向用户显示视觉输出。视觉输出包括图形、文本、图标、视频及其任何组合(统称为“图形”)。在一些实施方案中,一些视觉输出或全部视觉输出对应于用户界面对象。
[0061] 触摸屏212具有基于触觉和/或触觉接触来接受来自用户的输入的触敏表面、传感器或传感器组。触摸屏212和显示控制器256(与存储器202中的任何相关联的模块和/或指令集一起)检测触摸屏212上的接触(和该接触的任何移动或中断),并且将所检测到的接触转换为与被显示在触摸屏212上的用户界面对象(例如,一个或多个软键、图标、网页或图像)的交互。在示例性实施方案中,触摸屏212与用户之间的接触点对应于用户的手指。
[0062] 触摸屏212使用LCD(液晶显示器)技术、LPD(发光聚合物显示器)技术或LED(发光二极管)技术,但在其他实施方案中可使用其他显示技术。触摸屏212和显示控制器256使用目前已知或以后将开发的多种触摸感测技术中的任何技术,以及其他接近传感器阵列或用于确定与触摸屏212接触的一个或多个点的其他元件来检测接触及其任何移动或中断,所述多种触摸感测技术包括但不限于电容式、电阻式、红外和表面声波技术。在示例性实施方案中,使用投射式互电容感测技术,诸如在来自Apple Inc.(Cupertino,California)的
和iPod 中使用的技术。
[0063] 在一些实施方案中,触摸屏212的触敏显示器类似于以下美国专利:6,323,846(Westerman等人)、6,570,557(Westerman等人)和/或6,677,932(Westerman)和/或美国专利公开2002/0015024A1中所述的多点触敏触控板,这些专利申请均据此全文以引用方式并入本文。然而,触摸屏212显示来自设备200的视觉输出,而触敏触控板不提供视觉输出。
[0064] 在一些实施方案中,触摸屏212的触敏显示器如以下申请所述:(1)2006年5月2日提交的名称为“Multipoint Touch Surface Controller”的美国专利申请No.11/381,313;(2)2004年5月6日提交的名称为“Multipoint Touchscreen”的美国专利申请No.10/840,
862;(3)2004年7月30日提交的名称为“Gestures For Touch Sensitive Input Devices”的美国专利申请No.10/903,964;(4)2005年1月31日提交的名称为“Gestures For Touch Sensitive Input Devices”的美国专利申请No.11/048,264;(5)2005年1月18日提交的名称为“Mode-Based Graphical User Interfaces For Touch Sensitive Input Devices”的美国专利申请No.11/038,590;(6)2005年9月16日提交的名称为“Virtual Input Device Placement On A Touch Screen User Interface”的美国专利申请No.11/228,758;(7)
2005年9月16日提交的名称为“Operation Of A Computer With A Touch Screen 
Interface”的美国专利申请No.11/228,700;(8)2005年9月16日提交的名称为“Activating Virtual Keys Of A Touch-Screen Virtual Keyboard”的美国专利申请No.11/228,737;
以及(9)2006年3月3日提交的名称为“Multi-Functional Hand-Held Device”的美国专利申请No.11/367,749。所有这些申请全文以引用方式并入本文。
[0065] 触摸屏212例如具有超过100dpi的视频分辨率。在一些实施方案中,触摸屏具有约160dpi的视频分辨率。用户使用任何合适的对象或附加物诸如触笔、手指等与触摸屏212进行接触。在一些实施方案中,将用户界面设计为主要通过基于手指的接触和手势来工作,由于手指在触摸屏上的接触区域较大,因此这可能不如基于触笔的输入精确。在一些实施方案中,设备将基于手指的粗略输入转化为精确的指针/光标位置或命令以用于执行用户所期望的动作。
[0066] 在一些实施方案中,除了触摸屏之外,设备200还包括用于激活或去激活特定功能的触控板(未示出)。在一些实施方案中,触控板是设备的触敏区域,与触摸屏不同,该触敏区域不显示视觉输出。触控板是与触摸屏212分开的触敏表面,或者是由触摸屏形成的触敏表面的延伸。
[0067] 设备200还包括用于为各种部件供电的电力系统262。电力系统262包括电力管理系统、一个或多个电源(例如,电池、交流电(AC))、再充电系统、电力故障检测电路、功率转换器或逆变器、电力状态指示器(例如,发光二极管(LED))和与便携式设备中电力的生成、管理和分配相关联的任何其他部件。
[0068] 设备200还包括一个或多个光学传感器264。图2A示出了耦接到I/O子系统206中的光学传感器控制器258的光学传感器。光学传感器264包括电荷耦合器件(CCD)或互补金属化物半导体(CMOS)光电晶体管。光学传感器264从环境接收通过一个或多个透镜而投射的光,并且将光转换为表示图像的数据。结合成像模块243(也叫做相机模块),光学传感器264捕获静态图像或视频。在一些实施方案中,光学传感器位于设备200的后部,与设备前部的触摸屏显示器212相背对,使得触摸屏显示器被用作用于静态图像和/或视频图像采集取景器。在一些实施方案中,光学传感器位于设备的前部,使得在用户在触摸屏显示器上查看其他视频会议参与者的同时获取该用户的图像以用于视频会议。在一些实施方案中,光学传感器264的位置可由用户改变(例如,通过旋转设备外壳中的透镜和传感器),使得单个光学传感器264与触摸屏显示器一起使用,以用于视频会议和静态图像和/或视频图像采集两者。
[0069] 设备200任选地还包括一个或多个接触强度传感器265。图2A示出了耦接到I/O子系统206中的强度传感器控制器259的接触强度传感器。接触强度传感器265任选地包括一个或多个压阻应变仪、电容式力传感器、电气力传感器、压电力传感器、光学力传感器、电容式触敏表面或其他强度传感器(例如,用于测量触敏表面上的接触的力(或压力)的传感
器)。接触强度传感器265从环境接收接触强度信息(例如,压力信息或压力信息的代用物)。
在一些实施方案中,至少一个接触强度传感器与触敏表面(例如,触敏显示器系统212)并置排列或邻近。在一些实施方案中,至少一个接触强度传感器位于设备200的后部上,与位于设备200的前部上的触摸屏显示器212相背对。
[0070] 设备200还包括一个或多个接近传感器266。图2A示出了耦接到外围设备接口218的接近传感器266。另选地,接近传感器266耦接到I/O子系统206中的输入控制器260。接近传感器266如以下美国专利申请中所述的那样执行:No.11/241,839,名称为“Proximity Detector In Handheld Device”;No.11/240,788,名称为“Proximity Detector In 
Handheld Device”;No.11/620,702,名称为“Using Ambient Light Sensor To Augment Proximity Sensor Output”;No.11/586,862,名称为“Automated Response To And 
Sensing Of User Activity In Portable Devices”;以及No.11/638,251,名称为
“Methods And Systems For Automatic Configuration Of Peripherals”,这些美国专利申请据此全文以引用方式并入本文。在一些实施方案中,当多功能设备被置于用户的耳朵附近时(例如,当用户正在进行电话呼叫时),接近传感器关闭并且禁用触摸屏212。
[0071] 设备200任选地还包括一个或多个触觉输出发生器267。图2A示出了耦接到I/O子系统206中的触觉反馈控制器261的触觉输出发生器。触觉输出发生器267任选地包括一个或多个电声设备诸如扬声器或其他音频部件;和/或用于将能量转换成线性运动的机电设备诸如电机、螺线管、电活性聚合器、压电致动器、静电致动器或其他触觉输出生成部件(例如,用于将电信号转换成设备上的触觉输出的部件)。接触强度传感器265从触觉反馈模块
233接收触觉反馈生成指令,并且在设备200上生成能够由设备200的用户感觉到的触觉输出。在一些实施方案中,至少一个触觉输出发生器与触敏表面(例如,触敏显示器系统212)并置排列或邻近,并且任选地通过竖直地(例如,向设备200的表面内/外)或侧向地(例如,在与设备200的表面相同的平面中向后和向前)移动触敏表面来生成触觉输出。在一些实施方案中,至少一个触觉输出发生器传感器位于设备200的后部上,与位于设备200的前部上的触摸屏显示器212相背对。
[0072] 设备200还包括一个或多个加速度计268。图2A示出了耦接至外围设备接口218的加速度计268。另选地,加速度计268耦接至I/O子系统206中的输入控制器260。加速度计268如以下美国专利公开中所述那样执行:美国专利公开20050190059,“Acceleration-based Theft Detection System for Portable Electronic Devices”和美国专利公开
20060017692,“Methods And Apparatuses For Operating A Portable Device Based On An Accelerometer”,这两个美国专利公开全文以引用方式并入本文。在一些实施方案中,基于对从一个或多个加速度计接收的数据的分析来在触摸屏显示器上以纵向视图或横向
视图显示信息。设备200任选地除了加速度计268之外还包括磁力仪(未示出)和GPS(或
GLONASS或其他全球导航系统)接收器(未示出),以用于获得关于设备200的位置和取向(例如,纵向或横向)的信息。
[0073] 在一些实施方案中,存储于存储器202中的软件部件包括操作系统226、通信模块(或指令集)228、接触/运动模块(或指令集)230、图形模块(或指令集)232、文本输入模块(或指令集)234、全球定位系统(GPS)模块(或指令集)235、数字助理客户端模块229以及应用程序(或指令集)236。此外,存储器202存储数据与模型,诸如用户数据与模型231。此外,在一些实施方案中,存储器202(图2A)或470(图4)存储设备/全局内部状态257,如图2A和图4中所示。设备/全局内部状态257包括以下中的一者或多者:活动应用程序状态,其指示哪些应用程序(如果有的话)当前是活动的;显示状态,其指示什么应用程序、视图或其他信息占据触摸屏显示器212的各个区域;传感器状态,包括从设备的各个传感器和输入控制设备
216获得的信息;以及关于设备的位置和/或姿态的位置信息。
[0074] 操作系统226(例如,Darwin、RTXC、LINUX、UNIX、OS X、iOS、WINDOWS、或嵌入式操作系统诸如VxWorks)包括用于控制和管理一般系统任务(例如,存储器管理、存储设备控制、电源管理等)的各种软件部件和/或驱动器,并且促进各种硬件部件和软件部件之间的通信。
[0075] 通信模块228便于通过一个或多个外部端口224来与其他设备进行通信,并且还包括用于处理由RF电路208和/或外部端口224所接收的数据的各种软件部件。外部端口224(例如,通用串行总线(USB)、火线等)适于直接耦接到其他设备,或间接地通过网络(例如,互联网、无线LAN等)进行耦接。在一些实施方案中,外部端口是与 (Apple Inc.的商
标)设备上所使用的30针连接器相同的或类似的和/或与其兼容的多针(例如,30针)连接
器。
[0076] 接触/运动模块230任选地检测与触摸屏212(结合显示控制器256)和其他触敏设备(例如,触控板或物理点击式转盘)的接触。接触/运动模块230包括各种软件部件以用于执行与接触检测相关的各种操作,诸如确定是否已经发生了接触(例如,检测手指按下事件)、确定接触强度(例如,接触的力或压力,或者接触的力或压力的替代物)、确定是否存在接触的移动并跟踪在触敏表面上的移动(例如,检测一个或多个手指拖动事件),以及确定接触是否已经停止(例如,检测手指抬起事件或者接触断开)。接触/运动模块230从触敏表面接收接触数据。确定接触点的移动任选地包括确定接触点的速率(量值)、速度(量值和方向)和/或加速度(量值和/或方向的改变),所述接触点的移动由一系列接触数据表示。这些操作任选地被应用于单点接触(例如,单指接触)或者多点同时接触(例如,“多点触摸”/多个手指接触)。在一些实施方案中,接触/运动模块230和显示控制器256检测触控板上的接触。
[0077] 在一些实施方案中,接触/运动模块230使用一组一个或多个强度阈值来确定操作是否已由用户执行(例如,确定用户是否已“点击”图标)。在一些实施方案中,根据软件参数来确定强度阈值的至少一个子集(例如,强度阈值不是由特定物理致动器的激活阈值来确定的,并且可在不改变设备200的物理硬件的情况下被调节)。例如,在不改变触控板或触摸屏显示器硬件的情况下,触控板或触摸屏的鼠标“点击”阈值可被设定成预定义的阈值的大范围中的任一个阈值。另外,在一些具体实施中,向设备的用户提供用于调节一组强度阈值中的一个或多个强度阈值(例如,通过调节各个强度阈值和/或通过利用对“强度”参数的系统级点击来一次调节多个强度阈值)的软件设置。
[0078] 接触/运动模块230任选地检测由用户进行的手势输入。触敏表面上的不同手势具有不同的接触模式(例如,所检测到的接触的不同运动、计时和/或强度)。因此,任选地通过检测特定接触模式来检测手势。例如,检测手指轻击手势包括检测手指按下事件,然后在与手指按下事件相同的位置(或基本上相同的位置)处(例如,在图标的位置处)检测手指抬起(抬离)事件。作为另一个示例,在触敏表面上检测手指轻扫手势包括检测手指按下事件,然后检测一个或多个手指拖动事件,并且随后检测手指抬起(抬离)事件。
[0079] 图形模块232包括用于在触摸屏212或其他显示器上呈现和显示图形的各种已知的软件部件,包括用于改变所显示图形的视觉冲击(例如,亮度、透明度、饱和度对比度或其他视觉特性)的部件。如本文所用,术语“图形”包括可被显示给用户的任何对象,非限制性地包括文本、网页、图标(诸如,包括软键的用户界面对象)、数字图像、视频、动画等。
[0080] 在一些实施方案中,图形模块232存储表示待使用的图形的数据。每个图形任选地被分配有对应的代码。图形模块232从应用程序等接收用于指定待显示的图形的一个或多个代码,在必要的情况下还一起接收坐标数据和其他图形属性数据,并且然后生成屏幕图像数据,以输出至显示控制器256。
[0081] 触觉反馈模块233包括用于生成指令的各种软件部件,该指令由触觉输出发生器267使用,以便响应于用户与设备200的交互而在设备200上的一个或多个位置处产生触觉输出。
[0082] 在一些示例中作为图形模块232的部件的文本输入模块234提供用于在各种应用程序(例如,联系人237、电子邮件240、IM 241、浏览器247和需要文本输入的任何其他应用程序)中输入文本的软键盘。
[0083] GPS模块235确定设备的位置,并提供该信息以供在各种应用程序中使用(例如提供给电话238以供在基于位置的拨号中使用;提供给相机243作为图片/视频元数据;以及提供给提供基于位置的服务的应用,诸如天气桌面小程序、本地黄页桌面小程序和地图/导航桌面小程序)。
[0084] 数字助理客户端模块229包括各种客户端侧数字助理指令,以提供数字助理的客户端侧功能。例如,数字助理客户端模块229能够通过便携式多功能设备200的各种用户接口(例如,麦克风213、一个或多个加速度计268、触敏显示器系统212、一个或多个光学传感器229、其他输入控制设备216等)接受声音输入(例如,语音输入)、文本输入、触摸输入和/或手势输入。数字助理客户端模块229还能够通过便携式多功能设备200的各种输出接口
(例如,扬声器211、触敏显示器系统212、一个或多个触觉输出生成器267等)提供音频形式的输出(例如,语音输出)、视觉形式的输出和/或触觉形式的输出。例如,将输出提供为语音、声音、警报、文本消息、菜单、图形、视频、动画、振动和/或以上两者或更多者的组合。在操作期间,数字助理客户端模块229使用RF电路208与DA服务器106通信。
[0085] 用户数据与模型231包括与用户相关联的各种数据(例如,用户特定的词汇数据、用户偏好数据、用户指定的名称发音、来自用户电子通讯录的数据、待办事项、购物清单等)以提供数字助理的客户端侧功能。此外,用户数据与模型231包括用于处理用户输入并且确定用户意图的各种模型(例如,语音识别模型、统计语言模型、自然语言处理模型、知识本体、任务流模型、服务模型等)。
[0086] 在一些示例中,数字助理客户端模块229利用便携式多功能设备200的各种传感器、子系统和外围设备来从便携式多功能设备200的周围环境采集附加信息,以建立与用户、当前用户交互和/或当前用户输入相关联的上下文。在一些示例中,数字助理客户端模块229将上下文信息或其子集与用户输入一起提供至DA服务器106以帮助推断用户意图。在一些示例中,数字助理还使用上下文信息来确定如何准备输出并将其传送给用户。上下文信息被称为上下文数据。
[0087] 在一些示例中,伴随用户输入的上下文信息包括传感器信息,例如照明、环境噪声、环境温度、周围环境的图像或视频等。在一些示例中,上下文信息还可包括设备的物理状态,例如设备取向、设备位置、设备温度、功率电平、速度、加速度、运动模式、蜂窝信号强度等。在一些示例中,将与DA服务器106的软件状态相关的信息,例如便携式多功能设备200的运行过程、已安装程序、过去和当前的网络活动、后台服务、错误日志、资源使用等,作为与用户输入相关联的上下文信息提供至DA服务器106。
[0088] 在一些示例中,数字助理客户端模块229响应于来自DA服务器106的请求而选择性地提供存储在便携式多功能设备200上的信息(例如,用户数据231)。在一些示例中,数字助理客户端模块229还在DA服务器106请求时引出来自用户经由自然语言对话或其他用户接口的附加输入。数字助理客户端模块229将该附加输入传送至DA服务器106,以帮助DA服务器106进行意图推断和/或满足在用户请求中表达的用户意图。
[0089] 下面参考图7A-图7C对数字助理进行更详细的描述。应当认识到,数字助理客户端模块229可包括下文所述的数字助理模块726的任意数量的子模块。
[0090] 应用程序236包括以下模块(或指令集)或者其子集或超集:
[0091] ·联系人模块237(有时称作通讯录或联系人列表);
[0092] ·电话模块238;
[0093] ·视频会议模块239;
[0094] ·电子邮件客户端模块240;
[0095] ·即时消息(IM)模块241;
[0096] ·健身支持模块242;
[0097] ·用于静态图像和/或视频图像的相机模块243;
[0098] ·图像管理模块244;
[0099] ·视频播放器模块;
[0100] ·音乐播放器模块;
[0101] ·浏览器模块247;
[0102] ·日历模块248;
[0103] ·桌面小程序模块249,在一些示例中,其包括以下各项中的一项或多项:天气桌面小程序249-1、股市桌面小程序249-2、计算器桌面小程序249-3、闹钟桌面小程序249-4、词典桌面小程序249-5和由用户获得的其他桌面小程序,以及用户创建的桌面小程序249-6;
[0104] ·用于形成用户创建的桌面小程序249-6的桌面小程序创建器模块250;
[0105] ·搜索模块251;
[0106] ·视频和音乐播放器模块252,其合并了视频播放器模块和音乐播放器模块;
[0107] ·记事本模块253;
[0108] ·地图模块254;以及/或者
[0109] ·在线视频模块255。
[0110] 存储在存储器202中的其他应用程序236的示例包括其他文字处理应用程序、其他图像编辑应用程序、绘图应用程序、呈现应用程序、支持JAVA的应用程序、加密、数字权限管理、声音识别和声音复制。
[0111] 结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232、和文本输入模块234,联系人模块237用于管理通讯录或联系人列表(例如,存储在存储器202或存储器470中的联系人模块237的应用程序内部状态292中),包括:将一个或多个姓名添加到通讯录;从通讯录删除姓名;将电话号码、电子邮件地址、物理地址或其他信息与姓名关联;将图像与姓名关联;对姓名进行归类和分类;提供电话号码或电子邮件地址来发起和/或促进通过电话238、视频会议模块239、电子邮件240或IM 241进行的通信;等等。
[0112] 结合RF电路208、音频电路210、扬声器211、麦克风213、触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,电话模块238用于输入对应于电话号码的字符序列、访问联系人模块237中的一个或多个电话号码、修改已经输入的电话号码、拨打相应的电话号码、进行会话以及当会话完成时断开或挂断。如上所述,无线通信使用多种通信标准、协议和技术中的任一种。
[0113] 结合RF电路208、音频电路210、扬声器211、麦克风213、触摸屏212、显示控制器256、光学传感器264、光学传感器控制器258、接触/运动模块230、图形模块232、文本输入模块234、联系人模块237和电话模块238,视频会议模块239包括根据用户指令来发起、进行和终止用户与一个或多个其他参与方之间的视频会议的可执行指令。
[0114] 结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,电子邮件客户端模块240包括响应于用户指令来创建、发送、接收和管理电子邮件的可执行指令。结合图像管理模块244,电子邮件客户端模块240使得非常容易创建和发送具有由相机模块243拍摄的静态图像或视频图像的电子邮件。
[0115] 结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,即时消息模块241包括用于以下操作的可执行指令:输入与即时消息对应的字符序列、修改先前输入的字符、传输相应即时消息(例如,使用短消息服务(SMS)或多媒体消息服务(MMS)协议以用于基于电话的即时消息或者使用XMPP、SIMPLE、或IMPS以用于基于互联网的即时消息)、接收即时消息以及查看所接收的即时消息。在一些实施方案中,所传输和/或接收的即时消息包括图形、照片、音频文件、视频文件和/或如MMS和/或增强型消息服务(EMS)中支持的其他附件。如本文所用,“即时消息”是指基于电话的消息(例如,使用SMS或MMS发送的消息)和基于互联网的消息(例如,使用XMPP、SIMPLE或IMPS发送的消息)两者。
[0116] 结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234、GPS模块235、地图模块254和音乐播放器模块,健身支持模块242包括用于以下各项的可执行指令:创建健身(例如,具有时间、距离和/或卡路里燃烧目标);与健身传感器(运动设备)进行通信;接收健身传感器数据;校准用于监视健身的传感器;为健身选择和播放音乐;以及显示、存储和传输健身数据。
[0117] 结合触摸屏212、显示控制器256、光学传感器264、光学传感器控制器258、接触/运动模块230、图形模块232和图像管理模块244,相机模块243包括用于以下操作的可执行指令:捕获静态图像或视频(包括视频流)并且将它们存储到存储器202中、修改静态图像或视频的特征,或从存储器202删除静态图像或视频。
[0118] 结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234、和相机模块243,图像管理模块244包括用于排列、修改(例如,编辑)、或以其他方式操控、加标签、删除、呈现(例如,在数字幻灯片或相册中)、以及存储静态图像和/或视频图像的可执行指令。
[0119] 结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,浏览器模块247包括用于根据用户指令来浏览互联网,包括搜索、链接至、接收和显示网页或其部分,以及链接至网页的附件和其他文件的可执行指令。
[0120] 结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234、电子邮件客户端模块240和浏览器模块247,日历模块248包括根据用户指令来创建、显示、修改和存储日历以及与日历相关联的数据(例如,日历条目、待办事项等)的可执行指令。
[0121] 结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234和浏览器模块247,桌面小程序模块249是可由用户下载并使用的微型应用程序(例如,天气桌面小程序249-1、股市桌面小程序249-2、计算器桌面小程序249-3、闹钟桌面小程序249-4和词典桌面小程序249-5)或由用户创建的微型应用程序(例如,用户创建的桌面小程序249-6)。在一些实施方案中,桌面小程序包括HTML(超文本标记语言)文件、CSS(层叠样式表)文件和JavaScript文件。在一些实施方案中,桌面小程序包括XML(可扩展标记语言)文件和JavaScript文件(例如,Yahoo!桌面小程序)。
[0122] 结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234和浏览器模块247,桌面小程序创建器模块250被用户用于创建桌面小程序(例如,使网页的用户指定部分变成桌面小程序)。
[0123] 结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,搜索模块251包括用于根据用户指令来搜索存储器202中与一个或多个搜索条件(例如,一个或多个用户指定的搜索词)匹配的文本、音乐、声音、图像、视频和/或其他文件的可执行指令。
[0124] 结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232、音频电路210、扬声器211、RF电路208和浏览器模块247,视频和音乐播放器模块252包括允许用户下载和回放以一种或多种文件格式(诸如MP3或AAC文件)存储的所记录的音乐和其他声音文件的可执行指令,以及用于显示、呈现或以其他方式回放视频(例如,在触摸屏212上或在经由外部端口224连接的外部显示器上)的可执行指令。在一些实施方案中,设备200任选地包括MP3播放器诸如iPod(Apple Inc.的商标)的功能。
[0125] 结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,记事本模块253包括用于根据用户指令来创建和管理记事本、待办事项等的可执行指令。
[0126] 结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234、GPS模块235和浏览器模块247,地图模块254用于根据用户指令接收、显示、修改和存储地图以及与地图相关联的数据(例如,驾驶方向、与特定位置处或附近的商店及其他兴趣点有关的数据,以及其他基于位置的数据)。
[0127] 结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232、音频电路210、扬声器211、RF电路208、文本输入模块234、电子邮件客户端模块240和浏览器模块247,在线视频模块255包括允许用户访问、浏览、接收(例如,通过流式传输和/或下载)、回放(例如,在触摸屏上或经由外部端口224在所连接的外部显示器上)、发送具有至特定在线视频的链接的电子邮件,以及以其他方式管理一种或多种文件格式(诸如,H.264)的在线视频的指令。在一些实施方案中,使用即时消息模块241而不是电子邮件客户端模块240来发送特定在线视频的链接。在线视频应用程序的其他描述可见于2007年6月20日提交的名称为“Portable Multifunction Device,Method,and Graphical User Interface for 
Playing Online Videos”的美国临时专利申请No.60/936,562和2007年12月31日提交的名称为“Portable Multifunction Device,Method,and Graphical User Interface for 
Playing Online Videos”的美国专利申请No.11/968,067,这两个专利申请的内容据此全文以引用方式并入本文。
[0128] 上述每个模块和应用程序对应于用于执行上述一种或多种功能以及在本专利申请中所述的方法(例如,本文所述的计算机实现的方法和其他信息处理方法)的可执行指令集。这些模块(例如,指令集)不必被实现为独立的软件程序、过程或模块,并因此在各种实施方案中可组合或以其他方式重新布置这些模块的各种子集。例如,视频播放器模块可与音乐播放器模块组合成单个模块(例如,图2A中的视频和音乐播放器模块252)。在一些实施方案中,存储器202存储上述模块和数据结构的子集。此外,存储器202存储上文未描述的附加模块和数据结构。
[0129] 在一些实施方案中,设备200是该设备上的预定义的一组功能的操作唯一地通过触摸屏和/或触控板来执行的设备。通过使用触摸屏和/或触控板作为用于设备200的操作的主要输入控制设备,减少设备200上的物理输入控制设备(诸如下压按钮、拨盘等)的数量。
[0130] 唯一地通过触摸屏和/或触控板来执行的预定义的一组功能任选地包括在用户界面之间的导航。在一些实施方案中,触控板在被用户触摸时将设备200从设备200上显示的任何用户界面导航到主菜单、home菜单或根菜单。在此类实施方案中,使用触控板来实现“菜单按钮”。在一些其他实施方案中,菜单按钮是物理下压按钮或者其他物理输入控制设备,而不是触控板。
[0131] 图2B是示出了根据一些实施方案的用于事件处理的示例性部件的框图。在一些实施方案中,存储器202(图2A)或存储器470(图4)包括事件分类器270(例如,在操作系统226中)以及相应的应用程序236-1(例如,前述应用程序237至251、255、480至490中的任一个应用程序)。
[0132] 事件分类器270接收事件信息并确定要将事件信息递送到的应用程序236-1和应用程序236-1的应用程序视图291。事件分类器270包括事件监视器271和事件分配器模块
274。在一些实施方案中,应用程序236-1包括应用程序内部状态292,该应用程序内部状态指示当应用程序是活动的或正在执行时被显示在触敏显示器212上的一个或多个当前应用程序视图。在一些实施方案中,设备/全局内部状态257被事件分类器270用来确定哪个(哪些)应用程序当前是活动的,并且应用程序内部状态292被事件分类器270用来确定要将事件信息递送到的应用程序视图291。
[0133] 在一些实施方案中,应用程序内部状态292包括附加信息,诸如以下各项中的一者或多者:当应用程序236-1恢复执行时将被使用的恢复信息、指示信息正被显示或准备好用于被应用程序236-1显示的用户界面状态信息、用于使得用户能够返回到应用程序236-1的前一状态或视图的状态队列,以及用户采取的先前动作的重复/撤销队列。
[0134] 事件监视器271从外围设备接口218接收事件信息。事件信息包括关于子事件(例如,作为多点触摸手势一部分的触敏显示器212上的用户触摸)的信息。外围设备接口218传输其从I/O子系统206或传感器诸如接近传感器266、一个或多个加速度计268和/或麦克风
213(通过音频电路210)接收的信息。外围设备接口218从I/O子系统206接收的信息包括来自触敏显示器212或触敏表面的信息。
[0135] 在一些实施方案中,事件监视器271以预先确定的间隔将请求发送至外围设备接口218。作为响应,外围设备接口218传输事件信息。在其他实施方案中,外围设备接口218仅当存在显著事件(例如,接收到高于预先确定的噪声阈值和/或接收到超过预先确定的持续时间的输入)时才传输事件信息。
[0136] 在一些实施方案中,事件分类器270还包括命中视图确定模块272和/或活动事件识别器确定模块273。
[0137] 当触敏显示器212显示多于一个视图时,命中视图确定模块272提供用于确定子事件已在一个或多个视图内的什么地方发生的软件过程。视图由用户能够在显示器上看到的控件和其他元素构成。
[0138] 与应用程序相关联的用户界面的另一方面是一组视图,本文中有时也称为应用程序视图或用户界面窗口,在其中显示信息并且发生基于触摸的手势。在其中检测到触摸的(相应应用程序的)应用程序视图对应于应用程序的程序化分级结构或视图分级结构内的程序化平。例如,在其中检测到触摸的最低水平视图被称为命中视图,并且被认为是正确输入的事件集至少部分地基于初始触摸的命中视图来确定,该初始触摸开始基于触摸的手势。
[0139] 命中视图确定模块272接收与基于触摸的手势的子事件相关的信息。当应用程序具有以分级结构组织的多个视图时,命中视图确定模块272将命中视图识别为应当对子事件进行处理的分级结构中的最低视图。在大多数情况下,命中视图是发起子事件(例如,形成事件或潜在事件的子事件序列中的第一子事件)在其中发生的最低水平视图。一旦命中视图被命中视图确定模块272识别,命中视图便通常接收与其被识别为命中视图所针对的同一触摸或输入源相关的所有子事件。
[0140] 活动事件识别器确定模块273确定视图分级结构内的哪个或哪些视图应接收特定子事件序列。在一些实施方案中,活动事件识别器确定模块273确定仅命中视图应接收特定子事件序列。在其他实施方案中,活动事件识别器确定模块273确定包括子事件的物理位置的所有视图是活跃参与的视图,并因此确定所有活跃参与的视图都应接收特定子事件序
列。在其他实施方案中,即使触摸子事件完全被局限到与一个特定视图相关联的区域,分级结构中的较高视图将仍然保持为活跃参与的视图。
[0141] 事件分配器模块274将事件信息分配到事件识别器(例如,事件识别器280)。在包括活动事件识别器确定模块273的实施方案中,事件分配器模块274将事件信息递送到由活动事件识别器确定模块273确定的事件识别器。在一些实施方案中,事件分配器模块274在事件队列中存储事件信息,该事件信息由相应事件接收器282进行检索。
[0142] 在一些实施方案中,操作系统226包括事件分类器270。另选地,应用程序236-1包括事件分类器270。在又一个实施方案中,事件分类器270是独立模块,或者是存储在存储器202中的另一个模块(诸如,接触/运动模块230)的一部分。
[0143] 在一些实施方案中,应用程序236-1包括多个事件处理程序290和一个或多个应用程序视图291,其中的每一个都包括用于处理发生在应用程序的用户界面的相应视图内的触摸事件的指令。应用程序236-1的每个应用程序视图291包括一个或多个事件识别器280。通常,相应应用程序视图291包括多个事件识别器280。在其他实施方案中,事件识别器280中的一个或多个事件识别器是独立模块的一部分,该独立模块为诸如用户界面工具包(未示出)或应用程序236-1从中继承方法和其他属性的较高级别的对象。在一些实施方案中,相应事件处理程序290包括以下各项中的一者或多者:数据更新器276、对象更新器277、GUI更新器278、和/或从事件分类器270接收的事件数据279。事件处理程序290利用或调用数据更新器276、对象更新器277或GUI更新器278来更新应用程序内部状态292。另选地,应用程序视图291中的一个或多个应用程序视图包括一个或多个相应事件处理程序290。另外,在一些实施方案中,以下中的一者或多者包括在相应应用程序视图291中:数据更新器276、对象更新器277和GUI更新器278。
[0144] 相应事件识别器280从事件分类器270接收事件信息(例如,事件数据279),并且从事件信息识别事件。事件识别器280包括事件接收器282和事件比较器284。在一些实施方案中,事件识别器280还包括元数据283和事件传递指令288(其包括子事件传递指令)的至少一个子集。
[0145] 事件接收器282从事件分类器270接收事件信息。事件信息包括关于子事件例如触摸或触摸移动的信息。根据子事件,事件信息还包括附加信息,诸如子事件的位置。当子事件涉及触摸的运动时,事件信息还包括子事件的速率和方向。在一些实施方案中,事件包括设备从一个取向旋转到另一取向(例如,从纵向取向旋转到横向取向,或反之亦然),并且事件信息包括关于设备的当前取向(也被称为设备姿态)的对应信息。
[0146] 事件比较器284将事件信息与预定义的事件或子事件定义进行比较,并且基于该比较来确定事件或子事件,或者确定或更新事件或子事件的状态。在一些实施方案中,事件比较器284包括事件定义286。事件定义286包含事件的定义(例如,预定义的子事件序列),例如事件1(287-1)、事件2(287-2)以及其他。在一些实施方案中,事件(287)中的子事件例如包括触摸开始、触摸结束、触摸移动、触摸取消和多点触摸。在一个示例中,事件1(287-1)的定义是被显示对象上的双击。例如,双击包括被显示对象上的预先确定时长的第一触摸(触摸开始)、预先确定时长的第一抬离(触摸结束)、被显示对象上的预先确定时长的第二触摸(触摸开始)以及预先确定时长的第二抬离(触摸结束)。在另一个示例中,事件2(287-
2)的定义是被显示对象上的拖动。例如,拖动包括被显示对象上的预先确定时长的触摸(或接触)、触摸在触敏显示器212上的移动、以及触摸的抬离(触摸结束)。在一些实施方案中,事件还包括用于一个或多个相关联的事件处理程序290的信息。
[0147] 在一些实施方案中,事件定义287包括对用于相应用户界面对象的事件的定义。在一些实施方案中,事件比较器284执行命中测试以确定哪个用户界面对象与子事件相关联。例如,在触敏显示器212上显示三个用户界面对象的应用程序视图中,当在触敏显示器212上检测到触摸时,事件比较器284执行命中测试以确定这三个用户界面对象中的哪一个用户界面对象与该触摸(子事件)相关联。如果每个所显示对象与相应事件处理程序290相关联,则事件比较器使用该命中测试的结果来确定哪个事件处理程序290应当被激活。例如,事件比较器284选择与子事件和触发该命中测试的对象相关联的事件处理程序。
[0148] 在一些实施方案中,相应事件(287)的定义还包括延迟动作,该延迟动作延迟事件信息的递送,直到已确定子事件序列确实对应于或不对应于事件识别器的事件类型。
[0149] 当相应事件识别器280确定子事件序列不与事件定义286中的任何事件匹配时,该相应事件识别器280进入事件不可能、事件失败或事件结束状态,在此之后忽略基于触摸的手势的后续子事件。在这种情况下,对于命中视图保持活动的其他事件识别器(如果有的话)继续跟踪并处理持续进行的基于触摸的手势的子事件。
[0150] 在一些实施方案中,相应事件识别器280包括具有指示事件递送系统应当如何执行对活跃参与的事件识别器的子事件递送的可配置属性、标记和/或列表的元数据283。在一些实施方案中,元数据283包括指示事件识别器彼此如何交互或如何能够交互的可配置属性、标志和/或列表。在一些实施方案中,元数据283包括指示子事件是否递送到视图或程序化分级结构中的不同层级的可配置属性、标志和/或列表。
[0151] 在一些实施方案中,当事件的一个或多个特定子事件被识别时,相应事件识别器280激活与事件相关联的事件处理程序290。在一些实施方案中,相应事件识别器280将与事件相关联的事件信息递送到事件处理程序290。激活事件处理程序290不同于将子事件发送(和延期发送)到相应命中视图。在一些实施方案中,事件识别器280抛出与所识别的事件相关联的标记,并且与该标记相关联的事件处理程序290获取该标记并执行预定义过程。
[0152] 在一些实施方案中,事件递送指令288包括递送关于子事件的事件信息而不激活事件处理程序的子事件递送指令。相反,子事件递送指令将事件信息递送到与子事件序列相关联的事件处理程序或者递送到活跃参与的视图。与子事件序列或与活跃参与的视图相关联的事件处理程序接收事件信息并执行预先确定的过程。
[0153] 在一些实施方案中,数据更新器276创建并更新在应用程序236-1中使用的数据。例如,数据更新器276对联系人模块237中所使用的电话号码进行更新,或者对视频播放器模块中所使用的视频文件进行存储。在一些实施方案中,对象更新器277创建并更新在应用程序236-1中使用的对象。例如,对象更新器277创建新的用户界面对象或更新用户界面对象的位置。GUI更新器278更新GUI。例如,GUI更新器278准备显示信息,并且将显示信息发送到图形模块232用以显示在触敏显示器上。
[0154] 在一些实施方案中,事件处理程序290包括数据更新器276、对象更新器277和GUI更新器278或者具有对它们的访问权限。在一些实施方案中,数据更新器276、对象更新器277和GUI更新器278被包括在相应应用程序236-1或应用程序视图291的单个模块中。在其他实施方案中,它们被包括在两个或更多个软件模块中。
[0155] 应当理解,关于触敏显示器上的用户触摸的事件处理的上述论述还适用于利用输入设备来操作多功能设备200的其他形式的用户输入,并不是所有用户输入都是在触摸屏上发起的。例如,任选地与单次或多次键盘按下或按住协作的鼠标移动和鼠标按钮按下;触控板上的接触移动,诸如轻击、拖动、滚动等;触笔输入;设备的移动;口头指令;检测到的眼睛移动;生物特征输入;和/或它们的任何组合任选地被用作对应于限定要识别的事件的子事件的输入。
[0156] 图3示出了根据一些实施方案的具有触摸屏212的便携式多功能设备200。触摸屏任选地在用户界面(UI)300内显示一个或多个图形。在本实施方案以及下文所述的其他实施方案中,用户能够通过例如利用一根或多根手指302(在图中未按比例绘制)或一支或多支触笔303(在图中未按比例绘制)在图形上作出手势来选择图形中的一个或多个图形。在一些实施方案中,当用户中断与一个或多个图形的接触时,将发生对一个或多个图形的选择。在一些实施方案中,手势任选地包括一次或多次轻击、一次或多次轻扫(从左向右、从右向左、向上和/或向下)和/或已与设备200发生接触的手指的滚动(从右向左、从左向右、向上和/或向下)。在一些具体实施中或在一些情况下,不经意地与图形接触不会选择图形。例如,当与选择对应的手势是轻击时,在应用程序图标上方扫动的轻扫手势任选地不会选择对应的应用程序。
[0157] 设备200还包括一个或多个物理按钮,诸如“home”或菜单按钮304。如前所述,菜单按钮304用于导航到在设备200上执行的一组应用程序中的任何应用程序236。另选地,在一些实施方案中,菜单按钮被实现为被显示在触摸屏212上的GUI中的软键。
[0158] 在一些实施方案中,设备200包括触摸屏212、菜单按钮304、用于使设备通电/断电和用于锁定设备的下压按钮306、一个或多个音量调节按钮308、用户身份模块(SIM)卡槽310、耳麦插孔312和对接/充电外部端口224。下压按钮306任选地用于通过压下该按钮并且将该按钮保持在压下状态持续预定义的时间间隔来对设备进行开/关机;通过压下该按钮并在该预定义的时间间隔过去之前释放该按钮来锁定设备;和/或对设备进行解锁或发起解锁过程。在另选的实施方案中,设备200还通过麦克风213接受用于激活或去激活某些功能的语音输入。设备200还任选地包括用于检测触摸屏212上的接触的强度的一个或多个接触强度传感器265,和/或用于为设备200的用户生成触觉输出的一个或多个触觉输出发生器267。
[0159] 图4是根据一些实施方案的具有显示器和触敏表面的示例性多功能设备的框图。设备400不必是便携式的。在一些实施方案中,设备400是膝上型计算机、台式计算机、平板电脑、多媒体播放器设备、导航设备、教育设备(诸如儿童学习玩具)、游戏系统或控制设备(例如,家用控制器或工业用控制器)。设备400通常包括一个或多个处理单元(CPU)410、一个或多个网络或其他通信接口460、存储器470和用于使这些部件互连的一条或多条通信总线420。通信总线420任选地包括使系统部件互连并且控制系统部件之间的通信的电路(有时称作芯片组)。设备400包括具有显示器440的输入/输出(I/O)接口430,该显示器通常是触摸屏显示器。I/O接口430还任选地包括键盘和/或鼠标(或其他指向设备)450以及触控板
455、用于在设备400上生成触觉输出的触觉输出发生器457(例如,类似于以上参考图2A所述的一个或多个触觉输出发生器267)、传感器459(例如,光学传感器、加速度传感器、接近传感器、触敏传感器,和/或类似于以上参考图2A所述的一个或多个接触强度传感器265的接触强度传感器)。存储器470包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备;并且任选地包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器470任选地包括远离CPU 410定位的一个或多个存储设备。在一些实施方案中,存储器470存储与便携式多功能设备200(图2A)的存储器202中存储的程序、模块和数据结构类似的程序、模块和数据结构或其子集。此外,存储器470任选地存储在便携式多功能设备200的存储器202中不存在的附加程序、模块和数据结构。例如,设备400的存储器470任选地存储绘图模块480、呈现模块
482、文字处理模块484、网站创建模块486、盘编辑模块488、和/或电子表格模块490,而便携式多功能设备200(图2A)的存储器202任选地不存储这些模块。
[0160] 图4中的上述元件中的每一者在一些示例中存储在一个或多个先前提到的存储器设备中。上述模块中的每个模块对应于用于执行上述功能的指令集。上述模块或程序(例如,指令集)不必被实现为独立的软件程序、过程或模块,因此这些模块的各种子集在各种实施方案中组合或以其他方式重新布置。在一些实施方案中,存储器470存储上述模块和数据结构的子集。此外,存储器470存储上文未描述的另外的模块和数据结构。
[0161] 现在将注意力转到可在例如便携式多功能设备200上实现的用户界面的实施方案。
[0162] 图5A示出了根据一些实施方案的便携式多功能设备200上的应用程序菜单的示例性用户界面。类似的用户界面在设备400上实现。在一些实施方案中,用户界面500包括以下元件或者其子集或超集:
[0163] 一个或多个无线通信(诸如蜂窝信号和Wi-Fi信号)的一个或多个信号强度指示器502;
[0164] ·时间504;
[0165] ·蓝牙指示符505;
[0166] ·电池状态指示符506;
[0167] ·具有常用应用程序图标的托盘508,图标诸如:
[0168] ο电话模块238的被标记为“电话”的图标516,该图标任选地包括未接来电或语音留言的数量的指示符514;
[0169] ο电子邮件客户端模块240的被标记为“邮件”的图标518,该图标任选地包括未读电子邮件的数量的指示符510;
[0170] ο浏览器模块247的被标记为“浏览器”的图标520;以及
[0171] ο视频和音乐播放器模块252(也称为iPod(Apple Inc.的商标)模块252)的被标记为“iPod”的图标522;以及
[0172] ·其他应用程序的图标,诸如:
[0173] οIM模块241的被标记为“消息”的图标524;;
[0174] ο日历模块248的被标记为“日历”的图标526;;
[0175] ο图像管理模块244的被标记为“照片”的图标528;;
[0176] ο相机模块243的被标记为“相机”的图标530;;
[0177] ο在线视频模块255的被标记为“在线视频”的图标532;;
[0178] ο股市桌面小程序249-2的被标记为“股市”的图标534;;
[0179] ο地图模块254的被标记为“地图”的图标536;;
[0180] ο天气桌面小程序249-1的被标记为“天气”的图标538;;
[0181] ο闹钟桌面小程序249-4的被标记为“时钟”的图标540;;
[0182] ο健身支持模块242的被标记为“健身支持”的图标542;;
[0183] ο记事本模块253的被标记为“记事本”的图标544;以及
[0184] ο用于设置应用程序或模块的被标记为“设置”的图标546,该图标提供对设备200及其各种应用程序236的设置的访问。
[0185] 应当指出的是,图5A中示出的图标标签仅是示例性的。例如,视频和音乐播放器模块252的图标522任选地被标记为“音乐”或“音乐播放器”。对于各种应用程序图标任选地使用其他标签。在一些实施方案中,相应应用程序图标的标签包括与该相应应用程序图标对应的应用程序的名称。在一些实施方案中,特定应用程序图标的标签不同于与该特定应用程序图标对应的应用程序的名称。
[0186] 图5B示出了具有与显示器550(例如,触摸屏显示器212)分开的触敏表面551(例如,图4的平板或触控板455)的设备(例如,图4的设备400)上的示例性用户界面。设备400还任选地包括用于检测触敏表面551上的接触的强度的一个或多个接触强度传感器(例如,传感器457中的一个或多个传感器)和/或用于为设备400的用户生成触觉输出的一个或多个
触觉输出发生器459。
[0187] 尽管将参考触摸屏显示器212(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器分开的触敏表面上的输入,如图5B中所示。在一些实施方案中,触敏表面(例如,图5B中的551)具有与显示器(例如,
550)上的主轴(例如,图5B中的553)对应的主轴(例如,图5B中的552)。根据这些实施方案,设备检测在与显示器上的相应位置对应的位置(例如,在图5B中,560对应于568并且562对应于570)处与触敏表面551的接触(例如,图5B中的560和562)。这样,在触敏表面(例如,图
5B中的551)与多功能设备的显示器(例如,图5B中的550)分开时,由设备在触敏表面上检测到的用户输入(例如,接触560和562以及它们的移动)被该设备用于操纵显示器上的用户界面。应当理解,类似的方法任选地用于本文所述的其他用户界面。
[0188] 另外,虽然主要是参考手指输入(例如,手指接触、单指轻击手势、手指轻扫手势)来给出下面的示例,但是应当理解的是,在一些实施方案中,这些手指输入中的一个或多个手指输入由来自另一输入设备的输入(例如,基于鼠标的输入或触笔输入)替代。例如,轻扫手势任选地由鼠标点击(例如,而不是接触),之后是光标沿着轻扫的路径的移动(例如,而不是接触的移动)替代。又如,轻击手势任选地由在光标位于轻击手势的位置上方时的鼠标点击(例如,代替对接触的检测,之后是停止检测接触)替代。类似地,当同时检测到多个用户输入时,应当理解的是,多个计算机鼠标任选地被同时使用,或鼠标和手指接触任选地被同时使用。
[0189] 图6A示出了示例性个人电子设备600。设备600包括主体602。在一些实施方案中,设备600包括相对于设备200和400(例如,图2A至图4B)所述的特征中的一些或全部特征。在一些实施方案中,设备600具有在下文中称为触摸屏604的触敏显示屏604。作为触摸屏604的替代或补充,设备600具有显示器和触敏表面。与设备200和400的情况一样,在一些实施方案中,触摸屏604(或触敏表面)具有用于检测正在施加的接触(例如,触摸)的强度的一个或多个强度传感器。触摸屏604(或触敏表面)的一个或多个强度传感器提供表示触摸的强度的输出数据。设备600的用户界面基于触摸强度来对触摸作出响应,这意味着不同强度的触摸可调用设备600上的不同的用户界面操作。
[0190] 用于检测和处理触摸强度的技术可例如存在于相关申请中:2013年5月8日提交的名称为“Device,Method,and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application”的国际专利申请No.PCT/
US2013/040061,以及2013年11月11日提交的名称为“Device,Method,and Graphical User Interface for Transitioning  Between Touch Input to Display Output 
Relationships”的国际专利申请No.PCT/US2013/069483,这两个专利申请中的每个专利申请据此全文以引用方式并入本文。
[0191] 在一些实施方案中,设备600具有一个或多个输入机构606和。输入机构606和608(如果包括的话)是物理形式的。物理输入机构的示例包括下压按钮和可旋转机构。在一些实施方案中,设备600具有一个或多个附接机构。此类附接机构(如果包括的话)可允许将设备600与例如帽子、眼镜、耳环、项链、衬衣、夹克、手镯、表带、手链、裤子、皮带、子、钱包、背包等附接。这些附接机构允许用户穿戴设备600。
[0192] 图6B示出了示例性个人电子设备600。在一些实施方案中,设备600包括相对于图2A、图2B和图4所述的部件中的一些或全部部件。设备600具有总线612,该总线将I/O部分
614与一个或多个计算机处理器616和存储器618操作性地耦接。I/O部分614被连接到显示器604,该显示器可具有触敏部件622,并且任选地还具有触摸强度敏感部件624。此外,I/O部分614与通信单元630连接,以用于使用Wi-Fi、蓝牙、近场通信(NFC)、蜂窝和/或其他无线通信技术来接收应用程序和操作系统数据。设备600包括输入机构606和/或608。例如,输入机构606是可旋转输入设备或者可按压输入设备以及可旋转输入设备。在一些示例中,输入机构608是按钮。
[0193] 在一些示例中,输入机构608是麦克风。个人电子设备600包括例如各种传感器,诸如GPS传感器632、加速度计634、定向传感器640(例如,罗盘)、陀螺仪636、运动传感器638和/或它们的组合,所有这些设备均可操作地连接到I/O部分614。
[0194] 个人电子设备600的存储器618是用于存储计算机可执行指令的非暂态计算机可读存储介质,该指令当由一个或多个计算机处理器616执行时例如使得计算机处理器执行上述技术和过程。该计算机可执行指令也例如在任何非暂态计算机可读存储介质内进行存储和/或传送,以供指令执行系统、装置或设备诸如基于计算机的系统、包含处理器的系统或可从指令执行系统、装置或设备获取指令并执行指令的其他系统使用或与其结合。个人电子设备600不限于图6B的部件和配置,而是可包括多种配置中的其他部件或附加部件。
[0195] 如本文所用,术语“示能表示”是指在设备200、400、600、1110A-C和/或1120(图2、图4、图6和图11A至图11E)的显示屏上显示的用户交互式图形用户界面对象。例如,图像(例如,图标)、按钮和文本(例如,超链接)各自构成示能表示。
[0196] 如本文所用,术语“焦点选择器”是指用于指示用户正与之进行交互的用户界面的当前部分的输入元件。在包括光标或其他位置标记的一些具体实施中,光标充当“焦点选择器”,使得当光标在特定用户界面元素(例如,按钮、窗口、滑块或其他用户界面元素)上方时在触敏表面(例如,图4中的触控板455或图5B中的触敏表面551)上检测到输入(例如,按压输入)的情况下,该特定用户界面元素根据所检测到的输入而被调节。在包括能够实现与触摸屏显示器上的用户界面元素的直接交互的触摸屏显示器(例如,图2A中的触敏显示器系统212或图5A中的触摸屏212)的一些具体实施中,在触摸屏上所检测到的接触充当“焦点选择器”,使得当在触摸屏显示器上在特定用户界面元素(例如,按钮、窗口、滑块或其他用户界面元素)的位置处检测到输入(例如,由接触进行的按压输入)时,该特定用户界面元素根据所检测到的输入而被调节。在一些具体实施中,焦点从用户界面的一个区域移动到用户界面的另一个区域,而无需光标的对应移动或触摸屏显示器上的接触的移动(例如,通过使用制表键或箭头键将焦点从一个按钮移动到另一个按钮);在这些具体实施中,焦点选择器根据焦点在用户界面的不同区域之间的移动而移动。不考虑焦点选择器所采取的具体形式,焦点选择器通常是由用户控制的以便递送与用户界面的用户预期的交互(例如,通过向设备指示用户界面的用户期望与其进行交互的元素)的用户界面元素(或触摸屏显示器上
的接触)。例如,在触敏表面(例如,触控板或触摸屏)上检测到按压输入时,焦点选择器(例如,光标、接触或选择框)在相应按钮上方的位置将指示用户期望激活相应按钮(而不是设备显示器上示出的其他用户界面元素)。
[0197] 如说明书和权利要求中所使用的,接触的“特征强度”这一术语是指基于接触的一个或多个强度的接触的特征。在一些实施方案中,特征强度基于多个强度样本。特征强度任选地基于相对于预定义事件(例如,在检测到接触之后,在检测到接触抬离之前,在检测到接触开始移动之前或之后,在检测到接触结束之前,在检测到接触的强度增大之前或之后和/或在检测到接触的强度减小之前或之后)而言在预先确定的时间段(例如,0.05秒、0.1秒、0.2秒、0.5秒、1秒、2秒、5秒、10秒)期间采集的预定义数量的强度样本或一组强度样本。接触的特征强度任选地基于以下各项中的一者或多者:接触强度的最大值、接触强度的均值、接触强度的平均值、接触强度的前10%处的值、接触强度的半最大值、接触强度的90%最大值等。在一些实施方案中,在确定特征强度时使用接触的持续时间(例如,在特征强度是接触的强度在时间上的平均值时)。在一些实施方案中,将特征强度与一组一个或多个强度阈值进行比较,以确定用户是否已执行操作。例如,该组一个或多个强度阈值包括第一强度阈值和第二强度阈值。在该示例中,特征强度未超过第一阈值的接触导致第一操作,特征强度超过第一强度阈值但未超过第二强度阈值的接触导致第二操作,而特征强度超过第二阈值的接触导致第三操作。在一些实施方案中,使用特征强度与一个或多个阈值之间的比较来确定是否要执行一个或多个操作(例如,是执行相应操作还是放弃执行相应操作),而不是用于确定执行第一操作还是第二操作。
[0198] 在一些实施方案中,识别手势的一部分以用于确定特征强度。例如,触敏表面接收连续的轻扫接触,该连续的轻扫接触从起始位置过渡并到达结束位置,在该结束位置处,接触的强度增加。在该示例中,接触在结束位置处的特征强度仅基于连续轻扫接触的一部分,而不是整个轻扫接触(例如,轻扫接触仅位于结束位置处的部分)。在一些实施方案中,在确定接触的特征强度之前向轻扫接触的强度应用平滑化算法。例如,平滑化算法任选地包括以下各项中的一种或多种:不加权滑动平均平滑化算法、三平滑化算法、中值滤波器平滑化算法和/或指数平滑化算法。在一些情况下,这些平滑化算法消除了轻扫接触的强度中的窄的尖峰或凹陷,以实现确定特征强度的目的。
[0199] 相对于一个或多个强度阈值诸如接触检测强度阈值、轻按压强度阈值、深按压强度阈值和/或一个或多个其他强度阈值来表征触敏表面上的接触的强度。在一些实施方案中,轻按压强度阈值对应于这样的强度:在该强度下设备将执行通常与点击物理鼠标或触摸板的按钮相关联的操作。在一些实施方案中,深按压强度阈值对应于这样的强度:在该强度下设备将执行与通常与点击物理鼠标或触控板的按钮相关联的操作不同的操作。在一些实施方案中,当检测到特征强度低于轻按压强度阈值(例如,并且高于标称接触检测强度阈值,比标称接触检测强度阈值低的接触不再被检测到)的接触时,设备将根据接触在触敏表面上的移动来移动焦点选择器,而不执行与轻按压强度阈值或深按压强度阈值相关联的操作。一般来讲,除非另有陈述,否则这些强度阈值在不同组的用户界面附图之间是一致的。
[0200] 接触特征强度从低于轻按压强度阈值的强度增大到介于轻按压强度阈值与深按压强度阈值之间的强度有时被称为“轻按压”输入。接触特征强度从低于深按压强度阈值的强度增大到高于深按压强度阈值的强度有时被称为“深按压”输入。接触特征强度从低于接触检测强度阈值的强度增大到介于接触检测强度阈值与轻按压强度阈值之间的强度有时
被称为检测到触摸表面上的接触。接触特征强度从高于接触检测强度阈值的强度减小到低于接触检测强度阈值的强度有时被称为检测到接触从触摸表面抬离。在一些实施方案中,接触检测强度阈值为零。在一些实施方案中,接触检测强度阈值大于零。
[0201] 在本文中所述的一些实施方案中,响应于检测到包括相应按压输入的手势或响应于检测到利用相应接触(或多个接触)执行的相应按压输入来执行一个或多个操作,其中至少部分地基于检测到该接触(或多个接触)的强度增大到高于按压输入强度阈值而检测到相应按压输入。在一些实施方案中,响应于检测到相应接触的强度增大到高于按压输入强度阈值(例如,相应按压输入的“向下冲程”)来执行相应操作。在一些实施方案中,按压输入包括相应接触的强度增大到高于按压输入强度阈值以及该接触的强度随后减小到低于按
压输入强度阈值,并且响应于检测到相应接触的强度随后减小到低于按压输入阈值(例如,相应按压输入的“向上冲程”)来执行相应操作。
[0202] 在一些实施方案中,设备采用强度滞后以避免有时被称为“抖动”的意外输入,其中设备限定或选择与按压输入强度阈值具有预定义关系的滞后强度阈值(例如,滞后强度阈值比按压输入强度阈值低X个强度单位,或滞后强度阈值是按压输入强度阈值的75%、90%或某个合理比例)。因此,在一些实施方案中,按压输入包括相应接触的强度增大到高于按压输入强度阈值以及该接触的强度随后减小到低于对应于按压输入强度阈值的滞后
强度阈值,并且响应于检测到相应接触的强度随后减小到低于滞后强度阈值(例如,相应按压输入的“向上冲程”)来执行相应操作。类似地,在一些实施方案中,仅在设备检测到接触强度从等于或低于滞后强度阈值的强度增大到等于或高于按压输入强度阈值的强度并且
任选地接触强度随后减小到等于或低于滞后强度的强度时才检测到按压输入,并且响应于检测到按压输入(例如,根据环境,接触强度增大或接触强度减小)来执行相应操作。
[0203] 为了容易解释,任选地,响应于检测到以下各种情况中的任一种情况而触发对响应于与按压输入强度阈值相关联的按压输入或响应于包括按压输入的手势而执行的操作的描述:接触强度增大到高于按压输入强度阈值、接触强度从低于滞后强度阈值的强度增大到高于按压输入强度阈值的强度、接触强度减小到低于按压输入强度阈值、和/或接触强度减小到低于与按压输入强度阈值对应的滞后强度阈值。另外,在将操作描述为响应于检测到接触的强度减小到低于按压输入强度阈值而执行的示例中,任选地响应于检测到接触的强度减小到低于对应于并且小于按压输入强度阈值的滞后强度阈值来执行操作。
[0204] 3.数字助理系统
[0205] 图7A示出了根据各种示例的数字助理系统700的框图。在一些示例中,数字助理系统700在独立式计算机系统上实现。在一些示例中,数字助理系统700跨多个计算机分布。在一些示例中,数字助理的模块和功能中的一些被划分成服务器部分和客户端部分,其中客户端部分位于一个或多个用户设备(例如,设备104、122、200、400、600、1110A-C或1120)上并通过一个或多个网络与服务器部分(例如,服务器系统108)通信,例如,如图1中所示。在一些示例中,数字助理系统700是图1中所示的服务器系统108(和/或DA服务器106)的具体实施。应当指出,数字助理系统700仅为数字助理系统的一个示例,且该数字助理系统700具有比所示更多或更少的部件、组合两个或更多个部件,或者可具有部件的不同配置或布局。图7A中所示的各种部件在硬件、用于在由一个或多个处理器执行的软件指令、固件(包括一个或多个信号处理集成电路和/或专用集成电路),或它们的组合中实现。
[0206] 数字助理系统700包括存储器702、输入/输出(I/O)接口706、网络通信接口708,以及一个或多个处理器704。这些部件可通过一条或多条通信总线或信号线710彼此通信。
[0207] 在一些示例中,存储器702包括非暂态计算机可读介质,诸如高速随机存取存储器和/或非易失性计算机可读存储介质(例如,一个或多个磁盘存储设备、闪存存储器设备或其他非易失性固态存储器设备)。
[0208] 在一些示例中,I/O接口706将数字助理系统700的输入/输出设备716诸如显示器、键盘、触摸屏和麦克风耦接至用户界面模块722。I/O接口706与用户界面模块722一起接收用户输入(例如,语音输入、键盘输入、触摸输入等)并相应地对这些输入进行处理。在一些示例中,例如,当数字助理在独立用户设备上实现时,数字助理系统700包括相对于图2A、图4、图6A至图6B和图11A至图11E中的设备200、400、600、1110A-C或1120分别所述的部件和I/O通信接口中的任一者。在一些示例中,数字助理系统700表示数字助理具体实施的服务器部分,并且可通过位于用户设备(例如,设备104、200、400、600、1110A-C或1120)上的客户端侧部分与用户进行交互。
[0209] 在一些示例中,网络通信接口708包括一个或多个有线通信端口712和/或无线传输和接收电路714。一个或多个有线通信端口经由一个或多个有线接口例如以太网、通用串行总线(USB)、FIREWIRE等接收和发送通信信号。无线电路714从通信网络及其他通信设备接收RF信号和/或光学信号以及将RF信号和/或光学信号发送至通信网络及其他通信设备。
无线通信使用多种通信标准、协议和技术中的任一种,诸如GSM、EDGE、CDMA、TDMA、蓝牙、Wi-Fi、VoIP、Wi-MAX、或任何其他合适的通信协议。网络通信接口708使数字助理系统700通过网络,诸如互联网、内联网和/或无线网络诸如蜂窝电话网络、无线局域网(LAN)和/或城域网(MAN),与其他设备之间的通信成为可能。
[0210] 在一些示例中,存储器702或存储器702的计算机可读存储介质存储程序、模块、指令和数据结构,包括以下内容中的全部或其子集:操作系统718、通信模块720、用户界面模块722、一个或多个应用程序724和数字助理模块726。具体地,存储器702或存储器702的计算机可读存储介质存储用于执行上述过程的指令。一个或多个处理器704执行这些程序、模块和指令,并从数据结构读取数据或将数据写到数据结构。
[0211] 操作系统718(例如,Darwin、RTXC、LINUX、UNIX、iOS、OS X、WINDOWS、或嵌入式操作系统诸如VxWorks)包括用于控制和管理一般系统任务(例如,存储器管理、存储设备控制、电源管理等)的各种软件部件和/或驱动器,并且有利于各种硬件、固件和软件部件之间的通信。
[0212] 通信模块720有利于数字助理系统700与其他设备之间通过网络通信接口708进行的通信。例如,通信模块720与电子设备诸如分别在图2A、图4、图6A至图6B中所示的设备
200,400或600的RF电路208通信。通信模块720还包括各种部件,用于处理由无线电路714和/或有线通信端口712所接收的数据。
[0213] 用户界面模块722经由I/O接口706接收来自用户(例如,来自键盘、触摸屏、指向设备、控制器和/或麦克风)的命令和/或输入,并在显示器上生成用户界面对象。用户界面模块722还准备输出(例如,语音、声音、动画、文本、图标、振动、触觉反馈、光照等)并将其经由I/O接口706(例如,通过显示器、音频通道、扬声器、触控板等)传送给用户。
[0214] 应用程序724包括被配置为由所述一个或多个处理器704执行的程序和/或模块。例如,如果数字助理系统在独立式用户设备上实施,则应用程序724包括用户应用程序,诸如游戏、日历应用程序、导航应用程序或邮件应用程序。如果数字助理系统700在服务器上实现,则应用程序724包括例如资源管理应用程序、诊断应用程序、或调度应用程序。
[0215] 存储器702还存储数字助理模块726(或数字助理的服务器部分)。在一些示例中,数字助理模块726包括以下子模块或者其子集或超集:输入/输出处理模块728、语音转文本(STT)处理模块730、自然语言处理模块732、对话流处理模块734、任务流处理模块736、服务处理模块738和语音合成模块740。这些模块中的每一者均具有对以下数字助理模块726的系统或数据与模型中的一者或多者或者其子集或超集的访问权限:知识本体760、词汇索引744、用户数据748、任务流模型754、服务模型756和ASR系统。
[0216] 在一些示例中,使用在数字助理模块726中实现的处理模块、数据和模型,数字助理可执行以下中的至少一些:将语音输入转换成文本;识别在从用户接收的自然语言输入中表达的用户意图;主动引出并获得完全推断用户意图所需的信息(例如,通过消除字词、游戏、意图等的歧义);确定用于满足推断出的意图的任务流;以及执行该任务流以满足推断出的意图。
[0217] 在一些示例中,如图7B中所示,I/O处理模块728可通过图7A中的I/O设备716与用户交互或通过图7A中的网络通信接口708与用户设备(例如,设备104、设备200、设备400或设备600)交互,以获取用户输入(例如,语音输入)并提供对用户输入的响应(例如,作为语音输出)。I/O处理模块728随同接收到用户输入一起或在接收到用户输入之后不久任选地获得与来自用户设备的用户输入相关联的上下文信息。上下文信息包括特定于用户的数据、词汇,和/或与用户输入相关的偏好。在一些示例中,该上下文信息还包括在接收到用户请求时的用户设备的软件状态和硬件状态,和/或在接收到用户请求时与用户的周围环境相关的信息。在一些示例中,I/O处理模块728还向用户发送与用户请求有关的跟进问题,并从用户接收回答。在用户请求被I/O处理模块728接收且用户请求包括语音输入时,I/O处理模块728将语音输入转发至STT处理模块730(或语音识别器)以进行语音文本转换。
[0218] STT处理模块730包括一个或多个ASR系统。一个或多个ASR系统可处理通过I/O处理模块728接收到的语音输入,以产生识别结果。每个ASR系统包括前端语音预处理器。前端语音预处理器从语音输入中提取代表性特征。例如,前端语音预处理器对语音输入执行傅里叶变换,以提取表征语音输入的频谱特征作为代表性多维向量的序列。另外,每个ASR系统包括一个或多个语音识别模型(例如,声学模型和/或语言模型)并且实现一个或多个语音识别引擎。语音识别模型的示例包括隐马尔可夫模型、高斯混合模型、深层神经网络模型、n元语言模型以及其他统计模型。语音识别引擎的示例包括基于动态时间规整的引擎和基于加权有限状态变换器(WFST)的引擎。使用一个或多个语音识别模型和一个或多个语音识别引擎来处理前端语音预处理器的所提取的代表性特征以产生中间识别结果(例如,音素、音素串和子字词),并且最终产生文本识别结果(例如,字词、字词串、或符号序列)。在一些示例中,语音输入至少部分地由第三方服务处理或在用户的设备(例如,设备104、设备
200、设备400或设备600)上处理,以产生识别结果。一旦STT处理模块730产生包含文本串(例如,字词,或字词的序列,或符号序列)的识别结果,识别结果即被传送至自然语言处理模块732以供意图推断。在一些示例中,STT处理模块730产生语音输入的多个候选文本表示。每个候选文本表示是与语音输入对应的字词或符号的序列。在一些示例中,每个候选文本表示与语音识别置信度得分相关联。基于语音识别置信度得分,STT处理模块730对候选文本表示进行排序并将n个最佳(例如,n个排名最高)候选文本表示提供给自然语言处理模块732以供意图推断,其中n为大于零的预先确定的整数。例如,在一个示例中,仅将排名最高的(n=1)候选文本表示递送至自然语言处理模块732以供意图推断。又如,将5个排名最高的(n=5)候选文本表示传递给自然语言处理模块732以供意图推断。
[0219] 有关语音转文本处理的更多细节在提交于2011年9月20日的名为“Consolidating Speech Recognition Results”的美国实用新型专利申请序列号13/236,942中有所描述,其全部公开内容以引用方式并入本文。
[0220] 在一些示例中,STT处理模块730包括可识别字词的词汇和/或经由语音字母转换模块731访问该词汇。每个词汇字词与语音识别语音字母表中表示的字词的一个或多个候选发音相关联。具体地,可识别字词的词汇包括与多个候选发音相关联的字词。例如,该词汇包括与 和 的候选发音相关联的字词“tomato”。另外,词汇字词与
基于来自用户的先前语音输入的自定义候选发音相关联。此类自定义候选发音存储在STT处理模块730中,并且经由设备上的用户配置文件与特定用户相关联。在一些示例中,字词的候选发音基于字词的拼写以及一个或多个语言学和/或语音学规则确定。在一些示例中,候选发音手动生成,例如,基于已知的标准发音而手动生成。
[0221] 在一些示例中,基于候选发音的普遍性来对候选发音进行排名。例如,候选发音的排序高于 因为前者是更常用的发音(例如,在所有用户中,对于特定地理区域的用户而言,或者对于任何其他合适的用户子集而言)。在一些示例中,基于候选发音是否为与用户相关联的自定义候选发音来对候选发音进行排序。例如,自定义候选发音的排名高于标准候选发音。这可用于识别具有偏离规范发音的独特发音的专有名
词。在一些示例中,候选发音与一个或多个语音特征诸如地理起源、国家或种族相关联。例如,候选发音 与美国相关联,而候选发音 与英国相关联。此外,候选
发音的排序基于存储在设备上的用户配置文件中的用户的一个或多个特征(例如,地理起源、国家、种族等)。例如,可从用户配置文件确定该用户与美国相关联。基于用户与美国相关联,候选发音 (与美国相关联)可比候选发音 (与英国相关联)排
名更高。在一些示例中,经排序的候选发音中的一个可被选作预测发音(例如,最可能的发音)。
[0222] 接收到语音输入时,STT处理模块730被用来(例如,使用声音模型)确定对应于该语音输入的音素,然后尝试(例如,使用语言模型)确定匹配该音素的字词。例如,如果STT处理模块730首先识别对应于该语音输入的一部分的音素序列 那么它随后可基于词汇索引744确定该序列对应于字词“tomato”。
[0223] 在一些示例中,STT处理模块730使用模糊匹配技术来确定话语中的字词。因此,例如,STT处理模块730确定音素序列 对应于字词“tomato”,即使该特定音素序列不是该字词的候选音素序列。
[0224] 数字助理的自然语言处理模块732(“自然语言处理器”)获取由STT处理模块730生成的n个最佳候选文字表示(“字词序列”或“符号序列”),并尝试将每个候选文本表示与由数字助理所识别的一个或多个“可执行意图”相关联。“可执行意图”(或“用户意图”)表示可由数字助理执行并且可具有在任务流模型754中实现的相关联的任务流的任务。相关联的任务流是数字助理为了执行任务而采取的一系列经编程的动作和步骤。数字助理的能力范围取决于已在任务流模型754中实现并存储的任务流的数量和种类,或换言之,取决于数字助理所识别的“可执行意图”的数量和种类。然而,数字助理的有效性还取决于助理从以自然语言表达的用户请求中推断出正确的“一个或多个可执行意图”的能力。
[0225] 在一些示例中,除从STT处理模块730获取的字词或符号的序列之外,自然语言处理模块732还例如,从I/O处理模块728接收与用户请求相关联的上下文信息。自然语言处理模块732任选地使用上下文信息来明确、补充和/或进一步限定在从STT处理模块730接收的候选文本表示中包含的信息。上下文信息包括例如用户偏好,用户设备的硬件和/或软件状态,在用户请求之前、期间或之后不久收集的传感器信息,数字助理与用户之间的先前交互(例如,对话),等等。如本文所述,在一些示例中,上下文信息是动态的,并且随对话的时间、位置、内容、以及其他因素而变化。
[0226] 在一些示例中,自然语言处理基于例如知识本体760。知识本体760为包含许多节点的分级结构,每个节点表示“可执行意图”或与“可执行意图”或其他“属性”中的一者或多者相关的“属性”。如上所述,“可执行意图”表示数字助理能够执行的任务,即,该任务为“可执行的”或可被进行的。“属性”代表与可执行意图或另一属性的子方面相关联的参数。知识本体760中可执行意图节点与属性节点之间的连接限定由属性节点表示的参数如何从属于由可执行意图节点表示的任务。
[0227] 在一些示例中,知识本体760由可执行意图节点和属性节点组成。在知识本体760内,每个可执行意图节点直接连接至或通过一个或多个中间属性节点连接至一个或多个属性节点。类似地,每个属性节点直接连接至或通过一个或多个中间属性节点连接至一个或多个可执行意图节点。例如,如图7C所示,知识本体760包括“餐厅预订”节点(即,可执行意图节点)。属性节点“餐厅”、“日期/时间”(针对预订)和“派对人数”均直接连接至可执行意图节点(即,“餐厅预订”节点)。
[0228] 此外,属性节点“菜系”、“价格区间”、“电话号码”和“位置”是属性节点“餐厅”的子节点,并且均通过中间属性节点“餐厅”连接至“餐厅预订”节点(即,可执行意图节点)。又如,如图7C所示,知识本体760还包括“设定提醒”节点(即,另一个可执行意图节点)。属性节点“日期/时间”(针对设定提醒)和“主题”(针对提醒)均连接至“设定提醒”节点。由于属性“日期/时间”与进行餐厅预订的任务和设定提醒的任务二者相关,因此属性节点“日期/时间”连接至知识本体760中的“餐厅预订”节点和“设定提醒”节点二者。
[0229] 可执行意图节点连同其连接的概念节点一起,被描述为“域”。在本讨论中,每个域与相应的可执行意图相关联,并是指与特定可执行意图相关联的一组节点(以及这些节点之间的关系)。例如,图7C中示出的知识本体760包括在知识本体760内的餐厅预订域762的示例和提醒域764的示例。餐厅预订域包括可执行意图节点“餐厅预订”、属性节点“餐厅”、“日期/时间”和“派对人数”以及子属性节点“菜系”、“价格范围”、“电话号码”和“位置”。提醒域764包括可执行意图节点“设定提醒”和属性节点“主题”和“日期/时间”。在一些示例中,知识本体760由多个域组成。每个域与一个或多个其他域共享一个或多个属性节点。例如,除了餐厅预订域762和提醒域764之外,“日期/时间”属性节点还与许多不同域(例如,行程安排域、旅行预订域、电影票域等)相关联。
[0230] 尽管图7C示出知识本体760内的两个示例性域,但其他域包括例如“查找电影”、“发起电话呼叫”、“查找方向”、“安排会议”、“发送消息”以及“提供问题的回答”、“阅读列表”、“提供导航指令”、“提供针对任务的指令”等。“发送消息”域与“发送消息”可执行意图节点相关联,并且进一步包括属性节点诸如“一个或多个接收人”、“消息类型”和“消息正文”。属性节点“接收人”进一步例如由子属性节点诸如“接收人姓名”和“消息地址”来限定。
[0231] 在一些示例中,知识本体760包括数字助理能够理解并对其起作用的所有域(以及因而可执行意图)。在一些示例中,知识本体760诸如通过添加或移除整个域或节点,或者通过修改知识本体760内的节点之间的关系进行修改。
[0232] 在一些示例中,将与多个相关可执行意图相关联的节点群集在知识本体760中的“超级域”下。例如,“旅行”超级域包括与旅行相关的属性节点和可执行意图节点的群集。与旅行相关的可执行意图节点包括“机票预订”、“酒店预订”、“汽车租赁”、“获取方向”、“寻找兴趣点”,等等。同一超级域(例如,“旅行”超级域)下的可执行意图节点具有多个共用的属性节点。例如,针对“机票预订”、“酒店预订”、“汽车租赁”、“获取方向”和“寻找兴趣点”的可执行意图节点共享属性节点“起始位置”、“目的地”、“出发日期/时间”、“到达日期/时间”和“派对人数”中的一者或多者。
[0233] 在一些示例中,知识本体760中的每个节点与跟由节点代表的属性或可执行意图有关的一组字词和/或短语相关联。与每个节点相关联的相应的一组字词和/或短语是所谓的与节点相关联的“词汇”。将与每个节点相关联的相应的一组字词和/或短语存储在与由节点所代表的属性或可执行意图相关联的词汇索引744中。例如,返回图7B,与“餐厅”属性的节点相关联的词汇包括字词诸如“美食”、“酒水”、“菜系”、“饥饿”、“吃”、“披萨”、“快餐”、“膳食”等。又如,与“发起电话呼叫”可执行意图的节点相关联的词汇包括字词和短语诸如“呼叫”、“打电话”、“拨打”、“与……通电话”、“呼叫该号码”、“打电话给”等。词汇索引744任选地包括不同语言的字词和短语。
[0234] 自然语言处理模块732接收来自STT处理模块730的候选文本表示(例如,一个或多个文本串或一个或多个符号序列),并针对每个候选表示,确定候选文本表示中的字词涉及哪些节点。在一些示例中,如果发现候选文本表示中的字词或短语(经由词汇索引744)与知识本体760中的一个或多个节点相关联,则所述字词或短语“触发”或“激活”那些节点。基于已激活节点的数量和/或相对重要性,自然语言处理模块732选择可执行意图中的一个可执行意图作为用户打算使数字助理执行的任务。在一些示例中,选择具有最多“已触发”节点的域。在一些示例中,选择具有最高置信度(例如,基于其各个已触发节点的相对重要性)的域。在一些示例中,基于已触发节点的数量和重要性的组合来选择域。在一些示例中,在选择节点的过程中还考虑附加因素,诸如数字助理先前是否已正确解译来自用户的类似请求。
[0235] 用户数据748包括特定于用户的信息,诸如特定于用户的词汇、用户偏好、用户地址、用户的默认第二语言、用户的联系人列表,以及每位用户的其他短期或长期信息。在一些示例中,自然语言处理模块732使用特定于用户的信息来补充用户输入中所包含的信息以进一步限定用户意图。例如,针对用户请求“邀请我的朋友参加我的生日派对”,自然语言处理模块732能够访问用户数据748以确定“朋友”是哪些人以及“生日派对”将于何时何地举行,而不需要用户在其请求中明确地提供此类信息。
[0236] 应认识到,在一些示例中,利用一个或多个机器学习机构(例如,神经网络)来实现自然语言处理模块732。具体地,一个或多个机器学习机构被配置为接收候选文本表示和与候选文本表示相关联的上下文信息。基于候选文本表示和相关联的上下文信息,一个或多个机器学习机构被配置为基于一组候选可执行意图确定意图置信度得分。自然语言处理模块732可基于所确定的意图置信度得分从一组候选可执行意图中选择一个或多个候选可执行意图。在一些示例中,还利用知识本体(例如,知识本体760)从一组候选可执行意图中选择一个或多个候选可执行意图。
[0237] 基于符号串搜索知识本体的其他细节在提交于2008年12月22日的名为“Method and Apparatus for Searching Using An Active Ontology”的美国实用新型专利申请序列号12/341,743中有所描述,其全部公开内容以引用方式并入本文。
[0238] 在一些示例中,一旦自然语言处理模块732基于用户请求识别出可执行意图(或域),自然语言处理模块732便生成结构化查询以表示所识别的可执行意图。在一些示例中,结构化查询包括针对可执行意图的域内的一个或多个节点的参数,并且所述参数中的至少一些参数填充有用户请求中指定的特定信息和要求。例如,用户说“帮我在寿司店预订晚上
7点的座位。”在这种情况下,自然语言处理模块732能够基于用户输入将可执行意图正确地识别为“餐厅预订”。根据知识本体,“餐厅预订”域的结构化查询包括参数诸如{菜系}、{时间}、{日期}、{派对人数}等。在一些示例中,基于语音输入和使用STT处理模块730从语音输入得出的文本,自然语言处理模块732针对餐厅预订域生成部分结构化查询,其中部分结构化查询包括参数{菜系=“寿司类”}以及{时间=“晚上7点”}。然而,在该示例中,用户话语包含不足以完成与域相关联的结构化查询的信息。因此,基于当前可用信息,在结构化查询中未指定其他必要参数,诸如{同行人数}和{日期}。在一些示例中,自然语言处理模块732用所接收的上下文信息来填充结构化查询的一些参数。例如,在一些示例中,如果用户请求“附近的”寿司店,自然语言处理模块732用来自用户设备的GPS坐标来填充结构化查询中的{位置}参数。
[0239] 在一些示例中,自然语言处理模块732识别针对从STT处理模块730所接收的每个候选文本表示的多个候选可执行意图。另外,在一些示例中,针对每个所识别的候选可执行意图生成相应的结构化查询(部分地或全部地)。自然语言处理模块732确定针对每个候选可执行意图的意图置信度得分,并基于意图置信度得分对候选可执行意图进行排序。在一些示例中,自然语言处理模块732将所生成的一个或多个结构化查询(包括任何已完成的参数)传送至任务流处理模块736(“任务流处理器”)。在一些示例中,针对m个最佳(例如,m个排名最高的)候选可执行意图的一个或多个结构化查询被提供给任务流处理模块736,其中m为预先确定的大于零的整数。在一些示例中,将针对m个最佳候选可执行意图的一个或多个结构化查询连同对应的一个或多个候选文本表示提供给任务流处理模块736。
[0240] 基于根据语音输入的多个候选文本表示所确定的多个候选可执行意图推断用户意图的其他细节在2014年6月6日提交的名称为“System and Method for Inferring User Intent From Speech Inputs”的美国实用新型专利申请No.14/298,725中有所描述,其全部公开内容以引用方式并入本文。
[0241] 任务流处理模块736被配置为接收来自自然语言处理模块732的一个或多个结构化查询,(必要时)完成结构化查询,以及执行“完成”用户最终请求所需的动作。在一些示例中,完成这些任务所必需的各种过程在任务流模型754中提供。在一些示例中,任务流模型
754包括用于获取来自用户的附加信息的过程,以及用于执行与可执行意图相关联的动作的任务流。
[0242] 如上所述,为了完成结构化查询,任务流处理模块736需要发起与用户的附加对话,以便获取附加信息和/或弄清可能有歧义的话语。当有必要进行此类交互时,任务流处理模块736调用对话流处理模块734来参与同用户的对话。在一些示例中,对话流处理器模块734确定如何(和/或何时)向用户请求附加信息,并且接收和处理用户响应。通过I/O处理模块728将问题提供给用户并从用户接收回答。在一些示例中,对话流处理模块734经由可听输出和/或视觉输出向用户呈现对话输出,并经由口头或物理(例如,点击)响应接收来自用户的输入。继续上述示例,在任务流处理模块736调用对话流处理模块734来确定针对与域“餐厅预订”相关联的结构化查询的“派对人数”和“日期”信息时,对话流处理模块734生成诸如“一行几位?”和“预订哪天?”之类的问题传递给用户。一旦收到来自用户的回答,对话流处理模块734就用缺失信息填充结构化查询,或将信息传递给任务流处理模块736以根据结构化查询完成缺失信息。
[0243] 一旦任务流处理模块736已针对可执行意图完成结构化查询,任务流处理模块736便开始执行与可执行意图相关联的最终任务。因此,任务流处理模块736根据结构化查询中包含的特定参数来执行任务流模型中的步骤和指令。例如,针对可执行意图“餐厅预订”的任务流模型包括用于联系餐厅并实际上请求在特定时间针对特定派对人数的预订的步骤和指令。例如,使用结构化查询诸如:{餐厅预订、餐厅=ABC咖啡馆、日期=3/12/2012、时间=7pm、派对人数=5},任务流处理模块736可执行以下步骤:(1)登录ABC咖啡馆的服务器或诸如 的餐厅预订系统,(2)以网站上的形式输入日期、时间和派对人数信
息,(3)提交表单,以及(4)在用户的日历中形成针对预订的日历条目。
[0244] 在一些示例中,任务流处理模块736在服务处理模块738(“服务处理模块”)的辅助下完成用户输入中所请求的任务或者提供用户输入中所请求的信息性回答。例如,服务处理模块738代表任务流处理模块736发起电话呼叫、设定日历条目、调用地图搜索、调用用户设备上安装的其他用户应用程序或与所述其他应用程序进行交互,以及调用第三方服务(例如,餐厅预订门户网站、社交网站、行门户网站等)或与第三方服务进行交互。在一些示例中,通过服务模型756中的相应服务模型指定每项服务所需的协议和应用程序编程接口(API)。服务处理模块738针对服务访问适当的服务模型,并依据服务模型根据该服务所需的协议和API生成针对该服务的请求。
[0245] 例如,如果餐厅已启用在线预订服务,则餐厅提交服务模型,该服务模型指定进行预订的必要参数以及将必要参数的值传送至在线预订服务的API。在被任务流处理模块736请求时,服务处理模块738可使用存储在服务模型中的web地址来建立与在线预订服务的网络连接,并将预订的必要参数(例如,时间、日期、同行人数)以根据在线预订服务的API的格式发送至在线预订接口。
[0246] 在一些示例中,自然语言处理模块732、对话流处理模块734以及任务流处理模块736被共同且反复地使用,以推断并限定用户的意图、获取信息以进一步明确并细化用户意图并最终生成响应(即,输出至用户,或完成任务)以满足用户的意图。所生成的响应是至少部分地满足用户意图的对语音输入的对话响应。另外,在一些示例中,所生成的响应被输出为语音输出。在这些示例中,所生成的响应被发送到语音合成模块740(例如,语音合成器),在语音合成模块中,可处理所生成的响应以将对话响应以语音形式合成。在其他示例中,所生成的响应是与满足语音输入中的用户请求相关的数据内容。
[0247] 在任务流处理模块736接收到来自自然语言处理模块732的多个结构化查询的示例中,任务流处理模块736首先处理所接收结构化查询的第一结构化查询以试图完成第一结构化查询和/或执行由第一结构化查询所表示的一个或多个任务或动作。在一些示例中,第一结构化查询对应于排名最高的可执行意图。在其他示例中,第一结构化查询选自基于对应的语音识别置信度得分和对应的意图置信度得分的组合而接收的结构化查询。在一些示例中,如果任务流处理模块736在第一结构化查询的处理期间(例如,由于无法确定必要的参数)遇到错误,任务流处理模块736可继续选择和处理所接收的结构化查询中与排名较低的可执行意图对应的第二结构化查询。例如基于对应候选文本表示的语音识别置信度得分、对应候选可执行意图的意图置信度得分、第一结构化查询中的缺失的必要参数或它们的任何组合来选择第二结构化查询。
[0248] 语音合成模块740被配置为合成用于呈现给用户的语音输出。语音合成模块740基于数字助理提供的文本来合成语音输出。例如,所生成的对话响应是文本串的形式。语音合成模块740将文本串转换成可听语音输出。语音合成模块740使用任何适当语音合成技术,以便从文本生成语音输出,包括但不限于:拼接合成、单元选择合成、双音素合成、域特定合成、共振峰合成、发音合成、基于隐马尔可夫模型(HMM)的合成,以及正弦波合成。在一些示例中,语音合成模块740被配置为基于对应于这些字词的音素串来合成各个字词。例如,音素串与所生成的对话响应中的字词相关联。音素串存储在与字词相关联的元数据中。语音合成模型740被配置为直接处理元数据中的音素串,以合成语音形式的字词。
[0249] 在一些示例中,替代使用语音合成模块740(或除此之外),在远程设备(例如,服务器系统108)上执行语音合成,并且将合成的语音发送至用户设备以输出给用户。例如,这可发生在一些具体实施中,其中在服务器系统处生成数字助理的输出。而且由于服务器系统通常比用户设备具有更强的处理能力或更多的资源,其有可能获得比客户端侧合成将实现的质量更高的语音输出。
[0250] 有关数字助理的附加细节可见于提交于2011年1月10日的名称为“Intelligent Automated Assistant”的美国实用新型专利申请No.12/987,982和提交于2011年9月30日的名称为“Generating and Processing Task Items That Represent Tasks to 
Perform”的美国实用新型专利申请No.13/251,088中,其全部公开内容以引用方式并入本文。
[0251] 4.提供定制建议的数字助理的示例性架构和功能
[0252] 图8示出了根据各种示例的用于向用户提供建议的数字助理800的框图。在一些示例中,数字助理800(例如,数字助理系统700)由用户设备根据各种示例来实现。在一些示例中,用户设备、服务器(例如,服务器108)或它们的组合可实现数字助理800。用户设备可利用例如如图1、图2A至图2B、图4、图6、图8和图11A至图11E所示的设备104、200、400、600、870、1110A-C或1120来实现。在一些示例中,数字助理800可利用数字助理系统700的数字助理模块726来实现。数字助理800包括类似于数字助理模块726的一个或多个模块、模型、应用程序、词汇表和用户数据。例如,数字助理800包括下述子模块或它们的子集或超集:输入/输出处理模块、STT处理模块、自然语言处理模块、任务流处理模块和言语合成模块。这些模块也可类似于如图7B所示的对应模块来实现,因此未示出并且不进行重复描述。
[0253] 参考图8,在一些实施方案中,电子设备870可包括数字助理800、一个或多个内部数据源810、用户特定信息集合860的表示,以及一个或多个内部查询客户端880。数字助理800可包括印象收集器820和概念发生器840。在一些示例中,电子设备870可与一个或多个外部数据源812和一个或多个外部查询客户端882通信。如图8所示,印象收集器820可基于从内部数据源810和/或外部数据源812获得的数据来获得印象830。图9示出了根据各种示例的印象收集器820的框图。
[0254] 参考图8和图9,在一些实施方案中,印象收集器820可从与电子设备870以及通信地耦接到电子设备870的一个或多个附加电子设备相关联的一个或多个源收集数据。如图8和图9所示,印象收集器820可与一个或多个内部数据源810和一个或多个外部数据源812通信。例如,内部数据源810可包括在电子设备870(例如,智能电话设备)上运行的一个或多个应用程序。外部数据源812可包括在不同于电子设备870的一个或多个附加电子设备上运行的一个或多个应用程序。例如,外部数据源812可包括在不同于电子设备870的平板设备或膝上型计算机上运行的应用程序。如图9所示,内部数据源810和/或外部数据源812可包括例如日历应用程序902A、消息应用程序902B、新闻应用程序902C、邮件应用程序902D、浏览器应用程序902E、图像管理应用程序902F和地图应用程序902G等。
[0255] 参考图9,基于与日历应用程序902A的通信,印象收集器820可收集与例如用户的过去、当前和将来的约会、联系人或会议出席者、约会位置、约会持续时间等相关联的数据。基于与消息应用程序902B的通信,印象收集器820可收集与例如用户的文本消息、语音消息、社交网络消息等相关联的数据。在一些示例中,印象收集器820还可基于与社交网络应用程序(图9中未示出)的通信来收集与用户的社交网络消息相关联的数据。基于与新闻应用程序902C的通信,印象收集器820可收集与例如用户阅读的新闻文章、用户访问的新闻网站等相关联的数据。基于与邮件应用程序902D的通信,印象收集器820可收集与例如用户的电子邮件相关联的数据。基于与浏览器应用程序902E的通信,印象收集器820可收集与例如用户访问的网站、网站的内容、用户访问网站的时间和持续时间等相关联的数据。基于与图像管理应用程序902F的通信,印象收集器820可收集与例如用户拍摄或查看的图像的主题(例如,宠物图像)、图像的时间和位置信息(例如,关于法国的图像)、图像捕获参数(例如,速度、焦距、曝光时间、分辨率、设备制造商等)相关联的数据。基于与地图应用程序902G的通信,印象收集器820可收集与例如用户访问的位置、用户搜索的位置等相关联的数据。应当理解,印象收集器820也可从图9中未示出的其他内部或外部数据源收集数据。例如,印象收集器820可收集与搜索引擎、媒体应用程序(例如,视频应用程序、音乐应用程序)、电视机顶盒、用户的键盘输入和/或语音输入等相关联的数据。
[0256] 参考图8和图9,在一些实施方案中,印象收集器820可从内部数据源810和/或外部数据源812收集一个或多个预先确定的持续时间内的数据。例如,印象收集器820可被配置为从所有数据源收集过去30天的数据。又如,印象收集器820可被配置为从不同的数据源收集不同持续时间内的数据。例如,印象收集器820可从新闻应用程序902C收集过去一周的数据,同时从图像管理应用程序902F收集过去6个月的数据。在一些实施方案中,印象收集器820可以周期性地或动态地更新所收集的数据。例如,当新帖子或消息在社交网络应用程序处可用时,印象收集器820可更新与社交网络内容相关联的数据。
[0257] 参考图8,在一些实施方案中,印象收集器820可确定从内部数据源810和/或外部数据源812收集的数据是否与一个或多个用户活动相关联。例如,使用从新闻应用程序902C收集的数据,印象收集器820可确定所收集的数据是否与用户活动相关联。例如,新闻应用程序902C可自动向用户提供新闻警报或新闻文章推荐。用户可能尚未请求新闻文章或可能未阅读文章。因此,印象收集器820确定新闻文章的特定新闻警报与用户活动无关。印象收集器820可基于确定是否接收到关于所收集的数据的至少一个用户输入来做出这种确定。例如,如果印象收集器820确定所收集的数据中的新闻文章是由于用户配置用来接收某一主题的新闻文章或来自某个发布者的新闻文章而获得的,则确定所收集的数据与用户活动相关联。
[0258] 又如,印象收集器820可确定从浏览器应用程序902E收集的数据是否与一个或多个用户活动相关联。例如,用户可能正在浏览网站,该网站可包括文章和多个超链接。在一些示例中,印象收集器820可确定用户是否已对包括在网站中的任何超链接进行了选择。此类确定可基于检测来自用户外围设备(例如,鼠标)的信号。如果用户未点击任何超链接,则印象收集器820可确定与超链接相关联的数据与用户活动无关。又如,邮件应用程序902D可包括与广告电子邮件相关联的数据。可能在没有任何用户活动(例如,查看、回复、转发等)的情况下在邮件应用程序902D处接收到广告电子邮件。因此,印象收集器820可确定与这些广告电子邮件相关联的数据与用户活动无关。应当理解,印象收集器820可基于用于检测用户活动的任何技术(诸如基于注视检测、语音识别、运动感测等)来确定所收集的数据是否与用户活动相关联。在一些示例中,与任何用户活动都无关的所收集的数据可不指示用户的社会状态、用户的兴趣等,并因此出于生成用户特定信息集合的表示的目的而被丢弃或忽略。
[0259] 参考图8和图9,在一些实施方案中,根据确定从一个或多个源收集的数据与一个或多个用户活动相关联,印象收集器820可包括印象830中的数据。印象包括与一个或多个用户活动相关联的数据,这些数据指示用户的社会状态或用户活动的结果中的至少一者。用户的社会状态可包括关于用户与他人的关系的状态,诸如用户在其组织中的位置、用户在他或她家庭中的角色、用户与其他联系人(例如,朋友)的关系等。如上所述,如果所收集的数据与一个或多个用户活动(例如,用户正在阅读的新闻文章、用户提供给搜索引擎的搜索短语、用户发布的社交网络内容)相关联,则所收集的数据可能指示或反映用户的社会状态、兴趣、特征、偏好或品质。因此,此类所收集的数据可被包括在用于生成概念的印象830中,如下文更详细地描述的。
[0260] 如图9所示,在一些示例中,印象830可包括一个或多个文件904A(例如文章、电子邮件、消息、网页、图像、日历文件、联系人等)、一个或多个搜索查询904B(例如,提供给搜索引擎的信息查询、与地图应用程序902G相关联的位置查询、提供给餐厅的实体查询、推荐应用程序等),和/或一个或多个用户输入904C-D(例如,触觉输入或语音输入)。
[0261] 参考图8和图10A,印象收集器820可向概念发生器840提供印象830。在一些示例中,概念发生器840可基于印象830来确定一个或多个概念850。概念850可包括例如以下中的至少一者:一个或多个实体、用户的社会状态、重复的用户输入、图像或主题。概念850可能表示用户与他人的关系、兴趣、特征、偏好或品质。可从印象830确定或提取概念。例如,概念850可包括在印象830中包括的文档的主题(例如,用户阅读的文章的主题)。图10A示出了根据各种示例的概念发生器840A的框图。如上所述,印象830包括与用户活动(例如,用户正在阅读的新闻文章、用户提供给搜索引擎的搜索短语、用户发布的社交网络内容)相关联的所收集的数据,这些数据可能指示或反映用户的社会状态、兴趣、特征、偏好或品质。如图
10A所示,概念发生器840A可基于印象830来确定一个或多个主题1018。主题1018可包括用户感兴趣的主题,诸如新闻主题(例如,美国政治)、体育主题(例如,篮球)、金融主题(例如,房地产投资)、媒体主题(例如,动作电影、乡村音乐)等。
[0262] 在一些示例中,概念发生器840A包括查询发生器1012、搜索引擎1014和索引结构1016。在一些示例中,查询发生器1012可包括分词器、符号处理器、符号分类器和用于生成查询1013的发生器。查询发生器1012可接收和分析印象830。如上所述,印象830可包括例如包含用户正在阅读的文章的文档。因此,查询发生器1012的分词器可将文档符号化。例如,分词器可将文档中的非结构化自然语言文本分成包括字符、字词和/或字词序列的符号。查询发生器1012的符号处理器可进一步处理这些符号。例如,该符号处理器可以移除结构化内容,诸如注释、导航元素、表、引用等。结构化内容可能不是相关联的文档的重点,因此通常不是确定主题所必需的。在一些示例中,查询发生器1012的符号分类器可将剩余的符号分类成以下中的一者或多者:主要术语/术语序列、辅助术语/术语序列以及不包括在查询
1013中的术语。主要术语或序列可以是表示相关联的文档的主题或重点的术语或序列。例如,包括在印象830中的文档可以是关于篮球比赛的文档。因此,基于文档生成的一个或多个符号可包括术语或术语序列,诸如“篮球”或“NBA”。辅助术语或序列可以是与相关联的文档(例如,所收集的数据813或数据814中的文档)的主题或重点相关的术语或序列,但可能不如主要术语或序列相关。在一些实施方案中,在搜索结果的后续处理中,主要术语/序列用于排序和选择两者,而辅助术语/序列仅用于排序。基于剩余符号的分类,查询发生器
1012的发生器可生成查询1013,该查询可在相似性搜索中用于确定主题1018。
[0263] 如图10A所示,搜索引擎1014可基于查询1013和索引结构1016来执行相似性搜索;以及基于相似性搜索结果来确定主题1018。索引结构1016可包括表示主题多样化文档(例如, 文章)集合的术语索引。相似性搜索可比较查询1013中的一个或多个术语
或术语序列和索引结构1016之间的相似性。如上所述,查询1013表示与包括在印象830中的文档相关联的数据,并且索引结构1016表示主题多样化文档集合。因此,相似性搜索可有利于确定主题1018,其可包括印象830中包括的文档的主题。例如,查询1013可包括术语“勇士”,并且该术语可与索引结构1016中具有主题“篮球”的文档相关联。因此,相似性搜索可确定“篮球”是包括在印象830中的文档的主题(其指示用户的可能兴趣),并且在主题1018中包括该主题。基于从与用户活动相关联的数据收集的文档并基于索引结构来确定一个或多个主题的更多细节在于2017年6月2日提交的名称为“METHODS AND SYSTEMS FOR 
PROVIDING QUERY SUGGESTIONS”的共同未决的美国临时专利申请62/514,660(代理人案卷号770003014700(P34009USP1))中有所描述并被包括在附录中,该申请的内容据此全文以引用方式并入。
[0264] 图10B示出了根据各种示例的另一概念发生器840B的框图。参考图8和图10B,概念发生器840B可基于印象830来确定概念850。如上所述,概念850可包括例如以下中的至少一者:一个或多个实体、用户的社会状态、重复的用户输入、图像相关概念、主题或位置。概念可以表示用户的社会状态、兴趣、特征、偏好或品质。可从印象830确定或提取概念。例如,印象830可包括数据(例如,消息、电子邮件、地图位置、搜索查询等),这些数据包括一个或多个实体。实体可由其名称或识别实体的信息表示。例如,电影可以是名称为诸如“Whiskey Tango Foxtrot”的实体。故事可以是名称为诸如“三只小猪”的实体。实体还可包括人员姓名、位置、组织名称等。邮政地址、电话号码、域名和URL地址可以是识别实体的信息。
[0265] 在一些实施方案中,如图10B所示,概念发生器840B可包括印象分析器1022。印象分析器1022接收和分析印象830。例如,印象分析器1022可分析包括一个或多个实体的数据(例如,消息、电子邮件、地图位置、搜索查询)。在一些示例中,印象分析器1022可基于与文本相关联的语义、句法或语法中的至少一者来解析包括接收到的数据的文本。基于对印象830的分析,结构化信息检测器1024可检测结构化信息并基于所检测到的结构化信息来确定一个或多个实体。结构化信息包括具有一个或多个已知模式的数据。例如,日期诸如
“2017年1月1日”具有模式并因此为结构化信息。类似地,电话号码诸如“(555)555-5555”具有模式并因此为结构化信息。类似地,名称(例如,人的姓名或组织名称)、邮政地址、位置坐标、时间等可具有相应的模式,并因此为结构化信息。在一些实施方案中,结构化信息检测器1024可基于模式识别来检测结构化信息,并确定结构化信息对应于所识别的实体中的一者或多者(例如,人的姓名、公司名称、电影名称、音乐标题、网址、邮政地址等)。基于包含在与用户活动相关联的所收集的数据中的结构化信息来确定一个或多个实体的更多细节在
于1996年2月1日提交并于1999年8月31日取得专利权的名称为“SYSTEM AND METHOD FOR PERFORMING AN ACTION ON A STRUCTURE IN COMPUTER-GENERATED DATA”的美国专利5,
946,647中有所描述并被包括在附录中,该申请的内容据此全文以引用方式并入。
[0266] 参考图10B,在一些实施方案中,自然语言处理模块1026可检测包含在印象830中的结构化信息并确定这些结构化信息对应于所识别的实体中的一者或多者。自然语言处理模块1026可利用例如上文关于图7A所述的自然语言处理模块732来实现。类似于上文所述的那些,自然语言处理模块1026可从以自然语言表达的用户请求确定或推断用户意图。例如,自然语言处理模块1026可基于另外的语义、语法和/或情感分析来确定用户意图,以检测字词的基本形式(例如,字词的词根)。基于所检测到的基本形式,自然语言处理模块1026可确定例如与实体相关联的名称。在一些示例中,自然语言处理模块1026还可接收上下文信息以明确、补充和/或进一步限定包含在与印象830相关联的文本中的信息。上下文信息包括例如用户偏好、用户设备的硬件和/或软件状态、在用户请求之前、期间或之后不久收集的传感器信息、数字助理800与用户之间的先前交互(例如,对话)等。
[0267] 在一些实施方案中,如上所述,自然语言处理可基于与一个或多个域(例如,餐饮域)和节点相关联的知识本体(例如,图7C所示的知识本体760)。在一些示例中,自然语言处理模块1026接收由印象分析器1022提供的文本表示(例如,符号或符号序列),并确定文本表示中的字词涉及哪些节点。在一些示例中,如果发现文本表示中的字词或短语与知识本体中的一个或多个节点相关联,则自然语言处理模块1026可确定该字词或短语是否对应于结构化信息(例如,实体诸如餐厅名称)。基于符号串搜索知识本体的更多细节在于2008年12月22日提交的名称为“Method and Apparatus for Searching Using An Active 
Ontology”的美国实用新型专利申请序列号12/341,743中有所描述并被包括在附录中,该申请的全部公开内容以引用方式并入本文。
[0268] 如上所述,概念可表示用户的社会状态。可从印象830确定或提取概念。例如,印象830可包括与用户的联系人列表、日历文件、电子邮件消息、社交网络内容等相关联的数据。
在一些实施方案中,参考图10B,概念发生器840B可基于包括在印象830中的数据来确定一个或多个用户的社会状态。用户的社会状态可指示用户与他人的关系,诸如用户在企业组织中的职位(例如,用户是工程师)、用户的家庭状况(例如,用户是父亲、儿子、兄弟等)、用户的网络空间状态(例如,用户是著名作者、用户是宠物爱好者等)。
[0269] 在一些实施方案中,基于印象830,概念发生器840B可识别用户的社会状态相关信息。例如,如上所述,结构化信息检测器1024和/或自然语言处理模块1026可检测结构化信息,诸如公司名称、个人姓名、网站名称、电话号码、邮政地址等。在一些示例中,至少一些社会状态相关信息是结构化信息,并因此可被结构化信息检测器1024和/或自然语言处理模块1026检测到。基于用户的社会状态相关信息,概念发生器840B可确定用户的社会状态。在一些示例中,可基于基于规则的技术或数据驱动学习技术(例如,机器学习技术)来确定用户的社会状态。例如,从印象830识别的用户的社会状态相关信息可包括从电子邮件中提取的文本,该文本包括技术相关术语。基于该信息以及任选地其他上下文信息(例如,电子邮件地址来自生产技术产品的公司),概念发生器840B可确定用户可能是工程师。
[0270] 如上所述,概念可包括一个或多个重复的用户输入。重复的用户输入可包括用户在预先确定的持续时间期间提供两次或更多次的用户输入。例如,用户可在发送至用户的家庭成员的消息中重复提供输入诸如“我在回家的路上”。用户可在社交网络发布或消息中重复使用短语“Whiskey Tango Foxtrot”。这些重复的用户输入还可指示用户的偏好或兴趣。
[0271] 在一些实施方案中,基于印象830,概念发生器840B可确定一个或多个重复的用户输入。例如,概念发生器840B可收集在预先确定的持续时间(例如,小时、天、周或月)内的用户输入。基于所收集的用户输入,概念发生器840B可识别一个或多个重复的用户输入。在一些示例中,可基于基于规则的技术或数据驱动学习技术(例如,机器学习技术)来识别重复的用户输入。例如,概念发生器840B可对与特定时间戳相关联的用户输入和与早前时间戳相关联的一个或多个用户输入进行比较。基于该比较,概念发生器840B可确定例如特定用户输入是重复的用户输入,因为已在预先确定的持续时间内多次提供了该特定用户输入。在一些示例中,概念发生器840B可确定相同或基本上相似的用户输入的数量,并确定该数量是否满足阈值条件。例如,如果该数量大于或等于阈值条件(例如,2次),则概念发生器
840B可将特定用户输入识别为重复的用户输入。
[0272] 如上所述,概念可包括一个或多个图像相关概念,诸如图像主题、类型、艺术家等。图像相关概念可指示用户的偏好或兴趣。例如,图像相关概念可指示用户是宠物爱好者、艺术家梵高的粉丝等。在一些实施方案中,基于印象830,概念发生器840B接收一个或多个图像。图像处理模块1028可分析图像以提取信息。例如,图像处理模块1028可执行2D和/或3D对象识别(例如,人脸识别)、图像分割运动检测、视频跟踪等。基于图像分析结果,概念发生器840B可识别一个或多个图像相关概念。例如,概念发生器840B可识别出特定图像的主题与狗相关。在一些示例中,概念发生器840B可对在预先确定的持续时间(例如,天、周、月、年)内收集的图像执行图像分析,并关联分析结果以确定图像相关概念。例如,概念发生器
840B可分析在若干月内收集的图像并确定这些图像的概念涉及宠物,这指示用户可能是宠物爱好者。
[0273] 重新参考图8,在一些实施方案中,基于概念850,数字助理800可生成用户特定信息集合860的表示。例如,数字助理800可执行概念850的归类和排序中的至少一者。如上所述,概念850可包括主题、实体(例如,名称)、用户的社会状态、重复的用户输入、图像相关概念等。因此,在一些示例中,数字助理800可将概念850归类为主题类别、实体类别、用户的社会状态类别、重复的用户输入类别、图像相关概念类别等。在一些示例中,可将特定类别的概念归类为一个或多个水平的子类别。例如,在实体类别内,概念可包括电影名称、音乐标题、国家名称等。因此,数字助理800可将实体类别归类成一个或多个子类别(例如,电影名称的子类别、音乐标题的子类别和国家名称的子类别)。
[0274] 在一些实施方案中,数字助理800可以对多个概念850进行排序。例如,数字助理800可为概念850中的每个概念生成得分。概念的得分可指示用户对该概念的兴趣水平和/或与该概念相关联的置信水平。例如,概念850可包括一个或多个主题。数字助理800可将得分分配给每个主题,并且基于这些得分对主题进行排序(例如,将主题从高分排序到低分)。
主题的得分可指示例如用户对该主题的兴趣水平。例如,用户可能对篮球非常感兴趣,因此在过去一周内可能阅读了许多关于勇士的文章或新闻。因此,数字助理800可基于包括在印象830中的关于勇士的多个文档来确定主题(例如,篮球)。因此,概念发生器840可将较高得分分配给该主题,指示用户对篮球的兴趣水平可能很高。
[0275] 在一些示例中,主题的得分值可指示对该主题的相对兴趣。例如,比起与较低得分相关联的主题,与较高得分相关联的主题可能是用户更感兴趣的主题。在一些示例中,可在一段时间内对同一主题的得分进行比较。例如,与特定主题相关联的得分可随时间而变化,这取决于与印象830相关联的数据的变化(例如,用户本周阅读的勇士的文章比上周多)。因此,得分的变化可指示用户的兴趣水平相对于特定主题的变化。
[0276] 在一些实施方案中,概念的得分可指示与该概念相关联的置信水平。该置信水平可指示所确定的概念和实际用户的兴趣之间的匹配程度。例如,可在从数据源收集数据、获得印象和确定概念的每个步骤中确定置信水平。在一些示例中,可基于与每个步骤相关联的置信水平来确定总体置信水平。数字助理800可因此基于总体置信水平来将得分分配给每个概念。
[0277] 在一些实施方案中,数字助理800可基于其相关联的得分来对概念850进行排序。例如,数字助理800可将具有较高得分的第一主题排序在具有较低得分的第二主题之上,从而指示用户对第一主题的兴趣水平可能高于用户对第二主题的兴趣水平,并且/或者指示第一主题的置信水平可能高于第二主题的置信水平。
[0278] 参考图8,在一些实施方案中,基于一个或多个概念850的归类和排序中的至少一者的结果,数字助理800可生成用户特定信息集合860的表示。用户特定信息集合也被称为用户的肖像。用户特定信息集合860可包括归类和/或排序的概念。例如,用户特定信息集合可包括归类和/或排序的用户的社会状态、主题、实体、重复的用户输入、图像相关概念等。用户特定信息集合860的表示可以是日志文件、索引文件等。用户特定信息集合860的表示可存储在例如用户设备(例如,由电子设备104、122、200、400、600、1110A-C或1120实现的用户设备)中或可从该用户设备访问。用户特定信息集合860的表示也可存储在服务器诸如服务器系统108上。如下文更详细地描述,无论存储用户特定信息集合860的表示的设备如何,任何设备或应用程序均可使用或访问用户特定信息集合860的表示。
[0279] 在一些实施方案中,数字助理800可动态地更新用户特定信息集合860的表示。例如,印象收集器820可连续或周期性地从内部数据源810和/或外部数据源812收集数据。基于另外收集的数据,印象收集器820可确定附加印象是否可用。例如,它可以确定另外收集的数据是否与用户活动相关联。如果附加收集的数据与用户活动相关联,则印象收集器820确定附加印象可用并且对印象830进行更新以包括另外收集的数据。否则,印象收集器820可确定印象830不需要更新。例如,如果附加收集的数据仅是新闻应用程序的自动推送功能的结果,则印象收集器820可确定附加印象不可用并且不需要对印象830进行更新。
[0280] 在一些实施方案中,根据确定附加印象可用,概念发生器840可基于附加印象生成一个或多个附加概念。附加概念的生成可与上文所述基本上相同,因此在此不再重复描述。在生成附加概念之后,数字助理800可用附加概念来更新用户特定信息集合860的表示。
[0281] 在一些实施方案中,数字助理800可通过从用户特定信息集合860的表示中移除一个或多个概念来更新用户特定信息集合860的表示。例如,移除概念可基于预先确定的策略,诸如时间流逝(例如,移除数天、数周、数月或数年前生成的概念)。又如,移除概念可基于由印象收集器820收集的附加数据。例如,附加数据可包括包含短语“我不再喜欢ABC排餐厅了,那里太拥挤了”的消息。印象收集器820可确定附加数据与用户活动相关联(例如,消息由用户发送给好友),并且包括附加印象中的数据。基于附加印象,概念发生器840可确定实体为ABC牛排餐厅并且还检测与该实体相关联的负极性。极性是指非结构化自然语言信息(例如,喜欢、不喜欢、可能)中的情绪的分类。负极性的检测可基于上述自然语言过程、基于规则的技术和/或机器学习技术。根据与实体相关联的负极性,数字助理800可从用户特定信息集合860的表示中移除现有概念(例如,移除ABC牛排餐厅)。
[0282] 参考图8,在一些实施方案中,可基于用户特定信息集合860的表示向用户提供一个或多个建议。这些建议可包括例如文章的主题建议;媒体项目的实体建议;餐厅的位置建议;在用户输入文本时的输入建议(通过键盘或语音);图像建议;等。如上所述,用户特定信息集合860的表示指示用户的社会状态;用户可能对主题、实体、图像等感兴趣;用户重复使用的输入;等。因此,基于用户特定信息集合860的表示而提供的建议可以是定制建议,其可能与用户的兴趣相一致,可能是用户所期望的。因此,基于用户特定信息集合860的表示来提供建议可改善用户交互界面并改善电子设备提供建议的效率和效果。
[0283] 在一些实施方案中,向用户提供建议可由能够访问用户特定信息集合860的表示的一个或多个查询客户端来执行。如图8所示,查询客户端可包括内部查询客户端880和外部查询客户端882。内部查询客户端880可与电子设备870相关联,并且可包括例如在电子设备870中运行的一个或多个应用程序。如上所述,电子设备870存储用户特定信息集合860的表示。因此,内部查询客户端880可以是在存储用户特定信息集合860的表示的同一设备(例如,智能电话设备)上操作的应用程序。外部查询客户端882可与不同于电子设备870并且通信地耦接到电子设备870的一个或多个附加电子设备相关联。外部查询客户端882可包括在不同于电子设备870的一个或多个附加电子设备上运行的一个或多个应用程序。继续上述示例,外部查询客户端882可包括在不同于存储用户特定信息集合860的表示的设备(例如,电子设备870)的附加电子设备(例如,平板设备或膝上型计算机)上操作的应用程序。
[0284] 图11A示出了根据各种示例的向一个或多个查询客户端提供用户特定信息集合860的表示的电子设备870的框图。如图11A所示,电子设备870可包括一个或多个内部查询客户端,诸如新闻应用程序1102A和社交网络应用程序1102B。电子设备870可具有一个或多个外部查询客户端,诸如在智能电话设备1110A上操作的餐厅应用程序、在平板设备1110B上操作的电影应用程序,或在膝上型计算机1110C上操作的搜索引擎。
[0285] 在一些实施方案中,与电子设备870相关联的一个或多个查询客户端可向用户提供建议。例如,如图11A所示,电子设备870存储用户特定信息集合860的表示。电子设备870可从一个或多个查询客户端(例如,应用程序1102A-B和/或在设备1110A-C上操作的应用程序)接收请求用户特定信息的一个或多个查询(例如,查询1105A-B和/或查询1115A-C)。响应于该一个或多个查询,电子设备870可基于用户特定信息集合860的表示来确定所请求的用户特定信息,并且向查询客户端提供所请求的用户特定信息。例如,电子设备870的数字助理(例如,数字助理800)可基于查询来访问用户特定信息集合860的表示,获得所请求的用户特定信息,并且向查询客户端提供所请求的用户特定信息。
[0286] 例如,参考图11A,新闻应用程序1102A可发送查询1105A,该查询请求关于用户可能感兴趣的主题的用户特定信息。基于查询1105A,可从用户特定信息集合860的表示获得新闻主题(例如,政治、体育)并将其提供给新闻应用程序1102A。又如,社交网络应用程序1102B可发送请求关于用户的社会状态的用户特定信息的查询1105B。基于查询1105B,可从用户特定信息集合860的表示获得用户的社会状态(例如,用户是宠物爱好者)并将其提供给社交网络应用程序1102B。
[0287] 又如,餐厅应用程序1130可发送请求关于与用户相关联的位置的用户特定信息的查询1115A。基于查询1115A,可从用户特定信息集合860的表示获得位置(例如,用户可能偏好的附近餐馆的名称和地址),并将其提供给与智能电话设备1110A相关联的餐厅应用程序1130。
[0288] 又如,电影应用程序1150可发送请求关于与用户相关联的实体的用户特定信息的查询1115B。基于查询1115B,可从用户特定信息集合860的表示获得实体(例如,用户可能想要观看的电影的名称),并将其提供给与平板设备1110B相关联的电影应用程序1150。
[0289] 又如,搜索引擎1170可发送请求关于与用户相关联的主题的用户特定信息的查询1115C。基于查询1115C,可从用户特定信息集合860的表示获得主题(例如,“水晶洞穴”),并将其提供给与膝上型计算机1110C相关联的搜索引擎1170。
[0290] 在一些实施方案中,代替提供用户特定信息(例如,一个或多个概念诸如主题、实体、用户的社会状态、用户的重复输入等),可将用户特定信息集合860的整个表示提供给查询客户端。在一些实施方案中,可在不接收查询的情况下将用户特定信息提供给查询客户端。例如,可以在不首先接收查询的情况下将主题连续地或周期性地提供给新闻应用程序1102A。
[0291] 在一些实施方案中,在将所请求的用户特定信息提供给查询客户端之前,电子设备870可确定查询客户端是否被授权访问所请求的用户特定信息的至少一部分。某些用户特定信息涉及个人信息,并且在没有用户授权的情况下,查询客户端可能无法使用或访问这些用户特定信息。例如,用户特定信息可包括用户的联系人信息(例如,用户的手机号码)。在一些示例中,电子设备870可确定查询客户端是否被授权访问用户的联系人信息。
[0292] 在一些示例中,根据确定查询客户端被授权访问所请求的用户特定信息的至少一部分,电子设备870可调整所请求的用户特定信息并将经调整的用户特定信息提供给查询客户端。例如,电子设备870可确定查询客户端被授权访问全部所请求的用户特定信息,并且可提供全部所请求的用户特定信息,而无需进行任何调整或只进行最少的调整。在一些示例中,电子设备870可确定查询客户端被授权访问所请求的用户特定信息的一部分而不是全部。因此,电子设备870可移除查询客户端未被授权访问的用户特定信息的一部分并且发送其余所请求的用户特定信息。
[0293] 参考图11B至图11E,在一些实施方案中,一个或多个查询客户端可接收所请求的用户特定信息,基于所请求的用户特定信息来确定建议,并且将所确定的建议提供给用户。作为图11B中所示的示例,新闻应用程序1102A接收用户可能感兴趣的主题。基于接收到的主题,新闻应用程序1102A可确定一篇或多篇新闻文章1122和1124,并且在设备1120上显示新闻文章1122和1124。作为图11C中所示的另一个示例,餐厅应用程序1130接收位置(例如,ABC牛排餐厅的位置),确定接收到的位置中的一个位置几乎是用户的当前位置,并且向用户提供该位置的建议(例如,显示ABC牛排餐厅的附近餐厅)。
[0294] 作为图11D中所示的另一个示例,电影应用程序1150接收用户可能有兴趣观看的电影的名称(例如,“Whiskey Tango Foxtrot”)。根据电影的名称,电影应用1150可确定电影“Whiskey Tango Foxtrot”当前正在附近的影院中播放,并且向用户提供该电影的建议。
作为图11E中所示的另一个示例,搜索引擎1170接收用户输入区域1171中的用户输入。例如,用户可能想要搜索与水晶洞穴相关的文章,所以当用户正在输入单词“水晶”时,用户输入可包括字母“cr”。在一些实施方案中,基于用户输入,搜索引擎1170可发送请求用户特定信息的查询,诸如用户可能感兴趣的主题、流行搜索短语、用户的重复输入等。搜索引擎
1170接收用户特定信息,确定用户输入可能与接收到的用户特定信息中的一个或多个主题相匹配,基于这些主题确定一个或多个建议,并且在显示区域1172上显示这些建议。例如,基于用户输入“cr”以及接收到的用户特定信息(包括用户可能感兴趣的主题)或用户最近输入进行搜索的短语,搜索引擎1170可在膝上型计算机1110C的显示区域1172中显示“水晶洞穴”、“矿物”、“水晶形成”、“地下水晶”等。
[0295] 重新参考图11A,在一些实施方案中,查询客户端可为键盘应用程序(未示出)。该键盘应用程序可从存储在电子设备870中的用户特定信息集合860接收用户特定信息。键盘应用程序可为电子设备870的内部或外部。在一些示例中,由键盘应用程序接收到的用户特定信息可包括一个或多个名称。例如,这些名称可基于诸如用户的联系人、电子邮件、消息、新闻、日历、网页等的印象获得。这些名称可包括经常遇到的名称(例如,Mary、Patrick)和/或很少遇到的名称(例如,Gorsuch、Trankwice、Daya、Beringer)。在一些示例中,键盘应用程序可基于接收到的名称来更新词典。该词典可用于相对于用户输入执行各种操作。
[0296] 在一些示例中,键盘应用程序接收用户输入。该用户输入可包括名称的至少一部分(例如gors)。响应于接收到用户输入,键盘应用程序可基于更新的词典来执行一个或多个操作。这些操作可以包括自动修正、预测或自动大写。使用上面的用户输入包括“gors”的示例,键盘应用程序可执行用户输入“gors”的预测和自动大写,使得该名称被预测为“Gorsuch”。如上所述,包括在词典中的名称是基于反映用户活动的印象而获得的。因此,预测的名称可能与用户意图相匹配。
[0297] 如上所述,在一些示例中,代替提供用户特定信息(例如,主题、实体、用户的重复输入等),可将用户特定信息集合860的整个表示提供给查询客户端。因此,查询客户端可基于接收到的用户特定信息集合860的表示来确定建议,并且将这些建议提供给用户。
[0298] 在一些实施方案中,用户特定信息集合860的表示的实例可存储在多个设备上。例如,如图11A中所示,用户特定信息集合860的表示的第一实例可存储在电子设备870上;用户特定信息集合860的表示的第二实例可存储在智能电话设备1110A上;用户特定信息集合860的表示的第三实例可存储在平板设备1110B上;等等。在一些示例中,用户特定信息集合
860的表示的多个实例可在设备间同步。可以定期、连续或按需执行实例同步。实例同步可提高适当更新特定实例的可能性。
[0299] 5.向用户提供定制建议的过程
[0300] 图12A至图12E示出了根据各种示例的用于操作用于向用户提供一个或多个建议的数字助理的过程1200。例如,使用实现数字助理的一个或多个电子设备来执行过程1200。
在一些示例中,使用客户端-服务器系统(例如,系统100)来执行过程1200,并且在服务器(例如,DA服务器106)和客户端设备之间以任何方式来划分过程1200的框。在其他示例中,在服务器和多个客户端设备(例如,移动电话和智能手表)之间划分过程1200的框。因此,虽然过程1200的部分在本文中被描述为由客户端-服务器系统的特定设备执行,但应当理解,过程1200不限于此。在其他示例中,使用仅客户端设备(例如,用户设备104)或仅多个客户端设备来执行过程1200。在过程1200中,一些框被任选地组合,一些框的次序被任选地改变,并且一些框被任选地省略。在一些示例中,可结合过程1200来执行附加步骤。
[0301] 参考图12A,在框1202处,获得与电子设备或通信地耦接到电子设备的附加电子设备中的至少一者相关联的印象。为了获得印象,在框1204处,从与电子设备或通信地耦接到电子设备的附加电子设备中的至少一者相关联的一个或多个源收集数据。在框1206处,确定从该一个或多个源收集的数据是否与一个或多个用户活动相关联。在框1208处,根据确定从该一个或多个源收集的数据与一个或多个用户活动相关联,该数据包括在印象中。在一些示例中,与任何用户活动都无关的所收集的数据可能不指示用户的社会状态、用户的兴趣等,并因此出于生成用户特定信息集合的表示的目的而被丢弃或忽略。印象可包括一个或多个文件(例如文章、电子邮件、消息、网页、图像、日历文件、联系人等)、一个或多个搜索查询(例如,提供给搜索引擎的信息查询、与地图应用程序相关联的位置查询、提供给餐厅的实体查询、推荐应用程序等),和/或一个或多个用户输入(例如,触觉输入或语音输入)。
[0302] 在框1210处,基于这些印象来确定一个或多个概念。概念可以包括一个或多个主题。在框1212处,基于这些印象来确定一个或多个主题。在框1214处,对这些印象进行分析来确定一个或多个主题。在框1216处,基于对这些印象的分析来生成查询。在框1218处,基于查询和索引结构来执行相似性搜索。在框1220处,基于相似性搜索结果来确定一个或多个主题。主题确定可基于上述技术来执行,因此在此不再重复描述。
[0303] 参考图12B,概念可包括一个或多个实体。在框1222处,基于这些印象来确定一个或多个实体。在框1224处,对这些印象进行分析来确定基于这些印象的一个或多个实体。在框1226处,基于对这些印象的分析来检测结构化信息。在框1228处,在一些示例中,结构化信息的检测基于模式识别。在框1230处,在一些示例中,结构化信息的检测基于自然语言处理。在框1232处,基于所检测的结构化信息来确定一个或多个实体。实体确定可基于上述技术来执行,因此在此不再重复描述。
[0304] 概念可以包括一个或多个用户的社会状态。在框1234处,基于这些印象来确定一个或多个用户的社会状态。在框1236处,基于这些印象来识别用户的社会状态相关信息来确定用户的社会状态。在框1238处,基于用户的社会状态相关信息来确定一个或多个用户的社会状态。用户的社会状态确定可基于上述技术来执行,因此在此不再重复描述。
[0305] 概念可包括重复的用户输入。在框1240处,基于这些印象来确定一个或多个重复的用户输入。在框1242处,收集在预先确定的持续时间内的用户输入。在框1244处,基于所收集的用户输入来识别一个或多个重复的用户输入。在框1246处,确定接收到基本上类似的用户输入的次数是否满足阈值条件来识别所述一个或多个重复的用户输入。如果接收到基本上类似的用户输入的次数满足阈值条件(例如,3次),则识别重复的用户输入。重复的用户输入确定可基于上述技术来执行,因此在此不再重复描述。
[0306] 参考图12C,在框1248处,基于一个或多个所确定的概念来生成用户特定信息集合的表示。表示可以是日志文件、索引文件等。在框1250处,对一个或多个所确定的概念执行归类和排序中的至少一者来生成用户特定信息集合的表示。在框1252处,生成对一个或多个所确定的概念中的每个所确定的概念的得分来对该一个或多个所确定的概念执行归类和排序中的至少一者。该得分指示以下中的至少一者:与所确定的概念相关联的置信水平,以及用户对所确定的概念的兴趣水平。在框1254处,基于与一个或多个所确定的概念中的每个所确定的概念相关联的得分对该一个或多个所确定的概念进行排序。
[0307] 在框1256处,基于一个或多个所确定的概念的归类和排序中的至少一者的结果来生成用户特定信息集合的表示。
[0308] 在框1258处,并且任选地,动态地更新用户特定信息集合的表示。在框1260处,确定附加印象是否可用来动态地更新用户特定信息集合的表示。在框1262处,根据确定附加印象可用,基于这些附加印象来生成一个或多个附加概念。在框1264处,用这些附加概念来更新用户特定信息集合的表示。
[0309] 在框1266处,在一些示例中,从用户特定信息集合的表示中移除一个或多个概念来动态地更新用户特定信息集合的表示。例如,基于预先确定的策略(例如,时间的推移)来移除概念。
[0310] 参考图12D,在框1268处,基于用户特定信息集合的表示向用户提供一个或多个建议。在框1270处,向用户提供一个或多个建议由能够访问用户特定信息集合的表示的一个或多个查询客户端来执行。查询客户端可包括例如在存储用户特定信息集合的表示的电子设备上操作的应用程序和/或在附加电子设备上操作的应用程序。
[0311] 在框1272处,从查询客户端接收请求用户特定信息的一个或多个查询来提供所述一个或多个建议。在框1274处,响应于该一个或多个查询,基于用户特定信息集合的表示来确定所请求的用户特定信息。在框1276处,向查询客户端提供所请求的用户特定信息。
[0312] 在一些示例中,查询客户端与存储用户特定信息集合的表示的电子设备相关联。在一些示例中,查询客户端与通信地耦接到电子设备的附加电子设备中的一个附加电子设备相关联。附加电子设备从电子设备远程访问或检索用户特定信息集合的表示。
[0313] 在框1278处,所请求的用户特定信息包括一个或多个名称;并且查询客户端基于所述一个或多个名称来更新与查询客户端相关联的词典。在框1280处,接收用户输入。在框1282处,响应于接收到该用户输入,由查询客户端基于更新的词典来对该用户输入执行自动校正、预测或自动大写中的至少一者。例如,如果用户输入包括名称的一部分(例如,gor),则可提供具有大写的预测名称(例如,Gorsuch)。
[0314] 在框1284处,基于所请求的用户特定信息来确定一个或多个建议。这些建议可以是例如用户可能有兴趣阅读的文章。在框1286处,向用户提供所确定的一个或多个建议。
[0315] 在一些示例中,在向查询客户端提供所请求的用户特定信息之前,还确定查询客户端是否被授权访问所请求的用户特定信息中的至少一部分。根据确定查询客户端被授权访问所请求的用户特定信息的至少一部分,调整所请求的用户特定信息。然后向查询客户端提供经调整的用户特定信息。
[0316] 参考图12E,在框1288处,在一些示例中,向与通信地耦接到电子设备的附加电子设备中的至少一个附加电子设备相关联的一个或多个查询客户端提供用户特定信息集合的表示(例如,整个日志文件或索引文件)。电子设备存储用户特定信息集合的表示。例如,存储日志文件或索引文件的电子设备可将整个文件发送给第二电子设备,而不是发送所请求的用户特定信息。在框1290处,由与通信地耦接到电子设备的附加电子设备中的至少一个附加电子设备相关联的一个或多个查询客户端基于用户特定信息集合的表示来确定一
个或多个建议。例如,基于整个日志文件或索引文件,用户可能有兴趣阅读的文章可由第二电子设备的新闻应用程序来确定。
[0317] 在框1292处,该一个或多个建议由与通信地耦接到电子设备的附加电子设备中的至少一个附加电子设备相关联的一个或多个查询客户端提供给用户。
[0318] 在框1294处,在电子设备(例如,用户的智能电话设备)和通信地耦接到电子设备的附加电子设备(例如,用户的平板电脑、膝上型计算机等)之间同步用户特定信息集合的表示的实例。
[0319] 以上参考图12A至图12E描述的操作任选地由图1至图4、图6A至图6B和图7A至图7C中所描绘的部件来实现。例如,过程1200的操作可由数字助理系统700来实现。本领域的普通技术人员会清楚地知道如何基于在图1至图4、图6A至图6B和图7A至图7C中所描绘的部件来实现其他过程。
[0320] 根据一些具体实施,提供一种计算机可读存储介质(例如,非暂态计算机可读存储介质),该计算机可读存储介质存储供电子设备的一个或多个处理器执行的一个或多个程序,该一个或多个程序包括用于执行本文所述方法或过程中的任一个的指令。
[0321] 根据一些具体实施,提供了一种电子设备(例如,便携式电子设备),该电子设备包括用于执行本文所述的方法和过程中的任一者的装置。
[0322] 根据一些具体实施,提供了一种电子设备(例如,便携式电子设备),该电子设备包括处理单元,该处理单元被配置为执行本文所述的方法和过程中的任一者。
[0323] 根据一些具体实施,提供了一种电子设备(例如,便携式电子设备),该电子设备包括一个或多个处理器和存储用以由一个或多个处理器执行的一个或多个程序的存储器,该一个或多个程序包括用于执行本文所描述的方法和过程中的任一者的指令。
[0324] 出于解释的目的,前面的描述是通过参考具体实施方案来描述的。然而,上面的例示性论述并非旨在是穷尽的或将本发明限制为所公开的精确形式。根据以上教导内容,很多修改形式和变型形式都是可能的。选择并描述这些实施方案是为了最好地解释这些技术的原理及其实际应用程序。本领域的其他技术人员由此能够最好地利用这些技术以及具有适合于所预期的特定用途的各种修改的各种实施方案。
[0325] 虽然参照附图对本公开以及示例进行了全面的描述,但应当注意,各种变化和修改对于本领域内的技术人员而言将变得显而易见。应当理解,此类变化和修改被认为被包括在由权利要求书所限定的本公开和示例的范围内。
[0326] 如上所述,本公开技术的一个方面在于采集和使用得自各种来源的数据,以改进向用户递送建议(例如,用户可能感兴趣的文章)或他们可能感兴趣的任何其他内容。本公开预期,在一些实例中,这些所采集的数据可包括唯一地识别或可用于联系或定位特定人员的个人信息数据。此类个人信息数据可包括人口数据、基于位置的数据、电话号码、电子邮件地址、家庭地址或任何其他识别信息。
[0327] 本公开认识到在本发明技术中使用此类个人信息数据可用于使用户受益。例如,该个人信息数据可用于递送用户较感兴趣的目标内容。因此,使用此类个人信息数据使得能够对所递送的内容进行有计划的控制。此外,本公开还预期个人信息数据有益于用户的其他用途。
[0328] 本公开还设想负责此类个人信息数据的收集、分析、公开、传输、存储或其他用途的实体将遵守已确立的隐私政策和/或隐私做法。具体地,此类实体应当实行并坚持使用被公认为满足或超出对维护个人信息数据的隐私性和安全性的行业或政府要求的隐私政策和实践。例如,来自用户的个人信息应当被收集用于实体的合法且合理的用途,并且不在这些合法用途之外共享或出售。另外,此类收集应当仅在用户知情同意之后进行。另外,此类实体应采取任何所需的步骤,以保障和保护对此类个人信息数据的访问,并且确保能够访问个人信息数据的其他人遵守他们的隐私政策和程序。另外,这种实体可使其本身经受第三方评估以证明其遵守广泛接受的隐私政策和实践。
[0329] 不管前述情况如何,本公开还预期用户选择性地阻止使用或访问个人信息数据的实施方案。即本公开预期可提供硬件元件和/或软件元件,以防止或阻止对此类个人信息数据的访问。例如,就广告递送服务而言,本发明的技术可被配置为在注册服务期间允许用户选择“加入”或“退出”参与对个人信息数据的收集。又如,用户可选择不为目标内容递送服务提供位置信息。再如,用户可选择不提供精确的位置信息,但准许传输位置区域信息。
[0330] 因此,虽然本公开广泛地覆盖了使用个人信息数据来实现一个或多个各种所公开的实施方案,但本公开还预期各种实施方案也可在无需访问此类个人信息数据的情况下被实现。即,本发明技术的各种实施方案不会由于缺少此类个人信息数据的全部或一部分而无法正常进行。例如,可通过基于非个人信息数据或绝对最小量的个人信息诸如与用户相关联的设备所请求的内容、对内容递送服务可用的其他非个人信息或公开可用信息来推断偏好,从而选择内容并递送至用户。
[0331] 用于提供查询建议的方法和系统

技术领域

[0332]
[0333] 本公开整体涉及智能自动化助理,更具体地,涉及在电子设备上向用户提供查询建议。

背景技术

[0334]
[0335] 智能自动化助理(或数字助理)可在人类用户与电子设备之间提供有利界面。此类助理可允许用户使用自然语言以语音形式和/或文本形式与设备或系统进行交互。例如,用户可向正在电子设备上运行的数字助理提供包含用户请求的语音输入。数字助理可从该语音输入解译用户意图并且将用户意图操作化成任务。随后可通过执行电子设备的一项或多项服务来执行这些任务,并且可将响应于用户请求的相关输出返回给用户。
[0336] 智能自动化助理可向用户提供查询建议。查询建议可包括针对用户的对该用户可能感兴趣的信息发起查询的建议。例如,基于用户阅读的文章,智能自动化助理可执行搜索并确定关于用户可能感兴趣的文章或网站的多个建议。考虑到多个建议,用户可选择一个建议以发起对信息的查询。确定多个查询建议可能需要搜索大量的主题多样的文档。因此,该过程可能是缓慢、低效和不准确的。

发明内容

[0337]
[0338] 本公开提供了用于提供多个查询建议的系统和过程。
[0339] 根据一个或多个示例,一种方法包括在具有存储器和一个或多个处理器的电子设备处:在显示包括非结构化自然语言信息的输入文档时,接收发起搜索的用户输入。该方法还包括响应于接收到用户输入,基于输入文档来发起查询。该查询访问与非结构化自然语言信息中存在的一个或多个主题相关的候选查询建议的储存库。该方法还包括从储存库接收一个或多个查询建议;以及向用户提供一个或多个查询建议。
[0340] 本文公开了示例性非暂态计算机可读介质。一种示例性非暂态计算机可读存储介质存储一个或多个程序。一个或多个程序包括指令,该指令当由电子设备的一个或多个处理器执行时,使得电子设备在显示包括非结构化自然语言信息的输入文档时接收发起搜索的用户输入。该一个或多个程序还包括指令,该指令使得电子设备响应于接收到用户输入而基于输入文档发起查询。该查询访问与非结构化自然语言信息中存在的一个或多个主题相关的候选查询建议的储存库。该一个或多个程序还包括指令,该指令使得电子设备从储存库接收一个或多个查询建议;以及向用户提供一个或多个查询建议。
[0341] 本文公开了示例性电子设备。一种示例性电子设备包括一个或多个处理器;存储器;以及一个或多个程序,其中一个或多个程序存储在存储器中并且被配置为由一个或多个处理器执行,该一个或多个程序包括用于执行以下操作的指令:在显示包括非结构化自然语言信息的输入文档时,接收发起搜索的用户输入。该一个或多个程序还包括指令,该指令用于响应于接收到用户输入而基于输入文档发起查询。该查询访问与非结构化自然语言信息中存在的一个或多个主题相关的候选查询建议的储存库。该一个或多个程序还包括从储存库接收一个或多个查询建议;以及向用户提供一个或多个查询建议。
[0342] 一种示例性电子设备包括:在显示包括非结构化自然语言信息的输入文档时接收发起搜索的用户输入。该电子设备还包括响应于接收到用户输入而基于输入文档发起查询的装置。该查询访问与非结构化自然语言信息中存在的一个或多个主题相关的候选查询建议的储存库。该电子设备还包括用于从储存库接收一个或多个查询建议的装置;以及用于向用户提供一个或多个查询建议的装置。
[0343] 向用户提供查询建议需要搜索索引结构。尺寸较小的索引结构可提高搜索速度。本专利申请中所述的各种技术减小了索引结构的大小,使得能够以快速且高效的方式执行搜索。例如,可在约50-150毫秒内执行搜索并向用户提供查询建议。因此,用户不会察觉发起搜索和接收查询建议(例如,用户可能感兴趣的文章)之间的任何延迟。在一些示例中,自定义的索引结构可被容纳在移动设备中以用于在不存在网络连接的情况下执行搜索,这可进一步提高搜索速度。此外,本专利申请中所述的用于减小索引结构的大小的技术不会降低或损害确定查询建议的准确性。例如,本专利申请中采用的技术可有效地确定索引结构中的术语是否可能表示用户可能感兴趣的文档,并因此根据该确定来自信地移除术语。
[0344] 此外,本专利申请中所述的用于提供查询建议的各种技术增强了设备的可操作性,并且使得用户-设备界面更高效(例如,通过执行搜索结果的后处理以细化和缩减搜索结果,以向用户提供前2-3个查询建议,而不是大量的查询建议),这又通过使得用户能够更快速且更高效地使用设备而减少了电力使用并且改善了设备的电池寿命。

附图说明

[0345]
[0346] 图1为示出了根据各种示例的用于实现数字助理的系统和环境的框图。
[0347] 图2A为示出了根据各种示例的实现数字助理的客户端侧部分的便携式多功能设备的框图。
[0348] 图2B为示出了根据各种示例的用于事件处理的示例性部件的框图。
[0349] 图3示出了根据各种示例的实现数字助理的客户端侧部分的便携式多功能设备。
[0350] 图4为根据各种示例的具有显示器和触敏表面的示例性多功能设备的框图。
[0351] 图5A示出了根据各种示例的便携式多功能设备上的应用程序的菜单的示例性用户界面。
[0352] 图5B示出了根据各种示例的具有与显示器分开的触敏表面的多功能设备的示例性用户界面。
[0353] 图6A示出了根据各种示例的个人电子设备。
[0354] 图6B为示出了根据各种示例的个人电子设备的框图。
[0355] 图7A为示出了根据各种示例的数字助理系统或其服务器部分的框图。
[0356] 图7B示出了根据各种示例的在图7A中所示的数字助理的功能。
[0357] 图7C示出了根据各种示例的知识本体的一部分。
[0358] 图8示出了根据各种示例的用于提供查询建议的智能自动化助理的框图。
[0359] 图9示出了根据各种示例的用于在用户设备上显示文档的用户界面。
[0360] 图10A示出了根据各种示例的用于接收发起搜索的用户输入的用户界面。
[0361] 图10B示出了根据各种示例的用于响应于搜索来显示查询建议的用户界面。
[0362] 图10C示出了根据各种示例的用于接收发起搜索的另一用户输入的用户界面。
[0363] 图11示出了根据各种示例的查询发生器的框图。
[0364] 图12A示出了根据各种示例的查询建议发生器的框图。
[0365] 图12B示出了根据各种示例的索引结构。
[0366] 图12C示出了根据各种示例的与文本语料库相关联的位置索引。
[0367] 图13A示出了根据各种示例的用于接收用户对查询建议的选择的用户界面。
[0368] 图13B示出了根据各种示例的用于响应于用户对查询建议的选择而向用户提供文档的用户界面。
[0369] 图14A-图14F示出了根据各种示例的用于提供查询建议的过程。

具体实施方式

[0370]
[0371] 在以下对示例的描述中将引用附图,在附图中以例示的方式示出了可被实施的特定示例。应当理解,在不脱离各个示例的范围的情况下,可使用其他示例并且可作出结构性改变。
[0372] 本文描述了用于提高提供查询建议的效率的各种技术。该技术包括生成索引结构以启用相似性搜索,并且有时显著地减小索引结构的大小以实现更快且更准确的相似性搜索。该技术还包括执行相似性搜索结果的后处理,从而向用户提供前几个查询建议。相似性结果的后处理进一步优化和缩减候选查询建议,以提供改进的用户交互界面。
[0373] 尽管以下描述使用术语“第一”、“第二”等来描述各种元件,但这些元件不应受术语的限制。这些术语只是用于将一个元件与另一元件区分开。例如,在不脱离各种所述示例的范围的情况下,第一输入可被称为第二输入,并且类似地,第二输入可被称为第一输入。第一输入和第二输入均为输入,并且在一些情况下为独立且不同的输入。
[0374] 在本文中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。如在对各种所述示例的描述和所附权利要求书中所使用的那样,单数形式“一个(“a”,“an”)”和“该”旨在也包括复数形式,除非上下文另外明确地指示。还将理解的是,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语“包括”(“includes”、“including”、“comprises”和/或“comprising”)在本说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元件和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件和/或其分组。
[0375] 根据上下文,术语“如果”可被解释为意指“当...时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“如果确定...”或“如果检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
[0376] 1.系统和环境
[0377] 图1示出了根据各种示例的系统100的框图。在一些示例中,系统100实现数字助理。术语“数字助理”、“虚拟助理”、“智能自动化助理”或“自动数字助理”是指解译口头形式和/或文本形式的自然语言输入来推断用户意图并且基于推断出的用户意图来执行动作的任何信息处理系统。例如,为了作用于推断出的用户意图,系统执行下述步骤中的一个或多个:识别具有设计用于实现推断出的用户意图的步骤和参数的任务流,根据推断出的用户意图将特定要求输入到任务流中;通过调用程序、方法、服务、API等执行任务流;以及以可听(例如,语音)和/或可视形式来生成对用户的输出响应。
[0378] 具体地,数字助理能够接受至少部分地为自然语言命令、请求、声明、讲述和/或询问的形式的用户请求。通常,用户请求寻求数字助理作出信息性回答或执行任务。对用户请求的令人满意的响应包括提供所请求的信息性回答、执行所请求的任务或这两者的组合。例如,用户向数字助理提出问题,诸如“我现在在哪里?”。基于用户的当前位置,数字助理回答“你在中央公园西门附近。”用户还请求执行任务,例如“请邀请我的朋友们下周来参加我女朋友的生日聚会。”作为响应,数字助理可通过讲出“好的,马上”来确认请求,然后代表用户将合适的日历邀请发送到用户电子地址簿中列出的用户朋友中的每位朋友。在执行所请求的任务期间,数字助理有时在很长时间段内在涉及多次信息交换的持续对话中与用户进行交互。存在与数字助理进行交互以请求信息或执行各种任务的许多其他方法。除提供言语响应并采取经编程的动作之外,数字助理还提供其他视频或音频形式的响应,例如作为文本、警报、音乐、视频、动画等。
[0379] 如图1所示,在一些示例中,数字助理根据客户端-服务器模型来实现。数字助理包括在用户设备104上执行的客户端侧部分102(后文称作“DA客户端102”)以及在服务器系统108上执行的服务器侧部分106(后文称作“DA服务器106”)。DA客户端102通过一个或多个网络110与DA服务器106通信。DA客户端102提供客户端侧功能,诸如面向用户的输入和输出处理,以及与DA服务器106通信。DA服务器106为各自位于相应用户设备104上的任意数量的DA客户端102提供服务器侧功能。
[0380] 在一些示例中,DA服务器106包括面向客户端的I/O接口112、一个或多个处理模块114、数据与模型116,以及到外部服务的I/O接口118。面向客户端的I/O接口112有利于DA服务器106的面向客户端的输入和输出处理。一个或多个处理模块114利用数据与模型116来处理语音输入,并基于自然语言输入来确定用户意图。此外,一个或多个处理模块114基于推断出的用户意图来执行任务执行。在一些示例中,DA服务器106通过一个或多个网络110与外部服务120通信以完成任务或采集信息。到外部服务的I/O接口118有利于此类通信。
[0381] 用户设备104可以是任何合适的电子设备。在一些示例中,用户设备是便携式多功能设备(例如,下面参考图2A描述的设备200)、多功能设备(例如,下面参考图4描述的设备400)或个人电子设备(例如,下面参考图6A-图6B描述的设备600)。便携式多功能设备是例如还包含诸如PDA和/或音乐播放器功能的其他功能的移动电话。便携式多功能设备的特定示例包括来自Apple Inc.(Cupertino,California)的 iPod 和 设
备。便携式多功能设备的其他示例包括但不限于膝上型计算机或平板电脑。此外,在一些示例中,用户设备104是非便携式多功能设备。具体地讲,用户设备104是台式计算机、游戏机、电视或电视机顶盒。在一些示例中,用户设备104包括触敏表面(例如,触摸屏显示器和/或触控板)。此外,用户设备104任选地包括一个或多个其他物理用户接口设备,诸如物理键盘、鼠标和/或操纵杆。下文更详细地描述了电子设备诸如多功能设备的各种示例。
[0382] 一个或多个通信网络110的示例包括局域网(LAN)和广域网(WAN),例如互联网。一个或多个通信网络110使用任何已知的网络协议来实现,包括各种有线或无线协议,诸如以太网、通用串行总线(USB)、FIREWIRE、全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、Wi-Fi、互联网协议语音(VoIP)、Wi-MAX或任何其他合适的通信协议。
[0383] 服务器系统108在一个或多个独立式数据处理设备或分布式计算机网络上实现。在一些示例中,服务器系统108还采用第三方服务提供方(例如,第三方云服务提供方)的各种虚拟设备和/或服务来提供服务器系统108的下层计算资源和/或基础结构资源。
[0384] 在一些示例中,用户设备104经由第二用户设备122与DA服务器106通信。第二用户设备122与用户设备104相似或相同。例如,第二用户设备122类似于下文参考图2A、图4和图6A-图6B描述的设备200、设备400或设备600。用户设备104被配置为经由直接通信连接诸如蓝牙、NFC、BTLE等或者经由有线或无线网络诸如局域Wi-Fi网络而通信耦接到第二用户设备122。在一些示例中,第二用户设备122被配置为充当用户设备104与DA服务器106之间的代理。例如,用户设备104的DA客户端102被配置为经由第二用户设备122向DA服务器106传输信息(例如,在用户设备104处接收的用户请求)。DA服务器106处理该信息,并经由第二用户设备122将相关数据(例如,响应于用户请求的数据内容)返回到用户设备104。
[0385] 在一些示例中,用户设备104被配置为将针对数据的缩略请求发送到第二用户设备122,以减少从用户设备104传输的信息量。第二用户设备122被配置为确定添加到缩略请求的补充信息,以生成完整的请求来传输到DA服务器106。该系统架构可有利地通过使用具有较强通信能力和/或电池电力的第二用户设备122(例如,移动电话、膝上型计算机、平板电脑等)作为到DA服务器106的代理来允许具有有限通信能力和/或有限电池电力的用户设备104(例如,手表或类似的紧凑型电子设备)访问DA服务器106提供的服务。虽然图1中仅示出两个用户设备104和122,但应当理解,在一些示例中,系统100可包括在此代理配置中被配置为与DA服务器系统106通信的任意数量和类型的用户设备。
[0386] 虽然图1中所示的数字助理包括客户端侧部分(例如,DA客户端102)和服务器侧部分(例如,DA服务器106)两者,但在一些示例中,数字助理的功能被实现为被安装在用户设备上的独立式应用程序。此外,数字助理的客户端部分与服务器部分之间的功能划分在不同的具体实施中可变化。例如,在一些示例中,DA客户端为仅提供面向用户的输入和输出处理功能并将数字助理的所有其他功能委派给后端服务器的瘦客户端。
[0387] 2.电子设备
[0388] 现在将注意力转至用于实现数字助理的客户端侧部分的电子设备的实施方案。图2A是示出了根据一些实施方案的具有触敏显示器系统212的便携式多功能设备200的框图。
触敏显示器212有时为了方便被叫做“触摸屏”,并且有时被称为或被叫做“触敏显示器系统”。设备200包括存储器202(其任选地包括一个或多个计算机可读存储介质)、存储器控制器222、一个或多个处理单元(CPU)220、外围设备接口218、RF电路208、音频电路210、扬声器
211、麦克风213、输入/输出(I/O)子系统206、其他输入控制设备216和外部端口224。设备
200任选地包括一个或多个光学传感器264。设备200任选地包括用于检测设备200(例如设备200的触敏表面诸如触敏显示器系统212)上的接触的强度的一个或多个接触强度传感器
265。设备200任选地包括用于在设备200上生成触觉输出的一个或多个触觉输出发生器267(例如,在触敏表面诸如设备200的触敏显示器系统212或设备400的触控板455上生成触觉输出)。这些部件任选地通过一个或多个通信总线或信号线203进行通信。
[0389] 如在本说明书和权利要求书中所使用的,术语触敏表面上的接触的“强度”是指触敏表面上的接触(例如,手指接触)的力或压力(每单位面积的力),或是指触敏表面上的接触的力或压力的替代物(代用物)。接触的强度具有值范围,该值范围包括至少四个不同的值并且更典型地包括上百个不同的值(例如,至少256个)。接触的强度任选地使用各种方法和各种传感器或传感器的组合来确定(或测量)。例如,在触敏表面下方或相邻于触敏表面的一个或多个力传感器任选地用于测量触敏表面上的不同点处的力。在一些具体实施中,来自多个力传感器的力测量值被组合(例如,加权平均)以确定所估计的接触力。类似地,触笔的压敏顶端任选地用于确定触笔在触敏表面上的压力。另选地,在触敏表面上检测到的接触区域的大小和/或其变化、接触附近的触敏表面的电容和/或其变化和/或接触附近的触敏表面的电阻和/或其变化任选地被用作触敏表面上的接触的力或压力的替代物。在一些具体实施中,接触力或压力的替代物测量直接用于确定是否已经超过强度阈值(例如,强度阈值以对应于替代物测量的单位来描述)。在一些具体实施中,接触力或压力的替代物测量被转换成估计的力或压力,并且估计的力或压力用于确定是否已超过强度阈值(例如,强度阈值是以压力的单位进行测量的压力阈值)。使用接触的强度作为用户输入的属性,从而允许用户访问用户在实地面积有限的尺寸更小的设备上本来不可访问的附加设备功能,该尺寸更小的设备用于(例如,在触敏显示器上)显示示能表示和/或接收用户输入(例如,经由触敏显示器、触敏表面或物理控件/机械控件,诸如旋钮或按钮)。
[0390] 如本说明书和权利要求书中所使用的,术语“触觉输出”是指将由用户利用用户的触感检测到的设备相对于设备的先前位置的物理位移、设备的部件(例如,触敏表面)相对于设备的另一个部件(例如,外壳)的物理位移,或部件相对于设备的质心的位移。例如,在设备或设备的部件与用户对触摸敏感的表面(例如,手指、手掌或用户手部的其他部分)接触的情况下,通过物理位移生成的触觉输出将由用户解释为触感,该触感与设备或设备的部件的物理特征的所感知的变化对应。例如,触敏表面(例如,触敏显示器或触控板)的移动任选地由用户解释为对物理致动按钮的“按下点击”或“松开点击”。在一些情况下,用户将感觉到触感,诸如“按下点击”或“松开点击”,即使在通过用户的移动而物理地被按压(例如,被移位)的与触敏表面相关联的物理致动按钮没有移动时。又如,即使在触敏表面的光滑度无变化时,触敏表面的移动也会任选地由用户解释或感测为触敏表面的“粗糙度”。虽然用户对触摸的此类解释将受到用户的个体化感官知觉的限制,但是对触摸的许多感官知觉是大多数用户共有的。因此,当触觉输出被描述为对应于用户的特定感官知觉(例如,“按下点击”、“松开点击”、“粗糙度”)时,除非另外陈述,否则所生成的触觉输出对应于设备或其部件的物理位移,该物理位移将会生成典型(或普通)用户的所述感官知觉。
[0391] 应当理解,设备200仅仅是便携式多功能设备的一个示例,并且设备200任选地具有比所示出的部件更多或更少的部件,任选地组合两个或更多个部件,或者任选地具有这些部件的不同配置或布置。图2A中所示的各种部件以硬件、软件或硬件与软件两者的组合来实现,包括一个或多个信号处理和/或专用集成电路。
[0392] 存储器202包括一个或多个计算机可读存储介质。这些计算机可读存储介质例如为有形的和非暂态的。存储器202包括高速随机存取存储器,并且还包括非易失性存储器,诸如一个或多个磁盘存储设备、闪存存储器设备或其他非易失性固态存储器设备。存储器控制器222控制设备200的其他部件访问存储器202。
[0393] 在一些示例中,存储器202的非暂态计算机可读存储介质用于存储指令(例如,用于执行下文描述的过程的各方面)以供指令执行系统、装置或设备诸如基于计算机的系统、包含处理器的系统或可从指令执行系统、装置或设备取出指令并执行指令的其他系统使用或与其结合使用。在其他示例中,指令(例如,用于执行下文描述的过程的各方面)存储在服务器系统108的非暂态计算机可读存储介质(未示出)上,或在存储器202的非暂态计算机可读存储介质与服务器系统108的非暂态计算机可读存储介质之间划分。
[0394] 外围设备接口218用于将设备的输入和输出外围设备耦接到CPU 220和存储器202。一个或多个处理器220运行或执行存储器202中所存储的各种软件程序和/或指令集以执行设备200的各种功能并处理数据。在一些实施方案中,外围设备接口218、CPU 220和存储器控制器222在单个芯片诸如芯片204上实现。在一些其他实施方案中,它们在独立的芯片上实现。
[0395] RF(射频)电路208接收和发送也被称作电磁信号的RF信号。RF电路208将电信号转换为电磁信号/将电磁信号转换为电信号,并且经由电磁信号与通信网络及其他通信设备进行通信。RF电路208任选地包括用于执行这些功能的熟知的电路,包括但不限于天线系统、RF收发器、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、编解码芯片组、用户身份模块(SIM)卡、存储器等等。RF电路208任选地通过无线通信来与网络和其他设备进行通信,这些网络为诸如互联网(也被称为万维网(WWW))、内联网和/或无线网络(诸如,蜂窝电话网络、无线局域网(LAN)和/或城域网(MAN))。RF电路208任选地包括用于诸如通过近程通信无线电部件来检测近场通信(NFC)场的熟知的电路。无线通信任选地使用多种通信标准、协议和技术中的任一种,包括但不限于全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、高速下行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)、演进、纯数据(EV-DO)、HSPA、HSPA+、双小区HSPA(DC-HSPDA)、长期演进(LTE)、近场通信(NFC)、宽带码分多址(W-CDMA)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、蓝牙低功耗(BTLE)、无线保真(Wi-Fi)(例如,IEEE 802.11a、IEEE 802.11b、IEEE 802.11g、IEEE 802.11n和/或IEEE 802.11ac)、互联网协议语音(VoIP)、Wi-MAX、电子邮件协议(例如,互联网消息访问协议(IMAP)和/或邮局协议(POP))、即时消息(例如,可扩展消息处理和存在协议(XMPP)、用于即时消息和存在利用扩展的会话发起协议(SIMPLE)、即时消息和存在服务(IMPS))和/或短消息服务(SMS),或者任何其他适当的通信协议,包括在本文档提交日期时尚未开发出的通信协议。
[0396] 音频电路210、扬声器211和麦克风213提供用户与设备200之间的音频接口。音频电路210从外围设备接口218接收音频数据,将音频数据转换为电信号,并将电信号传输到扬声器211。扬声器211将电信号转换为人类可听到的声波。音频电路210还接收由麦克风213从声波转换的电信号。音频电路210将电信号转换为音频数据,并且将音频数据传输到外围设备接口218以用于处理。音频数据通过外围设备接口218检索自和/或传输至存储器
202和/或RF电路208。在一些实施方案中,音频电路210还包括耳麦插孔(例如,图3中的
312)。该耳麦插孔提供音频电路210与可移除的音频输入/输出外围设备之间的接口,该可移除的音频输入/输出外围设备诸如仅输出的耳机或者具有输出(例如,单耳耳机或双耳耳机)和输入(例如,麦克风)两者的耳麦。
[0397] I/O子系统206将设备200上的输入/输出外围设备诸如触摸屏212和其他输入控制设备216耦接到外围设备接口218。I/O子系统206任选地包括显示控制器256、光学传感器控制器258、强度传感器控制器259、触觉反馈控制器261,以及用于其他输入或控制设备的一个或多个输入控制器260。所述一个或多个输入控制器260从其他输入控制设备216接收电信号/将电信号发送到其他输入控制设备216。其他输入控制设备216任选地包括物理按钮(例如,下压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击式转盘等。在一些另选实施方案中,输入控制器260任选地耦接至以下各项中的任一者(或不耦接至以下各项中的任一者):键盘、红外端口、USB端口以及指向设备诸如鼠标。所述一个或多个按钮(例如,图3中的
308)任选地包括用于扬声器211和/或麦克风213的音量控制的增大/减小按钮。所述一个或多个按钮任选地包括下压按钮(例如,图3中的306)。
[0398] 快速按下下压按钮会脱离触摸屏212的锁定或者开始使用触摸屏上的手势来对设备进行解锁的过程,如在2005年12月23日提交的名称为“Unlocking a Device by 
Performing Gestures on an Unlock Image”的美国专利7,657,849的美国专利申请11/
322,549中所述,该美国专利申请据此全文以引用方式并入本文。较长时间按下下压按钮(例如,306)使设备200开机或关机。用户能够自定义一个或多个按钮的功能。触摸屏212用于实现虚拟按钮或软按钮以及一个或多个软键盘。
[0399] 触敏显示器212提供设备和用户之间的输入接口和输出接口。显示控制器256从触摸屏212接收电信号和/或将电信号发送至触摸屏212。触摸屏212向用户显示视觉输出。视觉输出包括图形、文本、图标、视频及其任何组合(统称为“图形”)。在一些实施方案中,一些视觉输出或全部视觉输出对应于用户界面对象。
[0400] 触摸屏212具有基于触觉和/或触感接触来接受来自用户的输入的触敏表面、传感器或传感器组。触摸屏212和显示控制器256(与存储器202中的任何相关联的模块和/或指令集一起)检测触摸屏212上的接触(和该接触的任何移动或中断),并且将所检测到的接触转换为与被显示在触摸屏212上的用户界面对象(例如,一个或多个软键、图标、网页或图像)的交互。在示例性实施方案中,触摸屏212与用户之间的接触点对应于用户的手指。
[0401] 触摸屏212使用LCD(液晶显示器)技术、LPD(发光聚合物显示器)技术或LED(发光二极管)技术,但在其他实施方案中可使用其他显示技术。触摸屏212和显示控制器256使用目前已知或以后将开发的多种触摸感测技术中的任何技术,以及其他接近传感器阵列或用于确定与触摸屏212接触的一个或多个点的其他元件来检测接触及其任何移动或中断,所述多种触摸感测技术包括但不限于电容式、电阻式、红外和表面声波技术。在示例性实施方案中,使用投射式互电容感测技术,诸如在来自Apple Inc.(Cupertino,California)的
和iPod 中使用的技术。
[0402] 在一些实施方案中,触摸屏212的触敏显示器类似于以下美国专利:6,323,846(Westerman等人)、6,570,557(Westerman等人)和/或6,677,932(Westerman)和/或美国专利公开2002/0015024A1中所述的多点触敏触控板,这些专利申请均据此全文以引用方式并入本文。然而,触摸屏212显示来自设备200的视觉输出,而触敏触控板不提供视觉输出。
[0403] 在一些实施方案中,触摸屏212的触敏显示器如以下申请所述:(1)2006年5月2日提交的名称为“Multipoint Touch Surface Controller”的美国专利申请11/381,313;(2)2004年5月6日提交的名称为“Multipoint Touchscreen”的美国专利申请10/840,862;(3)
2004年7月30日提交的名称为“Gestures For Touch Sensitive Input Devices”的美国专利申请10/903,964;(4)2005年1月31日提交的名称为“Gestures For Touch Sensitive Input Devices”的美国专利申请11/048,264;(5)2005年1月18日提交的名称为“Mode-
Based Graphical User Interfaces For Touch Sensitive Input Devices”的美国专利申请11/038,590;(6)2005年9月16日提交的名称为“Virtual Input Device Placement On A Touch Screen User Interface”的美国专利申请11/228,758;(7)2005年9月16日提交的名称为“Operation Of A Computer With A Touch Screen Interface”的美国专利申请
11/228,700;(8)2005年9月16日提交的名称为“Activating Virtual Keys Of A Touch-Screen Virtual Keyboard”的美国专利申请11/228,737;以及(9)2006年3月3日提交的名称为“Multi-Functional Hand-Held Device”的美国专利申请11/367,749。所有这些申请全文以引用方式并入本文。
[0404] 触摸屏212例如具有超过100dpi的视频分辨率。在一些实施方案中,触摸屏具有约160dpi的视频分辨率。用户使用任何合适的对象或附加物诸如触笔、手指等与触摸屏212进行接触。在一些实施方案中,将用户界面设计为主要通过基于手指的接触和手势来工作,由于手指在触摸屏上的接触区域较大,因此这可能不如基于触笔的输入精确。在一些实施方案中,设备将基于手指的粗略输入转化为精确的指针/光标位置或命令以用于执行用户所期望的动作。
[0405] 在一些实施方案中,除了触摸屏之外,设备200还包括用于激活或去激活特定功能的触控板(未示出)。在一些实施方案中,触控板是设备的触敏区域,与触摸屏不同,该触敏区域不显示视觉输出。触控板是与触摸屏212分开的触敏表面,或者是由触摸屏形成的触敏表面的延伸。
[0406] 设备200还包括用于为各种部件供电的电力系统262。电力系统262包括电力管理系统、一个或多个电源(例如,电池、交流电(AC))、再充电系统、电力故障检测电路、功率转换器或逆变器、电力状态指示器(例如,发光二极管(LED))和与便携式设备中电力的生成、管理和分配相关联的任何其他部件。
[0407] 设备200还包括一个或多个光学传感器264。图2A示出了耦接到I/O子系统206中的光学传感器控制器258的光学传感器。光学传感器264包括电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)光电晶体管。光学传感器264从环境接收通过一个或多个透镜而投射的光,并且将光转换为表示图像的数据。结合成像模块243(也叫做相机模块),光学传感器264捕获静态图像或视频。在一些实施方案中,光学传感器位于设备200的后部,与设备前部的触摸屏显示器212相背对,使得触摸屏显示器被用作用于静态图像和/或视频图像采集的取景器。在一些实施方案中,光学传感器位于设备的前部,使得在用户在触摸屏显示器上查看其他视频会议参与者的同时获取该用户的图像以用于视频会议。在一些实施方案中,光学传感器264的位置可由用户改变(例如,通过旋转设备外壳中的透镜和传感器),使得单个光学传感器264与触摸屏显示器一起使用,以用于视频会议和静态图像和/或视频图像采集两者。
[0408] 设备200任选地还包括一个或多个接触强度传感器265。图2A示出了耦接到I/O子系统206中的强度传感器控制器259的接触强度传感器。接触强度传感器265任选地包括一个或多个压阻应变仪、电容式力传感器、电气力传感器、压电力传感器、光学力传感器、电容式触敏表面或其他强度传感器(例如,用于测量触敏表面上的接触的力(或压力)的传感
器)。接触强度传感器265从环境接收接触强度信息(例如,压力信息或压力信息的代用物)。
在一些实施方案中,至少一个接触强度传感器与触敏表面(例如,触敏显示器系统212)并置排列或邻近。在一些实施方案中,至少一个接触强度传感器位于设备200的后部上,与位于设备200的前部上的触摸屏显示器212相背对。
[0409] 设备200还包括一个或多个接近传感器266。图2A示出了耦接到外围设备接口218的接近传感器266。另选地,接近传感器266耦接到I/O子系统206中的输入控制器260。接近传感器266如以下美国专利申请中所述的那样执行:11/241,839,名称为“Proximity 
Detector In Handheld Device”;11/240,788,名称为“Proximity Detector In Handheld Device”;11/620,702,名称为“Using Ambient Light Sensor To Augment Proximity Sensor Output”;11/586,862,名称为“Automated Response To And Sensing Of User Activity In Portable Devices”;以及11/638,251,名称为“Methods And Systems For Automatic Configuration Of Peripherals”,这些美国专利申请据此全文以引用方式并入本文。在一些实施方案中,当多功能设备被置于用户的耳朵附近时(例如,当用户正在进行电话呼叫时),接近传感器关闭并且禁用触摸屏212。
[0410] 设备200任选地还包括一个或多个触觉输出发生器267。图2A示出了耦接到I/O子系统206中的触觉反馈控制器261的触觉输出发生器。触觉输出发生器267任选地包括一个或多个电声设备诸如扬声器或其他音频部件;和/或用于将能量转换成线性运动的机电设备诸如电机、螺线管、电活性聚合器、压电致动器、静电致动器或其他触觉输出发生部件(例如,用于将电信号转换成设备上的触觉输出的部件)。接触强度传感器265从触觉反馈模块
233接收触觉反馈生成指令,并且在设备200上生成能够由设备200的用户感觉到的触觉输出。在一些实施方案中,至少一个触觉输出发生器与触敏表面(例如,触敏显示器系统212)并置排列或邻近,并且任选地通过竖直地(例如,向设备200的表面内/外)或侧向地(例如,在与设备200的表面相同的平面中向后和向前)移动触敏表面来生成触觉输出。在一些实施方案中,至少一个触觉输出发生器传感器位于设备200的后部上,与位于设备200的前部上的触摸屏显示器212相背对。
[0411] 设备200还包括一个或多个加速度计268。图2A示出了耦接到外围设备接口218的加速度计268。另选地,加速度计268耦接至I/O子系统206中的输入控制器260。加速度计268如以下美国专利公开中所述那样执行:美国专利公开20050190059,“Acceleration-based Theft Detection System for Portable Electronic Devices”和美国专利公开
20060017692,“Methods And Apparatuses For Operating A Portable Device Based On An Accelerometer”,这两个美国专利公开全文以引用方式并入本文。在一些实施方案中,基于对从一个或多个加速度计接收的数据的分析来在触摸屏显示器上以纵向视图或横向
视图显示信息。设备200任选地除了一个或多个加速度计268之外还包括磁力仪(未示出)和GPS(或GLONASS或其他全球导航系统)接收器(未示出),以用于获取关于设备200的位置和取向(例如,纵向或横向)的信息。
[0412] 在一些实施方案中,存储于存储器202中的软件部件包括操作系统226、通信模块(或指令集)228、接触/运动模块(或指令集)230、图形模块(或指令集)232、文本输入模块(或指令集)234、全球定位系统(GPS)模块(或指令集)235、数字助理客户端模块229以及应用程序(或指令集)236。此外,存储器202存储数据与模型,诸如用户数据与模型231。此外,在一些实施方案中,存储器202(图2A)或470(图4)存储设备/全局内部状态257,如图2A和图4中所示。设备/全局内部状态257包括以下中的一者或多者:活动应用程序状态,其指示哪些应用程序(如果有的话)当前是活动的;显示状态,其指示什么应用程序、视图或其他信息占据触摸屏显示器212的各个区域;传感器状态,包括从设备的各个传感器和输入控制设备
216获取的信息;以及关于设备的位置和/或姿态的位置信息。
[0413] 操作系统226(例如,Darwin、RTXC、LINUX、UNIX、OS X、iOS、WINDOWS、或嵌入式操作系统诸如VxWorks)包括用于控制和管理一般系统任务(例如,存储器管理、存储设备控制、电源管理等)的各种软件部件和/或驱动程序,并且促进各种硬件部件和软件部件之间的通信。
[0414] 通信模块228便于通过一个或多个外部端口224来与其他设备进行通信,并且还包括用于处理由RF电路208和/或外部端口224所接收的数据的各种软件部件。外部端口224(例如,通用串行总线(USB)、火线等)适于直接耦接到其他设备,或间接地通过网络(例如,互联网、无线LAN等)进行耦接。在一些实施方案中,外部端口是与 (Apple Inc.的商
标)设备上所使用的30针连接器相同的或类似的和/或与其兼容的多针(例如,30针)连接
器。
[0415] 接触/运动模块230任选地检测与触摸屏212(结合显示控制器256)和其他触敏设备(例如,触控板或物理点击轮)的接触。接触/运动模块230包括各种软件部件以用于执行与接触检测相关的各种操作,诸如确定是否已发生接触(例如,检测手指按下事件)、确定接触强度(例如,接触的力或压力,或者接触的力或压力的替代物)、确定是否存在接触的移动并跟踪在触敏表面上的移动(例如,检测一个或多个手指拖动事件),以及确定接触是否已停止(例如,检测手指抬起事件或接触断开)。接触/运动模块230从触敏表面接收接触数据。
确定接触点的移动任选地包括确定接触点的速率(量值)、速度(量值和方向)和/或加速度(量值和/或方向的改变),所述接触点的移动由一系列接触数据表示。这些操作任选地被应用于单点接触(例如,单指接触)或者多点同时接触(例如,“多点触摸”/多个手指接触)。在一些实施方案中,接触/运动模块230和显示控制器256检测触控板上的接触。
[0416] 在一些实施方案中,接触/运动模块230使用一组一个或多个强度阈值来确定操作是否已由用户执行(例如,确定用户是否已“点击”图标)。在一些实施方案中,根据软件参数来确定强度阈值的至少一个子集(例如,强度阈值不是由具体物理致动器的激活阈值来确定的,并且可在不改变设备200的物理硬件的情况下被调节)。例如,在不改变触控板或触摸屏显示器硬件的情况下,触控板或触摸屏的鼠标“点击”阈值可被设定成预定义的阈值的大范围中的任一个阈值。另外,在一些具体实施中,向设备的用户提供用于调节一组强度阈值中的一个或多个强度阈值(例如,通过调节各个强度阈值和/或通过利用对“强度”参数的系统级点击来一次调节多个强度阈值)的软件设置。
[0417] 接触/运动模块230任选地检测用户的手势输入。触敏表面上的不同手势具有不同的接触模式(例如,所检测到的接触的不同运动、计时和/或强度)。因此,任选地通过检测特定接触模式来检测手势。例如,检测手指轻击手势包括检测手指按下事件,然后在与手指按下事件相同的位置(或基本上相同的位置)处(例如,在图标的位置处)检测手指抬起(抬离)事件。作为另一个示例,在触敏表面上检测手指轻扫手势包括检测手指按下事件,然后检测一个或多个手指拖动事件,并且随后检测手指抬起(抬离)事件。
[0418] 图形模块232包括用于在触摸屏212或其他显示器上呈现和显示图形的各种已知的软件部件,包括用于改变所显示的图形的视觉冲击(例如,亮度、透明度、饱和度、对比度或其他视觉特征)的部件。如本文所用,术语“图形”包括可被显示给用户的任何对象,非限制性地包括文本、网页、图标(诸如,包括软键的用户界面对象)、数字图像、视频、动画等。
[0419] 在一些实施方案中,图形模块232存储表示待使用的图形的数据。每个图形任选地被分配有对应的代码。图形模块232从应用程序等接收用于指定待显示的图形的一个或多个代码,在必要的情况下还一起接收坐标数据和其他图形属性数据,并且然后生成屏幕图像数据,以输出至显示控制器256。
[0420] 触觉反馈模块233包括用于生成指令的各种软件部件,该指令由触觉输出发生器267使用,以便响应于用户与设备200的交互而在设备200上的一个或多个位置处产生触觉输出。
[0421] 在一些示例中作为图形模块232的部件的文本输入模块234提供用于在各种应用程序(例如,联系人237、电子邮件240、IM 241、浏览器247和需要文本输入的任何其他应用程序)中输入文本的软键盘。
[0422] GPS模块235确定设备的位置,并提供该信息以供在各种应用程序中使用(例如提供给电话238以供在基于位置的拨号中使用;提供给相机243作为图片/视频元数据;以及提供给用于提供基于位置的服务的应用,诸如天气桌面小程序、本地黄页桌面小程序和地图/导航桌面小程序)。
[0423] 数字助理客户端模块229包括各种客户端侧数字助理指令,以提供数字助理的客户端侧功能。例如,数字助理客户端模块229能够通过便携式多功能设备200的各种用户接口(例如,麦克风213、一个或多个加速度计268、触敏显示器系统212、一个或多个光学传感器229、其他输入控制设备216等)接受声音输入(例如,语音输入)、文本输入、触摸输入和/或手势输入。数字助理客户端模块229还能够通过便携式多功能设备200的各种输出接口
(例如,扬声器211、触敏显示器系统212、一个或多个触觉输出生成器267等)提供音频形式的输出(例如,语音输出)、视觉形式的输出和/或触觉形式的输出。例如,将输出提供为语音、声音、警报、文本消息、菜单、图形、视频、动画、振动和/或以上两者或更多者的组合。在操作期间,数字助理客户端模块229使用RF电路208与DA服务器106通信。
[0424] 用户数据与模型231包括与用户相关联的各种数据(例如,用户特定的词汇数据、用户偏好数据、用户指定的名称发音、来自用户电子地址簿的数据、待办事项、购物清单等)以提供数字助理的客户端侧功能。此外,用户数据与模型231包括用于处理用户输入并且确定用户意图的各种模型(例如,语音识别模型、统计语言模型、自然语言处理模型、知识本体、任务流模型、服务模型等)。
[0425] 在一些示例中,数字助理客户端模块229利用便携式多功能设备200的各种传感器、子系统和外围设备来从便携式多功能设备200的周围环境采集附加信息,以建立与用户、当前用户交互和/或当前用户输入相关联的上下文。在一些示例中,数字助理客户端模块229将上下文信息或其子集与用户输入一起提供至DA服务器106以帮助推断用户意图。在一些示例中,数字助理还使用上下文信息来确定如何准备输出并将其传送给用户。上下文信息被称为上下文数据。
[0426] 在一些示例中,伴随用户输入的上下文信息包括传感器信息,例如照明、环境噪声、环境温度、周围环境的图像或视频等。在一些示例中,上下文信息还可包括设备的物理状态,例如设备取向、设备位置、设备温度、功率电平、速度、加速度、运动模式、蜂窝信号强度等。在一些示例中,将与DA服务器106的软件状态相关的信息,例如便携式多功能设备200的运行过程、已安装程序、过去和当前的网络活动、后台服务、错误日志、资源使用等,作为与用户输入相关联的上下文信息提供至DA服务器106。
[0427] 在一些示例中,数字助理客户端模块229响应于来自DA服务器106的请求而选择性地提供存储在便携式多功能设备200上的信息(例如,用户数据231)。在一些示例中,数字助理客户端模块229还在DA服务器106请求时引出来自用户经由自然语言对话或其他用户接口的附加输入。数字助理客户端模块229将该附加输入传送至DA服务器106,以帮助DA服务器106进行意图推断和/或实现在用户请求中表达的用户意图。
[0428] 下面参考图7A-图7C对数字助理进行更详细的描述。应当认识到,数字助理客户端模块229可包括下文所述的数字助理模块726的任意数量的子模块。
[0429] 应用程序236包括以下模块(或指令集)或者其子集或超集:
[0430] ·联系人模块237(有时称为地址簿或联系人列表);
[0431] ·电话模块238;
[0432] ·视频会议模块239;
[0433] ·电子邮件客户端模块240;
[0434] ·即时消息(IM)模块241;
[0435] ·健身支持模块242;
[0436] ·用于静态图像和/或视频图像的相机模块243;
[0437] ·图像管理模块244;
[0438] ·视频播放器模块;
[0439] ·音乐播放器模块;
[0440] ·浏览器模块247;
[0441] ·日历模块248;
[0442] ·桌面小程序模块249,其在一些示例中包括以下各项中的一者或多者:天气桌面小程序249-1、股票桌面小程序249-2、计算器桌面小程序249-3、闹钟桌面小程序249-4、词典桌面小程序249-5和用户获取的其他桌面小程序,以及用户创建的桌面小程序249-6;
[0443] ·用于制作用户创建的桌面小程序249-6的桌面小程序创建器模块250;
[0444] ·搜索模块251;
[0445] ·视频和音乐播放器模块252,其合并视频播放器模块和音乐播放器模块;
[0446] ·记事本模块253;
[0447] ·地图模块254;和/或
[0448] ·在线视频模块255。
[0449] 存储在存储器202中的其他应用程序236的示例包括其他文字处理应用程序、其他图像编辑应用程序、绘图应用程序、呈现应用程序、支持JAVA的应用程序、加密、数字权限管理、语音识别和语音复制。
[0450] 结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232、和文本输入模块234,联系人模块237用于管理地址簿或联系人列表(例如,存储在存储器202或存储器470中的联系人模块237的应用程序内部状态292中),包括:将一个或多个姓名添加到地址簿;从地址簿删除一个或多个姓名;将一个或多个电话号码、一个或多个电子邮件地址、一个或多个物理地址或其他信息与姓名关联;将图像与姓名关联;对姓名进行分类和排序;提供电话号码或电子邮件地址来发起和/或促进通过电话238、视频会议模块239、电子邮件240或IM 241进行的通信;等等。
[0451] 结合RF电路208、音频电路210、扬声器211、麦克风213、触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,电话模块238用于输入对应于电话号码的字符序列、访问联系人模块237中的一个或多个电话号码、修改已经输入的电话号码、拨打相应的电话号码、进行会话以及当会话完成时断开或挂断。如上所述,无线通信使用多种通信标准、协议和技术中的任一种。
[0452] 结合RF电路208、音频电路210、扬声器211、麦克风213、触摸屏212、显示控制器256、光学传感器264、光学传感器控制器258、接触/运动模块230、图形模块232、文本输入模块234、联系人模块237和电话模块238,视频会议模块239包括根据用户指令来发起、进行和终止用户与一个或多个其他参与方之间的视频会议的可执行指令。
[0453] 结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,电子邮件客户端模块240包括响应于用户指令来创建、发送、接收和管理电子邮件的可执行指令。结合图像管理模块244,电子邮件客户端模块240使得非常容易创建和发送具有由相机模块243拍摄的静态图像或视频图像的电子邮件。
[0454] 结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,即时消息模块241包括用于以下操作的可执行指令:输入与即时消息对应的字符序列、修改先前输入的字符、传输相应即时消息(例如,使用短消息服务(SMS)或多媒体消息服务(MMS)协议以用于基于电话的即时消息或者使用XMPP、SIMPLE或IMPS以用于基于互联网的即时消息)、接收即时消息以及查看所接收的即时消息。在一些实施方案中,所传输和/或接收的即时消息包括图形、照片、音频文件、视频文件和/或如MMS和/或增强型消息服务(EMS)中支持的其他附件。如本文所用,“即时消息”是指基于电话的消息(例如,使用SMS或MMS发送的消息)和基于互联网的消息(例如,使用XMPP、SIMPLE或IMPS发送的消息)两者。
[0455] 结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234、GPS模块235、地图模块254和音乐播放器模块,健身支持模块242包括用于以下各项的可执行指令:创建健身(例如,具有时间、距离和/或卡路里燃烧目标);与健身传感器(运动设备)进行通信;接收健身传感器数据;校准用于监视健身的传感器;为健身选择和播放音乐;以及显示、存储和传输健身数据。
[0456] 结合触摸屏212、显示控制器256、光学传感器264、光学传感器控制器258、接触/运动模块230、图形模块232和图像管理模块244,相机模块243包括用于以下操作的可执行指令:捕获静态图像或视频(包括视频流)并且将它们存储到存储器202中、修改静态图像或视频的特征,或从存储器202删除静态图像或视频。
[0457] 结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234和相机模块243,图像管理模块244包括用于排列、修改(例如,编辑)、或以其他方式操控、加标签、删除、呈现(例如,在数字幻灯片或相册中)、以及存储静态图像和/或视频图像的可执行指令。
[0458] 结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,浏览器模块247包括用于根据用户指令来浏览互联网,包括搜索、链接至、接收和显示网页或其部分,以及链接至网页的附件和其他文件的可执行指令。
[0459] 结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234、电子邮件客户端模块240和浏览器模块247,日历模块248包括根据用户指令来创建、显示、修改和存储日历以及与日历相关联的数据(例如,日历条目、待办事项等)的可执行指令。
[0460] 结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234和浏览器模块247,桌面小程序模块249是可由用户下载并使用的微型应用程序(例如,天气桌面小程序249-1、股市桌面小程序249-2、计算器桌面小程序249-3、闹钟桌面小程序249-4和词典桌面小程序249-5)或由用户创建的微型应用程序(例如,用户创建的桌面小程序249-6)。在一些实施方案中,桌面小程序包括HTML(超文本标记语言)文件、CSS(层叠样式表)文件和JavaScript文件。在一些实施方案中,桌面小程序包括XML(可扩展标记语言)文件和JavaScript文件(例如,Yahoo!桌面小程序)。
[0461] 结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234和浏览器模块247,桌面小程序创建器模块250被用户用于创建桌面小程序(例如,使将网页的用户指定部分变成桌面小程序)。
[0462] 结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,搜索模块251包括用于根据用户指令来搜索存储器202中与一个或多个搜索条件(例如,一个或多个用户指定的搜索词)匹配的文本、音乐、声音、图像、视频和/或其他文件的可执行指令。
[0463] 结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232、音频电路210、扬声器211、RF电路208和浏览器模块247,视频和音乐播放器模块252包括允许用户下载和回放以一种或多种文件格式(诸如MP3或AAC文件)存储的所记录的音乐和其他声音文件的可执行指令,以及用于显示、呈现或以其他方式回放视频(例如,在触摸屏212上或在经由外部端口224连接的外部显示器上)的可执行指令。在一些实施方案中,设备200任选地包括MP3播放器诸如iPod(Apple Inc.的商标)的功能。
[0464] 结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,记事本模块253包括根据用户指令来创建和管理记事本、待办事项等的可执行指令。
[0465] 结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234、GPS模块235和浏览器模块247,地图模块254用于根据用户指令接收、显示、修改和存储地图以及与地图相关联的数据(例如,驾驶方向、与特定位置处或附近的商店及其他兴趣点有关的数据,以及其他基于位置的数据)。
[0466] 结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232、音频电路210、扬声器211、RF电路208、文本输入模块234、电子邮件客户端模块240和浏览器模块247,在线视频模块255包括允许用户访问、浏览、接收(例如,通过流式传输和/或下载)、回放(例如,在触摸屏上或经由外部端口224在所连接的外部显示器上)、发送具有至特定在线视频的链接的电子邮件,以及以其他方式管理一种或多种文件格式(诸如,H.264)的在线视频的指令。在一些实施方案中,使用即时消息模块241而不是电子邮件客户端模块240来发送特定在线视频的链接。在线视频应用程序的其他描述可见于2007年6月20日提交的名称为“Portable Multifunction Device,Method,and Graphical User Interface for 
Playing Online Videos”的美国临时专利申请60/936,562和2007年12月31日提交的名称为“Portable Multifunction Device,Method,and Graphical User Interface for 
Playing Online Videos”的美国专利申请11/968,067,这两个专利申请的内容据此全文以引用方式并入本文。
[0467] 上述每个模块和应用程序对应于用于执行上述一种或多种功能以及在本专利申请中所述的方法(例如,本文所述的计算机实现的方法和其他信息处理方法)的可执行指令集。这些模块(例如,指令集)不必被实现为独立的软件程序、过程或模块,并因此在各种实施方案中可组合或以其他方式重新布置这些模块的各种子集。例如,视频播放器模块可与音乐播放器模块组合成单个模块(例如,图2A中的视频和音乐播放器模块252)。在一些实施方案中,存储器202存储上述模块和数据结构的子组。此外,存储器202存储上文未描述的附加模块和数据结构。
[0468] 在一些实施方案中,设备200是设备上的预定义的一组功能的操作唯一地通过触摸屏和/或触控板来执行的设备。通过使用触摸屏和/或触控板作为用于设备200的操作的主要输入控制设备,减少设备200上的物理输入控制设备(诸如下压按钮、拨盘等)的数量。
[0469] 唯一地通过触摸屏和/或触控板来执行的预定义的一组功能任选地包括在用户界面之间的导航。在一些实施方案中,触控板在被用户触摸时将设备200从设备200上显示的任何用户界面导航到主菜单、home菜单或根菜单。在此类实施方案中,使用触控板来实现“菜单按钮”。在一些其他实施方案中,菜单按钮是物理下压按钮或者其他物理输入控制设备,而不是触控板。
[0470] 图2B是示出了根据一些实施方案的用于事件处理的示例性部件的框图。在一些实施方案中,存储器202(图2A)或存储器470(图4)包括(例如,在操作系统226中)事件分类器270以及相应的应用程序236-1(例如,前述应用程序237至251、255、480至490中的任一个应用程序)。
[0471] 事件分类器270接收事件信息并确定要将事件信息递送到的应用程序236-1和应用程序236-1的应用程序视图291。事件分类器270包括事件监视器271和事件分配器模块
274。在一些实施方案中,应用程序236-1包括应用程序内部状态292,该应用程序内部状态指示当应用程序是活动的或正在执行时被显示在触敏显示器212上的当前应用程序视图。
在一些实施方案中,设备/全局内部状态257被事件分类器270用来确定哪个(哪些)应用程序当前是活动的,并且应用程序内部状态292被事件分类器270用来确定要将事件信息递送到的应用程序视图291。
[0472] 在一些实施方案中,应用程序内部状态292包括附加信息,诸如以下各项中的一者或多者:当应用程序236-1恢复执行时将被使用的恢复信息、指示信息正被显示或准备好用于被应用程序236-1显示的用户界面状态信息、用于使得用户能够返回到应用程序236-1的前一状态或视图的状态队列,以及用户采取的先前动作的重复/撤销队列。
[0473] 事件监视器271从外围设备接口218接收事件信息。事件信息包括关于子事件(例如,作为多点触摸手势一部分的触敏显示器212上的用户触摸)的信息。外围设备接口218传输其从I/O子系统206或传感器诸如接近传感器266、一个或多个加速度计268和/或麦克风
213(通过音频电路210)接收的信息。外围设备接口218从I/O子系统206接收的信息包括来自触敏显示器212或触敏表面的信息。
[0474] 在一些实施方案中,事件监视器271以预先确定的间隔将请求发送至外围设备接口218。作为响应,外围设备接口218传输事件信息。在其他实施方案中,外围设备接口218仅当存在显著事件(例如,接收到高于预先确定的噪声阈值的输入和/或接收到超过预先确定的持续时间的输入)时才传输事件信息。
[0475] 在一些实施方案中,事件分类器270还包括命中视图确定模块272和/或活动事件识别器确定模块273。
[0476] 当触敏显示器212显示多于一个视图时,命中视图确定模块272提供用于确定子事件已在一个或多个视图内的什么地方发生的软件过程。视图由用户能够在显示器上看到的控件和其他元素构成。
[0477] 与应用程序相关联的用户界面的另一方面是一组视图,本文中有时也称为应用程序视图或用户界面窗口,在其中显示信息并且发生基于触摸的手势。在其中检测到触摸的(相应应用程序的)应用程序视图对应于应用程序的程序化分级结构或视图分级结构内的程序化水平。例如,在其中检测到触摸的最低水平视图被称为命中视图,并且被认为是正确输入的事件集至少部分地基于初始触摸的命中视图来确定,该初始触摸开始基于触摸的手势。
[0478] 命中视图确定模块272接收与基于触摸的手势的子事件相关的信息。当应用程序具有以分级结构组织的多个视图时,命中视图确定模块272将命中视图识别为应当对子事件进行处理的分级结构中的最低视图。在大多数情况下,命中视图是发起子事件(例如,形成事件或潜在事件的子事件序列中的第一子事件)在其中发生的最低水平视图。一旦命中视图被命中视图确定模块272识别,命中视图便通常接收与其被识别为命中视图所针对的同一触摸或输入源相关的所有子事件。
[0479] 活动事件识别器确定模块273确定视图分级结构内的哪个或哪些视图应接收特定子事件序列。在一些实施方案中,活动事件识别器确定模块273确定仅命中视图应接收特定子事件序列。在其他实施方案中,活动事件识别器确定模块273确定包括子事件的物理位置的所有视图是活跃参与的视图,并因此确定所有活跃参与的视图都应接收特定子事件序
列。在其他实施方案中,即使触摸子事件完全被局限到与一个特定视图相关联的区域,分级结构中的较高视图将仍然保持为活跃参与的视图。
[0480] 事件分配器模块274将事件信息分配到事件识别器(例如,事件识别器280)。在包括活动事件识别器确定模块273的实施方案中,事件分配器模块274将事件信息递送到由活动事件识别器确定模块273确定的事件识别器。在一些实施方案中,事件分配器模块274在事件队列中存储事件信息,该事件信息由相应事件接收器282进行检索。
[0481] 在一些实施方案中,操作系统226包括事件分类器270。另选地,应用程序236-1包括事件分类器270。在又一个实施方案中,事件分类器270是独立模块,或者是存储在存储器202中的另一个模块(诸如,接触/运动模块230)的一部分。
[0482] 在一些实施方案中,应用程序236-1包括多个事件处理程序290和一个或多个应用程序视图291,其中每一个都包括用于处理发生在应用程序的用户界面的相应视图内的触摸事件的指令。应用程序236-1的每个应用程序视图291包括一个或多个事件识别器280。通常,相应应用程序视图291包括多个事件识别器280。在其他实施方案中,事件识别器280中的一个或多个事件识别器是独立模块的一部分,该独立模块为诸如用户界面工具包(未示出)或应用程序236-1从中继承方法和其他属性的较高级别的对象。在一些实施方案中,相应事件处理程序290包括以下各项中的一者或多者:数据更新器276、对象更新器277、GUI更新器278、和/或从事件分类器270接收的事件数据279。事件处理程序290利用或调用数据更新器276、对象更新器277或GUI更新器278来更新应用程序内部状态292。另选地,应用程序视图291中的一个或多个应用程序视图包括一个或多个相应事件处理程序290。另外,在一些实施方案中,数据更新器276、对象更新器277和GUI更新器278中的一者或多者包括在相应应用程序视图291中。
[0483] 相应的事件识别器280从事件分类器270接收事件信息(例如,事件数据279),并且从事件信息识别事件。事件识别器280包括事件接收器282和事件比较器284。在一些实施方案中,事件识别器280还包括元数据283和事件递送指令288(其包括子事件递送指令)的至少一个子集。
[0484] 事件接收器282接收来自事件分类器270的事件信息。事件信息包括关于子事件例如触摸或触摸移动的信息。根据子事件,事件信息还包括附加信息,诸如子事件的位置。当子事件涉及触摸的运动时,事件信息还包括子事件的速度和方向。在一些实施方案中,事件包括设备从一个取向旋转到另一取向(例如,从纵向取向旋转到横向取向,或反之亦然),并且事件信息包括关于设备的当前取向(也被称为设备姿态)的对应信息。
[0485] 事件比较器284将事件信息与预定义的事件或子事件定义进行比较,并且基于该比较来确定事件或子事件,或者确定或更新事件或子事件的状态。在一些实施方案中,事件比较器284包括事件定义286。事件定义286包含事件的定义(例如,预定义的子事件序列),例如事件1(287-1)、事件2(287-2)、以及其他事件。在一些实施方案中,事件(287)中的子事件例如包括触摸开始、触摸结束、触摸移动、触摸取消和多点触摸。在一个示例中,事件1(287-1)的定义是被显示对象上的双击。例如,双击包括被显示对象上的预先确定时长的第一触摸(触摸开始)、预先确定时长的第一抬离(触摸结束)、被显示对象上的预先确定时长的第二触摸(触摸开始)以及预先确定时长的第二抬离(触摸结束)。在另一个示例中,事件2(287-2)的定义是被显示对象上的拖动。例如,拖动包括被显示对象上的预先确定时长的触摸(或接触)、触摸在触敏显示器212上的移动,以及触摸的抬离(触摸结束)。在一些实施方案中,事件还包括用于一个或多个相关联的事件处理程序290的信息。
[0486] 在一些实施方案中,事件定义287包括对用于相应用户界面对象的事件的定义。在一些实施方案中,事件比较器284执行命中测试以确定哪个用户界面对象与子事件相关联。例如,在触敏显示器212上显示三个用户界面对象的应用程序视图中,当在触敏显示器212上检测到触摸时,事件比较器284执行命中测试以确定这三个用户界面对象中的哪一个用户界面对象与该触摸(子事件)相关联。如果每个所显示对象与相应事件处理程序290相关联,则事件比较器使用该命中测试的结果来确定哪个事件处理程序290应当被激活。例如,事件比较器284选择与子事件和触发该命中测试的对象相关联的事件处理程序。
[0487] 在一些实施方案中,相应事件(287)的定义还包括延迟动作,该延迟动作延迟事件信息的递送,直到已确定子事件序列确实对应于或不对应于事件识别器的事件类型。
[0488] 当相应事件识别器280确定子事件序列不与事件定义286中的任何事件匹配时,该相应事件识别器280进入事件不可能、事件失败或事件结束状态,在此之后忽略基于触摸的手势的后续子事件。在这种情况下,对于命中视图保持活动的其他事件识别器(如果有的话)继续跟踪并处理持续进行的基于触摸的手势的子事件。
[0489] 在一些实施方案中,相应事件识别器280包括具有指示事件递送系统应当如何执行对活跃参与的事件识别器的子事件递送的可配置属性、标记和/或列表的元数据283。在一些实施方案中,元数据283包括指示事件识别器彼此如何交互或如何能够交互的可配置属性、标记和/或列表。在一些实施方案中,元数据283包括指示子事件是否递送到视图或程序化分级结构中的不同层级的可配置属性、标记和/或列表。
[0490] 在一些实施方案中,当事件的一个或多个特定子事件被识别时,相应事件识别器280激活与事件相关联的事件处理程序290。在一些实施方案中,相应事件识别器280将与事件相关联的事件信息递送到事件处理程序290。激活事件处理程序290不同于将子事件发送(和延期发送)到相应命中视图。在一些实施方案中,事件识别器280抛出与所识别的事件相关联的标记,并且与该标记相关联的事件处理程序290获取该标记并执行预定义过程。
[0491] 在一些实施方案中,事件递送指令288包括递送关于子事件的事件信息而不激活事件处理程序的子事件递送指令。相反,子事件递送指令将事件信息递送到与子事件序列相关联的事件处理程序或者递送到活跃参与的视图。与子事件序列或与活跃参与的视图相关联的事件处理程序接收事件信息并执行预先确定的过程。
[0492] 在一些实施方案中,数据更新器276创建并更新在应用程序236-1中使用的数据。例如,数据更新器276对联系人模块237中所使用的电话号码进行更新,或者对视频播放器模块中所使用的视频文件进行存储。在一些实施方案中,对象更新器277创建和更新在应用程序236-1中使用的对象。例如,对象更新器277创建新的用户界面对象或更新用户界面对象的位置。GUI更新器278更新GUI。例如,GUI更新器278准备显示信息,并且将显示信息发送到图形模块232用以显示在触敏显示器上。
[0493] 在一些实施方案中,事件处理程序290包括数据更新器276、对象更新器277和GUI更新器278或者具有对它们的访问权限。在一些实施方案中,数据更新器276、对象更新器277和GUI更新器278被包括在相应应用程序236-1或应用程序视图291的单个模块中。在其他实施方案中,它们被包括在两个或更多个软件模块中。
[0494] 应当理解,关于触敏显示器上的用户触摸的事件处理的上述论述还适用于利用输入设备来操作多功能设备200的其他形式的用户输入,并不是所有用户输入都是在触摸屏上发起的。例如,任选地与单次或多次键盘按下或按住协作的鼠标移动和鼠标按钮按下;触控板上的接触移动,诸如轻击、拖动、滚动等;触笔输入;设备的移动;口头指令;检测到的眼睛移动;生物特征输入;和/或它们的任何组合任选地被用作与限定要识别的事件的子事件对应的输入。
[0495] 图3示出了根据一些实施方案的具有触摸屏212的便携式多功能设备200。触摸屏任选地在用户界面(UI)300内显示一个或多个图形。在本实施方案以及下文所述的其他实施方案中,用户能够通过例如利用一个或多个手指302(在图中未按比例绘制)或一支或多支触笔303(在图中未按比例绘制)在图形上作出手势来选择这些图形中的一个或多个图
形。在一些实施方案中,当用户中断与一个或多个图形的接触时,将发生对一个或多个图形的选择。在一些实施方案中,手势任选地包括一次或多次轻击、一次或多次轻扫(从左向右、从右向左、向上和/或向下)和/或已与设备200发生接触的手指的滚动(从右向左、从左向右、向上和/或向下)。在一些具体实施中或在一些情况下,不经意地与图形接触不会选择图形。例如,当与选择对应的手势是轻击时,在应用程序图标上方扫动的轻扫手势任选地不会选择对应的应用程序。
[0496] 设备200还包括一个或多个物理按钮,诸如“home”或菜单按钮304。如前所述,菜单按钮304用于导航到在设备200上执行的一组应用程序中的任何应用程序236。另选地,在一些实施方案中,菜单按钮被实现为被显示在触摸屏212上的GUI中的软键。
[0497] 在一个实施方案中,设备200包括触摸屏212、菜单按钮304、用于使设备通电/断电和用于锁定设备的下压按钮306、一个或多个音量调节按钮308、用户身份模块(SIM)卡槽310、耳麦插孔312和对接/充电外部端口224。下压按钮306任选地用于通过压下该按钮并且将该按钮保持在压下状态持续预定义的时间间隔来对设备进行开/关机;通过压下该按钮并在该预定义的时间间隔过去之前释放该按钮来锁定设备;和/或对设备进行解锁或发起解锁过程。在另选的实施方案中,设备200还通过麦克风213接受用于激活或去激活某些功能的语音输入。设备200还任选地包括用于检测触摸屏212上的接触的强度的一个或多个接触强度传感器265,和/或用于为设备200的用户生成触觉输出的一个或多个触觉输出发生器267。
[0498] 图4是根据一些实施方案的具有显示器和触敏表面的示例性多功能设备的框图。设备400不必是便携式的。在一些实施方案中,设备400为膝上型计算机、台式计算机、平板电脑、多媒体播放器设备、导航设备、教育设备(诸如儿童学习玩具)、游戏系统或控制设备(例如,家用控制器或工业用控制器)。设备400通常包括一个或多个处理单元(CPU)410、一个或多个网络或其他通信接口460、存储器470和用于使这些部件互连的一个或多个通信总线420。通信总线420任选地包括使系统部件互连并且控制系统部件之间的通信的电路(有时称作芯片组)。设备400包括包括显示器440的输入/输出(I/O)接口430,该显示器通常是触摸屏显示器。I/O接口430还任选地包括键盘和/或鼠标(或其他指向设备)450以及触控板
455、用于在设备400上生成触觉输出的触觉输出发生器457(例如,类似于以上参考图2A所述的触觉输出发生器267)、传感器459(例如,光学传感器、加速度传感器、接近传感器、触敏传感器,和/或类似于以上参考图2A所述的接触强度传感器265的接触强度传感器)。存储器
470包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备;
并且任选地包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器470任选地包括远离CPU 410定位的一个或多个存储设备。在一些实施方案中,存储器470存储与便携式多功能设备200(图2A)的存储器
202中存储的程序、模块和数据结构类似的程序、模块和数据结构或其子集。此外,存储器
470任选地存储在便携式多功能设备200的存储器202中不存在的附加程序、模块和数据结构。例如,设备400的存储器470任选地存储绘图模块480、呈现模块482、文字处理模块484、网站创建模块486、盘编辑模块488和/或电子表格模块490,而便携式多功能设备200(图2A)的存储器202任选地不存储这些模块。
[0499] 图4中的上述元件中的每一者在一些示例中存储在一个或多个先前提到的存储器设备中。上述模块中的每个模块对应于用于执行上述功能的指令集。上述模块或程序(例如,指令集)不必被实现为独立的软件程序、过程或模块,因此这些模块的各种子集在各种实施方案中组合或以其他方式重新布置。在一些实施方案中,存储器470存储上述模块和数据结构的子组。此外,存储器470存储上文未描述的附加模块和数据结构。
[0500] 现在将注意力转到可在例如便携式多功能设备200上实现的用户界面的实施方案。
[0501] 图5A示出了根据一些实施方案的便携式多功能设备200上的应用程序菜单的示例性用户界面。类似的用户界面在设备400上实现。在一些实施方案中,用户界面500包括以下元件或者其子集或超集:
[0502] 一个或多个无线通信诸如蜂窝信号和Wi-Fi信号的一个或多个信号强度指示符502;
[0503] ·时间504;
[0504] ·蓝牙指示符505;
[0505] ·电池状态指示符506;
[0506] ·具有针对常用应用程序的图标的托盘508,该图标诸如:
[0507] ο电话模块238的被标记为“电话”的图标516,该图标任选地包括未接来电或语音留言的数量的指示符514;
[0508] ο电子邮件客户端模块240的被标记为“邮件”的图标518,该图标任选地包括未读电子邮件的数量的指示符510;
[0509] ο浏览器模块247的被标记为“浏览器”的图标520;以及
[0510] ο视频和音乐播放器模块252(也被称为iPod(Apple Inc.的商标)模块252)的被标记为“iPod”的图标522;以及
[0511] ·其他应用程序的图标,诸如:
[0512] οIM模块241的被标记为“消息”的图标524;
[0513] ο日历模块248的被标记为“日历”的图标526;
[0514] ο图像管理模块244的被标记为“照片”的图标528;
[0515] ο相机模块243的被标记为“相机”的图标530;
[0516] ο在线视频模块255的被标记为“在线视频”的图标532;
[0517] ο股市桌面小程序249-2的被标记为“股市”的图标534;
[0518] ο地图模块254的被标记为“地图”的图标536;
[0519] ο天气桌面小程序249-1的被标记为“天气”的图标538;
[0520] ο闹钟桌面小程序249-4的被标记为“时钟”的图标540;
[0521] ο健身支持模块242的被标记为“健身支持”的图标542;
[0522] ο记事本模块253的被标记为“记事本”的图标544;以及
[0523] ο用于设置应用程序或模块的被标记为“设置”的图标546,该图标提供对设备200及其各种应用程序236的设置的访问。
[0524] 应当指出,图5A中示出的图标标签仅是示例性的。例如,视频和音乐播放器模块252的图标522任选地被标记为“音乐”或“音乐播放器”。对于各种应用程序图标任选地使用其他标签。在一些实施方案中,相应应用程序图标的标签包括与该相应应用程序图标对应的应用程序的名称。在一些实施方案中,特定应用程序图标的标签不同于与该特定应用程序图标对应的应用程序的名称。
[0525] 图5B示出了具有与显示器550(例如,触摸屏显示器212)分开的触敏表面551(例如,图4的平板或触控板455)的设备(例如,图4的设备400)上的示例性用户界面。设备400还任选地包括用于检测触敏表面551上的接触的强度的一个或多个接触强度传感器(例如,传感器457中的一个或多个传感器)和/或用于为设备400的用户生成触觉输出的一个或多个
触觉输出发生器459。
[0526] 尽管将参考触摸屏显示器212(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器分开的触敏表面上的输入,如图5B中所示。在一些实施方案中,触敏表面(例如,图5B中的551)具有与显示器(例如,
550)上的主轴(例如,图5B中的553)对应的主轴(例如,图5B中的552)。根据这些实施方案,设备检测在与显示器上的相应位置对应的位置(例如,在图5B中,560对应于568并且562对应于570)处的与触敏表面551的接触(例如,图5B中的560和562)。这样,在触敏表面(例如,图5B中的551)与多功能设备的显示器(例如,图5B中的550)分开时,由设备在触敏表面上检测到的用户输入(例如,接触560和562以及它们的移动)被该设备用于操纵显示器上的用户界面。应当理解,类似的方法任选地用于本文所述的其他用户界面。
[0527] 另外,虽然主要是参考手指输入(例如,手指接触、单指轻击手势、手指轻扫手势)来给出下面的示例,但是应当理解的是,在一些实施方案中,这些手指输入中的一个或多个手指输入由来自另一输入设备的输入(例如,基于鼠标的输入或触笔输入)替代。例如,轻扫手势任选地由鼠标点击(例如,而不是接触),之后是光标沿着轻扫的路径的移动(例如,而不是接触的移动)替代。又如,轻击手势任选地由在光标位于轻击手势的位置上方时的鼠标点击(例如,代替对接触的检测,之后是停止检测接触)替代。类似地,当同时检测到多个用户输入时,应当理解的是,多个计算机鼠标任选地被同时使用,或鼠标和手指接触任选地被同时使用。
[0528] 图6A示出了示例性个人电子设备600。设备600包括主体602。在一些实施方案中,设备600包括相对于设备200和400(例如,图2A-图4B)所述的特征中的一些或全部特征。在一些实施方案中,设备600具有在下文中称为触摸屏604的触敏显示屏604。作为触摸屏604的替代或补充,设备600具有显示器和触敏表面。与设备200和400的情况一样,在一些实施方案中,触摸屏604(或触敏表面)具有用于检测正在施加的接触(例如,触摸)的强度的一个或多个强度传感器。触摸屏604(或触敏表面)的一个或多个强度传感器提供表示触摸的强度的输出数据。设备600的用户界面基于触摸强度来对触摸作出响应,这意味着不同强度的触摸可调用设备600上的不同的用户界面操作。
[0529] 用于检测和处理触摸强度的技术可例如存在于相关申请中:2013年5月8日提交的名称为“Device,Method,and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application”的国际专利申请PCT/US2013/
040061,以及2013年11月11日提交的名称为“Device,Method,and Graphical User 
Interface for Transitioning  Between Touch Input to Display Output 
Relationships”的国际专利申请PCT/US2013/069483,这两个专利申请中的每个专利申请据此全文以引用方式并入本文。
[0530] 在一些实施方案中,设备600具有一个或多个输入机构606和608。输入机构606和608(如果包括的话)是物理形式的。物理输入机构的示例包括下压按钮和可旋转机构。在一些实施方案中,设备600具有一个或多个附接机构。此类附接机构(如果包括的话)可允许将设备600与例如帽子、眼镜、耳环、项链、衬衣、夹克、手镯、表带、手链、裤子、皮带、鞋子、钱包、背包等附接。这些附接机构允许用户穿戴设备600。
[0531] 图6B示出了示例性个人电子设备600。在一些实施方案中,设备600包括相对于图2A、图2B和图4所述的部件中的一些或全部部件。设备600具有总线612,该总线将I/O部分
614与一个或多个计算机处理器616和存储器618操作性地耦接。I/O部分614被连接到显示器604,该显示器可具有触敏部件622,并且任选地还具有触摸强度敏感部件624。此外,I/O部分614与通信单元630连接,以用于使用Wi-Fi、蓝牙、近场通信(NFC)、蜂窝和/或其他无线通信技术来接收应用程序和操作系统数据。设备600包括输入机构606和/或608。例如,输入机构606是可旋转输入设备或者可按压输入设备以及可旋转输入设备。在一些示例中,输入机构608是按钮。
[0532] 在一些示例中,输入机构608是麦克风。个人电子设备600包括例如各种传感器,诸如GPS传感器632、加速度计634、定向传感器640(例如,罗盘)、陀螺仪636、运动传感器638和/或它们的组合,所有这些设备均可操作地连接到I/O部分614。
[0533] 个人电子设备600的存储器618是用于存储计算机可执行指令的非暂态计算机可读存储介质,该指令当由一个或多个计算机处理器616执行时例如使得计算机处理器执行上述技术和过程。该计算机可执行指令也例如在任何非暂态计算机可读存储介质内进行存储和/或传送,以供指令执行系统、装置或设备诸如基于计算机的系统、包含处理器的系统或可从指令执行系统、装置或设备获取指令并执行指令的其他系统使用或与其结合。个人电子设备600不限于图6B的部件和配置,而是可包括多种配置中的其他部件或附加部件。
[0534] 如本文所用,术语“示能表示”是指在设备200、400和/或600(图2、图4和图6)的显示屏上显示的用户交互式图形用户界面对象。例如,图像(例如,图标)、按钮和文本(例如,超链接)各自构成示能表示。
[0535] 如本文所用,术语“焦点选择器”是指用于指示用户正与之进行交互的用户界面的当前部分的输入元件。在包括光标或其他位置标记的一些具体实施中,光标充当“焦点选择器”,使得当光标在特定用户界面元素(例如,按钮、窗口、滑块或其他用户界面元素)上方时在触敏表面(例如,图4中的触控板455或图5B中的触敏表面551)上检测到输入(例如,按压输入)的情况下,该特定用户界面元素根据所检测到的输入而被调节。在包括能够实现与触摸屏显示器上的用户界面元素的直接交互的触摸屏显示器(例如,图2A中的触敏显示器系统212或图5A中的触摸屏212)的一些具体实施中,在触摸屏上所检测到的接触充当“焦点选择器”,使得当在触摸屏显示器上在特定用户界面元素(例如,按钮、窗口、滑块或其他用户界面元素)的位置处检测到输入(例如,由接触进行的按压输入)时,该特定用户界面元素根据所检测到的输入而被调节。在一些具体实施中,焦点从用户界面的一个区域移动到用户界面的另一个区域,而无需光标的对应移动或触摸屏显示器上的接触的移动(例如,通过使用制表键或箭头键将焦点从一个按钮移动到另一个按钮);在这些具体实施中,焦点选择器根据焦点在用户界面的不同区域之间的移动而移动。不考虑焦点选择器所采取的具体形式,焦点选择器通常是由用户控制的以便递送与用户界面的用户预期的交互(例如,通过向设备指示用户界面的用户期望与其进行交互的元素)的用户界面元素(或触摸屏显示器上
的接触)。例如,在触敏表面(例如,触控板或触摸屏)上检测到按压输入时,焦点选择器(例如,光标、接触或选择框)在相应按钮上方的位置将指示用户期望激活相应按钮(而不是设备显示器上示出的其他用户界面元素)。
[0536] 如说明书和权利要求中所使用的,接触的“特征强度”这一术语是指基于接触的一个或多个强度的接触的特征。在一些实施方案中,特征强度基于多个强度样本。特征强度任选地基于相对于预定义事件(例如,在检测到接触之后,在检测到接触抬离之前,在检测到接触开始移动之前或之后,在检测到接触结束之前,在检测到接触的强度增大之前或之后和/或在检测到接触的强度减小之前或之后)而言在预先确定的时间段(例如,0.05秒、0.1秒、0.2秒、0.5秒、1秒、2秒、5秒、10秒)期间采集的预定义数量的强度样本或一组强度样本。接触的特征强度任选地基于以下各项中的一者或多者:接触强度的最大值、接触强度的均值、接触强度的平均值、接触强度的前10%处的值、接触强度的半最大值、接触强度的90%最大值等。在一些实施方案中,在确定特征强度时使用接触的持续时间(例如,在特征强度是接触的强度在时间上的平均值时)。在一些实施方案中,将特征强度与一组一个或多个强度阈值进行比较,以确定用户是否已执行操作。例如,该组一个或多个强度阈值包括第一强度阈值和第二强度阈值。在该示例中,特征强度未超过第一阈值的接触导致第一操作,特征强度超过第一强度阈值但未超过第二强度阈值的接触导致第二操作,而特征强度超过第二阈值的接触导致第三操作。在一些实施方案中,使用特征强度与一个或多个阈值之间的比较来确定是否要执行一个或多个操作(例如,是执行相应操作还是放弃执行相应操作),而不是用于确定执行第一操作还是第二操作。
[0537] 在一些实施方案中,识别手势的一部分以用于确定特征强度。例如,触敏表面接收连续的轻扫接触,该连续的轻扫接触从起始位置过渡并到达结束位置,在该结束位置处,接触的强度增加。在该示例中,接触在结束位置处的特征强度仅基于连续轻扫接触的一部分,而不是整个轻扫接触(例如,轻扫接触仅位于结束位置处的部分)。在一些实施方案中,在确定接触的特征强度之前将平滑算法应用于轻扫接触的强度。例如,平滑算法任选地包括以下各项中的一种或多种:未加权滑动平均平滑算法、三角平滑算法、中值滤波器平滑算法和/或指数平滑算法。在一些情况下,这些平滑算法消除了轻扫接触的强度中的窄的尖峰或凹陷,以实现确定特征强度的目的。
[0538] 相对于一个或多个强度阈值诸如接触检测强度阈值、轻按压强度阈值、深按压强度阈值和/或一个或多个其他强度阈值来表征触敏表面上的接触的强度。在一些实施方案中,轻按压强度阈值对应于这样的强度:在该强度下设备将执行通常与点击物理鼠标或触摸板的按钮相关联的操作。在一些实施方案中,深按压强度阈值对应于这样的强度:在该强度下设备将执行与通常与点击物理鼠标或触控板的按钮相关联的操作不同的操作。在一些实施方案中,当检测到特征强度低于轻按压强度阈值(例如,并且高于标称接触检测强度阈值,比标称接触检测强度阈值低的接触不再被检测到)的接触时,设备将根据接触在触敏表面上的移动来移动焦点选择器,而不执行与轻按压强度阈值或深按压强度阈值相关联的操作。一般来讲,除非另有陈述,否则这些强度阈值在不同组的用户界面附图之间是一致的。
[0539] 接触特征强度从低于轻按压强度阈值的强度增大到介于轻按压强度阈值与深按压强度阈值之间的强度有时被称为“轻按压”输入。接触特征强度从低于深按压强度阈值的强度增大到高于深按压强度阈值的强度有时被称为“深按压”输入。接触特征强度从低于接触检测强度阈值的强度增大到介于接触检测强度阈值与轻按压强度阈值之间的强度有时
被称为检测到触摸表面上的接触。接触特征强度从高于接触检测强度阈值的强度减小到低于接触检测强度阈值的强度有时被称为检测到接触从触摸表面抬离。在一些实施方案中,接触检测强度阈值为零。在一些实施方案中,接触检测强度阈值大于零。
[0540] 在本文中所述的一些实施方案中,响应于检测到包括相应按压输入的手势或响应于检测到利用相应接触(或多个接触)执行的相应按压输入来执行一个或多个操作,其中至少部分地基于检测到该接触(或多个接触)的强度增大到高于按压输入强度阈值而检测到相应按压输入。在一些实施方案中,响应于检测到相应接触的强度增大到高于按压输入强度阈值(例如,相应按压输入的“向下冲程”)来执行相应操作。在一些实施方案中,按压输入包括相应接触的强度增大到高于按压输入强度阈值以及该接触的强度随后减小到低于按
压输入强度阈值,并且响应于检测到相应接触的强度随后减小到低于按压输入阈值(例如,相应按压输入的“向上冲程”)来执行相应操作。
[0541] 在一些实施方案中,设备采用强度滞后以避免有时被称为“抖动”的意外输入,其中设备限定或选择与按压输入强度阈值具有预定义关系的滞后强度阈值(例如,滞后强度阈值比按压输入强度阈值低X个强度单位,或滞后强度阈值是按压输入强度阈值的75%、90%或某个合理比例)。因此,在一些实施方案中,按压输入包括相应接触的强度增大到高于按压输入强度阈值以及该接触的强度随后减小到低于对应于按压输入强度阈值的滞后
强度阈值,并且响应于检测到相应接触的强度随后减小到低于滞后强度阈值(例如,相应按压输入的“向上冲程”)来执行相应操作。类似地,在一些实施方案中,仅在设备检测到接触强度从等于或低于滞后强度阈值的强度增大到等于或高于按压输入强度阈值的强度并且
任选地接触强度随后减小到等于或低于滞后强度的强度时才检测到按压输入,并且响应于检测到按压输入(例如,根据环境,接触强度增大或接触强度减小)来执行相应操作。
[0542] 为了容易解释,任选地,响应于检测到以下各种情况中的任一种情况而触发对响应于与按压输入强度阈值相关联的按压输入或响应于包括按压输入的手势而执行的操作的描述:接触强度增大到高于按压输入强度阈值、接触强度从低于滞后强度阈值的强度增大到高于按压输入强度阈值的强度、接触强度减小到低于按压输入强度阈值、和/或接触强度减小到低于与按压输入强度阈值对应的滞后强度阈值。另外,在将操作描述为响应于检测到接触的强度减小到低于按压输入强度阈值而执行的示例中,任选地响应于检测到接触的强度减小到低于对应于并且小于按压输入强度阈值的滞后强度阈值来执行操作。
[0543] 3.数字助理系统
[0544] 图7A示出了根据各种示例的数字助理系统700的框图。在一些示例中,数字助理系统700在独立式计算机系统上实现。在一些示例中,数字助理系统700跨多个计算机分布。在一些示例中,数字助理的模块和功能中的一些被划分成服务器部分和客户端部分,其中客户端部分位于一个或多个用户设备(例如,设备104、设备122、设备200、设备400或设备600)上并通过一个或多个网络与服务器部分(例如,服务器系统108)通信,例如,如图1中所示。在一些示例中,数字助理系统700是图1中所示的服务器系统108(和/或DA服务器106)的具体实施。应当指出,数字助理系统700仅为数字助理系统的一个示例,且该数字助理系统700具有比所示更多或更少的部件、组合两个或更多个部件,或者可具有部件的不同配置或布局。图7A中所示的各种部件在硬件、用于在由一个或多个处理器执行的软件指令、固件(包括一个或多个信号处理集成电路和/或专用集成电路),或它们的组合中实现。
[0545] 数字助理系统700包括存储器702、输入/输出(I/O)接口706、网络通信接口708,以及一个或多个处理器704。这些部件可通过一条或多条通信总线或信号线710彼此通信。
[0546] 在一些示例中,存储器702包括非暂态计算机可读介质,诸如高速随机存取存储器和/或非易失性计算机可读存储介质(例如,一个或多个磁盘存储设备、闪存存储器设备或其他非易失性固态存储器设备)。
[0547] 在一些示例中,I/O接口706将数字助理系统700的输入/输出设备716诸如显示器、键盘、触摸屏和麦克风耦接至用户界面模块722。I/O接口706与用户界面模块722一起接收用户输入(例如,语音输入、键盘输入、触摸输入等)并相应地对这些输入进行处理。在一些示例中,例如,当数字助理在独立式用户设备上实现时,数字助理系统700包括相对于图2A、图4、图6A-图6B中各自的设备200、设备400或设备600所描述的部件和I/O通信接口中的任一者。在一些示例中,数字助理系统700代表数字助理具体实施的服务器部分,并且可通过位于用户设备(例如,设备104、设备200、设备400或设备600)上的客户端侧部分与用户进行交互。
[0548] 在一些示例中,网络通信接口708包括一个或多个有线通信端口712和/或无线传输和接收电路714。一个或多个有线通信端口经由一个或多个有线接口例如以太网、通用串行总线(USB)、FIREWIRE等接收和发送通信信号。无线电路714从通信网络及其他通信设备接收RF信号和/或光学信号以及将RF信号和/或光学信号发送至通信网络及其他通信设备。
无线通信使用多种通信标准、协议和技术中的任一种,诸如GSM、EDGE、CDMA、TDMA、蓝牙、Wi-Fi、VoIP、Wi-MAX、或任何其他合适的通信协议。网络通信接口708使数字助理系统700通过网络,诸如互联网、内联网和/或无线网络诸如蜂窝电话网络、无线局域网(LAN)和/或城域网(MAN)与其他设备之间的通信成为可能。
[0549] 在一些示例中,存储器702或存储器702的计算机可读存储介质存储程序、模块、指令和数据结构,包括以下内容中的全部或其子集:操作系统718、通信模块720、用户界面模块722、一个或多个应用程序724和数字助理模块726。具体地,存储器702或存储器702的计算机可读存储介质存储用于执行上述过程的指令。一个或多个处理器704执行这些程序、模块和指令,并从数据结构读取数据或将数据写到数据结构。
[0550] 操作系统718(例如,Darwin、RTXC、LINUX、UNIX、iOS、OS X、WINDOWS、或嵌入式操作系统诸如VxWorks)包括用于控制和管理一般系统任务(例如,存储器管理、存储设备控制、电源管理等)的各种软件部件和/或驱动器,并且有利于各种硬件、固件和软件部件之间的通信。
[0551] 通信模块720有利于数字助理系统700与其他设备之间通过网络通信接口708进行的通信。例如,通信模块720与电子设备诸如分别在图2A、图4、图6A-图6B中所示的设备200,
400或600的RF电路208通信。通信模块720还包括各种部件,用于处理由无线电路714和/或有线通信端口712所接收的数据。
[0552] 用户界面模块722经由I/O接口706接收来自用户(例如,来自键盘、触摸屏、指向设备、控制器和/或麦克风)的命令和/或输入,并在显示器上生成用户界面对象。用户界面模块722还准备输出(例如,语音、声音、动画、文本、图标、振动、触觉反馈、光照等)并将其经由I/O接口706(例如,通过显示器、音频通道、扬声器、触控板等)传送给用户。
[0553] 应用程序724包括被配置为由一个或多个处理器704执行的程序和/或模块。例如,如果数字助理系统在独立式用户设备上实施,则应用程序724包括用户应用程序,诸如游戏、日历应用程序、导航应用程序或邮件应用程序。如果数字助理系统700在服务器上实现,则应用程序724包括例如资源管理应用程序、诊断应用程序、或调度应用程序。
[0554] 存储器702还存储数字助理模块726(或数字助理的服务器部分)。在一些示例中,数字助理模块726包括以下子模块或者其子集或超集:输入/输出处理模块728、语音转文本(STT)处理模块730、自然语言处理模块732、对话流处理模块734、任务流处理模块736、服务处理模块738和语音合成模块740。这些模块中的每一者均具有对以下数字助理模块726的系统或数据与模型中的一者或多者或者其子集或超集的访问权限:知识本体760、词汇索引744、用户数据748、任务流模型754、服务模型756和ASR系统。
[0555] 在一些示例中,使用在数字助理模块726中实现的处理模块、数据和模型,数字助理可执行以下中的至少一些:将语音输入转换成文本;识别在从用户接收的自然语言输入中表达的用户的意图;主动引出并获取完全推断出用户的意图所需的信息(例如,通过消除字词、游戏、意图的歧义等);确定用于满足推断出的意图的任务流;以及执行该任务流以满足推断出的意图。
[0556] 在一些示例中,如图7B中所示,I/O处理模块728可通过图7A中的I/O设备716与用户交互或通过图7A中的网络通信接口708与用户设备(例如,设备104、设备200、设备400或设备600)交互,以获取用户输入(例如,语音输入)并提供对用户输入的响应(例如,作为语音输出)。I/O处理模块728随同接收到用户输入一起或在接收到用户输入之后不久任选地获得与来自用户设备的用户输入相关联的上下文信息。上下文信息包括特定于用户的数据、词汇,和/或与用户输入相关的偏好。在一些示例中,该上下文信息还包括在接收到用户请求时的用户设备的软件状态和硬件状态,和/或在接收到用户请求时与用户的周围环境相关的信息。在一些示例中,I/O处理模块728还向用户发送与用户请求有关的后续问题,并从用户接收回答。在用户请求被I/O处理模块728接收且用户请求包括语音输入时,I/O处理模块728将语音输入转发至STT处理模块730(或语音识别器)以进行语音文本转换。
[0557] STT处理模块730包括一个或多个ASR系统。一个或多个ASR系统可处理通过I/O处理模块728接收到的语音输入,以产生识别结果。每个ASR系统包括前端语音预处理器。前端语音预处理器从语音输入中提取代表性特征。例如,前端语音预处理器对语音输入执行傅里叶变换,以提取表征语音输入的频谱特征作为代表性多维向量的序列。另外,每个ASR系统包括一个或多个语音识别模型(例如,声学模型和/或语言模型)并且实现一个或多个语音识别引擎。语音识别模型的示例包括隐马尔可夫模型、高斯混合模型、深层神经网络模型、n元语法语言模型以及其他统计模型。语音识别引擎的示例包括基于动态时间规整的引擎和基于加权有限状态变换器(WFST)的引擎。使用一个或多个语音识别模型和一个或多个语音识别引擎来处理前端语音预处理器的所提取的代表性特征以产生中间识别结果(例
如,音素、音素串和子字词),并且最终产生文本识别结果(例如,字词、字词串、或符号序列)。在一些示例中,语音输入至少部分地由第三方服务处理或在用户的设备(例如,设备
104、设备200、设备400或设备600)上处理,以产生识别结果。一旦STT处理模块730产生包含文本串(例如,字词,或字词的序列,或符号序列)的识别结果,识别结果即被传送至自然语言处理模块732以供意图推断。在一些示例中,STT处理模块730产生语音输入的多个候选文本表示。每个候选文本表示是与语音输入对应的字词或符号的序列。在一些示例中,每个候选文本表示与语音识别置信度得分相关联。基于语音识别置信度得分,STT处理模块730对候选文本表示进行排名并将n个最佳(例如,n个排名最高的)候选文本表示提供给自然语言处理模块732以供意图推断,其中n为大于零的预先确定的整数。例如,在一个示例中,仅将排名最高的(n=1)候选文本表示递送至自然语言处理模块732以供意图推断。又如,将5个排名最高的(n=5)候选文本表示传递给自然语言处理模块732以供意图推断。
[0558] 有关语音转文本处理的更多细节在提交于2011年9月20日的名为“Consolidating Speech Recognition Results”的美国实用新型专利申请序列号13/236,942中有所描述,其全部公开内容以引用方式并入本文。
[0559] 在一些示例中,STT处理模块730包括可识别字词的词汇和/或经由语音字母转换模块731访问该词汇。每个词汇字词与语音识别语音字母表中表示的字词的一个或多个候选发音相关联。具体地,可识别字词的词汇包括与多个候选发音相关联的字词。例如,该词汇包括与 和 的候选发音相关联的字词“tomato”。另外,词汇字词
与基于来自用户的先前语音输入的自定义候选发音相关联。此类自定义候选发音存储在
STT处理模块730中,并且经由设备上的用户配置文件与特定用户相关联。在一些示例中,字词的候选发音基于字词的拼写以及一个或多个语言学和/或语音学规则确定。在一些示例中,候选发音手动生成,例如,基于已知的标准发音而手动生成。
[0560] 在一些示例中,基于候选发音的普遍性来对候选发音进行排名。例如,候选发音的排名高于 因为前者是更常用的发音(例如,在所有用户中,对于特定地理区域的用户而言,或者对于任何其他合适的用户子集而言)。在一些示例中,基于候选发音是否为与用户相关联的自定义候选发音来对候选发音进行排名。例如,自定义候选发音的排名高于标准候选发音。这可用于识别具有偏离标准发音的独特发音的专有名词。在一些示例中,候选发音与一个或多个语音特征诸如地理起源、国家或种族相关联。例如,候选发音 与美国相关联,而候选发音 与英国相关联。此外,候
选发音的排名基于存储在设备上的用户配置文件中的用户的一个或多个特征(例如,地理起源、国家、种族等)。例如,可从用户配置文件确定该用户与美国相关联。基于用户与美国相关联,候选发音 (与美国相关联)可比候选发音 (与英国相关
联)排名更高。在一些示例中,经排名的候选发音中的一个可被选作预测发音(例如,最可能的发音)。
[0561] 接收到语音输入时,STT处理模块730用于(例如,使用声音模型)确定对应于该语音输入的音素,然后尝试(例如,使用语言模型)确定匹配该音素的字词。例如,如果STT处理模块730首先识别对应于该语音输入的一部分的音素序列 那么它随后可基于词汇索引744确定该序列对应于字词“tomato”。
[0562] 在一些示例中,STT处理模块730使用模糊匹配技术来确定话语中的字词。因此,例如,STT处理模块730确定音素序列 对应于字词“tomato”,即使该特定音素序列不是该字词的候选音素序列。
[0563] 数字助理的自然语言处理模块732(“自然语言处理器”)获取由STT处理模块730生成的n个最佳候选文字表示(“字词序列”或“符号序列”),并尝试将每个候选文本表示与由数字助理所识别的一个或多个“可执行意图”相关联。“可执行意图”(或“用户意图”)表示可由数字助理执行并且可具有在任务流模型754中实现的相关联的任务流的任务。相关联的任务流是数字助理为了执行任务而采取的一系列经编程的动作和步骤。数字助理的能力范围取决于已在任务流模型754中实现并存储的任务流的数量和种类,或换言之,取决于数字助理所识别的“可执行意图”的数量和种类。然而,数字助理的有效性还取决于助理从以自然语言表达的用户请求中推断出正确的“一个或多个可执行意图”的能力。
[0564] 在一些示例中,除从STT处理模块730获取的字词或符号的序列之外,自然语言处理模块732还例如从I/O处理模块728接收与用户请求相关联的上下文信息。自然语言处理模块732任选地使用上下文信息来明确、补充和/或进一步限定在从STT处理模块730接收的候选文本表示中包含的信息。上下文信息包括例如用户偏好,用户设备的硬件和/或软件状态,在用户请求之前、期间或之后不久收集的传感器信息,数字助理与用户之间的先前交互(例如,对话),等等。如本文所述,在一些示例中,上下文信息是动态的,并且随对话的时间、位置、内容、以及其他因素而变化。
[0565] 在一些示例中,自然语言处理基于例如知识本体760。知识本体760为包含许多节点的分级结构,每个节点表示“可执行意图”或与“可执行意图”或其他“属性”中的一者或多者相关的“属性”。如上所述,“可执行意图”表示数字助理能够执行的任务,即,该任务为“可执行的”或可被进行的。“属性”代表与可执行意图或另一属性的子方面相关联的参数。知识本体760中可执行意图节点与属性节点之间的连接限定由属性节点表示的参数如何从属于由可执行意图节点表示的任务。
[0566] 在一些示例中,知识本体760由可执行意图节点和属性节点组成。在知识本体760内,每个可执行意图节点直接连接至或通过一个或多个中间属性节点连接至一个或多个属性节点。类似地,每个属性节点直接连接至或通过一个或多个中间属性节点连接至一个或多个可执行意图节点。例如,如图7C所示,知识本体760包括“餐厅预订”节点(即,可执行意图节点)。属性节点“餐厅”、“日期/时间”(针对预订)和“派对人数”均直接连接至可执行意图节点(即,“餐厅预订”节点)。
[0567] 此外,属性节点“菜系”、“价格区间”、“电话号码”和“位置”是属性节点“餐厅”的子节点,并且均通过中间属性节点“餐厅”连接至“餐厅预订”节点(即,可执行意图节点)。又如,如图7C所示,知识本体760还包括“设定提醒”节点(即,另一个可执行意图节点)。属性节点“日期/时间”(针对设定提醒)和“主题”(针对提醒)均连接至“设定提醒”节点。由于属性“日期/时间”与进行餐厅预订的任务和设定提醒的任务二者相关,因此属性节点“日期/时间”连接至知识本体760中的“餐厅预订”节点和“设定提醒”节点二者。
[0568] 可执行意图节点连同其连接的概念节点一起,被描述为“域”。在本讨论中,每个域与相应的可执行意图相关联,并是指与特定可执行意图相关联的一组节点(以及这些节点之间的关系)。例如,图7C中示出的知识本体760包括在知识本体760内的餐厅预订域762的示例和提醒域764的示例。餐厅预订域包括可执行意图节点“餐厅预订”、属性节点“餐厅”、“日期/时间”和“派对人数”以及子属性节点“菜系”、“价格范围”、“电话号码”和“位置”。提醒域764包括可执行意图节点“设定提醒”和属性节点“主题”和“日期/时间”。在一些示例中,知识本体760由多个域组成。每个域与一个或多个其他域共享一个或多个属性节点。例如,除了餐厅预订域762和提醒域764之外,“日期/时间”属性节点还与许多不同域(例如,行程安排域、旅行预订域、电影票域等)相关联。
[0569] 尽管图7C示出知识本体760内的两个示例性域,但其他域包括例如“查找电影”、“发起电话呼叫”、“查找方向”、“安排会议”、“发送消息”以及“提供问题的回答”、“阅读列表”、“提供导航指令”、“提供针对任务的指令”等。“发送消息”域与“发送消息”可执行意图节点相关联,并且还包括属性节点诸如“一个或多个接收人”、“消息类型”和“消息正文”。属性节点“接收人”进一步例如由子属性节点诸如“接收人姓名”和“消息地址”来限定。
[0570] 在一些示例中,知识本体760包括数字助理能够理解并对其起作用的所有域(以及因而可执行意图)。在一些示例中,知识本体760诸如通过添加或移除整个域或节点,或者通过修改知识本体760内的节点之间的关系进行修改。
[0571] 在一些示例中,将与多个相关可执行意图相关联的节点群集在知识本体760中的“超级域”下。例如,“旅行”超级域包括与旅行相关的属性节点和可执行意图节点的群集。与旅行相关的可执行意图节点包括“机票预订”、“酒店预订”、“汽车租赁”、“获取路线”、“寻找兴趣点”,等等。同一超级域(例如,“旅行”超级域)下的可执行意图节点具有多个共用的属性节点。例如,针对“机票预订”、“酒店预订”、“汽车租赁”、“获取路线”和“寻找兴趣点”的可执行意图节点共享属性节点“起始位置”、“目的地”、“出发日期/时间”、“到达日期/时间”和“派对人数”中的一者或多者。
[0572] 在一些示例中,知识本体760中的每个节点与跟由节点代表的属性或可执行意图有关的一组字词和/或短语相关联。与每个节点相关联的相应的一组字词和/或短语是所谓的与节点相关联的“词汇”。将与每个节点相关联的相应的一组字词和/或短语存储在与由节点所代表的属性或可执行意图相关联的词汇索引744中。例如,返回图7B,与“餐厅”属性的节点相关联的词汇包括字词诸如“美食”、“酒水”、“菜系”、“饥饿”、“吃”、“披萨”、“快餐”、“膳食”等。又如,与“发起电话呼叫”可执行意图的节点相关联的词汇包括字词和短语诸如“呼叫”、“打电话”、“拨打”、“与……通电话”、“呼叫该号码”、“打电话给”等。词汇索引744任选地包括不同语言的字词和短语。
[0573] 自然语言处理模块732接收来自STT处理模块730的候选文本表示(例如,一个或多个文本串或一个或多个符号序列),并针对每个候选表示,确定候选文本表示中的字词涉及哪些节点。在一些示例中,如果发现候选文本表示中的字词或短语(经由词汇索引744)与知识本体760中的一个或多个节点相关联,则所述字词或短语“触发”或“激活”那些节点。基于已激活节点的数量和/或相对重要性,自然语言处理模块732选择可执行意图中的一个可执行意图作为用户打算使数字助理执行的任务。在一些示例中,选择具有最多“已触发”节点的域。在一些示例中,选择具有最高置信度(例如,基于其各个已触发节点的相对重要性)的域。在一些示例中,基于已触发节点的数量和重要性的组合来选择域。在一些示例中,在选择节点的过程中还考虑附加因素,诸如数字助理先前是否已正确解译来自用户的类似请求。
[0574] 用户数据748包括特定于用户的信息,诸如特定于用户的词汇、用户偏好、用户地址、用户的默认第二语言、用户的联系人列表,以及每位用户的其他短期或长期信息。在一些示例中,自然语言处理模块732使用特定于用户的信息来补充用户输入中所包含的信息以进一步限定用户意图。例如,针对用户请求“邀请我的朋友参加我的生日派对”,自然语言处理模块732能够访问用户数据748以确定“朋友”是哪些人以及“生日派对”将于何时何地举行,而不需要用户在其请求中明确地提供此类信息。
[0575] 应认识到,在一些示例中,利用一个或多个机器学习机构(例如,神经网络)来实现自然语言处理模块732。具体地,一个或多个机器学习机构被配置为接收候选文本表示和与候选文本表示相关联的上下文信息。基于候选文本表示和相关联的上下文信息,一个或多个机器学习机构被配置为基于一组候选可执行意图确定意图置信度得分。自然语言处理模块732可基于所确定的意图置信度得分从一组候选可执行意图中选择一个或多个候选可执行意图。在一些示例中,还利用知识本体(例如,知识本体760)从一组候选可执行意图中选择一个或多个候选可执行意图。
[0576] 基于符号串搜索知识本体的其他细节在提交于2008年12月22日的名为“Method and Apparatus for Searching Using An Active Ontology”的美国实用新型专利申请序列号12/341,743中有所描述,其全部公开内容以引用方式并入本文。
[0577] 在一些示例中,一旦自然语言处理模块732基于用户请求识别出可执行意图(或域),自然语言处理模块732便生成结构化查询以表示所识别的可执行意图。在一些示例中,结构化查询包括针对可执行意图的域内的一个或多个节点的参数,并且所述参数中的至少一些参数填充有用户请求中指定的特定信息和要求。例如,用户说“帮我在寿司店预订晚上
7点的座位。”在这种情况下,自然语言处理模块732能够基于用户输入将可执行意图正确地识别为“餐厅预订”。根据知识本体,“餐厅预订”域的结构化查询包括参数诸如{菜系}、{时间}、{日期}、{派对人数}等。在一些示例中,基于语音输入和使用STT处理模块730从语音输入得出的文本,自然语言处理模块732针对餐厅预订域生成部分结构化查询,其中部分结构化查询包括参数{菜系=“寿司类”}以及{时间=“7pm”}。然而,在该实例中,用户话语包含不足以完成与域相关联的结构化查询的信息。因此,基于当前可用信息,在结构化查询中未指定其他必要参数,诸如{派对人数}和{日期}。在一些示例中,自然语言处理模块732用所接收的上下文信息来填充结构化查询的一些参数。例如,在一些示例中,如果用户请求“附近的”寿司店,自然语言处理模块732用来自用户设备的GPS坐标来填充结构化查询中的{位置}参数。
[0578] 在一些示例中,自然语言处理模块732识别针对从STT处理模块730所接收的每个候选文本表示的多个候选可执行意图。另外,在一些示例中,针对每个所识别的候选可执行意图生成相应的结构化查询(部分地或全部地)。自然语言处理模块732确定针对每个候选可执行意图的意图置信度得分,并基于意图置信度得分对候选可执行意图进行排名。在一些示例中,自然语言处理模块732将所生成的一个或多个结构化查询(包括任何已完成的参数)传送至任务流处理模块736(“任务流处理器”)。在一些示例中,针对m个最佳(例如,m个排名最高的)候选可执行意图的一个或多个结构化查询被提供给任务流处理模块736,其中m为预先确定的大于零的整数。在一些示例中,将针对m个最佳候选可执行意图的一个或多个结构化查询连同对应的一个或多个候选文本表示提供给任务流处理模块736。
[0579] 基于根据语音输入的多个候选文本表示所确定的多个候选可执行意图推断用户意图的其他细节在2014年6月6日提交的名称为“System and Method for Inferring User Intent From Speech Inputs”的美国实用新型专利申请序列号14/298,725中有所描述,其全部公开内容以引用方式并入本文。
[0580] 任务流处理模块736被配置为接收来自自然语言处理模块732的一个或多个结构化查询,(必要时)完成结构化查询,以及执行“完成”用户最终请求所需的动作。在一些示例中,完成这些任务所必需的各种过程在任务流模型754中提供。在一些示例中,任务流模型
754包括用于获取来自用户的附加信息的过程,以及用于执行与可执行意图相关联的动作的任务流。
[0581] 如上所述,为了完成结构化查询,任务流处理模块736需要发起与用户的附加对话,以便获取附加信息和/或弄清可能有歧义的话语。当有必要进行此类交互时,任务流处理模块736调用对话流处理模块734来参与同用户的对话。在一些示例中,对话流处理器模块734确定如何(和/或何时)向用户请求附加信息,并且接收和处理用户响应。通过I/O处理模块728将问题提供给用户并从用户接收回答。在一些示例中,对话流处理模块734经由可听输出和/或视觉输出向用户呈现对话输出,并经由口头或物理(例如,点击)响应接收来自用户的输入。继续上述示例,在任务流处理模块736调用对话流处理模块734来确定针对与域“餐厅预订”相关联的结构化查询的“派对人数”和“日期”信息时,对话流处理模块734生成诸如“一行几位?”和“预订哪天?”之类的问题传递给用户。一旦收到来自用户的回答,对话流处理模块734就用缺失信息填充结构化查询,或将信息传递给任务流处理模块736以根据结构化查询完成缺失信息。
[0582] 一旦任务流处理模块736已针对可执行意图完成结构化查询,任务流处理模块736便开始执行与可执行意图相关联的最终任务。因此,任务流处理模块736根据结构化查询中包含的特定参数来执行任务流模型中的步骤和指令。例如,针对可执行意图“餐厅预订”的任务流模型包括用于联系餐厅并实际上请求在特定时间针对特定派对人数的预订的步骤和指令。例如,使用结构化查询诸如:{餐厅预订、餐厅=ABC咖啡馆、日期=3/12/2012、时间=7pm、派对人数=5},任务流处理模块736可执行以下步骤:(1)登录ABC咖啡馆的服务器或诸如 的餐厅预订系统,(2)以网站上的形式输入日期、时间和派对人数信
息,(3)提交表单,以及(4)在用户的日历中形成针对预订的日历条目。
[0583] 在一些示例中,任务流处理模块736在服务处理模块738(“服务处理模块”)的辅助下完成用户输入中所请求的任务或者提供用户输入中所请求的信息性回答。例如,服务处理模块738代表任务流处理模块736发起电话呼叫、设定日历条目、调用地图搜索、调用用户设备上安装的其他用户应用程序或与所述其他应用程序进行交互,以及调用第三方服务(例如,餐厅预订门户网站、社交网站、银行门户网站等)或与第三方服务进行交互。在一些示例中,通过服务模型756中的相应服务模型指定每项服务所需的协议和应用程序接口
(API)。服务处理模块738针对服务访问适当的服务模型,并依据服务模型根据该服务所需的协议和API生成针对该服务的请求。
[0584] 例如,如果餐厅已启用在线预订服务,则餐厅提交服务模型,该服务模型指定进行预订的必要参数以及将必要参数的值传送至在线预订服务的API。在被任务流处理模块736请求时,服务处理模块738可使用存储在服务模型中的web地址来建立与在线预订服务的网络连接,并将预订的必要参数(例如,时间、日期、派对人数)以根据在线预订服务的API的格式发送至在线预订接口。
[0585] 在一些示例中,自然语言处理模块732、对话流处理模块734以及任务流处理模块736被共同且反复地使用,以推断并限定用户的意图、获取信息以进一步明确并细化用户意图并最终生成响应(即,输出至用户,或完成任务)以满足用户的意图。所生成的响应是至少部分地满足用户意图的对语音输入的对话响应。另外,在一些示例中,所生成的响应被输出为语音输出。在这些示例中,所生成的响应被发送到语音合成模块740(例如,语音合成器),在语音合成模块中,可处理所生成的响应以将对话响应以语音形式合成。在其他示例中,所生成的响应是与满足语音输入中的用户请求相关的数据内容。
[0586] 在任务流处理模块736接收到来自自然语言处理模块732的多个结构化查询的示例中,任务流处理模块736首先处理所接收结构化查询中的第一结构化查询以试图完成第一结构化查询和/或执行由第一结构化查询所表示的一个或多个任务或动作。在一些示例中,第一结构化查询对应于排名最高的可执行意图。在其他示例中,第一结构化查询选自基于对应的语音识别置信度得分和对应的意图置信度得分的组合而接收的结构化查询。在一些示例中,如果任务流处理模块736在第一结构化查询的处理期间(例如,由于无法确定必要的参数)遇到错误,任务流处理模块736可继续选择和处理所接收的结构化查询中与排名较低的可执行意图对应的第二结构化查询。例如基于对应候选文本表示的语音识别置信度得分、对应候选可执行意图的意图置信度得分、第一结构化查询中的缺失的必要参数或它们的任何组合来选择第二结构化查询。
[0587] 语音合成模块740被配置为合成用于呈现给用户的语音输出。语音合成模块740基于数字助理提供的文本来合成语音输出。例如,所生成的对话响应是文本串的形式。语音合成模块740将文本串转换成可听语音输出。语音合成模块740使用任何适当语音合成技术,以便从文本生成语音输出,包括但不限于:拼接合成、单元选择合成、双音素合成、域特定合成、共振峰合成、发音合成、基于隐马尔可夫模型(HMM)的合成以及正弦波合成。在一些示例中,语音合成模块740被配置为基于对应于这些字词的音素串来合成各个字词。例如,音素串与所生成的对话响应中的字词相关联。音素串存储在与字词相关联的元数据中。语音合成模型740被配置为直接处理元数据中的音素串,以合成语音形式的字词。
[0588] 在一些示例中,替代使用语音合成模块740(或除此之外),在远程设备(例如,服务器系统108)上执行语音合成,并且将合成的语音发送至用户设备以输出给用户。例如,这可发生在一些具体实施中,其中在服务器系统处生成数字助理的输出。而且由于服务器系统通常比用户设备具有更强的处理能力或更多的资源,其有可能获得比客户端侧合成将实现的质量更高的语音输出。
[0589] 有关数字助理的附加细节可见于提交于2011年1月10日的名称为“Intelligent Automated Assistant”的美国实用新型专利申请12/987,982和提交于2011年9月30日的名称为“Generating and Processing Task Items That Represent Tasks to Perform”的美国实用新型专利申请13/251,088中,其全部公开内容以引用方式并入本文。
[0590] 4.智能自动化助理的示例性架构和功能
[0591] 图8示出了根据各种示例的用于提供查询建议的智能自动化助理800的框图。在一些示例中,智能自动化助理800(例如,数字助理系统700)由用户设备根据各种示例来实现。在一些示例中,用户设备、服务器(例如,服务器108)或它们的组合可实现智能自动化助理
800。用户设备可利用例如如图1、图2A-图2B、图4、图9、图10A-图10C和图13A-图13B所示的设备104、200、400、900、1000或1300来实现。在一些示例中,智能自动化助理800可利用数字助理系统700的数字助理模块726来实现。智能自动化助理800包括类似于数字助理模块726的一个或多个模块、模型、应用程序、词汇表和用户数据。例如,智能自动化助理800包括下述子模块或它们的子集或超集:输入/输出处理模块、STT处理模块、自然语言处理模块、任务流处理模块和语音合成模块。这些模块也可类似于如图7B所示的对应模块来实现,因此未被示出并且不进行重复描述。图9示出了根据各种示例的用于在用户设备900上显示文档的用户界面902。
[0592] 参考图8和图9,智能自动化助理800可在用户界面902上将文档显示给用户。例如,如图9所示,智能自动化助理800提供用户界面902,该用户界面可包括用户输入区域904和显示区域906。用户输入区域904和显示区域906可为例如应用程序诸如web浏览器的一部分。用户输入区域904可使得智能自动化助理800能够接收用户输入。例如,用户可在用户输入区域904内输入网站的URL。响应于接收到用户输入,智能自动化助理800可在显示区域
906中提供信息。例如,智能自动化助理800可在显示区域906中显示文档(例如,关于
crystal cave的文章)。在一些实施方案中,所显示的文档可由智能自动化助理800用作输入文档804以生成查询建议,如下文更详细所述。
[0593] 在一些实施方案中,在发起查询之前,智能自动化助理800可包括用于使用各种技术来检测与输入文档804相关联的一种或多种语言的语言检测器(未示出)。例如,智能自动化助理800的语言检测器可检测基于n元语法模型的语言、基于互信息的距离测量等来。在一些示例中,智能自动化助理800的语言检测器可对所检测的语言进行排名。例如,智能自动化助理800的语言检测器可检测到输入文档804可能包括英语文本和/或德语文本。基于所检测语言的确定性得分,语言检测器可对可能包括在输入文档804中的所检测语言进行排名。例如,语言检测器可指示输入文档804具有95%的概率包含英语文本和7%的概率包含德语文本。
[0594] 在一些示例中,智能自动化助理800还可包括储存库标识符(未示出),该标识符用于基于所检测语言的排名从多个候选查询建议储存库中识别候选查询建议储存库(例如,储存库840和相关联的索引结构846)。多个储存库可对应于多种语言。例如,供智能自动化助理800操作的电子设备的系统语言可被配置为英语。所检测的输入文档804的语言可被确定为可能是德语。在一些示例中,可存在支持不同语言(例如,英语、德语、日语、中文等)的多个储存库和/或相关联的索引结构。如果储存库标识符确定储存库840(以及相关联的索引结构846)支持德语作为输入文档语言,并且支持英语作为与查询建议862相关联的输出语言,则储存库标识符可识别用于执行生成查询建议862的后续过程的储存库840(和相关联的索引结构846)。
[0595] 又如,供智能自动化助理800操作的电子设备的系统语言可被配置为德语。输入文档804的所检测语言可被确定为可能是英语。如果储存库标识符确定储存库840(以及相关联的索引结构846)不支持英语作为输入文档语言,并且/或者不支持英语作为与查询建议862相关联的输出语言,则储存库标识符可不识别用于执行生成查询建议862的后续过程的储存库840(和相关联的索引结构846)。它可识别另一个储存库(和相关联的索引结构),或者可不继续进行用于生成查询建议862的后续过程。
[0596] 图10A示出了根据各种示例的用于接收发起搜索的用户输入的电子设备1000的用户界面1002。类似于用户界面902,用户界面1002还可包括用户输入区域1004和显示区域
1006。参考图8和图10A,在一些实施方案中,智能自动化助理800可在显示文档时接收用户输入。例如,在阅读显示在显示区域1006中显示的文章时,用户可决定阅读更多相关文章。
因此,用户可发起对相关文章的搜索。在一些示例中,用户可发起搜索内部存储的文档(例如,存储在用户设备1000中的文档)或在用户设备外部存储的文档(例如,由网站或远程存储设备提供的文档)。在一些示例中,用户可通过手势诸如通过使用一个或多个手指302在用户输入区域1004内触摸或轻击来发起搜索。在一些示例中,用户可提供语音输入以发起搜索(例如,“为我查找更多类似内容”)。
[0597] 参考图8,响应于接收到发起搜索的用户输入802,智能自动化助理800可基于输入文档804发起查询822。在一些实施方案中,输入文档804可为正在被显示给用户的文档(例如,如图10A所示显示在显示区域1006中的crystal cave文章)或用户正在阅读或收听的文档。输入文档804可以是例如文本文档、网页、消息(例如,语音消息、文本消息)、电子邮件、指向文档的超级链接等。在一些示例中,查询822可访问候选查询建议储存库840。候选查询建议可表示与输入文档804中呈现的一个或多个主题相类似或相关的文档。例如,输入文档804的主题可以是“crystal cave”。候选查询建议可表示具有诸如“crystal structure”、“underground crystals”、“minerals”等主题的文档。
[0598] 基于查询822,智能自动化助理800可从查询建议储存库840接收一个或多个查询建议862,并且向用户提供一个或多个查询建议862。例如,智能自动化助理800可基于查询
822编写、导出或推断查询建议862并向用户提供查询建议。图10B示出了根据各种示例显示多个文档建议1018的用户界面1012。文档建议1018表示用户可能感兴趣的建议文档。文档建议1018可以是存储在储存库840中的一种类型的查询建议。在一些实施方案中,智能自动化助理800可基于多个候选查询建议来确定文档建议1018,并且在用户界面1012上将文档建议1018提供给用户。参考图8和图10B,在一些示例中,智能自动化助理800可在显示区域
1016内显示文档建议1018。例如,文档建议1018可包括文档的超级链接和缩略图,该文档可能与输入文档804的超级链接或缩略图在主题上类似或相关。继续上述示例,并且如图10B所示,文档建议1018可包括与水晶结构和矿物相关的文档的缩略图,其可能与用户正在阅读的水晶洞文章(例如,图10A中所示的文章)中呈现的主题类似或相关。在一些示例中,显示区域1016可包括一个或多个示能表示1010(例如,指向网站的超级链接、应用程序等)以向用户提供附加功能。
[0599] 图10C示出了根据各种示例的用于接收发起搜索的另一用户输入的用户界面1022。如图10C中所示,在一些实施方案中,用户可通过使用键盘1026和/或音频输入设备(例如,麦克风)键入或指示一个或多个字符来提供输入。在一些示例中,当智能自动化助理
800在接收用户输入时,其可发起查询,接收查询建议以及向用户显示查询建议。例如,如图
10C所示,当用户在用户输入区域1024中键入或指示一个或多个字符(例如,如“Crystal”中的“Cr”)时,智能自动化助理800可发起查询,接收查询建议以及向用户显示查询建议(例如,查询建议1028)。在一些示例中,智能自动化助理800可在用户完成提供输入之前(例如,在用户键入完整词语“crystal”之前)发起查询并接收查询建议。
[0600] 参考图8,在一些实施方案中,智能自动化助理800可包括查询发生器820、候选查询建议储存库840和查询建议发生器860。候选查询建议储存库840可包括索引结构846。图11示出了根据各种示例的查询发生器820的框图。在一些实施方案中,查询发生器820可接收用于发起搜索的用户输入802和输入文档804,并且生成用于访问与输入文档804中存在的一个或多个主题相关的候选查询建议储存库的查询。如上所述,用户输入802可为例如用户输入区域上的触摸或语音输入。输入文档804可为例如正在向用户显示的文档或用户正在阅读/收听的文档。
[0601] 如图11中所示,在一些实施方案中,查询发生器820可包括符号化器1120、符号处理器1140、符号分类器1160和发生器1180。在一些示例中,符号化器1120接收输入文档804(例如,正在向用户显示的文章)并生成表示输入文档804的一个或多个符号。例如,输入文档804可包括一个或多个字符,诸如字母、字词、空格、标点符号、符号等。为了生成符号,符号化器1120可例如用空格分隔字词,移除标点符号,以及将分隔字词中的字符转换为小写字符。因此,符号可包括不带标点符号的小写字符(例如,小写字词)的序列。在一些示例中,符号因此是输入文档804的简化表示。
[0602] 参考图11,符号化器1120可向符号处理器1140提供表示输入文档804的符号。在一些示例中,符号处理器1140可进一步处理符号以简化输入文档804的表示。例如,符号处理器1140可从由符号化器1120提供的符号移除表示输入文档804中的结构化内容的符号。输入文档804中的结构化内容可包括例如样板文本,诸如注释、导航元素、表格、引用等。结构化内容可能不是输入文档804的焦点,因此可能不是生成查询所必需的。符号处理器1140可使用例如网页阅读器(例如, 阅读器)、基于规则的移除技术、视觉页面分割技术、基于深度学习数据驱动的网络(例如,神经网络)的技术等来移除结构化内容。
[0603] 参考图11,在移除表示输入文档804中的结构化内容的符号之后,符号处理器1140可向符号分类器1160提供剩余符号。符号分类器1160可将剩余符号分类成一组或多组术语或术语序列。例如,符号分类器1160可将剩余符号分类为主要术语、辅助术语和/或不包括在查询中的术语。类似地,符号分类器1160可将符号分类成主要术语序列、辅助术语序列和/或不包括在查询中的术语序列。主要术语或序列是可在搜索结果的后续处理中用于选择和排名两者的术语或序列。主要术语或序列可以是表示关联文档(例如,输入文档804)的主题或焦点的术语或序列。例如,输入文档804可以是关于美国为什么应当禁止核电的文档。因此,基于输入文档804生成的一个或多个符号可包括术语或术语序列,诸如“nuclear”、“catastrophe”、“solar”、“alternatives”、“gigawatt”和/或“Fukushima”。符号分类器1160可将这些术语或序列分类为主要术语或序列。
[0604] 在一些实施方案中,辅助术语或术语序列是仅可用于排名的术语或序列。辅助术语或序列可以是与关联文档(例如,输入文档804)的主题或焦点相关的术语或序列,但可能不如主要术语或序列那样相关。继续上述示例,其中输入文档804是关于禁止核电的文档,基于输入文档804生成的一个或多个符号可包括诸如“reaction”的术语。符号分类器1160可将该术语分类为辅助术语。在一些示例中,符号分类器1160可基于文档频率(DF)、集合术语频率(CTF)或DF与CTF的关系将术语或序列分类为主要术语/序列和辅助术语/序列,如下文更详细所述。
[0605] 参考图11,在一些示例中,主要术语/序列和辅助术语/序列可以是用于生成查询的术语/序列。在由符号处理器1140提供的剩余符号中,可能存在一些不包括在查询中的术语或术语序列。不包括在查询中的术语或序列可包括不相关的术语或序列。继续上述关于禁止核电的输入文档804的示例,诸如“fashion”的术语可能是不相关的术语。
[0606] 在一些实施方案中,符号分类器1160可基于文档频率(DF)、集合术语频率(CTF)或DF与CTF的关系中的至少一者对剩余符号进行分类。在一些示例中,DF表示包括特定术语或术语序列(例如短语)的文档集合(例如,训练语料库)中的文档的数量。并且CTF表示特定术语或术语序列在单个文档或文档集合中出现的次数。可使用文档集合诸如训练语料库获得DF和CTF。训练语料库可包括例如主题多样的文档(例如,表示各种主题的大量在线文章)的集合。在一些示例中,符号分类器1160可确定DF、CTF和/或与包括在输入文档804中的术语或术语序列(例如,“核反应堆”)相关联的DF和CTF的比率。符号分类器1160可进一步确定DF、CTF或与包括在输入文档804中的术语或术语序列相关联的DF和CTF的比率是否满足一个或多个对应的阈值条件。基于此类确定,符号分类器1160可将符号分类为主要术语、辅助术语和/或不包括在查询中的术语。例如,符号分类器1160可确定特定术语或术语序列的DF大于文档集合的2%(例如,该术语是训练语料库中频繁出现的术语),或者术语或术语序列的DF和CTF小于对应的阈值(例如,该术语是DF<3或CTF<5的很少出现的术语)。在一些示例中,符号分类器1160可因此将这些频繁出现的术语和很少出现的术语分类为不包括在查询中的术语,并且将其他术语(例如,术语具有在某一范围内的DF、CTF或DF和CTF的比率,指示它们不是频繁出现的术语或很少出现的术语)分类为主要术语或辅助术语。在一些示例中,DF和CTF的比率可以是归一化比率,其可以是查找主要术语和辅助术语(例如,更相关或表示输入文档804的术语)的良好启发式指示。在一些实施方案中,剩余符号中的术语(例如,主要术语、辅助术语、不包括在查询中的术语)可包括或不包括在索引结构中,如下文更详细所述。在一些示例中,确定是否将术语包括在索引结构中可基于DF、CTF和/或DF与CTF的关系。
[0607] 在某些情况下,输入文档804中的一个或多个特定术语或序列可在训练语料库中被表示不足或被过度表示(例如,在文档集合中)。例如,训练语料库可包括非英语文档,或者可包括主题不多样的文档。在一些实施方案中,符号分类器1160可基于预先确定的术语或序列列表来对与输入文档804相关联的剩余符号进行分类。例如,可自定义术语或序列的预先确定的列表以考虑术语或序列的不足表示或过度表示。在一些示例中,还可基于与非英语文档的索引相关联的统计信息来生成术语或序列的预先确定的列表。
[0608] 参考图11,基于与输入文档804相关联的剩余符号的分类,发生器1180可生成查询822。例如,发生器1180可包括被分类为主要术语/序列和/或辅助术语/序列的符号,但不包括被分类为不包括在查询中的符号。如上所述,主要术语/序列和辅助术语/序列至少可能与输入文档804的主题相关,因此对生成查询建议有用。在一些实施方案中,发生器1180可确定要包括在查询822中的术语或序列的数量是否满足阈值条件。例如,如果发生器1180确定没有足够的主要术语/序列和/或辅助术语/序列,则其可不生成查询。
[0609] 如上所述,多个术语可形成术语序列(例如短语);并且,符号分类器1160可将符号分类成主要术语序列、辅助术语序列和不包括在查询中的术语序列。术语序列可具有与构成序列的个体术语不同的统计属性(例如,DF、CTF)。例如,短语“the who”可表示英国摇滚乐队的名称,并且可具有与两个单独术语“the”和“who”的文档统计属性相当不同的文档统计属性。因此,在一些示例中,发生器1180可生成包括术语序列的查询,如同它是单个术语(例如,包括短语“the who”,而不是两个单独的词“the”和“who”)。在一些实施方案中,在查询中包括术语序列可提高生成查询建议的准确性。
[0610] 图12A示出了根据各种示例的查询建议发生器860的框图。如上所述,查询建议发生器860可接收查询822并访问候选查询建议储存库840。候选查询建议与输入文档804中存在的一个或多个主题相关。在一些实施方案中,查询建议发生器860可包括相似性搜索引擎1220和搜索结果后处理模块1240。
[0611] 如图12A中所示,相似性搜索引擎1220可获得索引结构846并基于查询822(例如,由查询发生器820提供的查询)和索引结构846执行相似性搜索。图12B示出了根据各种示例的索引结构846。在一些实施方案中,索引结构846可包括位置索引1260。位置索引包括与文档集合相关联的一个或多个术语的位置。图12C示出了根据各种示例的与文本语料库1266相关联的位置索引1260。文本语料库1266可以是训练语料库(例如,文档集合,诸如主题多样的在线文章)。在一些示例中,位置索引1260可为与文本语料库1266相关联的所选择术语的位置索引。例如,位置索引1260可包括与一组主题多样的在线文章(例如, 文章)相关联的所选择术语的位置。因此,位置索引1260可表示用于表示文档集合的主题的各种术语的位置。
[0612] 如图12B和图12C中所示,在一些示例中,为了生成位置索引1260,可针对与文本语料库1266相关联的第一组术语生成位置,然后可移除作为第一组术语的子集的第二组术语的位置。第一组术语可包括一个或多个术语和一个或多个术语序列(例如短语)。例如,第一组术语可包括与文本语料库1266相关联的基本上所有术语/序列、大多数术语/序列,或与文档主题相关的基本上所有术语/序列。如上所述,在一些示例中,文本语料库1266表示主题多样的文档集合(例如, 文章)。在一些示例中,第一组术语还可包括主题相关术语(例如,文章“Crystal Structures”中的术语“crystal”)和表示结构化内容的术语。
结构内容可包括样板文本,诸如评论、导航元素(例如,文本链接、面包屑、导航条、站点地图、下拉菜单、跳出菜单、锚点等)、表格、引用、列表、索引、消歧页面(例如,使得用户能够找到关于可由相同搜索项引用的不同主题的文章的页面)、不可见/隐藏文本(例如,仅在编辑网页源时可见的文本)等。结构化内容可能不是文档的主题或焦点,因此对于生成查询建议可能不重要或不太相关。因此,与结构内容相关联的术语可能不在位置索引1260中表示。在一些示例中,位置索引1260可由索引1263引用。索引1263可包括与不是一个或多个序列的一部分的术语(例如,非短语术语)相关联的信息。例如,索引1263可包括诸如哪些文档包括术语和频率的信息。在一些示例中,位置索引1260可仅包括与作为一个或多个序列的一部分的术语(例如,作为短语的一部分的术语)相关联的信息。
[0613] 参考图12C,在一些示例中,位置索引1260可包括可从索引1263引用的每个文档的数据结构。索引1263可存储已排名的术语列表(例如,按它们的字母数字顺序)。在一些示例中,对于索引1263中的每个术语,索引1263存储计数(例如,术语的文档频率DF)、包含该术语的文档的列表、对应于在第二组术语的位置被移除之后的该术语出现的次数,以及对应于在第二组术语的位置被移除之前该术语出现的次数。如下所述,第二组术语对于生成查询建议不是必需的或相关的,因此第二组中的术语的位置可从位置索引1260中移除或不包括在位置索引1260中。
[0614] 图12C示出了索引1263和位置索引1260的示例。例如,文本语料库1266中的第一文档可包括位置10处的术语序列“AND gate”(例如,一种电路)。术语序列“AND gate”是应当包括在位置索引1260中的有意义的二元短语。文本语料库1266中的第二文档可包括位置20处的术语序列“gate surprisingly and”以及在位置30、35、48和57处的术语“and”的其他实例。该术语序列可包含诸如“gate surprisingly”和“surprisingly and”的二元短语,其均不是应当包括在位置索引1260中的有意义的二元短语。因此,索引1263可包括项目1263A-1263C。项目1263A可指示{“and”->DF=2:doc 1(TF=1,postingFreq=1)->
(positional index,offset to“and”in doc1),doc 2(TF=1,postingFreq=0)->
(positional index,offset to“and”in doc 2)};项目1263B可指示{“gate”->DF=2:doc 
1(TF=1,postingFreq=1)->(positional index,offset to“gate”doc 1),doc 2(TF=1,postingFreq=0)->(positional index,offset to“gate”in doc 2)};并且项目1263C可指示{“surprisingly”DF=1:doc 2(TF=2,postingFreq=0)->(positional index for“surprisingly”in doc 2)}。对于每个术语(例如,术语“and”、“gate”或“surprisingly”),对应的项目1263A-1263C指示文档频率(例如,DF)、包括该术语的一个或多个文档(例如,doc 1、doc 2)、用于排名的术语频率(例如,TF)、针对特定术语/文档配对而读取的术语数量(例如,“postingFreq”)和相对于术语偏移的位置(例如,相对于doc 1中的术语“and”偏移)。在一些示例中,用于排名的术语频率(例如,TF)和针对特定术语/文档配对而读取的术语数量(例如,“postingFreq”)可相同或可不相同。常规上,这两个数字没有区别(例如,在Apache Lucene的stock版本中),并且可以是相同的。然而,这可能通过包括非期望术语的位置来增加位置索引的大小。例如,如下所述,基于索引1263,与短语“gate surprisingly”和“surprisingly and”相关联的位置不包括在位置索引1260中。因此,区分用于排名的术语频率(例如,TF)和针对特定术语/文档配对而读取的术语数量(例如,“postingFreq”)可减小位置索引1260的大小,从而提高搜索效率。
[0615] 在索引1263中,与术语的位置偏移和针对特定术语/文档配对而读取的术语数量可用于生成术语在位置索引1260中的位置。继续上述示例,如图12C所示,位置索引1260中的项目1260A可基于索引1263生成,并且可包括例如{(10),(11)}。项目1260A中的第一数字“(10)”可表示术语“and”在文档1中的位置,并且项目1260B中的第二数字“(11)”可表示术语“gate”在文档1中的位置。因此,短语“AND gate”的位置包括在位置索引1260中。如上所述,不具有意义的术语序列(例如短语“gate surprisingly”和“surprisingly and”)在位置索引1260中不应具有对应的位置。因此,位置索引1260不包括诸如{(10),(22),(30),
35},(48),(57),(11),(20),(21))}的项目,其对应于术语“and”在文档1和文档2中的位置,术语“gate”在文档1和文档2中的位置以及“surprisingly”在文档2中的位置。如上所述,不具有意义的短语、样板术语和其他术语/短语可从位置索引1260中移除或不包括在位置索引1260中,以减小位置索引1260的大小。大小较小的位置指数可提高搜索效率和速度。_[0616] 如上所述,索引1263最初可包括对应于文档集合(例如,主题多样的文档的集合)的第一组术语的每个术语的位置。如图12C中所示,第一组术语可包括术语“and”和“gate”,其可为涉及关于电路的文档的主题的术语。
[0617] 如上所述,第一组术语可包括样板术语(例如,词语“the”、“a”、“to”)。样板术语可能与文档的主题不相关,但可能涉及结构化内容,诸如评论、导航元素、表格、引用等。相应地,对于样板术语,可生成项目1265。项目1265可包括例如样板术语、其相关联的文档频率;偏移,等等。在一些实施方案中,第一组术语可包括与文本语料库1266相关联的一个或多个其他术语。例如,第一组术语可包括具有低访问频率的术语、与具有低翻译频率的文档相关联的术语、仅出现一次的术语等。相应地,可针对这些术语生成一个或多个项目1267。项目
1267可指示文档频率、项目出现的次数以及它们相应的位置。样板术语和其他术语可以是第二组术语的一部分,其不指示文本语料库1266中的文档的主题。第二组术语对于生成查询建议不是必需的或相关的,因此第二组术语的位置可从位置索引1260中移除或不包括在位置索引1260中,如下文更详细所述。
[0618] 在一些示例中,第一组术语中的每个术语可与元数据1262相关联。元数据1262可指示每个术语的分类。例如,与第一组术语的术语相关联的元数据可指示该术语是主要术语、辅助术语或不包括在位置索引1260中的术语。在一些示例中,连接词可以是不包括在位置索引1260中的术语。连接词可以是当包括在术语序列中时可表示或指示文档主题的术语(例如,短语“great depression”中的词“great”;短语“and gate”中的词“and”),但在其他方面对生成查询建议不太相关或有用。在一些实施方案中,如果连接词是术语序列(例如短语)的一部分,则该连接词可包括在位置索引1260中。
[0619] 在一些示例中,第一组术语的术语序列可利用元数据1262进行注释或与元数据1262相关联。例如,与术语序列(例如短语)相关联的元数据可使用有空间和时间效率的数据结构诸如布隆过滤器进行编码。由于可能的术语序列数量很大,使用有空间和时间效率的数据结构可减小索引结构846的磁盘空间或存储器需求,并且可有利于以高效方式进行相似性搜索。例如,当使用布隆过滤器促进在索引结构846中搜索术语序列(例如,两个相邻符号中的术语)时,它不提供漏报(尽管仍然可能存在误报),从而改善查询速度。在下文中更详细地描述对元数据进行注释或将其关联到术语序列。
[0620] 在一些示例中,如上所述,第一组术语可包括第二组术语。第二组术语可以是第一组术语的子集。第二组术语可包括不包括在位置索引1260中的术语和/或术语序列。例如,第二组术语可包括结构化内容的术语/序列、与文档主题无关的术语/序列、连接词、与具有低访问频率的文档相关联的术语/序列、与具有低翻译频率的文档相关联的术语/序列、仅出现一次的术语/序列等。在一些示例中,为了生成位置索引1260,可从第一组术语的位置中移除第二组术语的位置。参考图12C,例如,项目1265可包括与样板术语或序列相关联的位置(例如,与列表、表格、索引、消歧页面等相关联的术语或序列),并且因此可从位置索引1260中移除或不包括在位置索引1260中。又如,与小于页面长度阈值的页面(例如,非常短的页面)中的术语/序列相关联的位置可从位置索引1260中移除或不包括在位置索引1260
中。又如,项目1267可包括与访问次数小于访问频率阈值的文档(例如,很少访问的文档)相关联的术语的位置,并且因此可从位置索引1260中移除或不包括在位置索引1260中。又如,项目1267可包括与翻译频率小于翻译频率阈值的文档(例如,文档可能未被翻译成超过7种语言)相关联的术语/序列的位置,并且因此可从位置索引1260中移除或不包括在位置索引
1260中。又如,项目1267可包括在对应文档中仅出现一次的术语/序列(例如,罕见术语)的位置,并且因此可从位置索引1260中移除或不包括在位置索引1260中。
[0621] 在一些实施方案中,可基于术语/序列的文档频率(DF)来移除与第二组术语中的术语/序列相关联的位置。例如,如果术语/序列的DF小于DF阈值(例如,3),则对应位置可从位置索引1260中移除或不包括在位置索引1260中。术语/序列具有小的DF可能表示该术语/序列存在于相对较少的文档中,因此可能不代表对应文档的主题或与对应文档的主题不相关。
[0622] 在一些实施方案中,可基于术语/序列的字符长度来移除与第二组术语中的术语/序列相关联的位置。例如,如果术语/序列的字符长度大于第一字符长度阈值(例如,非常长的术语/序列)或字符长度小于字符长度阈值(例如,非常短的术语/序列),则对应的位置可从位置索引1260中移除或不包括在位置索引1260中。在一些示例中,很长或很短的术语/序列可能不代表对应文档的主题或与对应文档的主题不相关。
[0623] 在一些实施方案中,可基于相关标准,诸如得自例如与文本语料库1266中所包括的文档相关联的页面查看统计信息的得分,来移除与第二组术语中的术语/序列相关联的位置。例如,基于特定文档在一个时间段内的搜索或点击次数,可为文本语料库1266中的每个文档分配得分。较高的得分可指示该文档比具有较低得分的文档更频繁地被搜索或包括在搜索结果中。因此,文档的得分可指示文档的热门度。在一些示例中,与不太热门的文档(例如,得分小于文档得分阈值的文档)中的术语/序列相关联的位置可从位置索引1260中移除或不包括在位置索引1260中。在一些示例中,较不热门的文档起初可不包括在文本语料库1266中或可从文本语料库1266中忽略。此外,还可使用热门度得分来对查询建议进行后处理,如下文更详细所论述的。
[0624] 在一些示例中,第二组术语的数量可为第一组术语的数量的相当大一部分。例如,第二组术语可包括第一组术语中约80%的术语。因此,从第一组术语的位置中移除第二组术语的位置可显著减小索引结构846的文件大小。在一些实施方案中,可将索引结构846的大小减小至例如可容易地存储在移动设备(例如,智能电话),诸如设备104、200、400、600、900、1000和1300中的大小。因此,基于本地存储的索引结构,移动设备可在具有或不具有网络连接的情况下执行索引结构846的相似性搜索。这可改善和增强向用户提供查询建议的速度(例如,从用户发起搜索主题类似的文档后在几毫秒内提供查询建议)。
[0625] 重新参考图12B,在一些实施方案中,索引结构846可包括倒排索引1270。倒排索引1270可为存储一个或多个术语/序列与一个或多个文档的映射的数据结构。在一些示例中,可基于文本语料库(例如,图12C中的文本语料库1266)的文档来生成倒排索引1270。在一些实施方案中,生成倒排索引1270可包括用标签后缀对每个术语进行注释,类似于词性(POS)标记。例如,用于姓氏、地点、国家/地区名称等的术语可被注释为“名称”术语。“名称”术语的标签后缀可以被注释为“N”。例如,在倒排索引120中,“Steve Jobs”上下文中的术语“jobs”可以被注释为“jobsN”。又如,包含连接词的术语可使用“S”后缀进行注释。例如,“great depression”序列中的术语“great”是连接词,因此可被注释为“greatS”。
[0626] 在一些实施方案中,为了生成倒排索引1270,可将主要术语注释为具有“T”后缀的“主题”术语。例如,术语“ios”可被注释为“iosT”。如上所述,主要术语是可用于搜索结果后续处理中的选择和排名两者的术语。主要术语可以是表示关联文档的主题或焦点的术语。因此,在一些示例中,如果相似性搜索结果指示查询中的一个或多个术语对应于索引结构
846中的一个或多个主要术语,则与该一个或多个主要术语相关联的文档可为选择候选查询建议的依据,如下文更详细所述。在一些实施方案中,除了用后缀对主要术语进行注释之外,还可以用附加信息(诸如对对应文档的引用)来对主要术语进行注释。
[0627] 在一些实施方案中,为了生成倒排索引1270,可以用同义词引用或后缀对同义词进行注释或编码。例如,术语“aluminum”和“aluminium”可以是同义词,并且它们可以被注释为“aluminumYaluminium”,这表明如果查询包括术语“aluminum”,则在索引结构846的相似性搜索期间也要搜索同义词“aluminium”。在一些示例中,对于同义词术语,倒排索引1270可仅存储频率和位置信息一次。在上述示例中,倒排索引1270可仅存储用于aluminum或aluminium(或“alu”)在一个公共项目中的任何出现的文档和位置信息,并且省略倒排索引1270中所有其他同义词的信息。例如,倒排索引1270可存储指示如下信息的项目:
{“aluYaluminium”:={no further information};{“aluminium”:=DF=123:doc 4(TF=
2,postingFreq=1)->(positional index for“alu”,“aluminium”or“aluminum”in doc 
4)};以及{“aluminumYaluminium”:={no further information}}。
[0628] 在一些示例中,同义词术语可包括参考术语和一个或多个替代术语。在上述示例中,术语“aluminum”可以是参考术语,并且术语“aluminium”可以是替代术语。在一些示例中,可用后缀“Y”对替代术语进行注释,而参考术语可不具有任何后缀。因此,在倒排索引1270中,替代术语可不与任何位置信息相关联,反而可指对应的参考术语。例如,倒排索引
1270可包括指示如下信息的项目:{“aluY”:={no  further  information}};
{“aluminiumY”:={no further information}};{“aluminum”:=DF=123:doc 4(TF=2,postingFreq=1)->(positional index for“alu”,“aluminium”or“aluminum”in doc 
4)}。通过仅包括参考术语的位置信息,可进一步减小索引结构846的文件大小。
[0629] 在一些实施方案中,为了生成倒排索引1270,可对与文本语料库(例如,图12C中所示的文本语料库1266)相关联的每个唯一术语序列(例如,短语)进行注释。如上所述,文本语料库可包括一个或多个术语序列。在一些示例中,文本语料库中的唯一术语序列可被注释以改善搜索性能(例如,提高执行索引结构846的相似性搜索的速度)。例如,术语序列“and gate”可表示一种类型的电路元件并且可为唯一术语序列。因此,可以对该术语序列进行注释,使得将相对于序列“and gate”而不是两个单独的术语“and”和“gate”执行相似性搜索。在一些实施方案中,可在有空间和时间效率的数据结构(诸如布隆过滤器)中执行对术语序列的注释。
[0630] 参考图12B和图12C,在一些实施方案中,为了对每个唯一术语序列(例如,存储在布隆过滤器中的序列)进行注释,可以交叉引用位置索引1260。例如,可确定倒排索引1270中的唯一术语序列是否对应于与位置索引1260相关联的术语序列。如上所述,位置索引1260可仅包括所选择的术语的位置(例如,通过移除第二组术语的位置),其可包括可能与文本语料库1266中的文档的主题相关或代表该主题的术语。因此,确定术语序列是否对应于与位置索引1260相关联的术语序列可指示该特定术语序列是否可能与文本语料库1266
中的文档的主题相关或代表该主题。在一些示例中,如果特定术语序列不对应于与位置索引1260相关联的任何术语序列,则特定序列不太可能与文本语料库1266的任何文档的主题相关或代表该主题,因此可能不会被注释。
[0631] 参考图12B,在一些实施方案中,根据确定倒排索引1270中的术语序列对应于与位置索引1260相关联的术语序列,对倒排索引1270中的术语序列进行注释可包括确定与倒排索引1270中的术语序列相关联的元数据。在一些示例中,确定与倒排索引1270中的术语序列相关联的元数据可包括确定术语序列是否为主要序列。与主要术语相似,主要序列是可用于搜索结果的后续处理中的选择和排名两者的术语序列。主要序列可以是表示文本语料库1266中的关联文档的主题或焦点的序列。在一些示例中,根据确定倒排索引1270中的术语序列不是主要序列,该特定序列被确定为辅助序列。辅助序列可不被注释(例如,使用布隆过滤器进行编码)。
[0632] 在一些示例中,元数据(例如,如图12C中所示的元数据1262)可存储关于序列是主要序列还是辅助序列的指示。如上所述,可使用布隆过滤器对元数据进行编码和存储。典型的布隆过滤器可仅存储关于术语或序列(例如,由使用一个或多个散列函数从术语或序列导出的一组数字表示)“可能存在或不存在”或“绝对不存在”的信息。因此,典型的布隆过滤器可能不提供用于容易地存储对应术语或序列以及元数据的数据结构。在一些示例中,不是使用散列函数将术语或术语序列(例如,二元短语)直接转换为数字表示,而是可用对应于特定元数据类型的种子值来修改散列函数。基于经修改的散列函数,经修改的布隆过滤器可具有用于存储元数据-术语或元数据-序列组合的数据结构。例如,认识到序列“Donald Trump”本身可以是主要序列、名称和主题,经修改的布隆过滤器可以为序列“Donald Trump”存储三个元素,诸如{(“Donald Trump”,primary);(“Donald Trump”,name);
(“Donald Trump”,topic)}。并且认识到序列“John Doe”本身仅仅是辅助序列和名称但可能不是主题,经修改的布隆过滤器可以为“John Doe”序列存储两个元素,诸如{(“John Doe”,auxiliary);(“John Doe”,name)}。
[0633] 在一些实施方案中,确定与倒排索引1270中的术语序列相关联的元数据还可包括确定特定术语序列是否为名称序列(例如,短语“Donald Trump”)。在一些示例中,根据确定特定术语序列是名称序列,对该序列进行相应注释(例如,使用布隆过滤器进行编码)。
[0634] 在一些实施方案中,确定与倒排索引1270中的术语序列相关联的元数据可包括确定特定术语序列是否为主题序列(例如,短语“nuclear debate”可以是指示关于美国是否应该放弃核电的文章的主题的主题序列)。在一些示例中,根据确定倒排索引1270中的术语序列是主题序列,对该序列进行相应注释(例如,使用布隆过滤器进行编码)。
[0635] 在一些实施方案中,确定与倒排索引1270中的术语序列相关联的元数据包括确定术语序列是否被存储为单个术语。例如,符号化器可符号化文本“T-Mobile”以获得术语“t”和“mobile”的序列。该术语序列可被存储为单个术语“t mobile”。在一些示例中,根据确定倒排索引1270中的术语序列被存储为单个术语,对序列进行相应注释(例如,使用布隆过滤器进行编码)。在一些示例中,与上述那些相似,倒排索引1270可包括术语“t mobile”或任选的同义词“tmobileYt mobile”,反之亦然。
[0636] 在一些实施方案中,为了对倒排索引1270中的每个唯一术语序列进行注释,可对与术语序列相关联的元数据进行编码。如上所述,与倒排索引1270中的术语序列(例如短语)相关联的元数据可使用有空间和时间效率的数据结构(诸如布隆过滤器)进行编码。布隆过滤器可减少对术语序列进行注释所需的磁盘空间,并因此减少倒排索引1270的磁盘空间需求。此外,布隆过滤器可有利于以误报率的预先确定的上限(例如,0.1%)在基本上恒定的时间内搜索术语序列(例如,以散列值的形式表示)。在一些示例中,当使用布隆过滤器确定查询中的术语序列(例如,两个相邻符号中的术语)是否包括在索引结构846中时,它不提供漏报(尽管仍然可能存在误报),从而改善查询速度。
[0637] 重新参考图12B,在一些实施方案中,索引结构846可包括文档特定数据1280。文档特定数据1280可包括例如文档的标题。文档特定数据1280使得能够向用户显示与查询建议相关联的信息(例如,显示所建议的文章的标题)。在一些实施方案中,如图12B所示,位置索引1260、倒排索引1270和文档特定数据1280可形成自定义的Lucene索引。Lucene索引可代表具有各种不同格式的文档,例如pdf文档、HTML文档、Microsoft 文档或任何其他包含文本的文档。参考图8、图11和图12A-图12C,在一些示例中, Lucene可以但不
必要一定被用作相似性搜索引擎1220、符号化器1120的部件以及用于存储和检索来自索引
1263、位置索引1260、候选查询建议储存库840和元数据1262的信息的框架
[0638] 如上所述,可基于可为文档集合的文本语料库(例如,训练语料库)来生成索引结构846。重新参考图8,在一些示例中,可通过由图1-图4、图6A-图6B以及图7A-图7C中所示的部件实现的智能自动化助理800(例如,设备104、200和600)来生成索引结构846。在一些示例中,可在智能自动化助理800接收发起搜索的用户输入(例如,搜索主题类似的文档)之前生成索引结构846。因此,索引结构846可被提供给查询建议发生器860或被查询建议发生器860访问,以用于基于发起搜索的用户输入802(例如,用户输入区域中的触摸)和输入文档
804(例如,用户正在阅读/收听的文章)来生成查询建议。在一些示例中,智能自动化助理
800可在接收到发起搜索的用户输入之后生成索引结构846。索引结构846然后可被提供给查询建议发生器860或由查询建议发生器860访问。在一些示例中,可用文本语料库(例如,图12C中所示的文本语料库1266)中的附加或新提供的文档来动态更新索引结构846。
[0639] 参考图8和图12A,如上所述,查询建议发生器860可包括相似性搜索引擎1220和搜索结果后处理模块1240。在一些实施方案中,相似性搜索引擎1220可基于查询822和索引结构846执行相似性搜索。相似性搜索可比较查询822中的一个或多个术语和/或术语序列与索引结构846中的术语和/或术语序列之间的相似性。如上所述,基于输入文档804(例如,用户正在阅读/收听的文章)生成查询822中的一个或多个术语和/或术语序列,并且基于文本语料库(例如,包括主题多样的文档的训练语料库)生成索引结构846。因此,相似性搜索可有利于确定查询建议(例如,与输入文档804在主题上相似或相关的文档)。在一些示例中,可执行相似性搜索结果的后处理以确定查询建议,如下文更详细所述。
[0640] 参考图12A,在一些示例中,为了执行相似性搜索,相似性搜索引擎1220可基于查询822来搜索索引结构846,该查询可包括一个或多个主要术语/序列和辅助术语/序列。例如,为了获得搜索结果,相似性搜索引擎1220可使用主要术语/序列执行余弦相似性搜索,然后使用主要术语/序列和辅助术语/序列进行任选的细化余弦相似性搜索。应当理解,相似性搜索引擎1220可基于任何其他搜索技术或算法执行相似性搜索。
[0641] 在一些示例中,相似性搜索引擎1220可基于包括在查询822中的一个或多个主要术语/术语序列和/或一个或多个辅助术语/术语序列来进一步对搜索结果进行排名。如上所述,主要术语或主要序列可以是表示关联文档(例如,输入文档804)的主题或焦点的术语或序列。辅助术语或辅助序列可以是与关联文档(例如,输入文档804)的主题或焦点相关的术语或序列,但可能不如主要术语或序列那样相关。因此,在一些示例中,主要术语/序列可用于排名和选择两者,而辅助术语/序列仅可用于排名。例如,相似性搜索引擎1220可基于包括在查询822中的主要术语/序列和/或辅助术语/序列来确定与搜索结果相关联的每个
文档的得分。相似性搜索引擎1220然后可基于得分对搜索结果进行排名,并且生成一组经排名的搜索结果1222(例如,前20个搜索结果)。在一些示例中,得分可表示包括在查询822中的术语/序列与由搜索结果表示的文档中包括的术语/序列之间的相似性程度。应当理
解,相似性搜索引擎1220可基于任何其他排名或分类技术或算法,对搜索结果进行排名。
[0642] 参考图12A,在一些实施方案中,搜索结果后处理模块1240可基于相似性搜索结果来确定一个或多个查询建议862。如上所述,相似性搜索引擎1220可生成一组排名的搜索结果1222,其可表示例如20个文档。在一些实施方案中,可能需要进一步细化或缩减搜索结果,从而向用户提供一些(例如,2-3个)查询建议(例如,建议的文章)。为用户提供一些查询建议改善了用户交互界面,并且可以更有效率。例如,不需要用户手动查看或滚动以查看大量(例如,20个)查询建议,只需要在最可能让用户感兴趣的2-3个查询建议之间进行选择。因此,在一些实施方案中,可执行经排名的搜索结果1222的后处理以将搜索结果细化或缩减到几个查询建议。
[0643] 参考图12A,为了确定一个或多个查询建议862,搜索结果后处理模块1240可获得一组经排名的搜索结果1222(例如,前20个搜索结果)。一组经排名的搜索结果1222可表示候选查询建议。在一些示例中,搜索结果后处理模块1240可基于各种技术对一组经排名的搜索结果1222执行后处理。例如,搜索结果后处理模块1240可确定一个或多个匹配的主要术语或序列是否彼此相关,并且根据确定一个或多个匹配的主要术语或序列彼此相关,减少与搜索结果相关联的匹配数量。在一组经排名的搜索结果1222中,匹配的主要术语或序列可以是包括在查询822中的主要术语或序列,并且也是索引结构846中表示的术语或序列。作为彼此相关的示例,搜索结果后处理模块1240可确定匹配的主要术语是否也是匹配序列的一部分(例如,术语“crystal”同样在短语“crystal cave”中)。如果是这样,则搜索结果后处理模块1240可减少与搜索结果相关联的匹配数量。这是因为术语“crystal”和短语“crystal cave”彼此相关,不应计数两次。
[0644] 作为经排名的搜索结果1222的后处理的另一示例,搜索结果后处理模块1240可确定所有匹配的主要术语是否都表示名称。例如,可相对于术语诸如“European road signs”的主要术语或主要序列执行相似性搜索。一组经排名的搜索结果1222可指示与索引结构846相关联的所有匹配的主要术语表示欧洲国家/地区名称,诸如“Germany”、“Spain”、“France”等。参考图12A和图12B,在一些示例中,根据确定所有匹配的主要术语表示名称,搜索结果后处理模块1240可确定匹配的主要术语和索引结构846的文档特定数据1280(例
如,文档的标题)之间的相关性的数量,如图12B所示。例如,搜索结果后处理模块1240确定匹配的主要术语中有多少对应于包括在由索引结构846表示的文档的标题中的术语。如果匹配的主要术语对应于包括在由索引结构846表示的文档的标题中的术语,则匹配的主要术语可能表示或反映该文档的主题。因此,可保留特定搜索结果。
[0645] 在一些示例中,搜索结果后处理模块1240还可确定相关性的数量是否满足相关性阈值。根据确定相关性的数量不满足相关性阈值,搜索结果后处理模块1240可移除与匹配的主要术语相关联的一个或多个经排名的搜索结果。例如,搜索结果后处理模块1240确定匹配的主要术语和由索引结构846表示的文档的标题之间的相关性数量仅为1,这表明大多数匹配的主要术语可能不表示或反映由索引结构846表示的对应文档的主题。因此,搜索结果后处理模块1240可移除与匹配的主要术语相关联的经排名的搜索结果。
[0646] 作为经排名的搜索结果1222的后处理的另一个示例,搜索结果后处理模块1240可确定与文档标题相关联的一个或多个术语(例如,由图12B中所示的文档特定数据1280指示)是否匹配包括在查询822中的符号。在一些示例中,一组经排名的搜索结果1222可包括与由索引结构846表示的文本语料库中的文档的标题对应的术语。文档标题中包含的术语可能表示或反映文档的主题。例如,由索引结构846表示的文本语料库的文档可具有包括术语或术语序列“Melania Trump”的标题,指示该文档具有关于第一夫人的主题。在一些示例中,搜索结果后处理模块1240可确定这些术语或术语序列“Melania Trump”是否都与包括在查询822中的一个或多个符号匹配。根据确定文档标题的一个或多个术语中的至少一个术语与包括在查询822中的符号不匹配,搜索结果后处理模块1240可移除与文档标题相关联的一个或多个经排名的搜索结果。例如,如果搜索结果后处理模块1240确定术语
“Melania Trump”中的一者或两者与查询822中的符号不匹配,则其确定对应的经排名的搜索结果不太可能具有与输入文档804(例如,用户正在阅读的文章)类似的主题,并且因此可移除对应的经排名的搜索结果。
[0647] 将文档的标题中的术语与查询822中的符号匹配,可降低提供误报查询建议的可能性。例如,一份标题为“ 650GPU”的文档可能具有关于 公司制造的特定
图形处理单元(GPU)的主题。因此,该文档可包括术语“nvidia”和“graphics card”。经排名的搜索结果可指示匹配的主要术语包括“nvidia”和“graphics card”,指示这些术语包括在查询822中。但是,在一些示例中,用户很可能有兴趣阅读有关 公司的文档,并且
不太可能对该公司的具体产品感兴趣。因此,可能不需要为标题为“ 650GPU”的文
档提供查询建议。通过匹配文档标题(即, 650GPU)中的术语和查询822中的符号
(例如,“nvidia”、“graphics card”),搜索结果后处理模块1240可确定标题中的术语未包括在查询822中,并因此移除与文档标题“ 650GPU”相关联的经排名的搜索结果。
在一些示例中,单个文档可具有多个候选标题(例如,存储在文档特定数据1280中)。搜索结果后处理模块1240可将多个候选标题中的每个标题中的术语与查询822中的符号进行比
较,并确定最佳匹配标题。
[0648] 作为经排名的搜索结果1222的后处理的另一个示例,搜索结果后处理模块1240可对与具有相同匹配术语的文档相关联的搜索结果进行重新排名。例如,一组经排名的搜索结果1222可指示由索引结构846表示的文本语料库中的两个文档具有与查询822中所包括的那些相同或基本上相同的匹配术语或序列。相同的匹配术语或序列可包括术语的子集,诸如主要术语或序列。因此,搜索结果后处理模块1240可相对于两个文档对一组经排名的搜索结果1222进行重新排名。例如,搜索结果后处理模块1240可将更高排名分配给与在文档标题中具有一个或多个匹配术语的文档对应的搜索结果,或分配给与表示该主题的更通用描述的文档对应的搜索结果。
[0649] 如上所述,热门度得分(例如,来源于图12C中所示的文本语料库1266的页面查看统计信息)可用于对查询建议进行后处理。热门度得分可指示特定文档的热门程度(例如,访问或查看文档的频率)。在一些示例中,相同或不同的热门度得分可用于对经排名的搜索结果1222进行重新排名。例如,对于具有关于新恐龙发现的主题的输入文档804,一组经排名的搜索结果1222可包括以“Ankylosaurus”、“Tyrannosaurus”和“Dinosaur”的顺序排名的术语。基于热门度得分,搜索结果后处理模块1240可对这些术语重新排名。
[0650] 具体地,如上所述,候选查询建议储存库840可包括表示主题多样的文档的查询建议。在一些示例中,这些文档可基于其热门度得分进行排名或排序。热门度得分可相应地根据例如幂律分布进行分配,因此仅少数查询建议(例如,主题)可具有相对较高的热门度得分(例如,非常热门),并且大多数其他查询建议可具有低热门度得分(例如,不太热门)。在一些示例中,文档可被排名或排序,使得具有高热门度得分的那些文档可与低文档ID号(例如,文档ID 0、1等)相关联,指示它们在经排名的文档的开始处被排序。并且热门度得分较低的文档可与高文档ID号(例如,对于约20000个文档的文本语料库,文档ID 10000、10001等)相关联。在热门度得分具有幂律分布的一些示例中,具有低文档ID号(例如,文档ID 10和15之间)的文档与具有相对高文档ID号(例如,文档ID 10000和10015之间)的文档之间的热门度差异可能更大。
[0651] 参考图12A,在一些示例中,搜索结果后处理模块1240可基于根据其相关联的热门度得分排名的文档来执行经排名的搜索结果1222的后处理。例如,搜索结果后处理模块1240可从经排名的搜索结果1222获得前k(例如,前3)个搜索结果。前k个经排名的搜索结果中的每一个可与指示特定搜索结果与输入文档804的主题之间的相似性程度的相似性得分相关联。前k个经排名的搜索结果中的每一个还可具有对应的文档ID号,该编号指示储存库
840中表示的对应文档的相对热门度。例如,关于最近发现的恐龙化石的输入文档804的排名前3位的搜索结果可包括“Ankylosaurus”(相似性得分:23.45,docID 14041)、
“Tyrannosaurus”(相似性得分:18.45,docID:27455)和“Dinosaur”(相似性得分:12,docID:5645)。
[0652] 在一些示例中,基于前k个搜索结果的相似性得分,可确定每个搜索结果的相对文档得分。相对文档得分可以是每个搜索结果的绝对相似性得分与前k个搜索结果中的最高绝对相似性得分的比值。继续以上示例,经排名的搜索结果1222中排名前3位的搜索结果可具有以下关联信息:{result rank 1:“Ankylosaurus”(relative document score:23.45/23.45=1,docID 14041,document_rank=2)};{result rank 2:“Tyrannosaurus”,
relative document score:18.45/23.45=0.787,docID:27455,document_rank=3)};以及{result rank 3:“Dinosaur”,relative document score:12/23.45=0.512,docID:
5645,document_rank=1)}。在以上关于搜索结果的信息中,doc ID表示第r个搜索结果的文档ID号,而document_rank表示基于文档ID的搜索结果的排名。例如,为具有最低docID(例如,5645)的搜索结果分配了document_rank1,为具有docID 14041的搜索结果分配了document_rank 2,并且为具有docID 27455的搜索结果分配了document_rank 3。如上所述,在一些示例中,文档ID反映对应文档的热门度,因此可根据文档ID对前k个搜索结果进行重新排名。在一些示例中,对前k个搜索结果重新排名可考虑使用混合得分的额外因素,如下所述。
[0653] 在一些示例中,对于前k个搜索结果中的每个搜索结果,可基于特定搜索结果的相对文档得分和相对热门度得分来确定混合得分。例如,可基于下式(1)确定混合得分。
[0654] blended_score(r)=alpha*relative_document_score(r)+(1-alpha)*relative_popularity_score(docID(r))    (1)
[0655] 在式(1)中,可以基于下式(2)确定relative_popularity_score(docID(r))。
[0656] relative_popularity_score(d)=(1-(docID(r)/(NUM_DOC+1)))/log_2(1+document_rank(d))    (2)
[0657] 在上式中,log_2表示底数为2的对数;docID(r)表示第r个搜索结果的文档ID号;NUM_DOC表示由储存库840表示的文档总数,而document_rank(d)表示特定文档ID相对于其他文档的排名。docID(r)可具有例如0至候选查询建议储存库840所表示的文档总数的范
围。document_rank(d)可具有从0至k的范围,其中k表示前k个搜索结果的总数。在上式中,alpha表示混合参数,该混合参数可为经验系数,其可具有0至1的范围。如果alpha等于1,则仅考虑相对文档得分,并且保留(例如,不重新排名)经排名的搜索结果1222中的搜索结果的顺序。如果alpha等于0,则仅考虑相对热门度得分,并且仅基于其热门度(例如,使用文档排名)对经排名的搜索结果1222中的搜索结果进行重新排名。例如,如上所述,经排名的搜索结果1222的顺序可为“Ankylosaurus”、“Tyrannosaurus”和“Dinosaur”。如果alpha等于
1,则不更改该顺序。如果alpha等于0,则可将该顺序更改为例如“Dinosaur”、
“Tyrannosaurus”和“Ankylosaurus”。混合参数alpha可以是介于0和1之间的数值。例如,alpha可以等于0.5。因此,对于由储存库840表示的约30000的文档总数,可使用上述公式来确定“Ankylosaurus”、“Tyrannosaurus”和“Dinosaur”的混合得分分别为0.668、0.415和
0.662。因此,经排名的搜索结果1222的顺序可被重新排名为“Tyrannosaurus”、“Dinosaur”和“Ankylosaurus”(例如,混合得分的降序)的顺序。
[0658] 在一些示例中,设备(例如,智能手表)的某些图形用户界面(GUI)可仅允许有限数量的查询建议。因此,对搜索结果重新排名可进一步增强或最大化向用户提供用户最有兴趣或最相关的查询建议的可能性。这继而改善了用户界面的交互效率。
[0659] 作为经排名的搜索结果1222的后处理的另一示例,搜索结果后处理模块1240可确定文档的排名得分是否满足文档得分阈值。如上所述,为了提供经排名的搜索结果1222,相似性搜索引擎1220可确定与相似性搜索结果相关联的每个文档的得分,并且随后基于其各自的得分对文档进行排名。在一些示例中,搜索结果后处理模块1240可将一组经排名的搜索结果1222中的每个文档的得分与文档得分阈值进行比较。如果特定文档的得分小于文档得分阈值,则搜索结果后处理模块1240可移除与该特定文档相关联的经排名的搜索结果。
[0660] 参考图12A,作为经排名的搜索结果1222的后处理的另一个示例,搜索结果后处理模块1240可基于查询822确定另选的文档标题。在一些示例中,两个或更多个不同的术语或术语序列可以指相同的实体或概念。例如,“Sir Topham Hatt”和“The Fat Controller”可指同一实体或个人。因此,基于作为生成查询822的基础的输入文档804中包括的术语或序列,搜索结果后处理模块1240可从一组经排名的搜索结果1222中选择一个或多个搜索结果,并移除其他搜索结果。例如,输入文档804可包括术语或术语序列“The  Fat 
Controller”。因此,相对于一组经排名的搜索结果1222,搜索结果后处理模块1240可选择与标题为“The Fat Controller”的文档相关联的搜索结果或向其分配更高排名,而不是与标题为“Sir Topham Hatt”的文档相关联的搜索结果。在一些示例中,搜索结果后处理模块
1240可基于存储在索引1263(例如,图12C中所示)中的术语和/或序列以及任选地未存储在索引1263中的符号(例如,“sir”可以是由符号化器1120获得但可能不存储在索引1263中的符号)进行选择。
[0661] 参考图8和图12A,作为经排名的搜索结果1222的后处理的另一个示例,搜索结果后处理模块1240可基于用户输入(例如,用户输入802)对经排名的搜索结果1222进行重新排名。使用上面的示例“Sir Topham Hatt”,用户输入802可包括文本“Sir Top”。因此,搜索结果后处理模块1240可将包含术语序列“Sir Topham Hatt”的搜索结果排名为高于其他搜索结果,尽管其他重新排名因素(例如,热门度得分)可指示包含序列“The  Fat Controller”的搜索结果应被排名为更高。在一些示例中,用户输入802还可用作过滤器,以用于移除不可能完成用户输入802的任何搜索结果。
[0662] 参考图8和图12A,基于后处理结果,查询建议发生器860可从候选查询建议储存库840接收一个或多个查询建议862。如图12A中所示,在一些实施方案中,可基于一组经排名的搜索结果1222来生成候选查询建议。如上所述,候选查询建议可包括文档、指向文档的链接、表示指向文档的链接的缩略图,或文档的任何表示。在一些实施方案中,可基于一组经排名的搜索结果122和索引结构846来生成候选查询建议(例如,使用匹配的术语和索引结构846来获得对应的文档)。在一些实施方案中,搜索结果后处理模块1240可基于经过后处理的搜索结果(例如,基于一组经排名的搜索结果1222细化或缩减的搜索结果)来接收查询建议862。例如,可从候选查询建议储存库840中选择一些(例如,2-3个)候选查询建议并作为查询建议862提供。如上所述,查询建议862可表示用户可能感兴趣的主题类似的文档。在一些实施方案中,可基于经过后处理的搜索结果(例如,基于一组经排名的搜索结果1222细化或缩减的搜索结果)而生成候选查询建议。因此,这些候选查询建议可作为查询建议862提供。
[0663] 参考图8和图13A,在一些实施方案中,智能自动化助理800可向用户提供一个或多个查询建议862。如图13A中所示,在一些示例中,智能自动化助理800可在用户界面1302上显示查询建议1328。在一些示例中,在不同于用于接收输入文档(例如,输入文档804)的显示区域(例如,显示区域1304)的显示区域处显示查询建议1328。在一些示例中,查询建议1328可包括所链接文档的缩略图或预览图像。
[0664] 图13A进一步示出了根据各种示例的用于接收用户对查询建议的选择的用户界面1302。图13B示出了根据各种示例的用于根据用户对查询建议的选择而向用户提供文档的用户界面1312。如图13A和图13B中所示,例如,智能自动化助理800可提供用于从用户接收对多个查询建议1328中的一个查询建议的选择的用户界面1302。用户可通过使用例如一个或多个手指302来选择查询建议1328中的一个。响应于接收到用户选择,智能自动化助理
800可提供用户界面1312,以用于向用户提供对应于所选择的查询建议的信息(例如,根据所选择的查询建议向用户显示文档1316)。
[0665] 5.基于智能和高效搜索提供查询建议的过程
[0666] 图14A-图14F示出了根据各种示例的用于操作数字助理以提供查询建议的过程1400。例如,使用实现数字助理的一个或多个电子设备来执行过程1400。在一些示例中,使用客户端-服务器系统(例如,系统100)来执行过程1400,并且在服务器(例如,DA服务器
106)和客户端设备之间以任何方式来划分过程1400的框。在其他示例中,在服务器和多个客户端设备(例如,移动电话和智能手表)之间划分过程1400的框。因此,虽然过程1400的部分在本文中被描述为由客户端-服务器系统的特定设备执行,但应当理解,过程1400不限于此。在其他示例中,使用仅客户端设备(例如,用户设备104、200、400、600、900、1000或1300)或仅多个客户端设备来执行过程1400。在过程1400中,一些框被任选地组合,一些框的次序被任选地改变,并且一些框被任选地省略。在一些示例中,可结合过程1400来执行附加步骤。
[0667] 参考图14A,在框1402处,在显示包括非结构化自然语言信息的输入文档时,接收发起搜索的用户输入。输入文档可以是用户正在阅读或收听的文档。在一些示例中,输入文档包括文本文档、网页、消息、电子邮件或指向文档的超级链接。在一些示例中,用户输入发起对与输入文档在主题上相似的文档的搜索。
[0668] 在框1404处,响应于接收到用户输入,基于输入文档发起查询。该查询访问与非结构化自然语言信息中存在的一个或多个主题相关的候选查询建议的储存库。在框1406处,为了发起查询,生成用于表示输入文档的一个或多个符号。在框1408处,从表示输入文档的符号中移除表示输入文档中的结构化内容的符号。输入文档中的结构化内容可包括例如样板文本,诸如注释、导航元素、表格、引用等。结构化内容可能不是输入文档的焦点,因此可能不是生成查询所必需的。在框1410处,对剩余符号进行分类。在框1412处,剩余符号被分类为一个或多个主要术语、一个或多个辅助术语以及不包括在查询中的术语。在一些示例中,进一步确定是否将剩余符号的一个或多个术语包括在索引结构中。该确定可基于文档频率(DF)、集合术语频率(CTF)或DF与CTF的关系中的至少一者。在一些示例中,对剩余符号的分类基于预先确定的术语列表(例如,用户自定义的术语列表)。
[0669] 在框1414处,基于剩余符号的分类来生成查询。在框1416处,为了生成查询,查询中包括被分类为主要术语和辅助术语中的一者或两者的符号。在框1418处,在查询中形成一个或多个术语序列。
[0670] 在框1420处,为了访问与非结构化自然语言信息中存在的一个或多个主题相关的查询建议的储存库,获得索引结构。索引结构包括与文本语料库相关联的所选择术语的位置索引。文本语料库包括文档集合。在框1422处,为了获得索引结构,生成与文本语料库相关联的所选择术语的位置索引。
[0671] 在框1424处,为了生成位置索引,生成与文本语料库相关联的第一组术语的位置。这些位置包括第一组术语中的每个术语的位置。在一些示例中,第一组术语中的每个术语与指示术语分类(例如,主要、辅助、不包括)的元数据相关联。在一些示例中,第一组术语包括一个或多个术语序列。一个或多个术语序列与使用有空间和时间效率的数据结构(诸如布隆过滤器)编码的元数据相关联。参考图14B,在框1426处,从第一组术语的位置中移除第二组术语的位置。第二组术语是第一组术语的子集。在一些示例中,第二组术语的数量为第一组术语的数量的相当大一部分。
[0672] 在框1428处,为了移除第二组术语的位置,移除与结构化内容相关联的术语的位置,结构化内容诸如列表、索引、表格、不可见文本、消歧页面、引用或具有小于页面长度阈值的术语数量的页面中的至少一者。在框1430处,为了移除第二组术语的位置,移除与访问次数小于访问频率阈值的文档(例如,很少或不常访问的文档)相关联的术语的位置。
[0673] 在框1432处,为了移除第二组术语的位置,移除与翻译频率小于翻译频率阈值的文档(例如,没有足够翻译次数的文档)相关联的术语的位置。在框1434处,为了移除第二组术语的位置,移除在对应的文档中仅出现一次的术语(例如,罕见术语)的位置。
[0674] 在框1436处,为了移除第二组术语的位置,移除术语或术语序列中的至少一者的位置,该术语或术语序列的文档频率(DF)小于DF阈值(例如,术语存在于非常小数量的文档中并且因此可能不代表对应文档的主题或不与对应文档的主题相关)。
[0675] 在框1438处,为了移除第二组术语的位置,移除字符长度大于第一字符长度阈值的术语或字符长度小于第二字符长度阈值的术语(例如,非常长的术语或非常短的术语)的位置。
[0676] 在框1440处,移除第二组术语的位置基于与文本语料库中所包括的文档相关联的一个或多个得分。
[0677] 参考图14C,在框1442处,为了获得索引结构,生成文本语料库中所包括的文档的一个或多个术语的倒排索引。在框1444处,为了生成倒排索引,用标签后缀(例如,用于名称术语的后缀“N”,用于连接词的后缀“S”)对每个术语进行注释。
[0678] 在框1446处,为了生成倒排索引,对与文本语料库相关联的每个唯一术语序列进行注释。可使用有空间和时间效率的数据结构(诸如布隆过滤器)执行对术语序列的注释。
[0679] 在框1448处,为了对每个唯一术语序列进行注释,对于每个唯一术语序列确定术语序列是否对应于与所选择术语的位置索引相关联的术语序列。在框1450处,根据确定术语序列对应于与所选择术语的位置索引相关联的术语序列,确定与术语序列相关联的元数据。
[0680] 在框1452处,为了确定元数据,确定术语序列是否为主要序列。在框1454处,为了确定元数据,确定术语序列是否为名称序列。在框1456处,为了确定元数据,确定术语序列是否为主题序列。在框1458处,为了确定元数据,确定术语序列是否被存储为单个术语。
[0681] 在框1460处,对与术语序列相关联的元数据进行编码。例如,使用有空间和时间效率的数据结构(诸如布隆过滤器)对元数据进行编码。
[0682] 参考图14D,在框1462处,为了获得索引结构,获得文档特定数据(例如,文档的标题)。
[0683] 在框1464处,在获得索引结构之后,可基于查询和索引结构执行相似性搜索。在框1466处,为了执行相似性搜索,基于查询的符号来搜索索引结构。符号包括一个或多个主要术语或一个或多个辅助术语中的至少一者。
[0684] 在框1468处,基于一个或多个主要术语或一个或多个辅助术语中的至少一者,对搜索结果进行排名。在框1470处,在执行相似性搜索之后,基于相似性搜索结果来确定一个或多个查询建议。
[0685] 在框1472处,为确定一个或多个查询建议,获得一组经排名的搜索结果。一组经排名的搜索结果表示候选查询建议(例如,前20个搜索结果)。在框1474处,执行对一组经排名的搜索结果的后处理。
[0686] 在框1476处,为了执行对一组经排名的搜索结果的后处理,确定一个或多个匹配的主要术语是否彼此相关。例如,确定某个术语是否也包括在术语序列中。在框1478处,根据确定一个或多个匹配的主要术语彼此相关,减少与一个或多个搜索结果相关联的匹配的数量。
[0687] 参考图14E,在框1480处,为了执行对一组经排名的搜索结果的后处理,确定所有匹配的主要术语是否表示名称(例如,欧洲国家/地区名称)。在框1482处,根据确定所有匹配的主要术语表示名称,确定匹配的主要术语和文档特定数据(例如,文档的标题)之间的相关性数量。在框1484处,确定相关性的数量是否满足相关性阈值。在框1486处,根据确定相关性数量不满足相关性阈值(指示大多数匹配的主要术语可能不表示或反映由索引结构表示的对应文档的主题),移除与匹配的主要术语相关联的一个或多个经排名的搜索结果。
[0688] 在框1488处,为了执行对一组经排名的搜索结果的后处理,确定文档标题的一个或多个术语是否与包括在查询中的符号相匹配。标题可能表示对应文档的主题。在框1490处,根据确定文档标题的一个或多个术语中的至少一者与包括在查询中的符号不匹配,移除与文档标题相关联的一个或多个经排名的搜索结果。例如,如果标题中包括的术语未包括在查询中,那么可能该文档不是用户感兴趣的内容。因此,移除对应的搜索结果。
[0689] 在框1492处,为了执行对一组经排名的搜索结果的后处理,对与具有相同匹配术语的文档相关联的搜索结果进行重新排名。例如,将更高排名分配给与在文档标题中具有一个或多个匹配术语的文档对应的搜索结果,或分配给与表示该主题的更通用描述的文档对应的搜索结果。
[0690] 在框1494处,为了执行对一组经排名的搜索结果的后处理,确定文档的排名得分是否满足文档得分阈值。如果特定文档的得分小于文档得分阈值,则移除与该特定文档相关联的经排名的搜索结果。
[0691] 在框1496处,为了执行对一组经排名的搜索结果的后处理,基于查询确定另选的文档标题。例如,输入文档包括术语“The Fat Controller”。根据作为生成查询的基础的输入文档中使用的术语,与标题为“The Fat Controller”的文档相关联的搜索结果被选择或分配更高的排名,而不是与标题为“Sir Topham Hatt”的文档相关联的搜索结果。
[0692] 在框1498处,为了执行对一组经排名的搜索结果的后处理,基于相对文档得分和相对热门度得分对一组经排名的搜索结果进行重新排名。如上所述,可基于与特定文档相关联的相对文档得分和相对热门度得分来确定混合得分。混合得分可用于对经排名的搜索结果进行重新排名。
[0693] 在框1500处,基于后处理结果来确定一个或多个查询建议。
[0694] 参考图14F,在框1502处,索引结构被存储在移动设备中以允许在不存在网络连接的情况下进行相似性搜索。因此,索引结构有利于以快速且高效的方式搜索并向用户提供查询建议。
[0695] 在框1504处,从候选查询建议储存库接收一个或多个查询建议。在框1506处,向用户提供一个或多个查询建议。在框1508处,从用户接收对一个或多个查询建议中的一个查询建议的选择。在框1510处,根据对一个查询建议的选择向用户提供信息。
[0696] 参考图14A和图14F,在框1512处,在一些示例中,在发起查询之前,检测与输入文档相关联的一种或多种语言。在框1514处,对检测到的语言进行排名。在框1516处,基于所检测语言的排名,从多个候选查询建议储存库中识别候选查询建议储存库(以及相关联的索引结构)。多个储存库对应于多种语言。
[0697] 以上参考图14描述的操作任选地由图1-图4、图6A-图6B和图7A-图7C描绘的部件来实现。例如,过程1400的操作可由设备104、200和600以及数字助理700来实现。本领域的普通技术人员会清楚地知道如何基于在图1-图4、图6A-B和图7A-C中所描绘的部件来实现其他过程。
[0698] 根据一些具体实施,提供一种计算机可读存储介质(例如,非暂态计算机可读存储介质),该计算机可读存储介质存储供电子设备的一个或多个处理器执行的一个或多个程序,该一个或多个程序包括用于执行本文所述方法或过程中的任一个的指令。
[0699] 根据一些具体实施,提供了一种电子设备(例如,便携式电子设备),该电子设备包括用于执行本文所述的方法和过程中的任一者的装置。
[0700] 根据一些具体实施,提供了一种电子设备(例如,便携式电子设备),该电子设备包括处理单元,该处理单元被配置为执行本文所述的方法和过程中的任一者。
[0701] 根据一些具体实施,提供了一种电子设备(例如,便携式电子设备),该电子设备包括一个或多个处理器和存储用以由一个或多个处理器执行的一个或多个程序的存储器,该一个或多个程序包括用于执行本文所描述的方法和过程中的任一者的指令。
[0702] 出于解释的目的,前面的描述是通过参考具体实施方案来描述的。然而,上面的例示性论述并非旨在是穷尽的或将本发明限制为所公开的精确形式。根据以上教导内容,很多修改形式和变型形式都是可能的。选择并描述这些实施方案是为了最好地解释这些技术的原理及其实际应用程序。本领域的其他技术人员由此能够最好地利用这些技术以及具有适合于所预期的特定用途的各种修改的各种实施方案。
[0703] 虽然参照附图对本公开以及示例进行了全面的描述,但应当注意,各种变化和修改对于本领域内的技术人员而言将变得显而易见。应当理解,此类变化和修改被认为被包括在由权利要求书所限定的本公开和示例的范围内。
[0704] 如上所述,本公开技术的一个方面在于采集和使用得自各种来源(例如,输入文档,诸如用户正在阅读的文章)的数据,以改进向用户递送其可能感兴趣的启发内容或任何其他内容(例如,提供查询建议)。本公开预期,在一些实例中,这些所采集的数据可包括唯一地识别或可用于联系或定位特定人员的个人信息数据。此类个人信息数据可包括人口数据、基于位置的数据、电话号码、电子邮件地址、家庭地址或任何其他识别信息。
[0705] 本公开认识到在本公开技术中使用此类个人信息数据可用于使用户受益。例如,该个人信息数据可用于递送用户较感兴趣的目标内容。因此,使用此类个人信息数据使得能够对所递送的内容进行有计划的控制。此外,本公开还预期个人信息数据有益于用户的其他用途。
[0706] 本公开还设想负责此类个人信息数据的收集、分析、公开、传输、存储或其他用途的实体将遵守已确立的隐私政策和/或隐私做法。具体地,此类实体应当实行并坚持使用被公认为满足或超出对维护个人信息数据的隐私性和安全性的行业或政府要求的隐私政策和实践。例如,来自用户的个人信息应当被收集用于实体的合法且合理的用途,并且不在这些合法用途之外共享或出售。另外,此类收集应当仅在用户知情同意之后进行。另外,此类实体应采取任何所需的步骤,以保障和保护对此类个人信息数据的访问,并且确保能够访问个人信息数据的其他人遵守他们的隐私政策和程序。另外,这种实体可使其本身经受第三方评估以证明其遵守广泛接受的隐私政策和实践。
[0707] 不管前述情况如何,本公开还预期用户选择性地阻止使用或访问个人信息数据的实施方案。即本公开预期可提供硬件元件和/或软件元件,以防止或阻止对此类个人信息数据的访问。例如,就广告递送服务而言,本公开技术可被配置为在注册服务期间允许用户“选择加入”或“选择退出”参与对个人信息数据的收集。又如,用户可选择不为目标内容递送服务提供位置信息。再如,用户可选择不提供精确的位置信息,但准许传输位置区域信息。
[0708] 因此,虽然本公开广泛地覆盖了使用个人信息数据来实现一个或多个各种所公开的实施方案,但本公开还预期各种实施方案也可在无需访问此类个人信息数据的情况下被实现。即,本公开技术的各种实施方案不会由于缺少此类个人信息数据的全部或一部分而无法正常进行。例如,可通过基于非个人信息数据或绝对最小量的个人信息诸如与用户相关联的设备所请求的内容、对内容递送服务可用的其他非个人信息或公开可用信息来推断偏好,从而选择内容并递送至用户。
[0709]
[0710]
[0711]
[0712]
[0713]
[0714]
[0715]
[0716]
[0717]
[0718]
[0719]
[0720]
[0721]
[0722]
[0723]
[0724]
[0725]
[0726]
[0727]
[0728]
[0729]
[0730]
[0731]
[0732]
[0733]
[0734]
[0735]
[0736]
[0737]
[0738]
[0739]
[0740]
[0741]
[0742]
[0743]
[0744]
[0745]
[0746]
[0747]
[0748]
[0749]
[0750]
[0751]
[0752]
[0753]
[0754]
[0755]
[0756]
[0757]
[0758]
[0759]
[0760]
[0761]
[0762]
[0763]
[0764]
[0765]
[0766]
[0767]
[0768]
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈