一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

网络自动化脚本的爬虫的制作方法

2022-03-01 08:04:59 来源:中国专利 TAG:
网络自动化脚本的爬虫的制作方法

当今,网络爬行涉及对网页上的文本和实体的语义和关键字分析。虽然在尝试理解文本语义时是有效的,但语义学习在尝试理解构建到当今网站中的动作时并不有效。例如,用于租车的网页可能需要用户通过输入文本(例如,姓名、到达机场、生日等)来填写在线表单以进行预定。常规的网络爬虫无法始终通过简单地分析表单文本来理解预定车辆的动作。网络爬虫而是必须通过对该网站的其余部分进行语义分析来认识到提供该网页的公司租赁车辆。

理解网页上的动作对于许多操作而言是至关重要的。数字助理(诸如由总部在美国华盛顿州雷蒙德市的微软公司开发的)正变得更老练并且能够理解用户何时想要执行不同的动作(例如,预订晚餐、预订航班、订披萨,等等),而不是仅仅检索信息。用户可能希望通过支持同一任务(例如,订披萨)的许多网站之一(例如,餐厅A、B或C)来执行该任务。此外,机器人流程自动化(RPA)和物联网(IoT)自动化要求设备不仅要捕获数据,而且还要在没有用户干预的情况下执行动作。随着越来越多的应用移至网络上,它们的动作必须在语义学习提供的范围之外加以理解。

在网络上执行动作大部分通过UI脚本来控制,这些UI脚本是计算机对象,这些计算机对象使用可执行脚本语言来创建以执行与网页的动态交互(例如,点击、文本输入、滚动等)。具有标准标记语言对象(例如,超文本标记语言(HTML)或可扩展标记语言(XML))的传统网页大部分是静态文档。UI脚本在网页中执行动态动作,诸如输入购买信息字段、输入用户名、指定预定的具体日期、或输入特定街道地址。因此,网络脚本被频繁地用来通过编程驱动网站的UI以执行人工任务。

当今,生成并维护UI脚本是极度费时的。编写UI脚本涉及检查网页的DOM树以标识所有相关UI元素(例如,文本域、日期选择器、地图等)。一些软件自动化工具通过提供“记录和回放”接口来简化该过程。常规自动化工具可生成用于以下操作的UI脚本:通过在网站上选择每日预约、选择特定医学专家、查找开放时间和日期、以及选择设施位置来在网页上预订医疗预约。这些任务中的每一者必须被记录,这是非常乏味且需要人工交互。

尝试自动化跨需要不同网络脚本的众多不同网站的任务是资源密集的。再加上网站不断更新使得传统的记录和回放自动化工具在没有对此类脚本进行过多重复的网络爬行、测试和记录的情况下不足以对网站支持的行为进行建模,并且当前工具不足以在当今数字助理和网络自动化应用所需的水平上理解网络上的动作变得相当明显。



技术实现要素:

参考下文列出的附图,在下文详细描述所揭示的示例。提供以下发明内容以解说本文所公开的一些示例。然而,这并不意味着将所有示例限制于任何特定配置或操作顺序。

本文公开的实施例涉及使用机器学习来生成用于请求在特定网站上执行特定任务的查询的正确UI脚本的过程和软件工具。所有这一仅切需输入查询以及网站的URL,并且所公开的实施例能够学习最有可能的动作序列以应答该查询。为此,创建任务代理以便对UI元素执行不同的序列动作(在此被称为“任务代理运行”)。例如,任务代理运行可点击UI按钮,在文本域中输入文本,挑选日期,点击下拉菜单,或者与网页上的任何可操作项交互。每一次任务代理运行执行网页上的UI元素的不同组合,并且在UI元素上的每一个动作后,分析网页的状态以确定该动作是正面地还是负面地推进网页应答该查询。分数被分配给任务代理运行,并且分数基于网页在采取动作后的新状态来按奖励增加或减少。对于所执行的每一个UI元素,更新任务代理的分数的奖励基于以下各项来分配:正被执行的UI元素的位置、UI元素相对于与网页的先前UI交互的位置、以及网页的新状态上的内容与查询文本之间的相似度。另外,奖励可基于所执行的动作或网页状态来加权。由每一次任务代理运行执行的动作序列以及对应分数被采集并存储为“小任务(tasklet)”并且这些小任务之一基于分数(例如,具有最高分数的小任务)来被选为对该查询的应答UI脚本。该应答UI脚本然后可用于各种用途,诸如自动执行用户的任务、业务过程、IoT设备等;出于搜索目的构建动作的知识库;测试网站功能性;或者大量其他用途。

附图说明

参考下文列出的附图,在下文详细描述所公开的示例:

图1是根据所公开的实施例中的某一些的用于学习小任务的技术的框图,该小任务用于在网站上执行动作序列以应答查询。

图2是阐示根据所公开的实施例中的某一些的用于发起小任务生成的客户端计算设备的框图。

图3是阐示根据所公开的实施例中的某一些的用于促成小任务生成的联网环境的框图。

图4是阐示根据所公开的实施例中的某一些的UI窗口序列的用户界面(UI)图,该UI窗口序列示出小任务正被创建以应答对网站上的动作的查询。

图5是阐示根据所公开的实施例中的某一些的小任务的相关评分细节的UI图。

图6是根据所公开的实施例中的某一些的用于学习正确UI脚本以应答输入查询的工作流的流程图。

图7是阐示根据所公开的实施例中的某一些的用于为任务代理运行评分的工作流的流程图。

具体实施方式

将参考附图详细描述各种实施例。在任何可能的地方,相同的附图标记将被用于跨附图指代相同或相似的部件。贯穿本公开的关于具体示例和实现的参考仅出于说明目的而提供,除非相反指示,否则不意味着限制所有示例。

一般而言,本文公开的实施例和示例聚焦于生成用于网站的UI脚本以学习用于应答输入查询的正确动作的自动化方法。所公开的实施例只需两个输入:(1)描述任务的用户查询(例如,自然语言查询)以及(2)要爬行的网站的统一资源定位符(URL)。只使用这两个输入来创建任务代理,该任务代理在不同的执行实例中访问网站并与该网站上的UI元素交互,这意味着单个任务代理执行与网站上的UI元素的不同交互序列和参与。

为了清楚起见,本公开将这些不同序列称为“任务代理运行”。任务代理运行是由任务代理对网页的UI元素执行的不同动作序列。例如,一次任务代理运行可包括任务代理执行以下动作:导航到用于预订酒店的网页、挑选日期、输入姓名、选择酒店、挑选房型、以及点击提交按钮。另一次任务代理运行可包括任务代理执行以下动作:导航到用于预订酒店的网页、点击联系链接、在电子邮件请求文本域中输入文本、以及点击发送按钮。存在大量不同序列并且这些序列不必在此穷尽地讨论。为了清楚起见,任务代理运行表示由任务代理对网页的UI元素执行的不同动作序列。

为代理的每一次执行分配运行分数,为参与不同UI元素后网站相对于用户查询的不同状态评分。例如,对于驱动网站更接近完成用户查询任务的动作,可以为任务代理运行评正分,或者对于驱动网站更远离完成任务(例如,导航至完全不相关的网页)的动作,可以为任务代理运行评负分。所执行的所有动作序列然后可基于其分数来排名以标识哪一个表现最好,并且排名最高的任务代理运行被选为应答用户的查询。除了用户查询和URL之外,不需要附加输入,这允许所公开的实施例在不具有资源密集的记录和回放软件的情况下自动学习给定网站的动作。

