首页 / 生成情景搜索建议

生成情景搜索建议实质审查 发明

技术领域

[0002] 本说明书涉及生成建议的搜索查询。

相关背景技术

[0003] 一般地,用户可以通过向搜索引擎输入查询来请求信息。搜索引擎可以处理查询并且可以响应于查询提供信息用于输出给用户。

具体实施方式

[0030] 本说明书描述用于使用来自用户设备的情景信息(例如,屏幕捕获信息)来生成建议的请求(例如,建议的语音请求或语音命令)的系统。建议的请求可以用于使用户熟悉在用户设备上可用的个人数字助理的附加功能,例如当与个人数字助理沟通时使用指代在用户设备上显示的内容的代词的可能性。
[0031] 图1是示意了用于响应于接收调用数字助理的用户输入而提供建议的搜索请求的系统100的示例的图。系统100包括用户设备104。用户设备104包括分析模块110、词语识别器模块120、语义模型130、排序模块140和搜索查询生成器模块150。用户设备104可以通过网络108与一个或多个服务器106通信。该图示出了步骤(A)到(G),步骤(A)到(G)示意了数据流并且可以以所示意的顺序或不同的顺序进行。
[0032] 用户设备104可以是计算设备,例如,移动电话、智能电话、个人数字助理(PDA)、音乐播放器、电子书阅读器、平板计算机、可穿戴计算设备、膝上型计算机、台式计算机或其他便携式或固定计算设备。用户设备104可以具有麦克风、键盘、触摸屏或使得用户102能够向与用户设备104提供输入的其他接口。
[0033] 用户设备104包括数字助理功能,例如作为数字助理工作并且为用户设备104的用户102执行任务或服务的计算机程序。例如,数字助理功能可以基于接收到的用户输入、位置感知和从各种在线资源访问的信息(例如,天气或交通状况、新闻、用户日程或零售价格)来执行任务或服务,例如回答用户102的问题或进行推荐。在一些实施方式中,数字助理功能可以访问信息(例如,超文本信息)的大的联网的数据库,并且使用软件代理(agent)以辅助信息搜索。数字助理通常被配置为接受来自用户的各种形式的输入,例如语音输入和打字的输入。类似地,数字助理可以提供各种形式的输入,例如图形用户界面和合成语音或文本到语音输出。
[0034] 参考图1,在操作(A)期间,用户设备104显示用户界面(UI)112。例如,用户设备104可以显示安装或以其他方式在用户设备104上运行的应用。如图1所示,用户设备104显示UI 112,UI 112包括显示与新闻报道相关的内容的浏览器。如下所述,用户设备104被配置为提供数字助理功能。数字助理功能可以是用户设备104的操作系统、用户设备104的应用或其他软件的一部分。在一些实施方式中,数字助理功能与在用户设备104上显示的应用分离,并且数字助理功能可以与用户设备104上的任何第三方应用或接口一起使用。
[0035] 在操作(B)期间,用户设备104的用户102提供调用用户设备104的数字助理功能的输入。调用用户设备104的数字助理功能的所提供的输入可以包括:按压用户设备104的主屏幕按键以延续的时间段、按压用户设备104的屏上(on‑screen)按键、选择或突出显示屏幕上可见的词语、使用在用户设备104上安装的应用来调用数字助理功能、说出热词来启动数字助理功能、或提供其他用户输入。如图1中所示,用户设备104的用户102通过按压在用户设备104的UI 112上显示的屏上按键来调用用户设备104的数字助理功能。
[0036] 在操作(C)期间,分析模块110接收对UI编码的数据并分析UI以捕获UI的情景信息。分析模块110可以响应于用户102向用户设备104提供调用用户设备104的数字助理功能的输入而捕获UI的情景信息。分析模块110可以使用获得屏幕信息的系统支持的方法(例如,从用户设备104的帧缓冲器请求数据)来捕获UI的情景信息。
[0037] UI的捕获的情景信息可以包括可见的屏上信息,例如在数字助理被调用时在屏幕上显示的内容的屏幕快照或位图。例如,如图1所示,UI的捕获的情景信息可以包括显示与新闻报道相关的内容的浏览器的位图。还可以获得其他类型的屏幕数据。例如,分析模块110可以针对在屏幕上显示的文本向用户设备104的操作系统提交请求。除了接收指示可见文本的数据之外,分析模块110可以接收指示文本的位置、布置和格式化的数据。
[0038] UI的捕获的情景信息还可以包括离屏(off‑screen)信息,例如在UI的隐藏的“抽屉(drawer)”中的信息,例如,当前不可见但是将会显示在屏幕的左/右/上/下滑动或滚动视图中的内容。例如,UI的捕获的情景信息可以包括在用户设备104上的浏览器中显示的网页中可用的屏上和离屏信息。作为另一示例,UI的捕获的情景信息可以包括与在用户设备104上运行的即时消息服务中的多个公开会话(open conversation)相关的信息,即使公开会话中的一个或多个已经被最小化。
[0039] 分析模块110还可以例如从日志、从数据缓存或通过与一个或多个服务器106通信,捕获相关于与用户设备104的先前用户交互的UI的情景信息。例如,分析模块110可以访问与由用户102输入到用户设备104的先前语音搜索查询相关的信息。分析模块可以分析先前语音搜索查询以捕获UI的情景信息,例如,当用户最后提交了特定类型或结构的语音搜索查询时,与用户有可能提交的语音搜索查询的类型相关的信息,或提交的语音搜索查询是否成功。如果用户选择查询结果中的一个,则查询可以被视为成功,而处理被用户取消或用户没有选择任何结果的查询可以被视为不成功。
[0040] 在一些实施方式中,UI的情景信息还可以包括与其他设备因素相关的情景信息,例如,用户设备104的当前位置、用户设备104的连接性(例如,是否存在网络连接、存在什么类型的连接或可用什么速度的连接)、设备语言、用户当前登录到其中的应用或是否计量用户设备的带宽。
[0041] 在操作(D)期间,词语识别器模块120从分析模块110接收表示捕获的情景信息的数据,并且分析该数据以识别UI中显示的一个或多个词语或实体。例如,词语识别器模块120可以对捕获的屏上图像(例如,屏幕快照或帧缓冲器数据)执行光学字符识别(OCR)以确定UI上显示的文本。词语识别器模块120还可以使用OCR来识别UI的语言或将所确定的文本的一些部分翻译成其他语言。在一些实施方式中,如所示的,这种OCR处理由用户设备104本地执行。当由用户设备104提供文本数据时,词语识别器模块120可以处理接收到的文本数据以确定UI上可见或在UI的隐藏元素中的各个字词和短语。在一些实施方式中,词语识别器模块120可以与一个或多个服务器106通信并且使用基于服务器的OCR来确定UI上显示的文本或识别文本的语言。在一些实施方式中,可以使用图像识别来确定UI中图像的文本描述或标注。例如,用户设备104可以将屏幕快照中的一些或全部发送到服务器进行图像处理以确定描述照片或其他图形的元素的文本。
[0042] 例如,词语识别器模块120可以对UI 112中显示的新闻报道执行OCR,或从用户设备104的渲染子系统接收文本数据,并识别包括“Usain Bolt”、“World Championships”或“Justin Gatlin”的一个或多个词语。作为另一示例,词语识别器模块120可以对包括在用户设备104的电话簿中保存的联系人的联系人详情的捕获的屏上图像执行OCR并且识别联系人的姓名,例如“Lisa Smith”。
[0043] 作为另一示例,词语识别器模块120可以对捕获的屏上图像执行图像识别以识别UI中显示的一个或多个词语。例如,词语识别器模块120可以对UI 112中显示的新闻报道中包括的图像执行照片识别(photo recognition)并基于对图像中的一个或多个对象或实体进行识别而识别UI中显示的一个或多个词语。
[0044] 词语识别器模块120还可以识别所识别的一个或多个词语的风格和关联特性。例如,词语识别器模块120可以确定与所识别的一个或多个词语中的每一个关联的风格或格式化特性,例如,所识别的词语是作为文本显示在UI上的标题中还是在所附文本的正文中、所识别的词语是以比UI中的文本的其他部分相比更小还是更大的字号作为文本被显示、所识别的词语是显示在UI中包括的在中心还是大图像中、或所识别的词语是作为中心还是大的特征被显示在UI中包括的图像内。在一些实施方式中,词语识别器模块120可以确定词语的边框以确定UI上词语占据的尺寸或面积。如将在下面进一步讨论地,风格和格式化信息可以用于帮助确定所识别的词语中的哪一个是最重要的或用户最感兴趣的。
[0045] 在操作(E)期间,语义模型130从词语识别器模块120接收表示所识别的一个或多个词语的数据并且向所识别的一个或多个词语指派分类。例如,对于一个或多个识别的词语,语义模型130可以指派来自多个实体类型中的对应实体类型,例如物理位置、人名、餐馆、著名地标、名人或食物。以这种方式,语义模型130可以确定每个词语表示的项目的类型。
[0046] 在一些实施方式中,语义模型130可以使用知识图谱(knowledge graph)向周知的词语或实体指派特定分类,例如名人的姓名或著名地标。在其他实施方式中,语义模型130可以向模糊或所知较少的词语或实体指派通用分类,例如类别。例如,词语“Lisa Smith”可能不为语义模型130所知或识别,但是两个连续首字母大写的字词的模式指示该词语是人名。虽然识别具体的实体类型或类别可以是优选的,但是在一些情况下,简单地识别词语描述某实体可以就足够了。例如,即便某个词语“”的类别或意思是未知的,但是仅能够识别感兴趣的词语就会允许系统稍后建议查询,例如,“告诉我关于的更多信息”。当知道更多语义信息时,可以生成更具体和有用的查询。语义模型130可以存储在用户设备104上并在用户设备104上整体运行,所以可以进行开发以取得尺寸、处理时间和输出质量的适当折衷。语义模型130可以包括信息以识别文本中的实体,该信息指示特定的频繁使用的实体和对应的实体类别和/或通用模式。
[0047] 在一些情况下,语义模型130可以针对识别的词语选择多个词语或实体类型。例如,语义模型130可以接收表示所识别的词语“Usain Bolt”的数据并且将词语“Usain Bolt”分类为名人和人名。在其他情况下,语义模型130可以不向识别的词语指派分类,例如,如果所识别的词语不被识别为属于词语类型或种类。
[0048] 在一些实施方式中,语义模型130可以确定与所识别的一个或多个词语中的每一个关联的属性,例如,高度、长度、年龄、速度或成本。例如,词语“Usain Bolt”可以被分类为名人或跑步运动员,并且某些属性可以与这些种类的成员关联。例如,语义模型130可以确定包括年龄、高度和平均跑步速度的与“Usain Bolt”关联的属性。作为另一示例,语义模型130可以将词语“The Golden Gate Bridge”分类为结构,并且可以确定“The Golden Gate Bridge”和其他结构一样具有包括长度和年龄的属性。
[0049] 在操作(F)期间,排序模块140接收表示所识别的一个或多个词语、其指派的分类以及其被识别的风格和关联属性的数据。排序模块140对所识别的一个或多个词语排序。一般地,排序可以用于确定最重要或最有可能表示用户设备104上的UI的话题的词语。此外,排序可以指示哪些词语最有可能表示能够被用户清楚地理解并且会促进生成建议的查询的实体。在一些实施方式中,排序模块140可以至少部分地基于向所识别的词语指派的分类来对所识别的一个或多个词语排序。例如,排序模块140可以丢弃不被指派分类的所识别词语或对其赋予较低排序。另一方面,具有被指派的分类的词语或具有与其关联的属性的词语可以被排序较高。一些分类或属性可以比其他分类或属性权重更高。例如,被排序为表示人的词语可以比表示位置的词语排序更高。
[0050] 在一些实施方式中,排序模块140可以至少部分地基于所识别的一个或多个词语的被确定的风格或格式化特性来对所识别的一个或多个词语排序。例如,排序模块140可以将作为文本显示在UI上的标题中的词语排序得比显示在所附文本的正文中的词语更高,例如,排序模块140可以将UI 112中的词语“Usain Bolt”排序得比词语“Justin Gatlin”更高,因为词语“Usain Bolt”出现在UI 112中示出的新闻报道的标题中。作为另一示例,排序模块140可以将UI上以黑体显示的词语排序得比不以黑体显示的词语更高。
[0051] 在一些实施方式中,排序模块140可以至少部分地基于所识别的词语在UI中被显示的尺寸来对所识别的一个或多个词语排序。例如,排序模块140可以将作为文本以较大的字体显示的所识别词语排序得比以较小的字体显示的所识别词语更高,或者可以将作为图像内的中心或大特征而被显示的所识别词语排序得比作为图像内较小的特征而被显示的词语更高,例如,排序模块140可以将UI 112中的词语“Usain Bolt”排序得比词语“Justin Gatlin”更高,因为词语“Usain Bolt”看上去字体比词语“Justin Gatlin”更大。
[0052] 在一些实施方式中,排序模块140可以至少部分地基于所识别词语在屏幕上被显示的频率来对所识别的一个或多个词语排序。例如,排序模块140可以将在UI上被显示多次的所识别词语排序得比在UI上被显示一次的所识别词语更高,例如,排序模块140可以将UI 112中的词语“Usain Bolt”排序得比词语“World Championships”更高,因为词语“Usain Bolt”在UI 112中被显示多次,而词语“World Championships”仅被显示一次。
[0053] 在一些实施方式中,排序模块140可以至少部分地基于针对每个相应的词语可以被生成的动作的数量或质量来对所识别的一个或多个词语排序。例如,排序模块140可以将与较高数量的动作关联的所识别词语排序得比与较低数量的动作关联的所识别词语更高。例如,指示用户的联系人列表中的人的词语可以具有发送文本消息、发起电话呼叫、发送电子邮件的关联动作。表示名人的词语可以具有提交关于该名人的不同属性的查询的关联动作。
[0054] 在一些实施方式中,排序模块140可以至少部分地基于与被提供且被用户响应的所识别词语相关的先前建议的测度来对所识别的一个或多个词语排序。例如,排序模块140可以将被先前呈现给用户并且被响应的建议的搜索请求中包括的所识别词语排序得比未被先前呈现给用户或被呈现给用户但未被响应的所识别词语更高。
[0055] 在操作(G)期间,查询生成器模块150从排序模块140接收表示被排序的一个或多个所识别词语及其分类的数据。查询生成器模块150使用所识别的一个或多个词语并且基于其分类来确定建议的查询或请求。例如,查询生成器模块150可以基于最高排序的所识别词语及最高排序的所识别词语的分类来确定建议的查询,例如,最高排序的所识别词语可以包括被分类为建筑的词语“The Gherkin”并且可以确定比如“Where is The Gherkin?”或“How tall is The Gherkin?”的建议的查询。
[0056] 在一些实施方式中,查询生成器模块150确定所识别词语的代词并且生成包括指代该词语的代词的请求的查询。例如,查询生成器模块150可以访问指示多个实体的代词的映射数据,例如在用户设备104上本地地访问或使用一个或多个服务器106访问,并且选择映射数据将其指示为与实体对应的代词。例如,查询生成器模块150可以确定所识别词语“Usain Bolt”的代词“he”或“his”,或者可以确定所识别词语“World Championships”的代词“it”。查询生成器模块150然后可以生成包括指代词语“Usain Bolt”的代词的建议的查询,例如,“What is his average running speed?”、“How tall is he?”或“How old is he?”。
[0057] 查询生成器模块150可以基于附加决策或因素来确定建议的查询或请求。例如,查询生成器模块150可以确定针对所识别词语类型的多个问题中的哪一个最适合UI上显示的其他字词或图像的情景。作为另一示例,查询生成器模块150可以确定哪个建议的查询最适合用户的搜索或浏览历史。在一些实施方式中,某些查询格式或查询类型可以与某些词语分类关联。例如,一组查询可以用于涉及人,另一组查询可以用于涉及位置,等等。
[0058] 作为另一示例,查询生成器模块150可以确定用户之前是否使用了涉及屏上情景的搜索查询或请求。作为另一示例,查询生成器模块150可以确定存在单个还是多个所识别词语并且确定不模糊地涉及多个所识别词语(例如,不包括可能指代多个所识别词语的代词)的建议的查询。作为另一示例,尽管受欢迎的连锁餐馆的名称可以是所识别词语,但是如果餐馆的特定位置不在UI中被指定或者如果连锁的多个不同位置被指示,则该名称可以被视为模糊。
[0059] 在一些实施方式中,查询生成器模块150可以通过识别与所识别词语的分类关联的一个或多个查询类型(例如,预设查询、展现某些模式或语法的查询)来确定建议的查询或请求。例如,被分类为著名地标的词语可以与包括“Directions to”或“opening times”的查询类型关联,或者被分类为人名的词语可以与包括“Call”或“How old is?”的查询类型关联。查询生成器模块150然后可以例如基于所获得的情景信息从一个或多个查询类型选择特定查询类型,并且确定该特定查询类型的建议的查询。在一些情况下,所确定的建议的查询可以包括建议的请求以发起与人的通信,例如,“call Lisa”或“call her”,或导航到某位置,例如,“Directions to Berlin”或“How do I get there?”。在一些情况下,所确定的建议的查询可以包括关于与所识别词语关联的属性的问题,例如,“How tall is?”或“How old is?”。如上所述,在一些实施方式中,建议的查询可以包括指代对应的所识别词语的代词。
[0060] 在一些实施方式中,选择建议的请求和该请求涉及的词语或实体以减少或避免潜在的混淆。例如,如果UI上显示的词语包括两个人,并且确定这两个人为男性,则例如“tell me more about him”的查询会是模糊的。因此,查询生成器模块150可以评估已经被识别的各个词语以确定多个词语是否会使用相同的代词。如果存在冲突,例如,多个实体被相同的代词指代,则查询生成器模块150可以选择使用不同代词的不同词语,即便其具有较低排序。作为替代,查询生成器模块150可以使用最高排序的词语但是使用实际的词语而非代词。例如,如果识别了“Usain Bolt”和“Justin Gatlin”,并且代词“him”被确定为适用于这两个人,则不是建议“what is his top speed”,查询生成器模块150而是可以建议(i)“what is Usain Bolt’s top speed”或(ii)“when did it happen”,例如涉及“World Championships”而非所提及的两个跑步运动员。
[0061] 在一些实施方式中,查询生成器模块150可以通过结合用户采取的过去动作或用户已经访问的地点来生成建议的请求。例如,查询生成器模块可以确定用户已经执行了导航动作而不是方向动作,并且他们具有屏幕上的汉堡图像,则生成“directions to”的建议的请求。
[0062] 在操作(H)期间,将建议的请求提供或显示在用户设备104的UI中,例如以卡114的形式。如上面参考阶段(B)所述,可以响应于调用数字助理的用户输入来在UI中显示建议的请求。在一些实施方式中,可以将多个建议的请求提供给用户设备104的UI进行显示。在一些实施方式中,建议的请求被显示在UI的仅一部分上,留下UI的一些区域供用户看到建议的请求中所涉及的情景,例如,应用的内容。
[0063] 可选地,可以将与建议的请求中的一个或多个关联的搜索结果页面提供给用户设备的UI。例如,在建议的请求包括建议的搜索查询(例如,“How old is she?”或“What is his average running speed?”)的情况下,用户设备104可以显示与第一建议的搜索查询关联的搜索结果页面。下面参考图2A‑2C说明示例用户界面。
[0064] 在用户设备104的UI中提供或显示的建议的请求可以用于训练用户102充分利用在用户设备104上安装的数字助理的功能。例如,查询生成器模块150可以确定在与数字助理沟通时最初对于用户不是有利的但是示出了使用代词的可能性的建议的请求。例如,用户设备104可以确定用户已经先前响应了与呼叫当用户调用用户设备的数字功能时其联系人信息被显示的联系人有关的建议的请求,例如,诸如“call Lisa”或“call Dave”的建议的请求。为了示意在与数字助理沟通时使用代词的可能性,用户设备104可以因此生成建议的请求“call her”或“call him”。以这种方式,系统可以建议各种不同的语音命令或其他请求,而不仅仅是请求信息的查询。
[0065] 图2A是示意用户设备204的示例用户界面200的图。示例用户界面200是显示用户设备204(例如,智能电话)上运行的应用的用户设备204的代表性用户界面。在该示例中,用户设备204上运行的应用包括显示与新闻报道有关的内容的浏览器。浏览器包括几个特征,例如用户设备204的用户202查看的当前报道的标题206、与报道有关的图像和文本的正文212。用户界面200的特征展现了格式化特性和风格。例如,新闻报道的标题206是大的加黑字体。文本的正文是较小的标准字体。图像208中心地显示在用户界面200内并且包括至少两个可见对象,即两个跑步运动员。
[0066] 示例用户界面200还包括用于调用用户设备204的数字助理功能的屏上按键216。屏上按键是用于调用数字助理功能的代表性方法,并且如参考图1在上面所述,可以使用其他方法来调用数字助理功能。用户202可以通过按压214或选择屏上按键216来启动数字助理功能。
[0067] 图2B是示意示例用户界面210的图。例如,可以响应于启动用户设备204的数字助理功能而显示示例用户界面210。
[0068] 示例用户界面210包括叠加在上面参考图2A所述的用户界面200上的建议卡218。建议卡218是被显现为用户设备204上的像素的代表性在视觉上吸引人的建议卡。建议卡
218包括建议的查询“what is his average running speed?”。在一些实施方式中,用户设备204也可以或替代地向用户202提供听觉上的建议的查询。
[0069] 该建议的查询是基于在调用数字助理功能时在用户界面中显示的内容(例如,基于在用户界面200中显示的内容)由用户设备生成的建议的请求。例如,如图2B所示,用户设备可以已经获得指示响应于接收调用用户设备的数字助理功能的输入214在用户设备204的屏幕上显示的内容的屏幕数据,例如,屏幕数据指示与新闻报道“Usain Bolt beats rival in World Championships200m final”有关的内容。用户设备204可以已经确定在获得的屏幕数据中提及的实体“Usain Bolt”,并且可以已经将实体“Usain Bolt”分类为人名、名人或体育运动员。用户设备204可以已经基于所确定的分类以及其他因素确定涉及实体“Usain Bolt”的建议的请求,并且已经提供所确定的建议的请求以显示在建议卡218中。下面参考图3更详细地描述响应于接收调用数字助理的用户输入来生成建议的请求。
[0070] 如建议卡218中所示,建议的请求包括代词“his”。代词“his”指代如用户界面200和210中提及的实体“Usain Bolt”。例如,用户设备204可以已经访问映射数据,映射数据将代词“his”指示为与实体“Usain Bolt”对应。下面参考图3更详细地描述确定所识别实体的代词。
[0071] 图2C是示意示例用户界面220的图。例如,可以响应于接收语音查询228而显示示例用户界面220。
[0072] 可以响应于读出在建议卡218中显示的建议的请求而由用户202提供语音查询228。例如,用户202可以已经调用用户设备204的数字助理功能,并且注意到具有建议的查询“What is his average speed?”的建议卡218。有可能用户202在调用数字助理功能时正在阅读用户界面200中显示的新闻报道,或者在调用数字助理功能之前最近一直在阅读该新闻报道。因此,用户可以确定建议的查询“What is his average speed”涉及Usain Bolt的平均奔跑速度。如图2C所示,用户202发现该建议的查询有趣且吸引人,并且使用数字助理基于建议的查询启动搜索。
[0073] 响应于接收搜索请求228,用户设备向搜索引擎提交搜索查询“What is Usain Bolt’s average running speed?”并且显示对应的搜索结果224和226。用户设备还显示了与实体“Usain Bolt”有关的替代的建议的查询,例如“Usain Bolt age”和“Usain Bolt height”。
[0074] 图3呈现了用于响应于接收调用数字助理的用户输入而提供搜索请求的示例过程300。该过程可以由一个或多个计算设备执行。该一个或多个计算设备可以包括客户端设备、服务器系统或客户端设备和服务器系统的组合。在一些实施方式中,过程300的动作可以仅由客户端设备或由服务器系统执行。作为附加示例,计算设备可以是移动电话、智能电话、个人数字助理(PDA)、音乐播放器、电子书阅读器、平板计算机、可穿戴计算设备(例如,手表、眼镜或项链)、膝上型计算机、台式计算机或其他便携式或固定计算设备。作为附加示例,计算设备可以是设备的中央处理单元(CPU)、CPU内特定的处理核心等。例如,过程300可以响应于接收在用户设备104处用户102调用数字助理的用户输入由系统用户设备104或由用户设备104与服务器系统106配合来执行。
[0075] 系统接收调用计算设备的数字助理功能的用户输入(步骤302)。例如,系统可以接收用户输入,包括:按压计算设备的主屏幕按键以持续的长时间段、按压计算设备的供选择的屏上按键、选择或突出显示计算设备的屏幕上可见的词语、使用在计算设备上安装的应用来调用数字助理功能、说出热词来启动数字助理功能或其他用户指示的输入。
[0076] 系统获得指示在计算设备的屏幕上显示的内容的屏幕数据(步骤304)。例如,获得的屏幕数据可以包括指示在计算设备上打开的应用中显示的内容的数据,例如,指示联系人“Lisa Smith”的联系人信息的数据。
[0077] 系统确定在由屏幕数据指示的内容中提及的实体的分类(步骤306)。在一些实施方式中,系统通过从多个实体类型当中选择实体的实体类型来确定在由屏幕数据指示的内容中提及的实体的分类。例如,系统可以将实体“Lisa Smith”分类为人名,或将实体“The Gherkin”分类为建筑。
[0078] 在一些实施方式中,系统可以使用对屏幕数据的光学字符识别来识别在计算设备的屏幕上显示的一个或多个词语或实体。在这样的情况下,系统可以通过确定所识别的实体或词语的语音分类来确定所识别的实体或词语的分类。在一些情况下,系统可以识别多个不同词语,并且可以对所识别的多个不同词语排序。例如,系统可以通过至少部分地基于下述对多个不同词语排序来对所识别的多个不同词语排序:(i)向所述多个不同词语指派的分类,(ii)所述多个不同词语被显示的尺寸,(iii)所述多个不同词语在所述屏幕上被显示的频率,(iv)对于所述多个不同词语能够被生成的动作的数量,或(v)与被提供且被用户响应的多个不同词语相关的先前建议的测度。
[0079] 在一些实施方式中,系统可以进一步确定由屏幕数据指示的多个不同词语的文本格式化特性,例如用于多个不同词语中的每一个的字体大小,多个不同词语中的每一个在屏幕内的位置或多个词语是以黑体还是斜体呈现。在这些情况下,系统可以至少部分地基于所确定的格式化特性来对所识别的多个不同词语排序。例如,系统可以将屏幕内被定位在更突出位置的词语或以更大或加黑字体显示的词语排序得比不处于突出位置或以标准字体大小显示的词语高。
[0080] 系统基于所确定的分类确定涉及实体的建议的请求(步骤308)。例如,如参考步骤306在上面所述,在一些实施方式中,系统可以确定涉及与最高排序的词语对应的实体的建议的请求。
[0081] 在一些实施方式中,系统可以通过下述方式确定建议的请求:确定实体的代词,并生成包括涉及由屏幕数据指示的内容中提及的实体的代词的建议的查询。系统可以通过下述方式确定实体的代词:访问指示多个实体的代词的映射数据,并选择映射数据将其指示为与实体对应的代词。例如,系统可以将词语“Lisa Smith”识别为女性人名,并且可以访问将代词“she”或“her”指定用于女性人名的映射数据。作为另一示例,系统可以将实体“The Gherkin”识别为著名建筑,并且可以访问将代词“it”或“that”指定用于建筑的映射数据。系统然后可以使用所确定的代词来生成相应的建议的请求,例如,“Do you want to call her?”、“Send her an SMS”、“How tall is it?”或“How do I get to it?”[0082] 在一些实施方式中,系统可以通过识别与所确定的分类关联的一个或多个查询类型来确定建议的请求,例如,具有特定语法或模式的查询类型,例如,“directions to”或“how old is”,其中可以包括该词语本身或指代该词语的所确定的代词。在一些情况下,查询类型可以包括预设查询,例如“tell me more about it”或“where is it?”。系统可以从一个或多个查询类型选择特定查询类型,并且确定该特定查询类型的建议的查询。例如,系统可以选择查询类型“direct me to”并且针对实体“Berlin”确定建议的查询“direct me to Berlin”或“direct me there”。
[0083] 在一些实施方式中,系统还确定与实体类型关联的一个或多个属性,并且确定询问所述属性中的一个的查询。例如,系统可以确定属性高度和年龄可以与著名建筑关联,并且可以确定询问这些属性中的一个的查询,例如“how tall is The Gherkin?”或“How old is it?”。
[0084] 在一些实施方式中,系统可以确定发起与人的通信或导航到位置的建议的请求。例如,所确定的建议的请求可以包括发起与人(例如,用户设备的电话簿上的联系人或餐馆雇员)的呼叫的请求,或发起发送电子邮件或SMS的请求。作为另一示例,所确定的建议的请求可以包括将用户导航到位置(例如,在计算设备的屏幕上显示的内容中提及的实体)的请求。
[0085] 在一些实施方式中,系统可以通过结合用户已经采取的过去动作或用户已经访问的地点来生成建议的请求。例如,系统可以确定用户已经执行了导航动作而不是方向动作,并且他们具有屏幕上的汉堡图像,然后生成“directions to”的建议的请求。
[0086] 系统响应于接收调用数字助理功能的用户输入而提供建议的请求(步骤S310)。例如,如图2B所示,系统可以以在计算设备的屏幕上显示的可视卡的形式提供建议的请求。可选地,可以将与建议的请求中的一个或多个关联的搜索结果页面显示在计算设备的屏幕上。例如,如图2C所示,在建议的请求包括建议的搜索查询(比如,“How old is she?”或“What is his average running speed?”)的情况下,计算设备可以显示与建议的搜索查询关联的搜索结果页面。在一些实施方式中,系统可以替代地或额外地提供以听觉上的语音请求形式的建议的请求。
[0087] 在一些实现方式中,系统可以确定屏幕提及仅单个实体或特定实体类型的仅单个实体;并且可以响应于确定仅单个实体或特定实体类型的仅单个实体来提供建议的请求。
[0088] 本说明书中描述的实施例和所有功能操作可以在数字电子电路或在计算机软件、固件或硬件(包括本说明书中公开的结构以及其结构等效物)或在它们中的一个或多个的组合中实现。实施例可以被实现为一个或多个计算机程序产品,即在计算机可读介质上编码以供数据处理装置执行或控制数据处理装置的操作的计算机程序指令的一个或多个模块。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、实现机器可读传播信号的物质的组成物或它们中一个或多个的组合。术语“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,举例来说包括可编程处理器、计算机或多处理器或计算机。除了硬件之外,所述设备还可以包括代码,该代码创建所针对的计算机程序的执行环境,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中一种或多种的组合的代码。传播信号是人为地生成的信号,例如,机器生成的电、光或电磁信号,其被生成以将信息编码用于传输到合适的接收器设备。
[0089] 计算机程序(也被称为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言编写,包括编译或解释型语言,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序或其他适用于计算环境中的单元。计算机程序不必与文件系统中的文件对应。程序可以存储在保持其他程序或数据的文件(例如,在标记语言文件中存储的一个或多个脚本)的一部分中、在专用于所针对的单个文件中或在多个协作的文件(例如,存储一个或多个模块、子程序或代码的一些部分的文件)中。计算机程序可以部署为在一个或多个计算机上执行,这些计算机位于一个站点或跨多个站点分布并通过通信网络连接。
[0090] 本说明书中描述的过程和逻辑流可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,从而通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流也可以由特殊目的的逻辑电路(例如FPGA(现场可编程门阵列)或ASIC(专用集成电路))来执行,并且设备可以被实现为特殊目的的逻辑电路或ASIC。
[0091] 举例来说,适于执行计算机程序的处理器包括通用和专用微处理器、以及任何类型的数字计算机的任何一种或多种处理器。通常,处理器将从只读存储器或随机存取存储器或二者接收指令和数据。
[0092] 计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器装置。一般来说,计算机将可以包括用于存储数据的一个或多个大容量存储装置(例如,磁盘、磁光盘或光盘)或可以操作性地联接一个或多个大容量存储装置以从其接收数据或向其传输数据或者接收和传输数据二者。然而,计算机不必具有这样的设备。另外,计算机可以嵌入在另一设备(仅列出几个,例如,平板计算机、移动电话、个人数字助理(PDA)、移动音频播放器、全球定位系统(GPS)接收器)中。适用于存储计算机程序指令和数据的计算机可读介质可以包括所有形式的非易失性存储器、介质和存储设备,举例来说,包括半导体存储设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及CD‑ROM和DVD‑ROM盘。处理器和存储器可以由特殊目的的逻辑电路来补充或可以结合到其中。
[0093] 为了提供与用户的交互,实施例可以在具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示)监视器)及键盘和指向设备(例如,鼠标或轨迹球)的计算机上实现,用户可以通过键盘和指向设备向计算机提供输入。也可以使用其他种类的装置来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。
[0094] 实施例可以在计算系统中实现,该计算系统包括后端组件(例如,作为数据服务器),或包括中间件组件(例如,应用服务器),或包括前端组件(例如,具有图形用户界面或网页浏览器的客户端计算机,用户可通过其与实施方式进行交互),或者一个或多个这样的后端、中间件或前端组件的任意组合。可以通过数字数据通信的任意形式或介质(例如,通信网络)将系统的组件互连。通信网络的实例包括局域网(LAN)和广域网(WAN),例如因特网。
[0095] 计算系统可以包括客户端和服务器。一般来说,客户端和服务器彼此远离,并且通常通过通信网络交互。借助于在各个计算机运行并且彼此具有客户端‑服务器关系的计算机程序而形成客户端和服务器的关系。
[0096] 尽管本说明书包含许多细节,但是这些细节不应当被解释为对本公开或请求保护的范围进行限制,而应该被解释为对特定于特定实施例的特征的描述。在本说明书中在不同实施例的背景中描述的某些特征也可以以组合方式实现在单个实施例中。相反,在单个实施方式的情景下描述的各种特征也可以在多个实施方式中单独地实施或在任何合适的子组合中实施。此外,尽管特征可以如上所述描述为在某些组合中起作用并且最初也如此请求,但在一些情况下,来自所请求的组合的一个或多个特征可以从组合中排除,并且所请求的组合可以涉及子组合或子组合的变体。
[0097] 类似地,尽管在附图中以特定顺序描绘了操作,但是这不应当被理解为需要以示出的特定顺序或以相继的顺序来执行这样的操作或者需要执行所有示意的操作来取得合意的结果。在某些实现方式中,多任务和并行处理可以是有利的。另外,在上述实施例中对各种系统部件的分离不应当被理解为在所有实施例中要求这样的分离,而是应当理解,所描述的程序部件和系统可在单个软件产品中被一般地集成在一起或者被封装成多个软件产品。
[0098] 在提及HTML文件的每种情况下,可以替代成其他文件类型或格式。例如,可以用XML、JSON、纯文本或其他类型的文件来替代HTML文件。另外,在提及表或散列表的情况下,可以使用其他数据结构(例如,电子表格、关系数据库或结构化文件)。
[0099] 这样,已经描述了特定实施例。其他实施例在下述权利要求的范围内。例如,在权利要求中记载的动作可以以不同的顺序执行而仍然取得合意的结果。

当前第1页 第1页 第2页 第3页