掌桥专利:专业的专利平台
掌桥专利
首页

移动设备上的模拟超链接

文献发布时间:2023-06-19 12:25:57


移动设备上的模拟超链接

本申请是分案申请,原案的申请号是201680062824.9,申请日是2016年11月17日,发明名称是“移动设备上的模拟超链接”。

相关申请

本申请要求于2015年11月18日提交的名称为“移动设备上的模拟超链接(SIMULATED HYPERLINKS ON A MOBILE DEVICE)”的美国专利申请第14/945,348号的优先权,并且是该美国专利申请的接续案,该美国专利申请通过引用整体并入本文。

技术领域

本公开涉及移动设备上的模拟超链接。

背景技术

由于诸如智能手机和平板电脑的移动设备的使用,用户与移动应用程序的交互不断增加。随着用户从基于网络的浏览器转向使用移动设备,他们往往失去了将数据从一个移动应用程序轻松传输到另一个移动应用程序的能力。一般来说,移动应用程序是单一用途的,并且非常擅长某个特定的事情,但是在移动应用程序之间移动信息可能是麻烦的,并且用户可能不知道哪个应用适合于给定用途,或者甚至不知道何时寻找应用来帮助他们。

发明内容

实施方式为在移动设备上生成的内容提供模拟超链接。模拟超链接可以在接收到来自用户的表示发起操作的意图的动作(例如,长敲击、硬敲击等)之后执行操作或者向用户提供在两个操作之间进行选择的机会。这些操作可以是其他移动应用程序的意图,并且可以基于使用网站到移动应用程序的映射而训练的模拟超链接模型以及基于具有锚标签的抓取的文档的存储库。采用所公开的实施方式的客户端设备从最接近动作位置的内容进行居中选择。居中选择可以包括出现在居中单词的右侧和左侧的固定数量的单词,例如,对于位于最接近动作位置的图像的单词或文本等同物。如果需要,系统可以填充固定数量的单词,例如为了避免使用其他节或段中的单词。居中选择用于为模型提供上下文以选择操作,并从居中选择中进行智能选择以用作操作的参数。系统可以自动执行操作,可以在执行操作之前获得用户批准,或者可以提供两个或更多个操作。

根据本公开的某些方面,移动设备可以包括显示设备、至少一个处理器和存储指令的存储器,所述指令当由所述至少一个处理器执行时,使得所述移动设备执行操作,所述操作包括:响应于检测到对显示在所述显示设备上的内容的动作,生成居中选择;将所述居中选择提供给模拟超链接模型,所述模拟超链接模型被训练成预测给定居中选择的操作,所述操作与移动应用程序的意图相关联;以及发起下述中的至少一项:a)显示用户界面,该用户界面允许对使用所述意图的所述操作的选择,或b)使用所述意图执行所述操作。所述模拟超链接模型还可以被训练成根据居中选择提供智能选择,并且使用智能选择作为意图的参数发起操作。

根据本公开的某些方面,一种方法包括:从文档库识别具有到白名单网站的超链接的一个或多个文档,白名单网站是网站到移动应用程序的映射中的多个网站中的一个;使用一个或多个文档生成模拟超链接模型的正面训练示例,每个正面训练示例具有根据相应文档生成的居中选择、网站、对应于网站的页面排名的权重、和映射到网站的移动应用程序;以及使用正面训练示例来训练模拟超链接模型,以预测给定居中选择的移动应用程序的操作。

根据本公开的某些方面,一种方法包括:响应于检测到模拟超链接指示,从显示在移动计算设备的显示器上的内容生成居中选择;将居中选择提供给模拟超链接模型,模拟超链接模型被训练成预测给定居中选择的操作,该操作与移动应用程序的意图相关联;以及使用该意图来发起操作。

在一个一般方面,具体实施在计算机可读存储设备上的计算机程序产品包括指令,所述指令当由形成在衬底中的至少一个处理器执行时,使得计算设备执行所公开的方法、操作或过程中的任一个。另一个一般方面包括一种系统和/或方法,用于响应于用户动作提取显示在屏幕上的文本,并为位于该动作的位置附近的文本的所选部分提供操作,基本上如结合至少一个附图所示和/或所述,并且根据权利要求中更完整地阐述。

可以实施这里描述的主题的一个或多个实施方式,以便实现以下优点中的一个或多个。作为一个示例,实施方式可以为用户提供在移动应用程序之间无缝传输信息的方式,使得用户能够以极少的精力查找附加信息。作为另一示例,实施方式可以通过建议可以帮助用户找到/处理信息的应用程序来改善用户体验,即使用户可能不知道该应用程序。因此,实施方式帮助用户发现更有效或更受欢迎的工具。作为另一示例,实施方式通过帮助用户更快地执行任务——例如,用户需要做出的手势更少——来改善用户体验。在一些实施方式中,可以为移动设备的用户定制所建议的操作,使得用户更有可能发现所建议的操作有帮助。实施方式还为任何选定文本提供操作,而不仅仅是与个人或公开知识图谱的实体相对应的文本。因此,实施方式的实用性比基于实体的操作建议系统更广泛。实施方式通过预测帮助用户找到关于选择的更多信息的应用程序以及通过使用户能够以来自用户的极少输入导航到该应用程序来改善用户体验。实施方式还提供操作选择的上下文,生成更好或更准确的建议操作,这可以允许以更高精度自动发起操作。这些优点都改善了用户体验。

在附图和下面的描述中阐述了一个或多个实施方式的细节。根据说明书和附图以及权利要求书,其他特征将是显而易见的。

附图说明

图1是示出根据所公开主题的示例系统的框图。

图2A是根据所公开的主题的移动计算设备和响应于动作生成的居中选择的示例显示。

图2B是根据所公开的主题的移动计算设备的示例显示,其具有用于从图2A的居中选择中进行智能选择的建议操作。

图3A是根据所公开的主题的移动计算设备和响应于动作生成的居中选择的另一示例显示。

图3B是根据所公开的主题的移动计算设备的示例显示,其具有用于从图3A的居中选择中进行智能选择的两个建议操作。

图4示出了根据所公开的实施方式的用于响应于与显示在移动计算设备上的内容相关联的动作来建议操作的示例过程的流程图。

图5示出了根据所公开的实施方式的用于生成模拟超链接模型的示例过程的流程图。

图6示出了可用于实施所描述的技术的计算机设备的示例。

图7示出了可用于实施所描述的技术的分布式计算机设备的示例。

各图中相同的附图标记表示相同的元件。

具体实施方式

实施方式包括响应于用户动作自动选择文本并针对所选文本预测或自动执行操作的系统和方法。系统可以从使用基于动作位置的居中选择中获得的智能选择来执行操作。智能选择可以是显示在屏幕上的文本或与显示在屏幕上的图像等效的文本。屏幕上显示的文本或图像不必是现有超链接。换句话说,生成用于显示的文本或图像的应用程序不将操作与文本/图像相关联。相反,不同于通常与跟随超链接的意图相关联的单击动作,该动作会触发分类器,该分类器基于周围上下文预测文本或图像的操作。上下文可以从围绕动作位置的内容导出。上下文可以是居中选择的形式,其包括围绕最接近动作位置的文本(或与图像等效的文本)的文本或填充令牌(padding token)。由分类器预测的操作不是默认动作,例如复制或插入操作,而是基于动作的上下文(例如居中选择)预测的。

系统可以基于居中选择来确定操作,并且可以自动执行操作或者可以要求用户确认操作的执行。该操作可以用于移动应用程序或移动应用程序的类型。该操作可以发起与该操作相对应的移动应用程序的发起,其意图是将来自居中选择的所选部分——例如智能选择——作为参数。意图是移动应用程序支持的操作。搜索意图和共享意图是常见的意图类型。搜索意图允许系统在给定查询参数的情况下链接或激活处于其搜索状态的移动应用程序。系统也可以使用非标准意图。例如,移动应用程序可以在清单文件中指示意图。移动应用程序支持这种非标准意图,但操作系统不一定支持。一般而言,操作可包括可将智能选择作为参数的任何意图。系统可以跨移动设备上使用的所有应用程序运行,使用户体验一致。因此,模拟超链接功能不需要限于特定的移动应用程序。模拟超链接功能也不限于所识别的实体,例如在个人或公共知识库中表示的实体。此外,经由模拟超链接执行的操作可能是针对用户尚未安装的移动应用程序,并且因此可以用作向用户通知有用的移动应用程序的方式。