所公开的实施例生成用于被称为“小任务”的网络任务的可执行UI脚本序列。小任务是形成网络任务的UI元素动作的集合。并且“UI元素”指的是网页上的可操作对象。UI元素的示例包括但不限于按钮、菜单、文本域、日期选择器、超链接、图像上传、或者可以在网页上执行的任何其他动作。例如,预订特定城市的酒店房间可具有包括以下动作的小任务:导航至酒店网站;点击预订页面;选择入住日期;选择退房日期;输入用户姓名、地址和电话号码;接受条款和条件;确认预订;提供支付信息;以及确认支付。这些动作共同形成可由代理顺序地执行的单个小任务。另外,当尝试学习用于预订酒店的正确动作序列时,代理执行不同的动作序列。任务代理运行在它执行的每一个动作后基于该动作是否产生网站中的与查询相关的新状态来评分。例如,运行过上述与酒店预订相关的序列的代理将被分配比在与预订房间无关的酒店网页(例如,联系页面、常问问题页面、宠物政策页面等)上点击的另一代理更高的分数。分析代理分数以确定哪一个特定小任务(或动作序列)恰当地应答用户查询。这允许所公开的实施例通过分析当任务代理与各种UI元素交互以执行不同小任务时网站发生了什么来有效地学习用于给定用户查询的正确小任务。

所公开的实施例将自动生成小任务的问题建模为“状态空间搜索”问题。网站被表示为由其各种网页构成的状态集以及由各种UI元素(例如,按钮、文本域、菜单等)构成的动作。代理通过采取一些动作以达到目标状态(例如,任务完成)来搜索空间。动作基于其趋向完成的进度来奖励。生成所得小任务,并且任务代理运行分数被用来对这些小任务进行排名并标识用于用户查询的正确小任务。或者,对所有任务代理运行进行评分,而不管它们是否达成用户查询的目标,并且任务代理运行的分数被用来对正确地应答用户查询的动作序列进行排名。

在一些示例中,用户输入是任务的自然语言(NL)描述。例如,用户输入可遵循任务描述“估算从纽约第一大道到中央公园的行程费用”。除了该NL描述用户输入之外,还可提供流行的拼车应用的URL。所公开的示例标识用户输入中的上车和下车位置(例如,通过语义学习)并生成开始在拼车URL上执行不同动作的任务代理。例如,任务代理可发现一小任务,该小任务在用于请求车辆的网页上的用于此类信息的对应文本域中输入上车和下车位置,点击“请求估算”按钮,并且然后从价格列表页面中选择因汽车级别(例如,共享、经济、高级、运动型多功能车,等等)而异的的选项。其他任务代理运行可发现不同的动作序列。并且每一次任务代理运行的所得评分揭示哪一个小任务最有可能满足用户的NL查询。

不像需要任务的一次或多次展示的现有工具,所公开的实施例不需要任何先前展示。改为创建代理以与不同UI元素交互,并且基于网站在每个动作后相对于用户查询的状态来为该代理分配分数。该框架允许正确的小任务揭示其自身,而不是必须使用先前展示。另外,用自然语言描述任务(例如,用英语写句子)使得所公开的实施例对于非技术用户是可用的。此外,通过接受独立于目标网站的一般任务描述,所公开的实施例能够“爬行”跨许多站点的给定任务的小任务。

为了帮助读者,所公开的实施例指的是动作由任务代理在网页和网站上执行。或者,所公开的任务代理和任务代理运行可以在不一定是基于网络的计算机UI环境中执行。所公开的实施例可创建在客户端设备上的计算机应用(例如,文字处理应用、电子邮件应用、电子表格应用、股票交易应用等,而不是网页)上爬行并执行动作的任务代理。因此,实施例可以在客户端计算设备的本地应用上执行相同的任务代理运行。

在一般地提供了所揭示的示例中的一些示例的概览之后,将注意力转向附图以进一步例示出一些附加细节。提供所例示的配置和操作序列以帮助读者理解所公开的各示例的一些方面。附图并不意味着限制所有示例,并因此一些示例可包括不同的组件、设备或操作序列而不脱离本文所讨论的公开示例的范围。换言之,一些示例可用与所示那些不同的方式来被具体化或起作用。

图1是根据所公开的实施例中的某一些的用于学习小任务的技术的框图,该小任务用于在网站100上执行动作序列以应答查询102。如图所示,用户106将查询以及网站100的URL 104提交至小任务服务108。用户106可以是请求执行动作(例如,通过数字助理)的终端用户。或者,用户106可以是寻求测试或指令设备(例如,IoT、机器人、软件自动化等)以执行特定动作的开发者。例如,开发者可通过客户端计算设备100上的用于过程自动化的工具来提交查询102。此外,用户106可以是被配置成提交动作查询的人工智能(AI)代码。

小任务服务108创建任务代理110以便访问网站100并在被示为任务代理运行111a-n的不同动作序列中与其各种网页114a-n交互。网页114a-n具有众多UI元素116a-n,诸如按钮、文本域、日期选择器、下拉菜单、图像加载器、或任何数量的交互式UI元素。任务代理110参与这些UI元素116a-n的不同组合,并且在参与UI元素116a-n后评估网页114a-n的状态以确定被分配给任务代理运行111a-n的分数112a-n(在此处由于某种原因被称为“奖励”)。在一些示例中,分数112a-n基于特定UI元素116的参与是否产生与查询102相关的网页114的状态来分配。如果是,则分数112被递增,但如果否,则分数112被递减。为了阐示这些分数,任务代理运行111a被示为取得分数“10”并且作为不同的动作序列的任务代理运行111n取得分数“15”,这指示后者执行了产生很有可能满足查询102的网页114a-n的状态的动作。

最终,在任务代理运行111a-n完成其与网页114的UI元素116的交互后,对UI元素116a-n执行的动作序列被记录为小任务118a-n。在一些示例中,小任务118a-n中的每一者包括由任务代理运行111a-n之一执行的UI元素动作以及所取得的对应分数112a-n的记录。小任务118然后根据所分配的分数112a-n来排名并被用来选择可被返回给用户106的应答小任务。在所描绘的示例中,应答小任务最终是小任务118n,因为它具有最高分数112n(“15”)。

如先前讨论的,所公开的示例中的某一些只需查询102和网站的URL(URL 104)。这些可由用户106从以下更详细地讨论的客户端计算设备(例如,移动电话、平板、膝上型计算机等)中的任一者提交。在一些实施例中,查询102是由用户106键入、说出或以其他方式提交给例如客户端计算设备上的应用、搜索引擎或数字助理的NL查询。或者,查询102可以作为搜索关键字的集合而不是NL查询提交。此外,各实施例不限于应答来自用户106的查询102。尽管未示出,但查询102和URL 104可由计算设备自动提交。

在其他实施例中,用户提交查询102和URL 104,并且可以为用户106执行为满足或应答查询102而生成的所得UI脚本(例如,下面讨论的应答小任务)。在一些特定实施例中,IoT设备、自主交通工具、机器人或其他设备可以被编程为提交查询102和URL 104,并且可以为该IoT设备、自主交通工具、机器人或其他设备执行为满足或应答查询102而生成的所得UI脚本(例如,下面讨论的应答小任务)。

图2示出了根据所公开的示例中的某一些的用于发起小任务生成的客户端计算设备200的示例。客户端计算设备200可以是执行指令(例如作为应用程序、操作系统功能或这两者)以实现本文描述的对应操作和功能性的任何计算机、手持式设备或处理设备。客户端计算设备200可以采用个人计算机、膝上型计算机、虚拟现实耳机、移动平板、智能电话等的形式。其他示例可以将客户端计算设备200合并为多设备系统的一部分,其中两个单独的物理设备共享或以其他方式提供对客户端计算设备200的所示组件的访问。虽然客户端计算设备200被描绘为看似单个设备,但多个客户端计算设备200可以一起工作并共享所描绘的设备资源。

在一些示例中,客户端计算设备200具有一个或多个处理器202、呈现组件204、网络连接206和计算机存储存储器208。处理器202可包括任何数量的处理单元,这些处理单元被编程为执行用于实现本公开的各方面的计算机可执行指令。在某些示例中,处理器202被编程为执行指令,诸如在此处讨论的其他附图中所例示出的那些指令。在一些示例中,处理器202表示执行在此所述的操作的模拟技术的一种实现。

呈现组件204被配置成在计算设备200上呈现信息。显示器的示例包括但不限于计算机监视器、电视机、投影仪、触摸屏、电话显示器、平板显示器、可穿戴设备屏幕、电视机、扬声器、触觉屏等。

计算机存储存储器208包括与客户端计算设备200相关联或可由客户端计算设备200访问的任何数量的存储器设备。计算机存储存储器208可以采取下面提到的计算机存储介质的形式,并可操作地存储计算机可读指令、数据结构、程序模块和其他数据,以便客户端计算设备200存储和访问被配置为执行本文公开的各种操作的指令。

计算机存储存储器208可以包括易失性和/或非易失性存储器、可移动或不可移动存储器、虚拟环境中的数据磁盘或其组合的形式的存储器设备。并且计算机储存存储器112可包括与计算设备200相关联或可由客户端计算设备100访问的任何数量的存储器。客户端计算设备200的示例包括但不限于随机存取存储器(RAM);只读存储器(ROM);电子可擦除可编程只读存储器(EEPROM);闪存或其他存储器技术;CDROM、数字多功能盘(DVD)或其他光学或全息介质;磁带盒、磁带、磁盘存储或其他磁存储设备;连线到模拟计算设备的存储器;或用于编码所需信息并由显示器108访问的任何其他介质。

计算机存储存储器208可以在客户端计算设备200的内部(如图2所示)、在客户端计算设备200的外部(未示出)、或两者(未示出)。另外地或另选地,计算机存储存储器208可以分布在多个客户端计算设备200和/或服务器上,例如提供分布式处理的虚拟化环境中。出于本公开的目的,“计算机存储介质”、“计算机存储存储器”、“存储器”和“存储器设备”是计算机存储介质208的同义术语,并且这些术语中没有一者包括载波或传播信令。

在一些示例中,计算机存储存储器208存储用于操作系统(OS)214、用户界面(UI)216、数字助理218、网络浏览器218、小任务应用220和小任务服务108的可执行计算机指令。或者,小任务服务108被主存在远程服务器上,如图3所示。

OS 114提供用于客户端计算设备200的操作环境,并且用户接口216通过呈现组件204来提供图形、音频和/或触觉。网络浏览器218提供对万维网的接入。可操作地,任务代理110被生成并且访问用户106使用网络浏览器218提交的URL 104。所生成的任务代理110在网站100上执行多个任务代理运行111a-n或动作序列。例如,一个任务代理运行111a可以包括UI元素116A、B、C上的动作,而另一个任务代理运行111b可以包括UI元素116C、D、E和F上的动作。

数字助理220是客户端计算设备200上的与用户106交互以便为用户提供用于提交不同查询的听觉或视觉提示的虚拟助理。例如,数字助理220可采取由微软公司开发的助理的形式。在一些示例中,数字助理220能够接收语音命令和音频问题。例如,用户106可以问数字助理220问题,并且数字助理220搜索与该问题相关的相关信息并呈现相关的搜索结果。另外地或另选地,数字助理220接收文本命令和查询。在操作中,数字助理220可被配置成将用户106的语音转换成文本并从所转换的文本制定查询。或者数字助理220可以口头地或经由文本输入来响应由用户106提交的NL查询或问题。特定于所公开的实施例,用于启动小任务生成的查询102和URL 104可作为NL查询或作为关键字集合,通过文本输入或经由音频输入(例如,当用户说出查询时)来提交给数字助理220。

小任务应用222是接收查询102和URL 104并将这两者提供给小任务服务108的客户端侧应用。在一些实施例中,小任务服务108驻留在客户端计算设备200(如图2所示)上,并且小任务服务108是小任务应用222的一部分。或者,小任务服务108在远程服务器上操作,如图3所描绘的。为了清楚起见,小任务服务108的功能以下与图3相关地更详细地描述。

图3解说了根据所公开的实施例中的某一些的用于促成小任务生成的联网环境300的框图。联网架构300涉及客户端计算设备200、小任务服务器302以及网络服务器304,它们全都经由网络306彼此通信。联网架构300只是一个合适的联网环境的示例,并且不旨在对本发明的使用范围或功能提出任何限制。联网架构300也不应解释为具有与其中解说的任何单个组件或组件的组合有关的任何依赖性或要求。

网络306可包括任何计算机网络或其组合。可被配置成作为网络306操作的计算机网络的示例包括但不限于无线网络、陆线、电缆线路、数字用户线路(DSL)、光纤线路、局域网(LAN)、广域网(WAN)、城域网(MAN)等。然而网络306不限于耦合各单独计算机单元的连接。相反,网络306还可以包括在服务器或计算设备之间传输数据的子系统。例如,网络306还可以包括点对点连接、因特网、以太网、电气总线、神经网络或其他内部系统。此类联网架构是公知的并且无需在此深度讨论。

小任务服务器302和网络服务器304可以是任何类型的服务器或远程计算设备。网络服务器304主存经由URL 104通过查询102来请求的网站100。网络服务器304存储并应答对各种网页114a-n的请求。在操作中,网络服务器304提供所创建的任务代理110对网站100的网页114a-n的访问,并且任务代理110执行包括不同动作序列的多个任务代理运行111a-n,这些任务代理运行111a-n用在每个动作后分配的奖励(被示为分数112a-n)来评分。在组件方面,网络服务器304包括处理器、存储器和网络连接,但为了清楚起见未示出它们。

小任务服务器302包括一个或多个处理器306、网络连接310以及计算机存储存储器312。在一些示例中,小任务服务108被存储在小任务服务器302的计算机存储存储器312中。小任务服务108包括查询解析器314、代理生成器316、奖励模块318、强化学习(RL)模块320以及后处理模块322。如在下文中更详细地讨论的,这些组件314-322提供用于生成任务代理110的可执行指令,该任务代理110用于与网页114a-n的UI元素116a-n交互,基于网页114a-n的不同状态来向任务代理运行111a分配分数112a-n,并基于任务代理运行111a-n的所分配的分数112a-n来对小任务118a-n进行排名。或者,小任务服务108可以是客户端侧应用,该应用具有查询解析器314、代理生成器316、奖励模块318、RL模块320以及后处理模块322,所有这些都被存储在客户端计算设备200上并在该客户端计算设备上执行。

在操作中,小任务生成在用户106提交查询102和URL 104时启动。查询102请求在所提交的URL 104中指示的网站100上执行任务。例如,查询102可以是“Make a reservation for 4 tonight for Italian food(预订今晚的4人意大利美食)”,并且URL可以是www.reservationonline.com。用户106可将这一查询102和URL 104直接输入到小任务应用222中或者通过数字助理220来输入这一查询102和URL 104。不管是如何输入的,查询102和URL 104都被传送至小任务服务器302以供由小任务服务108来处理。