图1是根据示例实施方式的模拟超链接系统的框图。系统100可以用于响应于用户基于显示在移动设备上的内容的动作来发起操作,即使当该动作是在不是超链接或其他可执行动作的内容上执行时也是如此。该操作可以是用于移动应用程序或复制命令的意图(例如,标准或非标准),或者用户界面,其使得用户能够从两个或更多个操作中进行选择或者安装用户尚未安装在移动设备上的移动应用程序。在一些实施方式中,操作还可以为移动应用程序发起网络镜像。当由操作表示移动应用程序时,移动应用程序可以被称为目标应用程序,并且生成由用户选择的内容的移动应用程序可以被认为是源应用程序。模拟超链接系统提供了一种将内容从源应用程序移动到目标应用程序的方法,除了操作之外,用户不需要输入任何内容。响应于该动作而提供或执行的操作可以基于模型,例如被训练成预测给定居中选择的一个或多个操作的机器学习模型。图1中系统100的示图是客户端-服务器系统,其中一些数据处理发生在服务器110处。然而,也可以使用其他配置和应用。例如,数据处理可以排他地发生在客户端设备150上。在一些实施方式中,客户端设备150的用户可以指示在服务器110处执行部分处理。因此,实施方式不限于所示的确切配置。

模拟超链接系统100可以包括服务器110,服务器110可以是采用多个不同设备形式的一个或多个计算设备,例如标准服务器、一组这样的服务器、或机架服务器系统。例如,服务器110可以跨多个计算设备以分布式方式实施。此外,服务器110可以在个人计算机(例如笔记本计算机)中实施。服务器110可以是如图6所示的计算机设备600或如图7所示的系统700的示例。服务器110可以包括形成在衬底中的一个或多个处理器,其被配置为执行一个或多个机器可执行指令或多个软件、固件或其组合。处理器可以是基于半导体的——也就是说,处理器可以包括可以执行数字逻辑的半导体材料。服务器110还可以包括一个或多个计算机存储器。存储器——例如,主存储器——可被配置为暂时地、永久地、半永久地、或其组合地存储一个或一个以上数据段。存储器可以包括以可由一个或多个处理器读取和/或执行的格式存储信息的任何类型的存储设备。存储器可包括易失性存储器、非易失性存储器、或其组合,并且存储模块或引擎,当由一个或多个处理器执行时,所述模块或引擎执行某些操作。在一些实施方式中,模块可以存储在外部存储设备中并且被加载到服务器110的存储器中。

模拟超链接系统100的模块可以包括模拟超链接引擎120。模拟超链接引擎120可以被配置为基于白名单网站到移动应用程序的映射132生成用于训练模拟超链接模型130的训练示例。白名单网站可以是对执行操作有用的网站。换句话说,网站可以是包括搜索界面并响应于查询提供内容的网站。这种网站的非穷举示例包括购物网站、维基、预约网站、评级网站、旅游网站、票站等。在一些实施方式中,白名单和白名单网站到移动应用程序的映射由人工策划并提供给模拟超链接引擎120。在一些实施方式中,意图(例如,搜索、共享等)可以包括在映射132中。

在一些实施方式中,模拟超链接引擎120(或另一模块)可以生成白名单和映射132。例如,模拟超链接引擎120可以搜索移动应用程序清单136以确定在清单136中提到的网站。这样的清单136通常包括关于应用程序的信息,诸如开发者、图标、描述、版本等。其中一些信息可用于帮助用户决定是否安装应用程序。一些信息可用于其他应用程序开发人员,例如应用程序编程接口(API)和移动应用程序支持的意图。一些移动应用程序可以包括非标准意图,并且这些意图可以在清单136中识别。清单136因此可以包含关于移动应用程序的各种类型的数据,并且有时清单包括对提供相似于移动应用程序的功能的网站的引用。这种网站有时被称为网络镜像。移动应用程序的清单可以由移动应用程序开发者提交到网络商店。模拟超链接引擎120可以将移动应用程序清单136中提到的任何网站视为白名单网站,并且可以例如通过将网站和移动应用程序添加到网站-移动应用程序映射132来将该网站映射到移动应用程序。如果移动应用程序支持多于一个意图,则模拟超链接引擎120可以添加将网站映射到移动应用程序的多个记录,每个记录具有不同的意图。

映射还可以包括映射到移动应用程序的其他统一资源指示符(URI)。虽然http和https是最常见的URI类型,但超链接的锚标记有时包括目标中的其他URI。例如,“mailto:”是可以映射到电子邮件应用程序的URI,“tel:”是可以映射到拨号应用程序的URI。这些非http URI可以映射到移动应用程序或移动应用程序类型,因为它们通常执行特定功能。

在一些实施方式中,模拟超链接引擎120(或另一模块)可以使用仿真器122生成网站移动应用程序映射132中的条目。仿真器122可以被配置为在批处理环境中仿真客户端设备。换句话说,仿真器122可以被配置为执行移动应用程序并且确定由移动应用程序生成的屏幕内容。在一些实施方式中,仿真器122可以向移动应用程序发送具有查询的意图,并且确定移动应用程序是否返回内容,或者换句话说,返回查询的结果。在一些实施方式中,内容可以是帧缓冲器中的信息。在一些实施方式中,内容可以是由操作系统用来生成帧缓冲器的信息。在一些实施方式中,内容可以来自API。当移动应用程序确实返回内容时,仿真器122可以找到等效网站,例如返回查询的相同或相似结果的网站。当仿真器122找到等效网站时,仿真器122可以将网站和移动应用程序以及意图添加到网站-移动应用程序映射132。

模拟超链接引擎120可以使用网站移动应用程序映射132和抓取的文档134来生成用于训练模拟超链接模型130的正面训练示例。抓取的文档134可以包括经由因特网可用的文档,并且可以表示从源文档生成的索引。抓取的文档134还可以包括链接到经由因特网可用的文档的其他文档。模拟超链接引擎120可以被配置为检查抓取的文档134中的超链接以查找链接到映射132中的网站或URI的超链接。当识别出这样的超链接时,系统可以使用它来生成模拟超链接模型130的正面训练示例。例如,锚文本(即,作为超链接的一部分并且出现在锚开始标签和锚结束标签之间的单词)可以用于预测与白名单网站相关联的移动应用程序。换句话说,模拟超链接引擎120可以包括教导模拟超链接模型130的训练示例,在给定锚文本的情况下,移动应用程序是查找关于锚文本的更多信息的良好候选。

在一些实施方式中,模拟超链接引擎120可以利用训练示例从抓取的文档134中的源文档提供居中选择。居中选择可以提供用于帮助模拟超链接模型130正确预测移动应用程序的上下文。居中选择可以包括由来自源文档的超链接周围的单词填充在任一侧上的锚文本。在一些实施方式中,居中选择具有固定长度,或者换句话说,具有预选数量的单词。例如,居中选择可以包括十三个单词。在一些实施方式中,锚文本可以表示居中选择的中间。因此,例如,如果超链接包括三个单词作为锚标记的一部分(即,在锚开始标签之后和锚结束标签之前),则这三个单词可以出现在居中选择的位置6、7和8。锚文本可以在任一侧由源文档中刚好出现在锚文本之前和之后的单词填充。在一些实施方式中,单词不取自源文档中的不同段、页或节。在这样的实施方式中,可以用表示单词不存在的令牌填充居中选择。例如,如果锚文本出现在源文档中句子的前三个单词,则居中选择可以包括五个填充令牌,随后是三个单词,然后是句子中的另外五个单词。居中选择提供周围单词的上下文,以帮助模拟超链接模型130在具有相同或非常相似的锚文本的不同上下文中使用的不同网站之间进行确定。模拟超链接引擎120可以使用抓取的文档134生成多个训练示例。