一旦查询102和URL 104被小任务服务108接收到,查询解析器314就解析用户查询102并提取句法和语义信息。具体而言,查询解析器314可识别查询302中的不同类型的文本,诸如举例而言,地址;食物类型(例如,意大利菜、印度菜、墨西哥菜等);姓名;位置;事件;活动;等等。在一些示例中,查询解析器314将文本参数分配给查询102的所解析的文本,并且文本参数指定查询302中的经识别文本。例如,查询“估算从纽约第一大道[起点]到中央公园[终点]的行程费用”可以用括号中示出的文本参数来标记到该NL查询。每个文本参数是对查询102的特定文本的实体类型分类。开发者可自由地决定如何注释其参数(例如,在以上示例中注释“上车点”或“原点”也有效)。

代理生成器314创建任务代理110以执行任务代理运行111a-n,以便搜索URL 106的目标网站100并查找满足该查询102的一个或多个小任务。任务代理110被创建以导航至网站100并参与网页114a-n中的UI元素116的不同序列。例如,一个任务代理运行111a可打开拼车应用的预订页面,输入上车位置,并且然后点击估算行程费用的按钮,这导致显示出错页面,因为缺少输入下车位置。同时另一个任务代理运行111b可打开该预订页面,输入上车位置,输入下车位置,并且然后点击估算行程费用的按钮,这导致呈现对所提出的行程的实际估算。

在每一次UI元素116a-n交互后,奖励模块318基于网页114a-n在该动作后的状态来向任务代理110分配分数(或奖励)。在一些示例中,奖励是基于网页114a-n的经更新状态有多接近地对查询102的文本做出反应或响应来分配的。图3示出了多个任务代理运行111a和111n分别具有不同分数112a和112n。在一些示例中,任务代理运行111a-n的分数112a-n被实现为基于网页114a-n在每一个UI元素116a-n交互后的状态的运行计数器。导致网页114a-n在语义上与查询102对准的交互被认为是正面的,并由此分数递增。而产生对用户查询102无所作为或者比之前的网页114a-n做得少的网页114a-n的交互被认为是负面的,并由此分数递减。在以上两个示例中,任务代理运行111a将被递增,因为它产生显示所估算的行程费用(作为查询102的一部分)的网页。但任务代理运行111b将被递减,因为它产生不包括估算行程费用的错误。

换言之,网站100被示为有限状态机<W,A>,其中W是状态集,并且A是可导致状态转变的动作集。状态w∈W对应于网站100中的网页114,其中w0是启动页面。每个w可由其DOM树(Wdom)和截屏Wscreen(W屏幕)表示。Wdom中的每个节点对应于网页中的由一个或多个UI元素属性(例如,Xpath(X路径)、X,Y坐标、DOM标识符等)唯一地标识的UI元素116(e)。从该DOM树中提取UI元素116(e)的各种属性,包括:(1)该UI元素的由页面中的矩形表示的位置(eloc);(2)该元素是“可点击”还是“可编辑”的(etype),如从各种标记标签(例如,用于文本元素的<p>、用于图像的<img>、用于接受点击事件的元素的<botton>等)中推断出的;(3)该元素是否关联了一些使用HTML属性(例如,文本、占位符、值等)的组合来推断出的文本(etext),因为并非所有文本都可用;以及(4)字体大小(efont)。具有不同内容或DOM树的网页114a-n被认为是<W,A>中的不同状态。

是可以在w∈W中执行的动作集。动作可导致状态转变。例如,点击链接可重定向至另一页面或者将文本键入到文本域中可导致当前页面中的内容改变。一些具体实施例将动作空间限于以下四个动作类别:

(1)click(e):点击元素e,其中e必须是可点击UI元素,诸如按钮、超链接等;

(2)select(e,i):选择元素e的第i个子元素,其中e是<select>DOM元素,并且i比e中的选项数量小(例如,从菜单中选择一个项目);

(3)type(e,t):将文本t键入到e中,其中e是可编辑UI元素(例如,文本域)并且t是q中的一个或多个字词;以及

(4)enter(e):通过按下“回车”键盘键来提交e中的内容,其中e必须是可编辑UI元素。

最后,tasklet(q,w)118然后可被定义为w中的可完成q中描述的任务的动作序列<a1,a2,...>。

搜索作为网站的应用的状态空间可使用许多算法。搜索算法需要以探查-开发的方式工作,其中网站上的信息是通过随机探查该网站来收集的,以引导对将来动作的选择。为了将任务代理引向完成,在每一次执行动作时返回奖励。用于网站的搜索代理的一个可能实现基于强化学习。其他实现可使用Hill Climbing或Monte Carlo树搜索。

在标准强化中,在每一个时步(i),任务代理110基于当前状态si∈S来选择动作ai∈A。作为响应,网站100向任务代理110返回新状态si 1和奖励(si 1,ai)。任务代理110的目标是通过试错来学习如何最大化分数112a-n的累积奖励R。在一些示例中,用于任务代理110的执行环境包括被操纵以执行UI动作的网络浏览器。在初始化时,网络浏览器加载URL 104并向任务代理110传递初始状态w0以及可能的动作集Aw0。如先前讨论的,奖励模块318在采取动作之际向任务代理110分配正或负奖励。对该设计的一个关键洞察是朝着完成查询102的任务的进展可基于当前任务描述、当前状态(例如,当前网页114中的内容)以及任务代理110迄今执行的动作序列来识别,而无需知晓该任务的预期结果。

在一些示例中,奖励模块318基于以下因素来分配奖励:动作局部性、动作方向性、以及任务-网页相似度。动作局部性指的是UI元素116相对于彼此的位置。当与网页114交互时,用户此时通常聚焦于页面的一小部分,而不是四处跳转。例如,在任务“查找饼干食谱”中,任务代理110可尝试在文本框中输入字词“饼干”并点击该文本框旁边的搜索按钮。任务代理110不应点击页面底部的链接“Cookie、条款和隐私”。由此,UI元素116a-n相对于彼此的位置被奖励模块318考虑并影响所分配的分数112。UI元素彼此越靠近就越指示正面状态,这产生更高的分数。UI元素116彼此更远离指示负面状态,这产生更低的分数。

动作方向性指的是UI元素交互进展的方向。由于网站是为人类设计的,因此DOM元素的放置通常被优化以帮助阅读和任务完成。例如,在西方语言中,人类通常从左到右且从上到下(也被称为Z和F模式)阅读页面,因此用于执行网络任务的后续动作往往相应地进行。因此,奖励模块318可基于UI元素相对于网页114的特定语言的消费模式的定位来分配奖励或递增分数112。例如,英语网页114可基于所参与的UI元素116被从左到右且从上到下地定位来评分。

任务-网页114相似度计及网页110在特定UI元素116交互后的新状态是否包含还关联了某一分类文本(例如,按钮标签)的文本内容和/或动作,该分类文本与查询102的语言,诸如与查询102的文本字词、参数或参数注释相匹配或语义上类似。换言之,产生具有与查询102中相似或相同的文本的网页的用于参与UI元素116的动作在分数上递增。例如,尝试估算行程费用的任务代理运行111可以在它采取的动作产生具有标记为“点击估算”的UI按钮的网页的情况下递增。

在一些实施例中,奖励模块318将所执行的每个UI元素116动作的位置、所执行的每个UI元素116的方向性(例如,相对于前一元素116)以及任务-网页相似度映射为“任务进展指示符”。给定查询102(q)、一个或多个参数(p)、参数注释(pann)、当前网页114(w)以及迄今执行的动作序列as=<a1,a2,...,ak>,定义以下各项:

(1)num_ld:as中的长距离动作对的数量,这意味着其相关联的UI元素的后续动作位于比UI窗口的宽度或高度的一半更大的距离处(例如,对1000×1000像素页面是500像素)。

(2)num_rd:as中的反方向动作的数量;如果动作的UI元素116位于序列中的在先动作的UI元素116的上方或左侧,则该动作被认为是反方向的。

(3)tasksim:q中的字词与存在于当前状态w中的文本之间的相似度。奖励基于任务相似度,并被设计成鼓励代理导航至并停留在与任务描述“相关”的网页中。

(4)parsim(p):q中的参数p与存在于当前状态w中的文本之间的相似度。

例如,考虑查询102查询“估算从纽约第一大道[起点]到中央公园[终点]的行程费用”以及被称为“ridesharing.com”的拼车网站的URL 104。括号内的“起点”和“终点”是在查询解析器314执行语义分析后被添加到查询104的经注释参数。在该示例中,奖励模块318确定:(i)参数值pval(例如,“中央公园”)是否具有与w中的任何文本ti的高相似度、(ii)该参数的注释pann(例如,“终点”)或者在q中pval的任何周围文本(例如,“到”)是否具有与w中的任何文本tj的高相似度,以及(iii)ti和tj是否对应于空间上接近的UI元素(例如,下车位置文本框是否可出现在标签“目的地”的旁边以及在q中字“到”是否在下车值“中央公园”之前)。

查询102中的文本与网页114的当前状态w之间的相似度在一些实例中按以下方式在文本t1和文本t2之间计算:

sim(t1,t2)=max{sim1-gram(t1,t2),simn-gram(t1,t2),

simdate(t1,t2),simnumber(t1,t2)}

其中sim1-gram、simn-gram、simdate和simnumber分别是通过将输入认为是单字单元(1-gram)、多字单元(n-gram)、日期或数字的t1和t2之间的相似度。另外,一些实施例计算这两个文本之间的莱文斯坦距离(例如,将一个字符串变换成另一个字符串的编辑的最小次数)。

然而,网页经常包含误导文本。因此计算q和w中所有文本之间的相似度并不总是理想的。例如,超链接“手机”可能并不表示包含它的网页114是关于移动电话的。另一方面,限制与可操作UI元素相关联的文本(例如,按钮的标签)的相似性可能过于严格。一些实施例通过将网页的内容减少到更可能表示其功能的程度来在这两者之间进行折衷。在一些示例中,如果e是(i)与“短”文本(即,不是比预定字数量更长的段落且不是列表)相关联的非交互式元素(例如,标题、文本框标签等);或者(ii)在当前和先前网页114中经受先前交互的元素,则奖励模块318分配为了容适该e,在一些实施例中使用值q*并将其定义为q并省略参数和介词。这允许按以下方式计算tasksim:

tasksim=mean{max{sim{tw,etxt)}}

tweq*e∈w*

其中sim(tw,etext)是q*中的每个任务字词tw与关联于w*中的每个e的文本之间的相似度。

为了计算parsim,奖励模块318假定:(i)sv(p,e)=θ*sim(pval,etext),参数值pval和etext之间的按因子θ3缩放的相似度,以及(ii)sm(p,e)=sim(pmetadata,etext),参数的元数据pmetadata(即,p的注释以及q中的在p周围的字词)与etext之间的相似度。这允许按以下方式定义parsim:

parsim(p)=max{sv(p,ei) Sv(p,ei)*sm(p,ej)}

ei,ej,∈w* 1 λ*dist(ei,ej)

其中λ是用于缩放空间距离的超参数。

例如,再次考虑示例查询102“估算从……的行程费用”并且URL 104是www.rideshare.com。假定as=<a1,a2,a3>,其中a1=type(ea1,1st Ave,New York(纽约第一大道)),a2=type(ea2,Central Park(中央公园)),a3=click(ea3),ea1=eEnter pick-up location(输入上车位置),ea2=eEnter drop-off location(输入下车位置),且ea3=eget estimate(获得估算),奖励指示符如下:

(1)num_ld=0,因为<as>中的所有动作对在空间上接近;

(2)num_rd=0,因为在as中不存在反方向a;

(3)tasksim:q*是“估算行程费用起点终点”;以及

(4)parsim(pend location(p终点))对于ei=ej=ea2是最高的,因为:(a)参数的值(“中央公园”)以及在ea2中输入的文本恰好匹配(因此sv=0.7),以及(b)与ea2相关联的占位符文本“输入下车位置”具有与该参数的注释“终点”的高相似度(对于ea2,sm=0.89)。此处,parsim(p终点)=1.32。parsim(pstart location(p起点))也有同样的考虑。

任务-网页相似度计及网页110在特定UI元素116交互后的新状态是否包含还关联了某一分类文本(例如,按钮标签)的文本内容和/或动作,该分类文本与查询102的语言,诸如与查询102的文本字词、参数或参数注释相匹配或语义上类似。换言之,产生具有与查询102相似或相同的文本的网页114的用于参与UI元素116的动作在分数上递增。例如,尝试估算行程费用的任务代理110可以在它采取的动作产生具有标记为“点击估算”的UI按钮的网页的情况下递增。

使用以上奖励指示符,奖励模块318如下定义累积奖励函数R(q,w,as):

R(q,w,as)=wdist*numld wdir*numrd wtask*tasksim wpar*Σparsim(p)–k

p∈P

其中P是q中的参数集,并且wdist<0、wdir<0、wtask>0和wpar>0是根据经验学习的权重。折扣因子k是一个阶梯式惩罚(每个采取的动作都为-1,除了类似提交的动作,诸如表单提交按钮或“回车”键按压),这鼓励代理发现短路径。为了正确奖励跨越多个网页114的任务,如果最后执行的动作导致网页转变,则调整迄今为止累积的奖励。如果导致页面转变的动作是“提交”动作,则假定代理正朝完成任务取得进展,因此保留迄今为止累积的奖励。否则,这意味着代理已经放弃了正在进行的任务,因此,之前步骤中积累的奖励被清除。

在任务代理110采取的每个动作之际,奖励模块318返回被计算为累积奖励的增量的部分奖励。在一些示例中,对于第i步给予任务代理110的奖励是:

ri=R(q,w,asi)-R(q,w,asi-1)。

在涵盖了如何分配奖励的一些具体示例后,其他实施例将使用不同的算法和技术来对任务代理110的进展进行评分,以开发出应答查询102的小任务118。

RL模块320使用本文描述的奖励模型来提供强化学习。在一些实施例中,RL模块320实现分层策略,由此主任务代理110被创建并控制因任务而异的子任务代理110(在此被称为子任务代理110)的子集。在一些实施例中,使用Q学习来学习主任务代理110。这可以通过训练函数Q来表示在s中采取动作a的长期值来完成。该函数被表示为映射表,其中每一键是状态-动作对<s,a>且值是Q(s,a)。动作由它的类型、值和它的目标UI元素的属性(DOM属性、Xpath、X/Y位置、标识符等)唯一地标识,并且状态由该状态中所有动作的标识符、关联页面的DOM树、关联页面的截屏以及关联页面上出现的内容来唯一地标识。为了训练Q函数,主任务代理110被允许尝试N个情节(episode)并且在每个情节中采取M步。一开始,Q被初始化为0,代理随机探查状态。主任务代理110基于收集的经验不断更新Q,并逐渐从探查(随机选择动作)移动到开发(基于Q值选择动作)。

为了导航大状态空间(诸如网站),可以采用分层策略,其中主代理110协调与页面的交互和跨页面导航,并且一个或多个子代理110执行专门的交互,诸如填写表单、在日期选择器中输入日期,执行搜索动作,登录或登出网站等。