在一些实施方式中,模拟超链接引擎120可以通过聚类相似的移动应用程序来增加正面示例的数量。例如,模拟超链接引擎120可以例如基于在网络商店或移动应用程序清单136中可用的数据来聚类移动应用程序,并且可以使用群集来创建附加训练示例。在一些实施方式中,群集中的移动应用程序可以被认为是一种类型的移动应用程序,即移动应用程序类型,并且网站-移动应用程序映射132可以将网站映射到群集,或者换句话说,可以是移动应用程序的类型。因此,群集映射中的任何移动应用程序可以映射到网站,并且针对对应于网站的锚文本,模拟超链接引擎120可以为群集中的每个移动应用程序生成训练示例。在一些实施方式中,训练示例可以预测给定锚文本的移动应用程序类型,或者换句话说,预测群集。在一些实施方式中,模拟超链接引擎120可以使用仿真器122来确定群集中的移动应用程序是否产生相似的结果。例如,仿真器122可以被提供用于群集中的移动应用程序的搜索意图中的锚文本,并且可以比较针对锚文本返回的结果。如果群集中的特定移动应用程序没有提供与群集中的其他移动应用程序相似的结果,则可以从群集中移除该特定移动应用程序并将其用作负面训练示例。因此,可以训练模拟超链接模型130以排除某些应用程序。相似地,模拟超链接引擎120可以使用抓取的文档134和移动应用程序清单136中的信息来生成其他负面训练示例。例如,如果特定查询缺少用于移动应用程序的网络镜像,即,模拟超链接引擎120不能在用于该查询的高排名网页与对应的移动应用程序之间进行良好匹配,则该查询可以用作一个或多个移动应用程序的负面示例。在一些实施方式中,模拟超链接引擎120还可以例如通过将锚文本或居中选择与不匹配源文档的锚标签中的网站的移动应用程序/网站配对来生成其他负面训练示例。

除了预测给定居中选择的操作之外,还可以训练模拟超链接模型130以根据居中选择做出智能选择。在训练示例中,作为锚文本的文本可以是用于该居中选择的智能选择的正面示例。这使得模拟超链接模型130能够从将来的居中选择中选择最可能代表主要概念的文本,并且使得模型能够选择整个名词短语(例如,美国总统、President of theUnited States)而不仅仅是一个单词。因此,模拟超链接模型130可以提供智能选择以及一个或多个操作作为输出。作为输出提供的每个操作可以具有相关联的概率得分。概率得分可以表示模型对于给定的居中选择正确预测操作的置信度。

模拟超链接模型130可以是任何类型的机器学习算法,诸如长短期记忆(LSTM)神经网络、前馈神经网络、支持向量机(SVM)分类器等,其可以预测给定查询的一个或多个操作(例如,移动应用程序的意图)。在一些实施方式中,模拟超链接引擎120可以训练模拟超链接模型130逐个字符地接受查询,并且模型130可以仅在遇到输入字符的结尾时进行预测。在这样的实施方式中,模型130使用非常小的词汇表,使得其紧凑并且适合于在移动设备上存储和执行。在一些实施方式中,模型130可以包括字符嵌入层、每个具有64个节点的两个LSTM层、和softmax分类层。在一些实施方式中,模型130可以被训练成将单词而不是字符作为输入。

系统可以将模拟超链接模型130推送到一个或多个客户端设备,例如客户端设备150和客户端设备190。客户端设备150可以是任何移动个人计算设备,诸如智能手机或其他手持计算设备、平板电脑、可穿戴计算设备等,其在封闭的移动环境中操作,而不是在传统的开放的基于网络的环境中操作。客户端设备也可以是任何个人计算设备。客户端设备150可以是计算机设备600的示例,如图6所示。客户端设备150可以是用户180使用的一个移动设备。用户180还可以具有其他移动设备,诸如客户端设备190。

客户端设备150可包括形成在衬底中的一个或多个处理器,其被配置为执行一个或多个机器可执行指令或多个软件、固件、或其组合。因此,客户端设备150可以包括一个或多个计算机存储器,其被配置为临时地、永久地、半永久地、或其组合地存储一个或多个数据段。客户端设备150因此可包括应用程序155,其以软件、固件或其组合的形式表示机器可执行指令。应用程序155中标识的组件可以是操作系统的一部分。在一些实施方式中,应用程序155可以是为移动处理环境开发的移动应用程序。传统上,移动应用程序在封闭环境中操作,这意味着用户使用单独的应用程序来执行通常在基于网络的浏览器环境中执行的活动。例如,客户端设备150的用户可以使用由bookit.com提供的移动应用程序155中的移动应用程序,而不是去bookit.com预订旅馆。如前所述,移动应用程序可以具有镜像移动应用程序的网页,例如,提供与移动应用程序相同或相似的内容。因此,在一些实施方式中,网页(例如,在bookit.com处)可以被认为是移动应用程序(例如,由bookit.com提供或与bookit.com相关联的应用程序)的网络镜像。

应用程序155可以包括屏幕捕获应用程序160和模拟超链接应用程序162。在一些实施方式中,这些应用程序中的一个或多个可以由客户端设备150的操作系统提供。在一些实施方式中,用户可以下载和安装这些应用程序中的一个或多个。

屏幕捕获应用程序160可以包括各种功能。在一些实施方式中,屏幕捕获应用程序160可以被配置为从应用程序接口(API)获得在屏幕上表示的文本信息。在一些实施方式中,屏幕捕获应用程序160可以内置于操作系统中,其可以确定显示在当前屏幕上的文本字段的内容。在一些实施方式中,屏幕捕获应用程序160可以被配置为捕获客户端设备150的当前屏幕。屏幕捕获应用程序160可以通过复制或读取设备的帧缓冲器的内容来捕获屏幕。因此,捕获的屏幕可以是图像,并且被称为捕获的图像。在一些实施方式中,屏幕捕获应用程序160可以捕获屏幕的一部分。例如,屏幕捕获应用程序160可以捕获来自用户的动作——即,模拟超链接指示——位置周围的某个区域。屏幕捕获应用程序160可以捕获以动作位置周围的像素为单位测量的部分区域,或者可以向API请求围绕动作位置的特定量的屏幕上文本。因此,屏幕捕获图像可以表示小于屏幕上显示的所有内容,例如部分屏幕捕获图像。

屏幕捕获应用程序160可以间隔地捕获屏幕。间隔可以很小,例如每半秒或每秒。在一些实施方式中,屏幕捕获应用程序160可以被配置为每当触摸事件发生时(例如,每当用户触摸屏幕以滚动、缩放、点击链接等)响应于显性的用户请求或命令捕获屏幕,或者当设备从一个移动应用程序转换到另一个移动应用程序时捕获屏幕。在一些实施方式中,屏幕捕获应用程序160可以增加当屏幕不改变时发生屏幕捕获的间隔。换句话说,当屏幕是静态的时,屏幕捕获应用程序160可以更不频繁捕获图像。屏幕捕获应用程序160可以将捕获的屏幕图像和元数据提供给识别引擎,识别引擎可以在客户端设备150或诸如服务器110的服务器上。元数据可以包括时间戳、移动设备类型、移动设备标识符、捕获屏幕时运行的移动应用程序——例如生成屏幕的应用程序等。在一些实施方式中,元数据还可以包括哪些应用是活动的、设备的位置、环境光、设备的运动等。系统可以使用该附加设备信息来辅助内容分析(例如消歧)、生成建议的操作(例如,当设备移动时减少建议的数量、决定什么内容最相关)等。

在一些实施方式中,屏幕捕获应用程序160可以包括索引引擎,其被配置为根据在图像中识别的文本、实体、图像、徽标等索引屏幕捕获图像。因此,例如,索引引擎可以生成捕获图像的索引条目。在一些实施方式中,索引引擎可以在诸如服务器110的服务器上,并且屏幕捕获应用程序160可以向服务器提供捕获图像和/或捕获图像中的识别项。索引可以是倒排索引,其中关键值(例如,单词、短语、实体、图像、徽标等)与包括关键值或从中识别关键值的图像列表相关联。索引可以包括与列表中的每个捕获图像相关联的元数据(例如,在捕获的图像上出现关键值的位置、图像的关键值的等级等)。在一些实施方式中,索引还可以包括由时间戳索引的捕获图像的列表。索引引擎可以将索引存储在存储器中,例如存储在屏幕捕获索引172中。当然,在一些实施方式中,除了客户端设备150之外,或者代替客户端设备150,系统可以将索引存储在服务器上的用户帐户中。客户端设备150的用户可以控制屏幕捕获应用程序160何时活动。例如,用户可以指定仅当其他指定的移动应用程序155正在运行时(例如,仅当在社交媒体移动应用程序中时),屏幕捕获应用程序160才是活动的。用户还可以例如经由设置应用程序手动地打开和关闭屏幕捕获应用程序160。在一些实施方式中,用户可以用也调用模拟超链接应用程序162的手势或动作来调用屏幕捕获应用程序160。

客户端设备150还可以包括模拟超链接应用程序162。模拟超链接应用程序162可以被配置为使用模拟超链接模型170或模拟超链接模型130来确定响应于动作要执行的操作,该动作是来自用户的示意意图发起模拟超链接应用程序162的手势、输入或一系列手势或输入。该动作被称为模拟超链接指示。在一些实施方式中,该动作还可以调用屏幕捕获应用程序160。在一些实施方式中,动作——即,模拟超链接指示——可以是长按、两指点击、滑动等。在一些实施方式中,模拟超链接指示可以将选择控件拖动到接收选择的屏幕部分。在一些实施方式中,选择控件可以是可以移动和释放的图标。图标的释放可以是发起模拟超链接的动作。在一些实施方式中,模拟超链接指示可以是口头的,例如,用于选择显示在屏幕上的一个或多个单词或图像的语音命令。如果动作发生在具有图像的屏幕的一部分上,例如经由在图标或图片上的长按,则模拟超链接应用程序162可以被配置为确定与图像相关联的文本,并且使用文本代替图像。例如,经由图像识别,可以确定图像是知识库中具有与其相关联的标题、昵称或公共名称的实体的图像。

响应于该动作,模拟超链接应用程序162可以确定要提供给模拟超链接模型170的文本。在一些实施方式中,这可以包括使用屏幕捕获应用程序160来对显示在屏幕上的内容执行识别。在一些实施方式中,屏幕捕获应用程序160可能已经对内容执行了识别。模拟超链接应用程序162可以确定最接近动作位置的文本。动作的位置可以是对应于动作的屏幕坐标。模拟超链接应用程序162可以基于位置确定居中选择。例如,模拟超链接应用程序162可以使最接近动作位置的单词成为中心单词,并且包括该中心单词左侧和该中心单词右侧的单词作为居中选择。左边的单词数和右边的单词数可以相等。在一些实施方式中,模拟超链接应用程序162可以避免在居中选择中使用来自不同段或节的单词。例如,如果中心单词是新段中的第一个单词,则模拟超链接应用程序162可以使用填充令牌来代替中心单词左侧的前一段中的单词。

模拟超链接应用程序162可以使用选择——例如,最接近动作位置的文本或居中选择——作为对模拟超链接模型的输入。模拟超链接应用程序162可以使用模拟超链接模型,诸如模拟超链接模型170或模拟超链接模型130,来确定对于居中选择的建议操作。在一些实施方式中,模拟超链接模型170可以是模拟超链接模型130的副本。在一些实施方式中,模拟超链接模型170可以是模拟超链接模型130的个性化副本。例如,客户端设备150可以从服务器110接收模拟超链接模型130或更新后的模拟超链接模型130,并且可以在客户端设备150上执行模型的进一步训练。例如,模拟超链接应用程序162可以使用用户数据176——其可以包括从客户端设备150提交的查询或者关于某些移动应用程序155的使用的信息,或者屏幕捕获索引172来生成或重新加权模拟超链接模型170的正面训练示例。这些附加训练示例可以使模拟超链接模型170个性化,使得模拟超链接应用程序162提供与用户180更相关的建议或预测动作。例如,如果用户180经常使用第一预订移动应用程序,但从不使用第二预订移动应用程序,则模拟超链接应用程序162可以增大模型的第一预订移动应用程序的加权,从而使得模拟超链接应用程序162建议第一预订应用程序而不是第二预订应用程序。

模拟超链接模型170被配置或训练成预测给定来自屏幕的内容的智能选择和一个或多个操作。例如,模拟超链接应用程序162可以向模型170提供居中选择,并且模型170可以提供一个或多个建议操作以及从居中选择中的智能选择。建议操作包括移动应用程序的意图。意图可以将智能选择作为参数。该操作还可以包括默认操作,诸如复制操作或因特网搜索引擎的搜索意图。例如,复制操作可以将智能选择复制到剪贴板,并且搜索引擎意图可以提交智能选择作为因特网查询。如果没有其他操作具有足够高的置信度或者没有预测到操作,则默认操作可以是该操作。换句话说,如果预测操作的概率得分不够高(例如,没有达到最小阈值),则模拟超链接应用程序162可以对例如智能选择的副本执行默认操作。在一些实施方式中,系统可以生成用户界面,该用户界面提供复制操作或其他默认操作以及建议操作中的概率得分最高的一个或两个以供用户选择。模拟超链接应用程序162可以提供用户界面,该用户界面以跨移动应用程序一致的方式向设备的用户提供建议操作。在一些实施方式中,建议操作可以是可选控件的形式。该控件可以是显示在所显示的屏幕上面的覆层、显示在所显示的屏幕后面的底层、或者被配置为添加到移动设备的显示缓冲器中的当前屏幕的信息。换句话说,建议操作控件表示添加到在移动设备处生成的屏幕的信息,无论该信息是显示在屏幕之上、之下、还是在显示时集成到屏幕中。

建议操作控制可以被配置为检测发起相应动作的选择,例如以发起意图的形式。因此,建议操作表现得像基于HTML的文档中的超链接。但是与HTML超链接不同,用户经由动作选择的内容不需要在动作——即,模拟超链接指示——之前与目标相关联。因此,模拟超链接系统100可以将屏幕上显示的任何内容变成超链接,并且可以为在移动设备上运行的任何移动应用程序提供建议操作控件,使得操作在移动应用程序之间一致。这种一致性改善了用户体验。

尽管被示出为在客户端设备150上执行,但是在一些实施方式中,模拟超链接应用程序162可以是在诸如服务器110的服务器上执行的模块。在这样的实施方式中,屏幕捕获应用程序160可以向服务器处的模拟超链接应用程序162提供在捕获的图像中识别的内容和最接近动作位置的单词,并且模拟超链接应用程序162可以使用模拟超链接模型130向屏幕捕获应用程序160提供相应的操作和智能选择。在一些实施方式中,屏幕捕获应用程序160可以使用智能选择和相应的操作来向界面提供建议操作控件或者使用智能选择自动执行操作。

当操作不自动执行时,屏幕捕获应用程序160可以将具有建议操作控件的用户界面与当前屏幕集成。例如,如果屏幕捕获应用程序160从模拟超链接应用程序162接收预测操作,则屏幕捕获应用程序160可以将预测操作的控件与当前显示内容组合。在一些实施方式中,屏幕捕获应用程序160可以生成覆层,作为底层,或者可以将建议操作控件与显示缓冲器中的当前屏幕交错。在一些实施方式中,屏幕捕获应用程序160可以被配置为在显示建议操作控件之前核实当前显示的屏幕与捕获的屏幕图像足够相似。例如,屏幕捕获应用程序160可以使用用于控制或用于相应智能选择的坐标来从捕获的图像确定视觉提示,并将该视觉提示与当前显示的图像的相同坐标进行比较。在一些实施方式中,屏幕捕获应用程序160可以被配置为在当前图像中短距离寻找与视觉提示相似的视觉元素。如果找到,则屏幕捕获应用程序160可以调整建议操作控件的坐标以匹配底层屏幕的移动。在一些实施方式中,屏幕捕获应用程序160可以发起在当前屏幕上面显示捕获的图像、选择的文本或图像以及操作控件的活动或模式。可以显示先前捕获的图像、选择的文本或图像以及操作,直到用户选择动作或取消显示为止(例如,利用取消或“返回”命令)。

在一些实施方式中,模拟超链接应用程序162可以使用排序引擎来确定要显示来自模型的哪些建议操作。例如,模拟超链接应用程序162可以选择最高等级的数量(例如,3或4个),或者换句话说,最可能的操作。作为另一示例,模拟超链接应用程序162可以选择概率得分高于指定阈值或数量与阈值的组合的任何操作。在一些实施方式中,数量或阈值可以取决于关于设备的元数据,例如,当设备移动时更低的数量或更高的阈值。在一些实施方式中,建议动作的显示可以是可滚动的,例如,以允许用户从比最初显示的更多的动作中进行选择。