为了训练诸如表单填写子代理之类的子任务代理110,一些实施例使用深度Q网络(DQN)。DQN类似于Q学习,不同之处在于值函数Q(s,a)通过深度神经网络(DNN)而不是映射表来逼近。对于填写表单的子任务代理110,使用DQN,因为DNN可捕获表单中常见的状态-动作对之间的共性。例如,将上车位置和下车位置键入到正确的文本框中的动作在DNN模型中具有相似的表示,因此可以使用关于一者的经验来学习另一者。在Q学习中,每个状态-动作对被表示为唯一标识符,由此每一步必须被单独学习。

Q学习和DQN是用于训练子任务代理110的仅仅两个示例。可使用其他算法和技术。

将子任务代理110用于表单的优点是由于与表单交互时不导致页面重定向(这是不可预测的),因此实施例通过模拟其可能的状态转变来探查表单。例如,在s中执行键入(e,“中央公园”)后获得的状态和奖励可通过在s中将e的值简单地设为“中央公园”来模拟。通过模拟,可运行多得多的情节以训练子任务代理110。

后处理模块322分析任务迭代110s的分数112以标识正确的小任务118a-n。基于最终累积分数112,选择奖励最高的任务代理运行111a-n的最高数目(例如,5、10、20、100等)。累积负分的任务代理运行111a-n可以在新动作序列被成功回放并产生更高奖励的情况下被丢弃。通常出现在任务执行末尾的可能缺少的“提交”动作(例如,缺少的回车动作)在一些实施例中被自动注入和测试。然后,最终动作序列被回放以验证小任务118起作用。该最终输出包括最多k个小任务118a-n,它们按其累积分数112a(或奖励)来排名。并非所有任务代理运行111a-n都产生小任务118a-n。如所讨论的,基于它们的分数112a-n,仅可以采用k个任务代理运行111a-n,并且丢弃负分任务代理运行111a-n。

一旦生成了小任务118a-n,就可以选择一个小任务并将其存储为用于执行查询102的UI脚本。这显示为应答小任务118n,因为小任务118n基于具有最高分数112n的任务代理运行110n。实际上,从任务代理110的任务代理运行111a-n生成的小任务118-n产生可用于多种用途的可执行UI脚本(上述示例中的应答小任务118n)。应答小任务118n可以为用户106自动执行、被存储在云存储器中以指示作为搜索引擎网络爬行的一部分的学习到的动作、被存储在机器人库中或用于大量其他用途。针对给定查询102实时确定最可能的小任务118具有深远的影响,这些影响可直接帮助搜索、机器人技术、自动化、虚拟助手和许多其他最终用途。

另外地或另选地,在一些示例中,后处理模块322分析任务代理运行111a-n的动作,并学习最正面地递增分数112a-n的动作序列,然后创建任务模板(图4中被示为118z),其包括最递增分数112的动作。例如,任务代理运行111a可以在10个动作中具有3个具有正奖励的动作,任务代理运行111b可以在10个动作中具有2个,任务代理运行111c可以在10个动作中具有4个。后处理模块322分析正奖励动作,确定是否有任何动作被更多不同的任务代理运行111a-c执行(这与UI元素118的正确参与密切相关),然后创建只包括正奖励动作的小任务模板118z。这一小任务模板118z可被设为应答小任务118n,该小任务可被用作用于以可参数化方式执行查询102的任务的UI脚本。

图4解说了根据所公开的实施例中的某一些的显示三个小任务(小任务118a-c)的UI窗口402-406的序列,创建这三个小任务以应答对网站100上的动作的查询102。在该示例中,查询102(“估算从纽约第一大道到中央公园的行程费用”)连同拼车应用的URL 104(www.rideshare.com)一起被提交给小任务服务108。这被显示在UI窗口402中,并且这两者可通过数字助理220或小任务应用222中的另一输入来提交。

在一些示例中,查询解析器314分析查询102的文本并将参数注释pann408、410分配给识别为特定类型文本的文本。在所示示例中,起点和终点被分别标识并注释为pann408和pann410。可标识并应用大量其他类型的注释。示例包括但不限于姓名、地址、美食、时间、日期、人员、头衔、电话号码、联系人或任何其他可通过语义或句法分析识别的文本。

UI窗口404显示拼车网站108,该网站具有若干可参与UI元素116a-e。具体而言,UI元素116a-e包括应用下载按钮116a、菜单按钮116b、用于输入上车位置的文本域116c、用于输入下车位置的文本域116d以及用于获得行程估算的按钮116e。在操作中,任务代理110执行一次或多次任务代理运行111a-n,取得查询102的文本并开始参与UI元素116a-e以形成UI窗口406中显示的小任务118a-c。例如,任务代理运行111可以在用于输入上车位置的文本域116c中输入pann408的文本(起点),在用于输入下车位置的文本域116d中输入pann410的文本(终点),和/或选择估算按钮116e。

任务代理运行111可以对所示网站100的UI元素执行不同的动作组合,并且这些动作导致的结果状态(即,网页)基于先前讨论的由奖励模块318考虑的动作局部性、动作方向性和任务-网页相似度特征来进行分析以将分数112(或奖励)分配给任务代理运行111。动作局部性指的是正被执行的UI元素116相对于网页114上的其他UI元素116的位置,并且在一些示例中,当这两者之间的距离在特定距离阈值内时,奖励为正,而如果这两者之间的距离不在特定距离阈值内,则奖励为负或中性。动作方向性指的是所执行的UI元素116相对于前一UI元素116的继续方向,并且当该方向性按照用户阅读内容的方式(例如,对于英文文本而言是从左到右)直线流转时,分配正奖励,或者在方向性未按照用户阅读内容的方式直线流转时,分配负或中性奖励。最后,任务-网页相似度指的是由执行UI元素114而产生的网页的新状态上的文本相对于查询102的文本的语义接近度。如果网页的新状态具有与查询102的文本相同或在语义上接近的文本,则分配正奖励,如果否,则分配负或中性奖励。

例如,一个任务代理运行111a可点击应用下载按钮116a,这将网站100定向至用于下载拼车应用的手机版本的新网页114,并由此与实际上估算行程无关。该动作然后被奖励模块318评负分,因为新状态(即,用于下载该应用的网页114)具有极少或不具有与查询102相关联的文本。另一个任务代理运行111b可以在用于上车位置的输入文本域116c中输入起点后选择菜单按钮116b,这产生负分112(或奖励),因为菜单按钮116b位于输入文本域116的右上方,这与用户通常阅读或消费网页的方向相反(例如,违反动作方向性)。此外,同一动作序列可违反动作局部性,因为菜单按钮116b和输入文本域116c超过UI屏幕404上的彼此之间的阈值距离。这些仅仅是UI元素116a-e中的动作如何被评分的一些示例。

小任务服务108从任务代理运行111a-n及其对应分数112中生成小任务118的列表。UI窗口406显示所生成的小任务118a-c的示例,这些小任务是根据其对应分数112来排名的。每一个小任务包括奖励分数112以及已经执行的动作序列(412)。更具体地,小任务-1 118a包括动作412a和分数112a,小任务-2 118b包括动作412b和分数112b,小任务-3 118c包括动作412c(为了清楚起见未示出)和分数112c(也未示出),等等。小任务118a-c根据它们的分数112来进行排名,并且可以基于分数112选择应答小任务118n。或者,应答小任务118n可以是模板小任务118z,该模板小任务基于从不同小任务118a-c学习的正面动作集412z来生成。