客户端设备150可以包括数据存储157,其存储在客户端设备150的存储器中并由应用程序155使用。在一些实施方式中,数据存储157可以包括模拟超链接模型170、屏幕捕获索引172和用户数据176。这些数据存储中的一个或多个可以与用户账户或配置文件相关联。因此,数据存储也可以驻留在服务器110上。此外,一个或多个数据存储157可以是存储在服务器110上或用户指定的另一位置中的数据的副本或子集。数据存储157可以存储在任何非暂时存储器上。

客户端设备150可以通过网络140与服务器110和其他客户端设备190通信。网络140可以是例如因特网,或者网络140可以是有线或无线局域网(LAN)、广域网(WAN)等,其使用例如网关设备、桥接器、交换机等实施。网络140还可以表示蜂窝通信网络。经由网络140,服务器110可以与客户端设备150和190通信并向/从客户端设备150和190传输数据,并且客户端设备150可以与其他客户端设备190(未示出)通信。

模拟超链接系统100表示一个示例配置,并且实施方式可以结合其他配置。例如,一些实施方式可以将仿真器122、模拟超链接引擎120或模拟超链接应用程序162的一个或多个组件组合成单个模块或引擎。相似地,一些实施方式可以将屏幕捕获应用程序160和模拟超链接应用程序162中的一个或多个组合成单个模块或应用程序。此外,模拟超链接应用程序162或屏幕捕获应用程序160的一个或多个组件可以在服务器110处执行,而仿真器122或模拟超链接引擎120的一个或多个组件可以在客户端设备150处执行。作为另一示例,诸如移动应用程序清单136、抓取的文档134、模拟超链接模型130、或网站-移动应用程序映射132的数据存储中的一个或多个可以组合成单个数据存储,或者可以跨多个计算设备分布,或者可以存储在客户端设备150处。同样,屏幕捕获索引172和用户数据176中的一个或多个可以存储在服务器110或用户指定的另一位置。

在模拟超链接系统100收集和存储用户特定数据或可利用个人信息的程度上,可向用户提供机会来控制程序或特征是否收集用户信息(例如,关于用户的社交网络、社交动作或活动、用户偏好或用户当前位置的信息),或控制是否和/或如何接收可能与用户更相关的内容。此外,某些数据可以在存储或使用之前以一种或多种方式进行处理,从而删除个人身份信息。例如,可以处理搜索记录,使得不能确定个人身份信息和/或可以使其中获得位置信息的用户的地理位置概括化(诸如城市、邮政编码或州级),使得不能确定用户的特定位置。因此,用户可以控制如何收集关于用户的信息并由模拟超链接系统100使用。此外,可以提供能力来确定这里描述的功能的提供是否与用于在设备屏幕上显示内容的应用程序的内容、布局、功能或其他方面的使用权一致,并且相应地设置能力。例如,在不提供限制模拟超链接的设置可能违反服务条款、内容许可或其他使用限制的情况下,可以提供限制模拟超链接的设置。这种设置可以手动地或自动地进行,诸如由用户在建立新服务或设备使用许可时进行,或者由应用程序安装例程等进行。

图2A和图2B是根据所公开的主题的客户端计算设备的示例显示200a和200b。诸如图1的系统100的模拟超链接系统可以提供显示。在一些实施方式中,显示可以是诸如图1的客户端设备150的移动设备的显示器。在图2A中,用户已经在显示200a上的位置205处执行了动作,例如模拟超链接指示。位置205最接近地对应于源程序在屏幕上显示的单词“Brad”。单词“Brad”不是超链接,例如,未被源程序与任何目标相关联,并且表现为普通文本(例如,不加下划线或与周围文本不同的颜色,不像超链接的典型情况)。系统100可以使用位置205来生成居中选择210。在图2A的示例中,居中选择210包括从显示200a中识别的内容中提取的13个单词。当然,其他实施方式可以包括更多或更少的单词。中心单词215是“Brad”,因为它最接近地对应于位置205。系统100可以在中心单词215之后附加六个单词。这六个单词可以被认为是正确的上下文。系统100还可以添加在中心单词215之前出现的六个单词。这六个单词是左上下文的六个单词。

在图2A的示例中,系统100可以避免使用与内容的另一段或节相关联的文本。因此,左上下文或右上下文可以包括填充令牌220。填充令牌220使得系统100能够使中心单词215保持居中,同时避免从潜在不相关的上下文中获取单词。因此,因为中心单词215出现在显示器200a中的新段开始处,所以系统100向居中选择210的左上下文添加六个填充令牌220。该段在中心单词215之后包括多于六个单词,因此右上下文仅包括从内容识别的单词,并且不需要填充令牌。

系统100可以向模拟超链接模型提供居中选择210。模拟超链接模型可以响应于居中选择210提供智能选择225以及一个或多个建议操作。在一些实施方式中,系统100可以以最高概率选择操作,并且使用智能选择215作为与该操作相对应的移动应用程序的意图的参数来执行该操作。例如,如果具有最高概率的操作是电影维基应用程序,则系统100可以以搜索或共享意图调用维基应用程序,将Brad Pitt作为意图的输入。在这样的实施方式中,不显示图2B的显示200b。

图2B示出了根据所公开的实施方式的具有用户界面的显示200b的示例,该用户界面将建议操作显示为控件。例如,操作控件230可以是表示电影维基应用程序的图标。如果客户端设备不自动执行操作,则系统可以生成显示200b。如果用户选择操作控件230,则系统100可以利用搜索或其他意图来激活电影维基应用程序(例如,将焦点切换到电影维基应用程序或换句话说目标应用程序)。搜索意图是在搜索状态换句话说搜索用户界面中打开应用程序的操作系统标准。搜索意图可以与移动应用程序和网络应用程序一起工作。搜索意图可以支持参数,使得向移动应用程序提供智能选择作为搜索意图的一部分,并且打开或激活搜索结果页面或用户界面。实施方式还可以使用可以将智能选择作为参数的其他意图,可以是标准的(即,操作系统支持)或非标准的(即,移动应用程序支持但操作系统不支持)意图。因此,操作控件230的选择可以将参数Brad Pitt作为查询传递给电影维基移动应用程序,使得客户端设备打开或切换焦点到电影维基应用程序,并且电影维基移动应用程序可以显示查询的结果页面。以这种方式,系统100减少了执行在电影维基应用中查找BradPitt所需的选择、搜索和上下文切换所需的输入,这改善了用户体验。当然,图2B所示的操作仅是示例,并且可以向用户呈现其他建议操作。图2B中的操作控件的呈现在覆盖由源应用程序生成的屏幕内容的一部分的条中示出。实施方式可以包括其他布置,诸如转盘显示器、圆形显示器、菜单显示器、弹出窗口或图标等。此外,图2B所示的显示200b的用户界面可以是可选的,因为在一些实施方式中,模拟超链接应用程序162可以自动发起电影维基应用程序。

图3A是根据所公开的主题的移动计算设备的另一示例显示300a。诸如图1的系统100的模拟超链接系统的客户端设备可以提供图3A的显示300a。在图3A的示例中,用户已经在位置305处执行了动作,即模拟超链接指示。作为响应,系统100可以在显示300a上执行识别以识别由源应用程序生成的文本。系统可以确定位置305对应于单词“Pitt”,并使其成为居中选择310的中心单词315。系统100可以用六个左上下文单词和六个右上下文单词填充中心单词315。在图3A的示例中,系统100向左上下文添加一个填充令牌,以避免使用来自不同段的单词,同时使中心单词315保持居中。在其他实施方式中,系统100可以在左上下文和右上下文中用更多或更少的单词填充中心单词。系统100可以向模拟超链接模型提供居中选择。该模型可以提供智能选择320和用于居中选择的一个或多个预测操作。

图3B是根据所公开的主题的移动计算设备的示例显示300b,其具有用于从图3A的居中选择进行智能选择的两个建议操作。在图3B的示例中,模拟超链接模型已经提供了可以表示体育新闻应用程序的操作控件330。然而,模型可能不太确定这种选择,例如,因为智能选择Brad Pitt更经常与电影而不是体育相关联。然而,由于上下文(例如,篮球比赛),模型可能对表示电影维基应用程序的操作也不太有信心。在图3B的示例中,系统选择例如由操作控件330表示的较高等级的操作以显示在用户界面中。此外,因为系统100对该选择不是很有信心,所以系统还可以在用户界面中提供复制操作325。复制操作的选择将智能选择320复制到剪贴板上。在一些实施方式中,这可以是当没有由模型预测的操作具有足够高的置信度或者没有预测的操作时自动执行的默认操作。操作控件330可以与体育新闻移动应用程序的图标相关联,并且控件330的选择,或者换句话说,操作的选择可以以搜索意图发起体育新闻应用程序。搜索意图可以具有智能选择320作为参数。因此,客户端设备可以将体育新闻应用程序发起到搜索结果屏幕,该搜索结果屏幕具有响应查询的包括智能选择320的结果。

图3B的示例还示出了向用户提供智能选择320的指示335的用户界面。指示335可以修改文本的外观,例如通过高亮显示、画圈或指示文本被自动选择的一些其他方法。指示335可以是显示在正被显示的屏幕上面的覆层、显示在正被显示的屏幕后面的底层、或者被配置为添加到移动设备的显示缓冲器中的当前屏幕的信息。在一些实施方式中,图3B所示的用户界面可以例如通过扩展或收缩指示335向用户提供修改智能选择的机会。在这样的实施方式中,可以将这样的改变提供给模型作为另一训练示例。该训练示例可以用于个性化模型(例如,通过更新模拟超链接模型170),或者可以用作一般模型(例如,模拟超链接模型130)的反馈和进一步训练。在一些实施方式中,当用户选择操作控件时,该反馈可以被保存为另一个正面训练示例(例如,居中选择预测所选择的操作)。在一些实施方式中,如果用户没有选择在用户界面中提供的操作,则系统可以生成负面训练示例,其指示居中选择不预测呈现的操作。这些附加训练示例可以帮助增大或减小预测操作的概率得分,无论是在模型的个人副本中还是在一般模型中。

在一些实施方式中,用户可能没有安装移动应用程序中的一个。例如,用户可能没有安装对应于操作控件330的体育新闻应用程序。选择控件330可以使设备发起体育新闻应用程序的下载过程。因此,显示300b的用户界面可以向用户提供其他人认为有用的操作或者换句话说移动应用程序的知识,即使用户不了解移动应用程序也是如此。在一些实施方式中,如果用户没有安装体育新闻应用程序,则系统可以将该操作转换为因特网搜索移动应用程序、词典应用程序、维基应用程序等的搜索意图,或如上所述仅转换为复制操作。

图2A、图2B、图3A和图3B中所示的用户界面对由任何源应用程序生成的文本或图像进行工作,而不仅仅是对绑定到知识库中的实体的文本、适合实体类型的模板的文本、或者将某些类型的文本转换成超链接的应用程序进行工作。虽然操作控件被示出为基于图标,但是操作控件可以是基于文本的或文本和图像的组合。因此,操作控件被理解为包括基于文本、基于图像或文本和图像控件的组合。

图4示出了根据所公开的实施方式的用于响应于与显示在移动计算设备上的内容相关联的动作来建议操作的示例过程400的流程图。过程400可以由诸如图1的系统100的模拟超链接系统来执行。过程400可用于基于动作的位置和模拟超链接模型来确定响应于动作的智能选择和建议操作。过程400可以通过生成模拟超链接模型(405)开始。模拟超链接模型可以响应于居中选择输入来提供智能选择和建议操作,即具有意图的移动应用程序。意图可以是任何标准或非标准意图之一。图5示出了构建模拟超链接模型的一个示例。尽管在图4中未具体示出,但是系统可以在服务器上构建模型并将该模型推送到客户端设备。

系统可以在客户端设备处接收动作(410),或者换句话说,接收模拟超链接指示。该动作与客户端设备屏幕上的位置相关联。系统可以使用位置和屏幕捕获图像来提取正在显示的内容并从内容生成居中选择(415)。例如,系统可以对屏幕捕获图像执行文本和图像识别,以确定当前显示的文本和图像的文本等同物。系统然后可以确定最接近动作位置的单词。最接近该位置的单词是中心单词。然后,系统可以用上下文中的出现在中心单词之前和之后的其他单词填充中心单词。出现在中心单词之前的单词是左上下文,出现在中心单词之后的单词是右上下文。在一些实施方式中,系统可以避免使用来自其他段或节的单词。因此,例如,系统可以不使用来自左上下文或右上下文中的不同段或不同节的单词。在这样的实施方式中,如果需要,系统可以用一个或多个填充令牌填充左上下文和右上下文。填充令牌代替居中选择中的单词,并且使得中心单词能够保持在居中选择的中心,同时排除来自不同段/节/页的单词,并且仍然提供具有预定义数量的单词的居中选择。预定义的单词数量可以是任意奇数,并且左上下文中的单词数量等于右上下文中的单词数量(填充令牌算作一个单词)。

系统可以向模拟超链接模型提供居中选择(420)。该模型可以是训练成预测给定居中选择的智能选择和一个或多个操作的机器学习算法。在一些实施方式中,系统每次向模型提供一个字符的居中选择以减少模型的词汇表。

在一些实施方式中,系统可以自动地发起由也满足或超过阈值的具有最高概率的操作表示的移动应用程序的执行(445)。系统可以使用智能选择作为意图中的参数来发起具有意图的移动应用程序的执行,如下面更详细描述的。在一些实施方式中,模型可以为居中选择提供预测的或建议的操作,系统可以向用户提供这些操作(425)。例如,当两个或更多个操作具有相似的最高概率时,系统可以提供预测的或建议的操作。因此,系统可能无法可信地确定用户的操作。当具有最高概率的操作未能满足阈值时,系统还可以提供预测操作。在一些实施方式中,作为步骤425的一部分,系统可以向呈现给用户的操作添加复制操作或另一默认操作(例如,搜索因特网上的智能选择)。该系统可以为每个操作提供可选择的控件,该控件使得用户能够选择该操作。操作表示移动应用程序的意图,例如搜索意图或共享意图。这些操作还可以表示网站的搜索意图,例如当客户端设备是运行浏览器的笔记本计算机时。在一些实施方式中,系统可以在显示器上突出显示智能选择(430)。智能选择是将在意图中使用的居中链接的部分。智能选择可以仅仅是中心单词,或者可以是中心单词加上周围一个或两个单词。在使用突出显示的实施方式中,例如,用户界面可以包括用户改变智能选择的方式。例如,用户可以扩展或收缩在智能选择中包括的单词。

系统等待用户选择操作控件(435,是)或结束操作建议界面(435,否)。如果用户确实选择了建议操作(435,是),则系统可以从居中选择、智能选择和选择的操作生成正面的训练示例(440)。例如,可以通过在客户端设备上个性化模型的副本,或者通过在服务器处进一步训练原始模型,例如,通过在用户同意的情况下向服务器发送正面的示例,来使用该正面的训练示例来训练模型。这个附加的正面示例可以使模型能够在将来自动选择所选择的操作,而不是显示需要用户选择操作的用户界面。然后,系统可以使用智能选择作为意图中的参数来发起由具有意图的操作表示的移动应用程序的执行(445)。在一些实施方式中,意图是标准意图,例如搜索意图或共享意图。因此,客户端设备将上下文从当前正在执行的任何应用程序(例如源应用程序)切换到由所选操作表示的移动应用程序(例如目标应用程序)。在客户端设备不是移动设备的实施方式中,该动作可以与镜像移动应用程序的特定网站中的搜索界面相关联,并且系统可以使得浏览器使用智能选择作为参数来导航到具有搜索意图的搜索界面。因此,用户能够仅使用在步骤410中接收的动作自动切换到目标应用程序(例如,移动应用程序或移动应用程序的网络镜像)。

在一些实施方式中,该操作可以与未安装在移动设备上的移动应用程序相关联。当发生这种情况时,所选实体的操作可以是第二操作,当被选择时,该第二操作将用户带到用户可以下载和安装移动应用程序的界面,或者自动发起移动应用程序的安装。因此,应当理解,在步骤435中选择操作可以使用户能够安装移动应用程序。在一些实施方式中,在移动应用程序被成功安装之后,系统可以自动发起意图,使用智能选择作为参数来打开新安装的移动应用程序。在一些实施方式中,如果用户没有安装特定的移动应用程序,则系统可以替换对智能选择的基于浏览器的搜索。在一些实施方式中,如果没有指定操作,则系统可以经由用户界面提供默认选项,诸如浏览器搜索或剪切/复制选项,用于处理智能选择。