在一些实施例中,应答小任务118n是评分最高的小任务118,诸如所描绘的示例中的小任务-1 118a。或者,模板小任务118d被创建并被分配为应答小任务118n。模板小任务118d由后处理模块322创建,后处理模块分析任务代理运行111的学习轨迹(由N个情节组成)以标识正确的小任务118a-n。基于最终累积分数112,选择奖励最高的任务代理运行111a-n的最高数量(例如,5、10、20、100等)。累积负分的任务代理运行111a-n可以在新动作序列被成功回放并产生更高奖励的情况下被丢弃。通常出现在任务执行末尾的可能缺少的“提交”动作(例如,缺少的回车动作)在一些实施例中被自动注入和测试。然后,最终动作序列被回放以验证小任务118起作用。该最终输出包括最多k个小任务118a-n,它们按其累积分数112a(或奖励)来排名。并非所有任务代理运行111a-n都产生小任务118a-n。如所讨论的,在一些实施例中,基于它们的分数112a-n,仅可以采用k个任务代理运行111a-n,并且丢弃负分任务代理运行111a-n。

图5阐示了根据所公开的实施例中的某一些的示出被应用于小任务118a的奖励的相关权重的UI图。在一些实施例中,权重被应用于基于特定结果而被授予任务代理运行111的动作的奖励。奖励权重500被应用于不同奖励量。在所示示例中,六种类型的奖励权重(0-5)被用来调整与步骤计数(权重0)、空间距离(权重1)、反方向(权重2)、任务相似度(权重3)、以及所得网页114相比于查询102中的不同文本的相似度(权重4和5)相关联的奖励。为了进一步阐示,所示实施例阐示了按以下方式向计数112分配权重500。第一奖励权重-1.0被应用于基于步骤计数的奖励。第二奖励权重-2.0被应用于基于UI元素116a之间的空间距离超过预定长度的奖励。第三奖励权重-2.0被应用于由于UI元素116处于与前一动作相反的方向上而产生的奖励。第四奖励权重5.0被应用于由于所得网页具有与查询102的项相似(tasksim)的任务而产生的奖励。第五奖励权重10.0被应用于由于所得网页具有与查询102相似(parasim)的参数而产生的奖励。另外,UI 500还可显示小任务轨迹502,该轨迹表示由创建小任务118a的底层任务代理运行111执行的动作。

图6是根据所公开的实施例中的某一些的用于学习正确UI脚本以应答输入查询的工作流600的流程图。最初,如602所示,接收表示要执行的可操作任务(例如,“估算从纽约第一大道到中央公园的行程费用”)的查询以及要执行该任务的网站100的URL 104(例如,www.rideshare.com)。如604所示,创建任务代理以便对该网站的各种网页中的UI元素执行不同的动作序列。例如,可执行数十个、数百个、数千个、或任何其他个数的任务代理运行111。为了阐明,工作流600示出了任务代理运行A和任务代理运行B的两个不同迭代;但是,可使用任何个数的任务代理运行111。这两个不同迭代包括相同的操作元素,只是针对不同的任务代理运行111执行。

如606A,B所示,每个任务代理运行111对UI元素116执行一动作。这些动作可包括点击按钮、在文本域中输入文本、参与下拉菜单、选择日期、点击视频上的播放、或网页上的任何其他动作。这些动作可改变网页或者定向至新网页。这些改变被监视并被认为是网页114的新状态。例如,如果任务代理运行导航至具有日期选择器的网页并选择一日期,则检测到该网页的没有日期的第一状态并在已经输入日期后检测到该网页的第二状态。在另一示例中,如果用户选择预订餐厅,则检测到预订按钮位于其中的网页的第一状态并检测到其中提供已经做出预定的确认的第二网页的第二状态。由此,如由这两个非限制性示例示出的,UI元素的执行改变网页或定向至新网页,这两者都被认为是要分析的新状态。

如610A,B所示,由任务代理运行对UI的执行导致的对网页的状态改变被评分。在一些示例中,这些分数112包括由奖励模块基于以上讨论的动作局部性、动作相似度和/或任务-网页相似度参数来发放的奖励(可被加权)的总和。在一些示例中,从每一个任务代理运行111的运行分数112中增加或减去奖励。换言之,分数112基于网页114的状态以及上述动作局部性、动作相似度和/或任务-网页相似度参数来递增或递减。执行UI元素116、分析网页114的新状态以及为该新状态评分的这一序列在任务代理运行111中的每个UI元素116后被重复,如判定框612A,B所示。

一旦任务代理110完成对UI元素116执行动作,就从任务代理运行111中创建小任务118,如614所示。小任务118可包括任务代理运行111的分数以及所执行的动作的轨迹。如614所示,然后从小任务118中选择应答小任务118n。在一些示例中,应答小任务118n包括具有最高分数的任务代理运行111。或者,应答小任务118n包括来自多个任务代理运行111的具有最高分数的动作序列(例如,上述任务模板118z)。应答小任务118n然后可作为用于用户的UI脚本、IoT设备、机器人等来执行。另外地或另选地,应答小任务118n可作为用于给定任务的最可能动作被存储在用于搜索引擎的知识储存库中。对于应答小任务118n存在众多其他用途。

图7是阐示根据所公开的实施例中的某一些的用于为任务代理运行111评分的工作流700的流程图。具体而言,工作流700示出了任务代理如何由奖励模块评分的一个示例。该工作流700可供所有任务代理运行111a-n用来生成并更新指示正由该任务代理运行111a-n执行的动作是否将满足给定查询的分数112a-n。此外,工作流700可针对由任务代理110对UI元素116执行的每一个动作执行。

最初,如702所示,在任务代理运行111期间执行UI元素116上的动作之前监视或以其他方式捕获网页114的状态。当UI元素动作由任务代理110执行时(例如,任务代理110点击按钮、挑选日期、输入文本、播放视频、或在网页上执行另一动作),捕获并分析网页114在该UI元素动作后的新状态,如706所示。该新状态可示出网页114a已经从该动作改变或者该动作已经触发新网页114b的启动。

基于网页114b的新状态来向任务代理运行111a-n发放奖励,如不同的判定框708、710和712所示。这些判定框708-712对应于先前讨论的动作局部性、动作方向性和任务-网页相似度参数。具体而言,判定框708-712示出任务代理运行111a-n的分数如何递增或递减,这示出对于所有Yes(是)路径的正增量以及对于所有No(否)路径的负减量。此外,如上所述,这些奖励可基于不同的加权参数(例如,步骤计数、空间距离、反方向、任务相似度、参数相似度等)来加权。

查看框708,如果已被执行的UI元素116在网页上的距先前已被执行的另一UI元素116的阈值距离内,则递增任务代理运行111的分数,或者如果超过该阈值距离,则递减该分数。例如,如果所选按钮在网页的底部10%中,但先前的输入文本动作在顶部10%中,从而超过该阈值距离,则将分数112减少特定值,或者换言之,对任务代理运行111的分数112应用负奖励。

查看框710,如果已被执行的UI元素116继续处在用户通常消费内容的方向(给定网页语言)上,则递增任务代理运行111的分数,或者如果否,则递减该分数。例如,如果网页114是英文(即,从左到右且从上到下阅读),则在前一动作的左上方的文本域将导致负奖励被应用于任务代理运行111的分数。

查看框712,如果由对UI元素执行的动作产生的网页114的新状态包括与查询文本相同(或语义上接近)的文本或其他内容,则递增任务代理运行111的分数。如果否,则递减分数112。例如,如果查询是在特定拼车应用上“预订汽车”并且该网页的经更新状态是汽车被预订的确认,则正奖励可被添加到分数,因为该状态包括已存在于该查询中的项“被预订”和“汽车”。以上讨论的不同技术被用来确定网页的新状态与查询之间的相似度。