图5示出了根据所公开的实施方式的用于生成模拟超链接模型的示例过程500的流程图。过程500可以由诸如图1的系统100的模拟超链接系统来执行。过程500是图4的步骤405的示例,并且可以用于构建模拟超链接模型,诸如图1的模型130或模型170。过程500可以通过获得到移动应用程序映射的网站(505)开始。在一些实施方式中,可以提供例如人工策划的映射。在一些实施方式中,系统可以构建映射。例如,系统可以使用移动应用程序清单来确定移动应用程序的网站镜像。在一些实施方式中,系统可以通过将相似的移动应用程序聚类在一起并将所有相似的应用程序映射到网站镜像来增强映射。例如,可以存在几个预订移动应用程序,例如用于预订航班、出租汽车、旅馆等,并且可以使用传统的聚类算法将它们聚类在一起。在一些实施方式中,系统可以将群集中的每个应用程序映射到网站镜像。在一些实施方式中,系统可以使用仿真器来确定网站映射到哪些移动应用程序。例如,仿真器可以被配置为从搜索记录获得查询并且模拟各种移动应用程序(例如,经由网络商店可以获得的移动应用程序)的执行。仿真器可以确定特定移动应用程序是否返回与在给定相同查询的情况下网站的结果相似的结果。如果是,则仿真器可以将网站映射到移动应用程序。在一些实施方式中,仿真器可以被配置为向移动应用程序提供查询,并且确定移动应用程序最终是否处于内容状态,或者换句话说,返回查询的有效搜索结果。如果是,则系统可以找到网站镜像,例如在给定相同查询的情况下返回相似结果的网站镜像。以这些方式中的任一种,系统可以构建到移动应用程序映射的网站。在一些实施方式中,映射可以包括用于非http和https URI方案的映射。例如,“mailto:”URI可以映射到电子邮件应用程序,“tel:”URI可以映射到拨号应用程序,“geo:”URI可以映射到地图应用程序等。

系统可以识别用于训练模型的正面训练示例(510)。正面训练示例可以从抓取的文档中提取,例如通过因特网或包括锚标签的内联网可以获得的文档。抓取的文档可以是由因特网搜索引擎索引的文档。系统可以选择文档中的链接,在这里目标与白名单网站或到移动应用程序映射的网站中的URI匹配。这些链接(即锚标签和相关信息)被认为是将锚文本链接到与白名单网站相关联的移动应用程序的正面示例。系统可以以锚文本作为中心部分进行居中选择,并且链接的锚文本是用于居中选择的智能选择的示例。因此,该示例尤其可以包括从文档提取的居中选择、表示从居中选择中的智能选择的锚文本、以及移动应用程序。在一些实施方式中,系统还可以生成负面示例。例如,不映射到由锚文本链接到的网站的移动应用程序可以是负面示例。

系统可以使用正面训练示例和负面训练示例来训练模拟超链接模型(515)。系统可以将经过训练的模型提供给客户端设备(520)。在一些实施方式中,当安装模拟超链接应用程序或更新模型时,可以将模型推送到客户端设备。在一些实施方式中,模拟超链接应用程序可以例如作为应用程序更新的一部分从服务器拉取模型。在客户端设备处,系统可以确定是否个性化模型(525)。如果没有完成个性化(525,否),则过程500结束。否则(525,是),系统可以从与客户端设备或客户端设备的用户相关联的搜索记录中识别正面训练示例(530)。例如,系统可以使用屏幕捕获索引、用户配置文件、或设备配置文件来重新调整训练示例。系统可以使用经过更新的示例来进一步训练模型(535)。因此,可以训练模型以预测与用户最相关的动作。然后过程500结束。

图6示出了可以作为图1的服务器110和/或客户端150操作的通用计算机设备600的示例,其可以与这里描述的技术一起使用。计算设备600旨在表示各种示例形式的计算设备,诸如笔记本计算机、台式计算机、工作站、个人数字助理、手机、智能手机、平板电脑、服务器、和包括可佩戴设备的其他计算设备。在此示出的组件、它们的连接和关系、以及它们的功能仅仅是用作示例,而不意味着限制在本文中描述和/或要求保护的本发明的实施方式。

计算设备600包括经由接口608连接的处理器602、存储器604、存储设备606和扩展端口610。在一些实施方式中,计算设备600可包括经由接口608连接的收发器646、通信接口644和GPS(全球定位系统)接收器模块648以及其他组件。设备600可以通过通信接口644无线通信,必要时通信接口644可以包括数字信号处理电路。组件602、604、606、608、610、640、644、646和648中的每一个可以安装在公共母板上或以适当的其他方式安装。

处理器602可以处理用于在计算设备600内执行的指令,包括存储在存储器604中或存储设备606上的指令,以在外部输入/输出设备(例如显示器616)上显示GUI的图形信息。显示器616可以是监视器或平板触摸屏显示器。在一些实施方式中,可以适当地使用多个处理器和/或多个总线以及多个存储器和存储器类型。此外,可以连接多个计算设备600,每个设备提供必要操作的部分(例如,作为服务器库、刀片服务器组或多处理器系统)。

存储器604将信息存储在计算设备600内。在一个实施方式中,存储器604是易失性存储器单元。在另一实施方式中,存储器604是非易失性存储器单元。存储器604还可以是另一种形式的计算机可读介质,诸如磁盘或光盘。在一些实施方式中,存储器604可以包括通过扩展接口提供的扩展存储器。

存储设备606能够为计算设备600提供大容量存储。在一种实施方式中,存储设备606可以是或包括计算机可读介质,例如软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其他相似的固态存储器设备,或设备阵列,包括存储区域网络或其他配置中的设备。计算机程序产品可以有形地具体实施在这样的计算机可读介质中。计算机程序产品还可以包括当被执行时执行一种或多种方法的指令,诸如上述那些方法。计算机或机器可读介质是诸如存储器604、存储设备606或处理器602上的存储器的存储设备。

接口608可以是管理计算设备600的带宽密集操作的高速控制器或管理较低带宽密集操作的低速控制器,或这些控制器的组合。可以提供外部接口640,以便能够实施方式设备600与其他设备的近区通信。在一些实施方式中,控制器608可以耦合到存储设备606和扩展端口614。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的扩展端口可以例如通过网络适配器耦合到一个或多个输入/输出设备,诸如键盘、定点设备、扫描仪、或诸如交换机或路由器的网络设备。

如图所示,计算设备600可以以多种不同的形式实施。例如其可以实施为标准服务器630,或者在一组这样的服务器中实施多次。其也可以实施为机架服务器系统的一部分。此外,其可以在诸如笔记本计算机632、个人计算机634或平板/智能手机636的计算设备中实施。整个系统可以由彼此通信的多个计算设备600组成。其他配置也是可能的。

图7示出了通用计算机设备700的示例,其可以是图1的服务器110,可以与这里描述的技术一起使用。计算设备700旨在表示各种示例形式的大规模数据处理设备,诸如服务器、刀片服务器、数据中心、大型机和其他大规模计算设备。计算设备700可以是具有多个处理器的分布式系统,这些处理器可能包括通过一个或多个通信网络相互连接的网络附接存储节点。在此示出的组件、它们的连接和关系、以及它们的功能仅仅是用作示例,而不意味着限制在本文中描述和/或要求保护的本发明的实施方式。

分布式计算系统700可以包括任何数量的计算设备780。计算设备780可以包括服务器或机架服务器、大型机等,通过局域网或广域网、专用光链路、调制解调器、桥接器、路由器、交换机、有线或无线网络等进行通信。

在一些实施方式中,每个计算设备可以包括多个机架。例如,计算设备780a包括多个机架758a-758n。每个机架可以包括一个或多个处理器,例如处理器752a-752n和762a-762n。处理器可以包括数据处理器、网络附接存储设备、和其他计算机控制的设备。在一些实施方式中,一个处理器可以作为主处理器操作,并且控制调度和数据分布任务。处理器可以通过一个或多个机架交换机758相互连接,并且一个或多个机架可以通过交换机778连接。交换机778可以处理多个连接的计算设备780之间的通信。

每个机架可以包括存储器,例如存储器754和存储器764,以及存储设备,诸如756和766。存储设备756和766可以提供大容量存储,并且可以包括易失性或非易失性存储设备,诸如网络附接盘、软盘、硬盘、光盘、磁带、闪存、或其他相似的固态存储设备,或者设备阵列,包括存储区域网络或其他配置中的设备。存储设备756或766可以在多个处理器、多个机架、或多个计算设备之间共享,并且可以包括存储可由一个或多个处理器执行的指令的计算机可读介质。存储器754和764可包括例如易失性存储器单元、非易失性存储器单元、和/或其他形式的计算机可读介质,诸如磁盘或光盘、闪存、高速缓存、随机存取存储器(RAM)、只读存储器(ROM)、及其组合。诸如存储器754的存储器也可以在处理器752a-752n之间共享。诸如索引的数据结构可以例如跨存储设备756和存储器754存储。计算设备780可以包括未示出的其他组件,诸如控制器、总线、输入/输出设备、通信模块等。

诸如系统100的整个系统可以由彼此通信的多个计算设备780组成。例如,设备780a可以与设备780b、780c和780d通信,并且这些设备可以统称为系统100。作为另一示例,图1的系统100可以包括一个或多个计算设备780。一些计算设备可以在地理上彼此接近,而其他计算设备可以在地理上远离。系统700的布局仅是示例,并且系统可以采用其他布局或配置。

根据本公开的某些方面,移动设备可以包括显示设备、至少一个处理器和存储指令的存储器,所述指令当由所述至少一个处理器执行时使得所述移动设备执行操作,所述操作包括:响应于检测到对显示在所述显示设备上的内容的动作而生成居中选择;将所述居中选择提供给模拟超链接模型,所述模拟超链接模型被训练成在给定居中选择情况下预测操作,所述操作与移动应用程序的意图相关联;以及发起以下中的至少一项a)显示用户界面,该用户界面允许对使用所述意图的操作的选择,或b)使用所述意图执行所述操作。

这一方面和其他方面可包括以下一个或多个特征。例如,还可以训练模拟超链接模型以根据居中选择提供智能选择,并且使用智能选择作为意图的参数来发起操作。在一些实施方式中,发起用户界面的显示可以包括显示菜单,菜单中有移动应用程序的图标和复制智能选择的选项。在一些实施方式中,操作还可以包括修改显示在显示器上的、与智能选择相对应的文本的外观。作为另一示例,操作还可以包括响应于从用户界面接收到对操作的选择,发起使用智能选择的操作的执行。这样的实施方式可以包括使用居中选择、移动应用程序来生成正面训练示例和/或对正面训练示例的权重进行上加权。作为另一示例,其中发起用户界面的显示包括显示移动应用程序的图标。

作为另一个示例,居中选择可以包括最接近动作位置的单词和出现在最接近位置的单词之前和最接近位置的单词之后的内容中的相等数量单词。在一些实施方式中,在最接近位置的单词之前和之后的单词不包括不同段中的单词,并且生成居中选择包括确定在最接近位置的单词之前的单词的数量小于相等数量,并且将填充令牌添加到居中选择,填充令牌被计数为在最接近位置的单词之前的单词,使得在最接近位置的单词之前的单词的数量等于相等数量。作为另一示例,所述操作还可以包括从服务器接收模拟超链接模型,根据移动设备的用户的屏幕捕获索引中的超链接生成训练示例,以及使用训练示例来训练模拟超链接模型,从而产生个性化模拟超链接模型。

根据本公开的某些方面,一种方法包括:从文档库识别具有到白名单网站的超链接的一个或多个文档,白名单网站是网站到移动应用程序的映射中的多个网站中的一个;使用一个或多个文档生成模拟超链接模型的正面训练示例,每个正面训练示例具有根据相应文档生成的居中选择、网站、对应于网站的页面排名的权重、以及映射到网站的移动应用程序;以及使用正面训练示例来训练模拟超链接模型以预测给定居中选择的移动应用程序的操作。

这一方面和其他方面可包括以下一个或多个特征。例如,该方法还可以包括识别第一移动应用程序的清单中的网站;将所述网站和所述第一移动应用程序添加到所述映射中。在一些实施方式中,清单指定意图,并且移动应用程序的操作是该意图。作为另一示例,移动应用程序可以是第一移动应用程序,并且该方法还包括聚类网络商店中的相似的移动应用程序,第一移动应用程序出现在第一群集中;识别具有到网站的超链接的文档;基于超链接确定智能选择;验证由第一移动应用程序针对智能选择生成的结果相似于由第二移动应用程序针对智能选择生成的结果,第二移动应用程序在第一群集中;以及响应于所述验证,将所述网站和所述第二移动应用程序添加到所述映射。

作为另一示例,该方法还可以包括基于移动设备的用户的屏幕捕获索引来个性化模型。作为另一示例,映射可以包括将非http统一资源指示符(URI)映射到移动应用程序的记录,并且一个或多个文档包括使用非http URI的超链接。作为另一示例,居中选择包括超链接的锚文本,并且模型被进一步训练成预测锚文本作为智能选择。

根据本公开的某些方面,一种方法包括:响应于检测到模拟超链接指示,根据显示在移动计算设备的显示器上的内容生成居中选择;将居中选择提供给模拟超链接模型,模拟超链接模型被训练成预测给定居中选择的操作,该操作与移动应用程序的意图相关联;并且使用该意图来发起操作。

这一方面和其他方面可包括以下一个或多个特征。例如,生成居中选择可以包括对内容的屏幕捕获执行文本和图像识别以确定在内容中表示的单词,以及确定最接近模拟超链接模型的位置的单词作为居中选择中的中心单词。作为另一示例,生成居中选择还可以包括使用填充令牌代替居中选择中的单词,以避免包括来自不同节的单词。作为另一个示例,模拟超链接模型还可以被训练成根据居中选择做出智能选择,智能选择表示居中选择的一部分,并且使用智能选择作为意图的参数。作为另一示例,该操作可以是第一操作,并且该方法还包括:从模拟超链接模型接收第一操作和第二操作;确定第一操作的概率得分和第二操作的概率得分相似;提供使得移动计算设备的用户能够选择第一操作或第二操作的用户界面;接收对第一操作的选择;根据居中选择和第一操作生成正面训练示例;以及使用意图来发起第一操作。作为另一示例,该方法还可以包括响应于检测到模拟超链接指示而获得部分屏幕捕获图像,其中从部分屏幕捕获图像获得居中选择。

各种实施方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,所述可编程系统包括至少一个可编程处理器,所述可编程处理器可以是专用的或通用的,被耦合以从存储系统、至少一个输入设备、和至少一个输出设备接收数据和指令,以及向存储系统、至少一个输入设备、和至少一个输出设备发送数据和指令。

这些计算机程序(也称为程序、软件、软件应用程序或代码)包括用于可编程处理器的机器指令,并且可以用高级程序和/或面向对象的编程语言和/或汇编/机器语言来实施。如本文所使用的,术语“机器可读介质”、“计算机可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何非暂时性计算机程序产品、装置和/或设备(例如磁盘、光盘、存储器(包括读访问存储器)、可编程逻辑设备(PLD))。

这里描述的系统和技术可以在计算系统中实施,该计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用程序服务器),或者包括前端组件(例如,具有图形用户界面或Web浏览器的客户端计算机,用户可以通过该图形用户界面或Web浏览器与这里描述的系统和技术的实施方式交互),或者这种后端、中间件或前端组件的任何组合。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)相互连接。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)、和因特网。

计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络交互。客户端和服务器的关系借助于在各自计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。

已经描述了一些实施方式。然而,在不脱离本发明的精神和范围的情况下可以进行各种修改。此外,图中所示的逻辑流程不需要所示的特定次序或顺序来实施期望的结果。此外,可以从所描述的流程提供其他步骤或者可以消除步骤,并且可以向所描述的系统添加其他组件或者从所描述的系统中移除其他组件。因此,其他实施方式在所附权利要求的范围内。

相关技术
  • 移动设备上的模拟超链接
  • 移动设备上的模拟超链接
技术分类

06120113298460