由此,这三个判定框708-712示出了正奖励和负奖励在任务代理运行执行不同UI元素时被应用于任务代理运行的方式。如714所示,使用正奖励和负奖励来更新分数。此外,如先前讨论的,任务代理的这些分数被用来创建从中选择用于查询102的UI脚本(例如,应答小任务118n)的小任务118。

可替代地或附加地考虑除了三个判定框708-712之外的其他信号。在一些实施例中,任务连贯性被检测和奖励。在执行任务时,先前输入的参数通常在后续页面中被概述为任务进展(例如,到达概述预订的所有细节的确认页面)。可以就网页114是否包括概述与查询102相关的细节的文本来分析网页114上的内容。可以使用许多其它因素。因此,图7中示出的判定框可被扩展以计及各种不同参数。

附加示例

一些示例涉及以下条款。

1A.一种用于构建用以在网站上执行由查询描述的任务的UI脚本的方法,所述方法包括:

接收所述查询以及所述网站的统一资源定位符(URL),所述查询指定要执行的任务并且所述网站包括具有UI元素的一个或多个网页;

创建用以执行任务代理运行的任务代理,所述任务代理运行包括所述一个或多个网页中的UI元素的不同动作序列;

分析所述网页在执行在所述任务代理运行中执行的UI元素的每个动作后的状态;

基于所述网页在执行所述UI元素的动作后的状态来向所述任务代理运行分配分数;以及

基于所述任务代理运行的所分配的分数来生成用于执行由所述查询描述的所述任务的所述UI脚本。

2A.如权利要求1所述的方法,其中所述查询是自然语言查询。

3A.如权利要求1所述的方法,其中所述查询由用户通过客户端计算设备上的数字助理来提交。

4A.如权利要求1A所述的方法,其中所述基于所分配的分数来生成用于执行由所述查询描述的所述任务的所述UI脚本包括:

从所述任务代理运行中生成小任务,所述小任务包括由所述任务代理运行对所述UI元素执行的动作序列;

将所述任务代理运行的分数分配给所述小任务;

基于所述分数来从所述小任务中选择应答小任务;以及

将所述应答小任务存储为所述UI脚本。

5A.如权利要求1A所述的方法,其中所述分数基于执行动作后的所述一个或多个网页中的文本相对于所述查询中的文本的相似度来分配给所述任务代理运行。

6A.如权利要求1A所述的方法,其中所述分数基于所执行的UI元素相对于所述一个或多个网页中的另一UI元素的动作局部性来分配给所述任务代理运行。

7A.如权利要求1A所述的方法,其中所述分数基于所执行的UI元素相对于所述一个或多个网页中的先前执行的UI元素的动作方向性来分配给所述任务代理运行。

8A.如权利要求1A所述的方法,其中所述查询由开发者通过用于客户端计算设备上的过程自动化的工具来提交。

9A.如权利要求8A所述的方法,进一步包括:

分析所述查询的语义;

识别所述查询的文本;

将参数分配给所述查询的经识别文本;以及

使用所分配的参数来参与所述UI元素中的至少一者。

10A.如权利要求1A所述的方法,进一步包括由物联网(IoT)设备或机器人来执行所述UI脚本。

11A.如权利要求1A所述的方法,进一步包括将所述任务代理训练成主任务代理。

12A.如权利要求11A所述的方法,进一步包括将所述任务代理训练成与附加子任务代理交互以执行所述任务代理运行的各部分。

13A.如权利要求11A所述的方法,其中所述分数分配基于所述UI元素的动作中的至少一者来加权的奖励。

14A.一种用于构建用以应答对网站的查询的UI脚本的计算设备,所述计算设备包括:

包含有用于生成任务代理的指令的存储器,所述任务代理执行所述网站的网页中的UI元素上的动作的各种任务代理运行;以及

被编程为执行以下操作的一个或多个处理器:

接收所述查询以及所述网站的统一资源定位符(URL),所述查询指定要执行的任务并且所述网站包括具有UI元素的一个或多个网页;

创建用以执行任务代理运行的任务代理,所述任务代理运行包括所述一个或多个网页中的UI元素的不同动作序列;

分析所述网页在执行在所述任务代理运行中执行的UI元素的每个动作后的状态;

基于所述网页在执行所述UI元素的动作后的状态来向所述任务代理运行分配分数;以及

基于所述任务代理运行的所分配的分数来生成用于执行由所述查询描述的所述任务的所述UI脚本。

15A.如权利要求14A所述的计算设备,其中所述基于所分配的分数来生成用于应答所述查询的所述UI脚本包括:

从所述任务代理运行中生成小任务,所述小任务包括由所述任务代理在所述UI元素中执行的动作序列;

将所述任务代理运行的分数分配给所述小任务;

基于所述分数来从所述小任务中选择应答小任务;以及

将所述应答小任务存储为所述UI脚本。

16A.如权利要求14A所述的计算设备,其中所述一个或多个处理器被进一步编程为:

将所述代理训练成主任务代理;以及

控制所述主任务代理以指示子任务代理在所述UI元素中执行至少一个动作。

17A.如权利要求14A所述的计算设备,其中所述一个或多个处理器被进一步编程为:

分析所述查询的语义;

识别所述查询的文本;

将参数分配给所述查询的经识别文本;以及

使用所分配的参数来参与所述UI元素中的至少一者。

18A.如权利要求14A所述的计算设备,其中所述查询是自然语言查询。

19A.如权利要求14A所述的计算设备,其中所述分数基于执行UI元素的动作后的所述网页中的文本相对于所述查询的文本的相似度来分配。

20A.一种或多种包含有计算机可执行指令的计算机存储存储器,所述计算机可执行指令用于构建用以应答对网站的查询的UI脚本,所述一种或多种计算机存储存储器包括:

查询解析器,其被配置成接收所述查询以及所述网站的统一资源定位符(URL),所述查询指定要执行的任务并且所述网站包括具有UI元素的一个或多个网页;

代理生成器,其被配置成创建用以执行不同任务代理运行的任务代理,所述任务代理运行包括所述一个或多个网页中的UI元素的动作序列;

奖励模块,其被配置成分析所述网页的状态并基于执行由所述任务代理执行的所述UI元素的每个动作后的状态来向所述任务代理运行分配分数;

强化学习(RL)模块,其被配置成基于所述网页的状态和所述分数来选择用于所述任务代理运行的动作;以及

后处理模块,其被配置成分析所述任务代理运行的分数并选择应答所述查询的应答小任务。

尽管已经按照各种示例以及它们相关联的操作描述了本公开的各方面,但是本领域技术人员将理解来自任何数量的不同示例的操作的组合也在本公开的各方面的范围内。

本文所例示并描述的本公开的各示例中的操作的执行或完成顺序并非是必要的,而是在各种示例中可按不同的顺序方式来被执行。例如,构想了在某一个操作之前、同时、或之后执行或完成另一个操作也在本公开的各方面的范围之内。

当介绍本公开的各方面的元素或其示例时,冠词“一”、“一个”、“该”、“所述”旨在意指一个或多个这样的元素。术语“包括”、“包含”、以及“具有”旨在是包含性的,并意指除所列出的元素以外可存在附加的元素。术语“示例性”旨在表示“……的一示例”。短语以下各项中的一个或多个:“A、B和C”意指“A中的至少一个和/或B中的至少一个和/或C中的至少一个”。

已经详细地描述了本公开的各方面,显然,在不偏离所附权利要求书所定义的本公开的各方面的范围的情况下,可以进行各种修改和变化。在不偏离本公开的各方面的范围的情况下,可以在上面的构造、产品以及方法中作出各种更改,意图是上面的描述中所包含的以及各附图中所示出的所有主题都应该解释为说明性的,而不是限制性的。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献