CN112997171A - 分析网页以促进自动导航 - Google Patents
分析网页以促进自动导航 Download PDFInfo
- Publication number
- CN112997171A CN112997171A CN201980063632.3A CN201980063632A CN112997171A CN 112997171 A CN112997171 A CN 112997171A CN 201980063632 A CN201980063632 A CN 201980063632A CN 112997171 A CN112997171 A CN 112997171A
- Authority
- CN
- China
- Prior art keywords
- web page
- user
- candidate
- universal identifier
- interactive
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000002452 interceptive effect Effects 0.000 claims abstract description 191
- 230000009471 action Effects 0.000 claims abstract description 120
- 238000000034 method Methods 0.000 claims abstract description 97
- 239000011159 matrix material Substances 0.000 claims description 68
- 230000000007 visual effect Effects 0.000 claims description 44
- 230000004044 response Effects 0.000 claims description 17
- 238000013507 mapping Methods 0.000 claims description 13
- 238000011524 similarity measure Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 2
- 230000003993 interaction Effects 0.000 abstract description 16
- 230000000875 corresponding effect Effects 0.000 description 27
- 235000013550 pizza Nutrition 0.000 description 25
- 238000013515 script Methods 0.000 description 21
- 238000012790 confirmation Methods 0.000 description 12
- 239000003795 chemical substances by application Substances 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 7
- 230000015654 memory Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000013459 approach Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 239000000463 material Substances 0.000 description 5
- 230000003334 potential effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 235000002566 Capsicum Nutrition 0.000 description 3
- 239000006002 Pepper Substances 0.000 description 3
- 241000722363 Piper Species 0.000 description 3
- 235000016761 Piper aduncum Nutrition 0.000 description 3
- 235000017804 Piper guineense Nutrition 0.000 description 3
- 235000008184 Piper nigrum Nutrition 0.000 description 3
- 239000000470 constituent Substances 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 230000002787 reinforcement Effects 0.000 description 3
- 241000282412 Homo Species 0.000 description 2
- 206010039509 Scab Diseases 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 235000013305 food Nutrition 0.000 description 2
- 235000012054 meals Nutrition 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 235000013580 sausages Nutrition 0.000 description 2
- 238000013179 statistical model Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241000282326 Felis catus Species 0.000 description 1
- 244000035744 Hura crepitans Species 0.000 description 1
- 240000008790 Musa x paradisiaca Species 0.000 description 1
- 235000018290 Musa x paradisiaca Nutrition 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 235000013361 beverage Nutrition 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000002631 hypothermal effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000007958 sleep Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/954—Navigation, e.g. using categorised browsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9032—Query formulation
- G06F16/90332—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9532—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
- G06F3/167—Audio in a user interface, e.g. using voice commands for navigating, audio feedback
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
- G06F40/35—Discourse or dialogue representation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S715/00—Data processing: presentation processing of document, operator interface processing, and screen saver display processing
- Y10S715/978—Audio interaction as part of an operator interface
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本文中描述了用于分析现有交互式网站以例如通过自动助理或经由其他用户界面以来自那些网站的主机的最小努力促进与那些网站的自动接洽的实施方式。例如,在各种实施方式中,本文描述的技术可以用于抽象、验证、维护、概括、扩展和/或分发可用于浏览各种交互式网站的个别动作和动作的“痕迹”。另外,本文描述了用于利用这些动作和/或痕迹以自动化与第三方网站的交互的各方面的技术。例如,在一些实施方式中,本文描述的技术可以使用户能够与自动助理(经由口头或键入的对话会话)接洽以与第三方网站进行交互,而无需用户直接与第三方网站进行视觉交互并且无需第三方实施他们自己的第三方代理。
Description
背景技术
人类可以参与与在本文中称为“自动助理”(也称为“聊天机器人”、“交互式个人助理”、“智能个人助理”、“个人话音助理”、“谈话代理”、“虚拟助理”等)的交互式软件应用的人机对话。例如,人类(其在他们与自动助理交互时可以被称为“用户”)可以使用自由形式自然语言输入来提供命令、查询和/或请求(在本文中统称为“查询”),该自由形式自然语言输入可以包括被转换成文本并且然后被处理的有声话语和/或键入的自由形式自然语言输入。自动助理可以对自然语言输入执行各种类型的处理,诸如自然语言处理、句法处理、语义处理等,以便标识并响应用户的意图。
自动助理可以与第三方软件代理或“第三方代理”进行交互,以便响应自动助理本身无法完全响应的一些类型的用户意图。例如,诸如饭店、乘车共享服务等的供应商可以设计其自己的第三方代理,该第三方代理被配置成与自动助理的应用程序编程接口(“API”)进行交互,例如,使得使自动助理可以充当用户和第三方代理之间的联络人。但是,此开发范例可能会使用规模发展缓慢。每个供应商必须首先创建与自动助理的API兼容的第三方代理。与许多供应商可能支配的相比,这可能需要更多的资源和/或技术。此外,许多供应商已经建立交互式网页和/或移动应用(“app”),用户可以与其交互以产生各种商品和/或服务。要求这些供应商设计与自动助理兼容的另一个界面,至少从供应商的角度来看,可能会导致出现重复工作。
发明内容
本文描述了用于分析现有的交互式网站(包括形成那些网站的个别的HTML、XML、CSS和/或JavaScript网页)以例如通过自动助理或经由其他用户界面以来自那些网站的主机(例如,供应商)的最小努力促进与那些网站的自动接洽的技术。例如,在各种实施方式中,本文描述的技术可以用于抽象、验证、维护、概括、扩展和/或分发可用于浏览各种交互式网站的个别的动作和动作的“脚本”(即动作的序列)。附加地,本文描述了用于利用这些动作和/或痕迹来使与第三方网站的交互的各方面自动化的技术。例如,在一些实施方式中,可以采用本文描述的技术以使得用户能够在无需用户在视觉上与第三方网站直接交互的情况下并在无需第三方实现它们自己的第三方代理的情况下与自动助理接洽(经由口头或键入对话会话)以与第三方网站交互。
假定用户请求自动助理使用某个供应商来执行某个动作(例如,购买物品或服务)。进一步假定特定供应商仍然尚未创建可与自动助理直接交互的第三方代理,但是供应商确实具有带一系列网页的交互式网站,每个网页具有一个或多个交互式元素,这些交互式元素可由用户操作以购买物品或服务。使用本文描述的技术,可以分析和/或处理交互式网站的第一网页(即,开始网页)以生成与用户相关联的当前用户状态。可以以诸如语义丰富的特征矢量、潜空间中的嵌入等的各种方式表示此当前用户状态。当前用户状态还可以包括其他信息,诸如由用户提供的一个或多个参数(例如,作为其自然语言输入的一部分)、用户的一个或多个偏好(例如,优选的比萨浇头或硬皮样式)、由用户进行的先前动作(例如,用户如何到达此处、来自用户的在先搜索、对助理的在先请求、与自动助理的谈话的活动主题、在先用户状态等)等。在一些实施方式中,当前用户状态还可以包括一种或多种在本文中将被称为“通用标识符矩阵”的东西,所述“通用标识符矩阵”包括关于当前网页的每个交互式元素(例如,单选按钮、输入字段、提交按钮、搜索按钮、下拉列表、座位表等)的上下文线索。不久将更详细地说明通用标识符矩阵。
在各种实施方式中,可以将当前用户状态与包含在一个或多个数据库中的多个过去用户状态进行比较,例如,以标识一个或多个候选用户状态。这些过去用户状态可以表示在与同一网站或不同网站的先前交互期间生成的用户状态,并且可以包括与当前用户状态中所包括的信息相似的信息。这些过去用户状态还可以包括与在先前交互期间作用的交互式元素相对应的相关动作,诸如勾选一个或多个单选框、选择下拉菜单上的特定项目、用特定参数填入特定输入字段等。
可以基于多种准则标识候选用户状态。例如,在一些实施方式中,可以基于过去用户状态与当前用户状态之间的相似性(例如,欧几里德距离、相似的通用标识符矩阵等)的量度从过去用户状态的较大超集中标识候选用户状态。在一些实施方式中,仅与当前用户状态具有满足某个相似性阈值的相似性度量的那些过去用户状态可以被认为是候选用户状态(即,为了减少来自所有过去用户状态的搜索空间,其可以随着时间的推移而增长)。使用相似性度量的一个好处是候选用户状态很可能变得与当前用户状态相似。因此,在用于生成候选过去用户状态的网页上成功地着手的操作对当前用户状态来说很可能是成功的。
一旦候选用户状态被标识,在一些实施方式中,就可以例如基于它们与当前用户状态的相似性量度、基于它们相应的通用标识符矩阵与在上面生成当前用户状态的当前网页的通用标识符矩阵之间的相似性等对候选用户状态进行排名。然后,可以选择排名最高的候选用户状态,并且可以执行与排名最高的状态相关联的一个或多个动作,例如,以自动地(即,在没有显式用户输入的情况下)与当前网页的一个或多个交互式元素交互。如果一个或多个执行的动作证明不成功,则在一些实施方式中,可以选择排名次最高的候选用户状态,并且可以执行其相关联的动作中的一个或多个,依此类推。在一些实施方式中,特定候选用户状态的成功或失败可以被用作信号,例如,以在其他候选用户状态当中向前移动对该候选用户状态进行排名。
与候选用户状态相关联的动作的成功执行可以对应于用户是否已与网页交互以将值输入到所有必需的交互式元素中并按压了“提交”。在网页上下文中,将在形成交互式网站的网页的一个或多个脚本中将用户的浏览器定向到下一个网页,此时可能要求用户在一个或多个附加交互式元素处提供附加输入。类似地,在本公开的上下文中,在与一个候选用户状态相关联的动作的成功执行之后,可以在交互式网站的交互式网页的脚本中基于下一个网页更新当前用户状态。然后,过程可以重复。可以标识与经更新的当前用户状态最相似(即,与用户何时使用浏览器到达第二网页相对应)的候选用户状态。这些更新的候选用户状态可以或可能未被排名,并且可以执行与经更新的候选用户状态中的一个或多个相关联的动作,直到与经更新的候选用户状态中的一个相关联的动作成功为止。此过程可以继续直到交易完成为止,即,直到自动助理已通过交互式网站成功地导航整个脚本并购买了所期望的物品或服务为止。
附加地或替换地,在一些实施方式中,使用本文描述的技术自动地导航网站的过程可以类似于强化学习操作。利用强化学习,根据策略(例如,神经网络或其他统计模型)来检查当前状态以从多个候选动作中选择。类似地,利用本文描述的技术,可以依照一种或多种策略来检查当前用户状态以选择要执行的一个或多个动作。例如,在一些实施方式中,一旦当前用户状态被生成,所有验证的动作(不久将描述验证动作和脚本的过程)就可以是可用的。然而,可能存在大量的潜在动作,并且它们中的绝大多数可能与当前用户状态无关(例如,与购买电影票相关的动作在设法购买共享单车的上下文中可能不是相关的)。因此,在各种实施方式中,可以存在将可用动作的列表有效地缩小为对当前用户状态有意义的那些动作的策略。例如,在一些实施方式中,适用的策略可以基于可用动作对当前用户状态的适合性来对可用动作进行排名。可以首先尝试排名最高的动作(例如,按其排名的次序),直到所执行的动作中的一个或多个成功(例如,导航到脚本的下一个网页)为止。
在交互式网页(例如,HTML、XML等)上,HTML或XML节点(例如,交互式元素)通常能够由人类从围绕它的词语和/或图像集中标识。否则,在页面已稍微向上或向下滚动之后,用户将难以标识要阅读什么或在哪里点击。换句话说,网页的每个交互式元素具有它自己的“视觉”或“几何”上下文。
本文描述的技术利用这些几何上下文以便能够适应新网站和/或通过先前分析的网站来更新脚本。如先前指出的,在一些实施方式中,可以为网页(考虑中的当前网页和/或用于生成过去用户状态的网页)中的每个交互式元素生成“通用标识符矩阵”。给定交互式元素的通用标识符矩阵可以包括既指示给定交互式元素(例如,其类型,诸如下拉菜单、输入框、单选按钮等)又指示在该网页被渲染时(例如,随着它会在web浏览器应用中被渲染)立即围绕给定交互式元素的网页的其他可见内容的数据。换句话说,通用标识符矩阵为网页的每个交互式元素提供“视觉”或“几何”上下文,类似于人类会看到/理解的视觉/几何上下文。词语“通用”是指通用标识符矩阵与底层文档对象模型(“DOM”)树的独立性。
将交互式元素分段成通用标识符矩阵有各种好处。虽然网页可以随着时间的推移而改变,但是个别的交互式元素及其在已渲染的网页内的几何上下文(例如,它们靠近、在下方、在上方等出现什么文本或其他DOM元素)可以保持相对恒定。因此,当网页发生改变时,可以基于由它们相应的通用标识符矩阵提供的上下文线索将相同的交互式元素定位在它们的新位置处和/或在它们的新布置中。然后可以对这些相同的交互式元素执行与在网页的变更之前执行的动作相同的动作。
通用标识符矩阵可以采取各种形式。在一些实施方式中,可以将它们定义为与给定交互式元素相关联的<位置,文本>对的集合。<位置>可以是相对于以感兴趣交互式元素为中心的边界矩形(或其他形状)的中心的方位。围绕感兴趣交互式元素的每个元素可以按其相对于该交互式元素的位置被分类。例如,<(-10,10):“first”,“name”>可以是指位于左边十个像素(或其他距离单位)和在感兴趣交互式元素上方十个像素(或其他距离单位)的文本“first name”。当比较以这种方式构造的两个通用标识符矩阵时,可以计算各个对之间的距离以确定两个通用标识符矩阵之间的整体相似性。
另一不太精细的方法是将通用标识符矩阵定义为n个单元(例如,三乘三或九个单元)的网格,其中中央单元包含感兴趣交互式元素,而周围单元包括立即围绕感兴趣交互式元素的各条网页内容。比较由此类网格构造的通用标识符矩阵可以与网格中的单元的数目线性地缩放。
如先前提及的,过去用户状态(及其对应的动作)的数据库可以用于与当前用户状态进行比较。可以以各种方式生成或“学习”这些过去用户状态。例如,可以基于实际人类用户与网页之间的交互来生成它们(即,可以从有限数目的人类交互中自举过去用户状态的语料库)。附加地或替换地,可以基于与网页的自动交互生成它们。
然而,如先前提及的,网页可能例如由于添加了新特征、美学更新等随着时间的推移而改变。因此,在各种实施方式中,可以周期性地“验证”或“测试”过去用户状态,以确保例如它们仍然通过相应的交互式网站用作有效脚本的一部分。例如,与先前学习的网页相关联的统一资源定位符(“URL”)可以用于周期性地(例如,每小时、每天、每周等)重新加载网页。可以将从网页的在先版本先前生成的一个或多个通用标识符矩阵与从经更新的网页生成的通用标识符矩阵进行比较,例如,以开发先前已知的通用标识符矩阵与经更新的网页的通用标识符矩阵之间的映射。如果网页已大致足够地改变了,则可能无法创建适当的映射,并且可以将与URL相关联的过去用户状态标记为不再有效(或者在一些情况下简单地从数据库中丢弃)。
另一方面,如果成功地标识了旧通用标识符矩阵与新通用标识符矩阵之间的映射,则在各种实施方式中,可以执行与过去用户状态相关联的各种动作以确定它们是否相对于经更新的网页仍然有效。如果相同或相似的动作仍然是可执行的,则经更新的网页可以被认为经验证。在一些情况下,可以为经更新的网页生成新用户状态并将其存储在数据库中以供将来使用。如果相同或相似的动作不再是成功地可执行的,则可以将与URL相关联的过去用户状态标记为不再有效(或者在一些情况下简单地从数据库中丢弃)。
在一些实施方式中,当选择要针对给定候选状态执行的动作时,可以考虑另一准则。例如,在一些实施方式中,仅与可以与当前网页的通用标识符矩阵匹配的通用标识符矩阵相关联的那些动作可以被执行,或者可以在其他潜在动作之前被执行。附加地或替换地,在一些实施方式中,当通过形成网站的一系列网页检测到成功的导航或“痕迹”时(无论成功的痕迹是由人类还是使用本文描述的技术自动地生成的),该痕迹可以例如与和从该痕迹生成的个别的用户状态相关联的动作关联地持续存在。那些动作此后可以被视为“经验证”,并且可以比验证仍然尚未发生或者至少没有频繁地或最近发生的其他动作更受青睐。
如先前指出的,网页的输入元素可以由用户操作以提供参数,诸如比萨浇头、电影院/飞机座位选择、共享单车目的地等。这些参数中的许多参数可以由用户在与自动助理接洽时预先提供。例如,用户可以说出像“OK Assistant,order me a thin crust pepperonipizza from Hypothetical Pizza Shop(好的助理,为我从假想比萨店订购薄皮烤胡椒辣香肠比萨)”一样的某事。假定假想比萨店没有活动的第三方代理与自动助理直接交互,则可以采用本文描述的技术来自动地浏览假想比萨店的交互式网站以按请求购买比萨。然而,假设用户未提供完成订单所需要的参数。可以以各种方式获取这些遗漏参数。
在一些实施方式中,用户的简档的各方面,诸如用户的偏好(例如,从用户的计算交互的历史中学习)或与用户的简档相关联的其他信息可以用于填入空白处。例如,假想比萨店的网站可能需要递送地址。不是向用户恳求该信息,而是还可以例如根据他的或她的简档和/或基于由用户所携带的设备提供的方位坐标来自动地确定用户的地址。在一些实施方式中,可以将用户的地址制成他的或她的当前用户状态。这种信息然后可以用于自动填充假想比萨店的网站的地址字段,而无需用户人工地提供这种信息。
然而,一些遗漏参数可能不可根据用户的简档和/或历史自动地填充。例如,假设用户往往使用多种不同的支付方法来购买商品或服务。用户可能不希望自动助理“猜测”用户想要使用哪一种支付来为比萨付款,或者,用户的优选支付方法可能不被假想比萨店接受。或者,可能存在用于订购比萨的用户未指定并且不可根据她的简档鉴别的其他必需的参数(例如,对特色菜的兴趣、她想要饮料吗等)。在一些实施方式中,自动助理可以暂停遍历假想比萨店的网站,以便例如在按需基础上从用户恳求这些遗漏参数。然而,用户可能仍然不需要与网站物理上交互—自动助理可以代表用户做那个。
在一些实施方式中,提供了一种由一个或多个处理器执行的方法,该方法包括:在计算设备的输入组件处从用户接收自然语言输入,其中,自然语言输入由用户引导到至少部分在计算设备上操作的自动助理;分析自然语言输入以标识用户的意图以及与执行用户的意图相关联的一个或多个参数;获得包括一个或多个交互式元素的网页,其中,该网页可操作以执行用户的意图并且一个或多个交互式元素可操作以输入这些参数中的一个或多个;确定与用户相关联的当前用户状态,其中,当前用户状态至少部分地基于网页的内容来确定;基于当前用户状态从过去用户状态的数据库中标识一个或多个候选过去用户状态,其中,一个或多个候选过去用户状态中的每一个均包括用于与网页的交互式元素中的一个或多个交互的一个或多个候选动作,其中,一个或多个候选动作先前被验证为能够执行意图的至少一部分;至少部分地基于第一准则从一个或多个候选过去用户状态中选择特定候选过去用户状态;至少部分地基于第二准则从与所选择的过去用户状态候选相关联的一个或多个候选动作中选择特定候选动作;使用参数中的一个或多个来执行所选择的候选动作以与网页的交互式元素中的一个或多个交互;以及由自动助理将指示用户的意图的至少一部分已被执行的自然语言输出作为音频或视觉输出提供给用户。
在各种实施方式中,该方法还可以包括基于自然语言输入、用户的意图或一个或多个参数中的一个或多个来标识网页。在各种实施方式中,一个或多个候选动作中的每一个均可能先前已被验证为与同一网页兼容。在各种实施方式中,一个或多个候选动作中的每一个可能先前已被验证为与可操作以执行对应意图的不同网页兼容。
在各种实施方式中,第一准则可以包括当前用户状态和所选择的候选过去用户状态具有最大相似性量度。在各种实施方式中,确定当前用户状态可以包括对于网页的一个或多个交互式元素中的每一个,生成通用标识符矩阵,该通用标识符矩阵包括既指示相应的交互式元素又指示在该网页被渲染时立即围绕相应的交互式元素的网页的其他可见内容两者的数据。在各种实施方式中,标识可以包括将从网页生成的一个或多个通用标识符矩阵与和一个或多个候选过去用户状态中的每一个相关联的一个或多个其他通用标识符矩阵进行比较。在各种实施方式中,标识可以包括对于一个或多个候选过去用户状态中的每个给定候选过去用户状态,将从网页生成的一个或多个通用标识符矩阵与对应于与给定候选者过去用户状态相关联的一个或多个候选动作的一个或多个其他通用标识符矩阵进行比较。
在各种实施方式中,该方法还可以包括基于比较对与给定候选过去用户状态相关联的一个或多个候选动作进行排名。在各种实施方式中,通用标识符矩阵可以包括一个或多个元组,其中,一个或多个元组中的每一个均可以包括来自网页的一条内容以及该条内容相对于用于确定通用标识符矩阵的底层相应的交互式元素的几何位置。在各种实施方式中,通用标识符矩阵可以包括单元的二维网格,其中,单元的二维网格中的中央单元可以对应于用于确定通用标识符矩阵的底层相应的交互式元素,并且单元的二维网格中的围绕中央单元的一个或多个可以对应于来自网页的其他条内容。
在另一方面中,一种使用一个或多个处理器实现的方法可以包括:确定网页的标识符,其中,标识符先前被验证以指示网页最后已知为可操作以执行用户的意图,并且其中,网页最后已知包括已知可操作以输入与意图相关联的一个或多个参数的一个或多个交互式元素的第一集合;基于标识符检索网页的更新版本;分析网页的更新版本以标识一个或多个交互式元素的第二集合;基于从网页的更新版本中标识出的一个或多个交互式元素的第二集合,生成对应的通用标识符矩阵的更新集合,该对应的通用标识符矩阵各自包括既指示第二集合的相应的交互式元素又指示在该网页被渲染时立即围绕相应的交互式元素的网页的其他可见内容两者的数据;确定通用标识符矩阵的更新集合与基于最后已知与网页包括在一起的一个或多个交互式元素的第一集合而生成的通用标识符矩阵的已知集合之间的映射;基于映射,在第二集合的一个或多个对应的交互式元素上尝试在一个或多个交互式元素的第一集合上先前执行的动作;以及基于尝试的一个或多个结果,将网页的标识符选择性地分类为经验证的或无效的。在各种实施方式中,经验证的网页标识符可以用于促进通过包括与经验证的网页标识符相关联的网页的网站的基于自然语言的自动导航。
在各种实施方式中,网页的标识符可以包括统一资源定位符(“URL”)。在各种实施方式中,更新集合的每个给定通用标识符矩阵可以包括一个或多个元组,其中,一个或多个元组中的每一个均可以包括来自网页的更新版本的一条内容以及该条内容相对于用于确定给定通用标识符矩阵的底层交互式元素的几何位置。在各种实施方式中,更新集合的每个给定通用标识符矩阵可以包括单元的二维网格,其中,单元的二维网格中的中央单元可以对应于用于确定给定通用标识符矩阵的底层交互式元素,并且单元的二维网格中的围绕中央单元的一个或多个可以对应于来自网页的更新版本的其他条内容。在各种实施方式中,经验证的网页标识符可以被自动助理利用以促进通过包括与经验证的网页标识符相关联的网页的网站的基于自然语言的自动导航。
在另一方面中,一种使用一个或多个处理器实现的方法可以包括:获得包括一个或多个交互式元素的未知网页,其中,该未知网页可操作以执行购买的至少一部分并且一个或多个交互式元素可操作以输入用于执行购买的至少一部分的一个或多个参数;基于未知网页的一个或多个交互式元素,生成一个或多个通用标识符矩阵的对应的第一集合,其中,第一集合的每个通用标识符矩阵包括既指示未知网络的相应的交互式元素又指示在该未知网页被渲染时立即围绕相应的交互式元素的未知网页的其他可见内容两者的数据;至少部分地基于通用标识符矩阵的第一集合从过去用户状态的数据库中标识一个或多个候选过去用户状态,其中,一个或多个候选过去用户状态中的每个相应的候选过去用户状态包括用于与用于生成相应的候选过去用户状态的已知网页的一个或多个交互式元素交互的一个或多个候选动作,并且其中,一个或多个候选过去用户状态中的给定候选过去用户状态基于对通用标识符矩阵的第一集合以及与该给定候选过去用户状态相关联的一个或多个通用标识符矩阵的第二集合的比较来标识;在未知网页的交互式元素中的一个或多个上尝试与候选过去用户状态中的一个或多个相关联的一个或多个候选动作;以及基于尝试的一个或多个结果,将未知网页选择性地分类为经验证的或无效的;其中,经验证的网页可用于促进通过包括该经验证的网页的网站的基于自然语言的自动导航。
在各种实施方式中,经验证的网页可以对自动助理可用,以促进通过包括经验证的网页的网站的基于自然语言的自动导航。在各种实施方式中,该方法可以进一步包括响应于将未知网页分类为经验证的而生成新用户状态,其中可以基于未知网页来生成新用户状态,和将新用户状态添加到过去用户状态的数据库。
另外,一些实施方式包括一个或多个计算设备的一个或多个处理器,其中一个或多个处理器可操作以执行存储在相关联的存储器中的指令,并且其中所述指令被配置成使执行前述方法中的任何一个。一些实施方式还包括一个或多个非暂时性计算机可读存储介质,其存储可由一个或多个处理器执行以执行任何前述方法的计算机指令。
应当理解,本文中更详细描述的前述概念和附加概念的所有组合被认为是本文公开的主题的一部分。例如,出现在本公开的结尾处的要求保护的主题的所有组合被认为是本文公开的主题的一部分。
附图说明
图1是其中可以实现本文公开的实施方式的示例环境的框图。
图2A、2B、2C、2D、2E、2F、2G、2H和2I描绘形成交互式网站的一系列交互式网页的示例。
图3A、3B和3C描绘可以如何使用所公开的技术至少自动地导航图2A-I的交互式网页的序列的一个示例。
图4A和图4B描绘可以如何使用所公开的技术至少自动地导航图2A-I的交互式网页的序列的另一示例。
图5示意性地描绘根据各种实施方式的可以如何使用自然语言将本文所述的技术用于与给定的交互式网页自动交互的一个示例。
图6A和6B描绘根据本文公开的实施方式可以如何从网页的交互式元素生成通用标识符矩阵的示例。
图7和图8描绘根据各种实施方式的用于实现各种类型的通用标识符矩阵的示例伪代码。
图9描绘图示根据本文公开的实施方式的示例方法的流程图。
图10描绘图示根据本文公开的实施方式的另一示例方法的流程图。
图11描绘图示根据本文公开的实施方式的另一示例方法的流程图。
图12图示计算设备的示例架构。
具体实施方式
现在转向图1,图示了可以在其中实现本文公开的技术的示例环境。该示例环境包括一个或多个客户端计算设备106。每个客户端设备106可以执行自动助理客户端108的相应实例,其在本文中也可以被称为自动助理的“客户端部分”。可以在经由通常在114处指示的一个或多个局域网和/或广域网(例如,因特网)通信地耦合到客户端设备106的一个或多个计算系统(统称为“云”计算系统)上实现一个或多个基于云的自动助理组件119,其在本文中也可以被统称为自动助理的“服务器部分”。
在各种实施方式中,自动助理客户端108的实例通过其与一个或多个基于云的自动助理组件119的交互,可以形成从用户的角度来看似乎为用户可以在人机对话中与之接洽的自动助理120的逻辑实例的形式。这样的自动助理120的一个实例在图1中用虚线描绘。因此应该理解,与在客户端设备106上执行的自动助理客户端108接洽的每个用户可以实际上与他或她自己的自动助理120的逻辑实例接洽。为了简洁和简单起见,如在本文中像“为”特定用户“服务”一样使用的术语“自动助理”将是指在由用户操作的客户端设备106上执行的自动助理客户端108和一个或多个基于云的自动助理组件119(其可以在多个自动助理客户端108之间共享)的组合。也应该理解,在一些实施方式中,自动助理120可以对来自任何用户的请求做出响应,而不管该用户是否实际上由自动助理120的那个特定实例“服务”如何。
一个或多个客户端设备106可以包括例如以下各项的一个或多个:台式计算设备、膝上型计算设备、平板计算设备、移动电话计算设备、用户的车辆的计算设备(例如,车载通信系统、车载娱乐系统、车载导航系统)、独立交互式扬声器(其在一些情况下可以包括视觉传感器)、诸如智能电视(或配备有带自动助理能力的联网加密狗的标准电视)的智能电器,和/或用户的包括计算设备的可穿戴装置(例如,具有计算设备的用户的手表、具有计算设备的用户的眼镜、虚拟或增强现实计算设备)。可以提供附加和/或替代客户端计算设备。诸如独立交互式扬声器(或“智能扬声器”)的一些客户端设备106可以采取助理设备的形式,这些助理设备被主要设计来促进用户与自动助理120之间的对话。一些这样的助理设备可以采取具有附接的显示器的独立交互式扬声器的形式,其可以是或可以不是触摸屏显示器。
在一些实施方式中,客户端设备106可以被配备有具有一个或多个视场的一个或多个视觉传感器107,但是这不是必需的。视觉传感器107可以采取各种形式,诸如数码相机、无源红外(“PIR”)传感器、立体相机、RGBd相机等。一个或多个视觉传感器107可以用于捕获部署有客户端设备106的环境的图像帧(静止图像或视频)。这些图像帧然后可以例如由视觉线索模块1121分析,以检测包含在图像帧中的用户提供的视觉线索。这些视觉线索可以包括但不限于手势、朝向特定参考点的凝视、面部表情、由用户进行的预定义移动等。这些检测到的视觉线索可以被用于各种目的,诸如调用自动助理120和/或使自动助理120执行各种动作。
如本文更详细地描述的,自动助理120经由一个或多个客户端设备106的用户界面输入和输出设备来参与与一个或多个用户的人机对话会话。在一些实施方式中,自动助理120可以响应于由用户经由客户端设备106之一的一个或多个用户界面输入设备提供的用户界面输入而参与与用户的人机对话会话。在那些实施方式中的一些中,用户界面输入被显式地指向自动助理120。例如,用户可以口头地提供(例如,键入、讲出)预先确定的调用短语,诸如“OK,Assistant(好的,助理)”或“Hey,Assistant(嘿,助理)”。当讲出时,此口头输入可以被麦克风108捕获并且可以使自动助理120开始主动地侦听或监视键入的文本。附加地或替换地,在一些实施方式中,可以单独或与口头调用短语相结合地基于一个或多个检测到的视觉线索调用自动助理120。
在一些实施方式中,即便当用户界面输入未被显式地指向自动助理120时,自动助理120也可以响应于用户界面输入而参与人机对话会话。例如,自动助理120可以检查用户界面输入的内容并且响应于在用户界面输入中存在某些术语和/或基于其它线索而参与对话会话。在许多实施方式中,自动助理120可以利用语音识别来将来自用户的话语转换成文本,并且相应地例如通过提供搜索结果、一般信息并且/或者采取一种或多种响应动作(例如,播放媒体、启动游戏、点餐等)对该文本做出响应。在一些实施方式中,自动助理120能够附加地或替换地在不将话语转换成文本的情况下对话语做出响应。例如,自动助理120能够将话音输入转换成嵌入,转换成实体表示(其指示存在于话音输入中的一个或多个实体)和/或其它“非文本”表示,并且对这种非文本表示进行操作。因此,在本文中描述为基于从话音输入转换的文本操作的实施方式可以附加地和/或替换地直接对话音输入和/或话音输入的其它非文本表示进行操作。
客户端计算设备106和操作基于云的自动助理组件119的计算设备中的每一个均可以包括用于存储数据和软件应用的一个或多个存储器、用于访问数据并执行应用的一个或多个处理器以及促进通过网络进行通信的其它组件。由客户端计算设备106和/或由自动助理120执行的操作可以跨越多个计算机系统分布。可以将自动助理120实现为例如在一个或多个位置中通过网络彼此耦合的一个或多个计算机上运行的计算机程序。
如以上所指出的,在各种实施方式中,客户端计算设备106可以操作自动助理客户端108或自动助理120的“客户端部分”。在各种实施方式中,自动助理客户端108可以包括语音捕获模块110和/或视觉线索模块1121。在其它实施方式中,语音捕获模块110和/或视觉线索模块1121的一个或多个方面可以例如由一个或多个基于云的自动助理组件119与自动助理客户端108分开地实现。例如,在图1中,也存在可以在图像数据中检测视觉线索的基于云的视觉线索模块1122。
在各种实施方式中,可以使用硬件和软件的任何组合来实现的语音捕获模块110可以与诸如麦克风109或其它压力传感器的硬件对接以捕获用户的话语的音频记录。可以出于各种目的对此音频记录执行各种类型的处理。
在各种实施方式中,视觉线索模块1121(和/或基于云的视觉线索模块1122)可以使用硬件或软件的任何组合来实现,并且可以被配置成分析由视觉传感器107提供的一个或多个图像帧以检测在一个或多个图像帧中和/或跨越一个或多个图像帧捕获的一个或多个视觉线索。视觉线索模块1121可以采用各种技术来检测视觉线索。例如,视觉线索模块1121(或者1122)可以使用一个或多个人工智能(或机器学习)模型,这些人工智能(或机器学习)模型被训练来生成指示图像帧中检测到的用户提供的视觉线索的输出。
客户端设备106也可以具有安装的其他应用,诸如web浏览器111和/或消息交换客户端113。消息交换客户端113可以采用各种形式。在一些实施方式中,消息交换客户端113可以采用短消息服务(“SMS”)和/或多媒体消息服务(“MMS”)客户端、在线聊天客户端(例如,即时通讯、互联网中继聊天、或“IRC”等)、与社交网络相关联的消息传递应用等的形式。在一些实施方式中,消息交换客户端113可以在由web浏览器111渲染的网页内实现。在各种实施方式中,消息交换客户端113可以为用户提供界面以与自动助理120接洽键入或口语的人机对话,作为一对一对话或者作为其中自动助理120可以“参与”的多参与者对话。在一些实施方式中,可以用例如麦克风按钮或可操作来调用自动助理120的其他用户界面元素来特别地设计web浏览器111,使得用户能够发出话音命令来辅助web浏览器111的操作。
如先前所提及的,语音捕获模块110可以被配置成例如经由麦克风109捕获用户的语音。附加地或替换地,在一些实施方式中,语音捕获模块110可以被进一步配置成例如使用语音至文本(“STT”)处理技术来将该捕获到的音频转换为文本和/或转换为其它表示或嵌入。附加地或替换地,在一些实施方式中,语音捕获模块110可以被配置成例如使用一个或多个话音合成器将文本转换为计算机合成的语音。然而,在一些情况下,因为客户端设备106可能在计算资源(例如,处理器周期、存储器、电池等)方面相对地受约束,所以在客户端设备106本地的语音捕获模块110可以被配置成将有限数目的不同的讲出短语—特别是调用自动助理120的短语—转换为文本(或转换为其它形式,诸如较低维度嵌入)。可以将其它语音输入发送到基于云的自动助理组件119,该基于云的自动助理组件可以包括基于云的文本至语音转换(“TTS”)模块116和/或基于云的STT模块117。
基于云的TTS模块116可以被配置成利用云的实际上无限的资源来将文本数据(例如,由自动助理120制定的自然语言响应)转换成计算机生成的语音输出。在一些实施方式中,TTS模块116可以将计算机生成的语音输出提供给客户端设备106以例如使用一个或多个扬声器来直接输出。在其它实施方式中,可以将由自动助理120生成的文本数据(例如,自然语言响应)提供给语音捕获模块110,该语音捕获模块然后可以将文本数据转换成在本地输出的计算机生成的语音。
基于云的STT模块117可以被配置成利用云的实际上无限的资源来将由语音捕获模块110捕获的音频数据转换成文本,然后可以将该文本提供给意图匹配器135。在一些实施方式中,基于云的STT模块117可以将语音的音频记录转换为一个或多个音素,然后将一个或多个音素转换为文本。附加地或替换地,在一些实施方式中,STT模块117可以采用状态解码图。在一些实施方式中,STT模块117可以生成用户的话语的多个候选文本解释。在一些实施方式中,STT模块117可以取决于是否存在同时检测到的视觉线索而对特定候选文本解释进行加权或偏置高于其它候选文本解释。
自动助理120(特别是基于云的自动助理组件119)可以包括意图匹配器135、前述TTS模块116、前述STT模块117以及在下面更详细地描述的其它组件。在一些实施方式中,可以在与自动助理120分开的组件中省略、组合和/或实现自动助理120的一个或多个模块中的一个或多个。在一些实施方式中,为了保护隐私,可以将自动助理120的组件中的一个或多个(诸如自然语言处理器122、TTS模块116、STT模块117等)至少部分地实现在客户端设备106上(例如,排除在云之外)。
在一些实施方式中,自动助理120响应于在与自动助理120的人机对话会话期间由客户端设备106之一的用户生成的各种输入而生成响应内容。自动助理120可以(例如,当与用户的客户端设备分开时通过一个或多个网络)提供响应内容以用于作为对话会话的一部分呈现给用户。例如,自动助理120可以响应于经由客户端设备106提供的自由形式自然语言输入而生成响应内容。如本文所使用的,自由形式输入是由用户制定并且不局限于被呈现以供由用户选择的一组选项。可以讲出自由形式的自然语言输入(并由麦克风109捕获)和/或键入自由形式的自然语言输入(例如,键入到由一个或多个应用提供的一个或多个接口,诸如消息交换客户端113)。
如本文所使用的,“对话会话”可以包括一个或多个消息在用户与自动助理120(以及在一些情况下,其它人类参与者)之间的逻辑上自包含交换。自动助理120可以基于诸如下列的各种信号来区分与用户的多个对话会话:时间在会话之间流逝、用户上下文(例如,位置、在排程会议之前/期间/之后等)在会话之间改变、检测到除用户与自动助理之间的对话以外的用户与客户端设备之间的一个或多个中间交互(例如,用户切换应用一会儿、用户离开然后返回到独立话音激活的产品)、客户端设备在会话之间锁定/休眠、改变用于与自动助理120的一个或多个实例对接的客户端设备等。
意图匹配器135可以被配置成基于由用户提供的输入(例如,有声话语、视觉线索等)和/或基于诸如传感器信号、在线信号(例如,从web服务获得的数据)等的其它信号来确定用户的意图。在一些实施方式中,意图匹配器135可以包括自然语言处理器122和前述基于云的视觉线索模块1122。在各种实施方式中,除了基于云的视觉线索模块1122可以具有更多资源由其支配以外,基于云的视觉线索模块1122可以类似于视觉线索模块1121操作。特别地,基于云的视觉线索模块1122可以检测视觉线索,这些视觉线索可以由意图匹配器135单独或与其它信号相结合地使用,以确定用户的意图。
自然语言处理器112可以被配置成处理由用户经由客户端设备106生成的自然语言输入并且可以生成注释输出(例如,采用文本形式)以供由自动助理120的一个或多个其它组件使用。例如,自然语言处理器122可以处理由用户经由客户端设备106的一个或多个用户界面输入设备生成的自然语言自由形式输入。所生成的注释输出包括自然语言输入的一个或多个注释和自然语言输入的术语中的一个或多个(例如,全部)。
在一些实施方式中,自然语言处理器122被配置成识别并注释自然语言输入中的各种类型的语法信息。例如,自然语言处理器122可以包括词法模块,该词法模块可以将各个单词分成词素和/或例如按其类而注释词素。自然语言处理器122也可以包括被配置成按其语法角色而注释术语的词性标记器。例如,词性标记器可以按其词性如“名词”、“动词”、“形容词”、“代词”等而标记每个术语。另外,例如,在一些实施方式中自然语言处理器122可以附加地和/或替换地包括被配置成确定自然语言输入中的术语之间的句法关系的依赖性解析器(未描绘)。例如,依赖性解析器可以确定哪些术语修饰其它术语、句子的主语和动词等(例如,解析树)—并且可以对此类依赖性进行注释。
在一些实施方式中,自然语言处理器122可以附加地和/或替换地包括实体标记器(未描绘),该实体标记器被配置成注释一个或多个片段中的实体引用,诸如对人(包括例如文学角色、名人、公众人物等)、组织、位置(真实的和虚构的)等的引用。在一些实施方式中,关于实体的数据可以被存储在一个或多个数据库中,诸如在知识图(未描绘)中。在一些实施方式中,知识图可以包括表示已知实体(并且在一些情况下,表示实体属性)的节点以及连接节点并表示实体之间的关系的边。例如,“banana(香蕉)”节点可以(例如,作为孩子)连接到“fruit(水果)”节点,其进而可以(例如,作为孩子)连接到“product(产品)”和/或“food(食物)”节点。作为另一示例,称作“Hypothetical Café(假想咖啡馆)”的餐馆可以通过也包括诸如其地址、所供食物的类型、营业时间、联系信息等的属性的节点来表示。“Hypothetical Café”节点可以在一些实施方式中通过边(例如,表示儿童与父母的关系)连接到一个或多个其它节点,诸如“restaurant(餐馆)”节点、“business(企业)”节点、表示餐馆所位于的城市和/或州的节点等。
自然语言处理器122的实体标记器可以以高粒度水平(例如,以使得能够识别对诸如人们的实体类的所有引用)和/或较低粒度水平(例如,以使得能够识别对诸如特定人员的特定实体的所有引用)注释对实体的引用。实体标记器可以依靠自然语言输入的内容来解析特定实体并且/或者可以任选地与知识图或其它实体数据库进行通信以解析特定实体。
在一些实施方式中,自然语言处理器122可以附加地和/或替换地包括共指解析器(未描绘),该共指解析器被配置成基于一个或多个上下文线索来对对同一实体的引用进行分组或者“聚类”。例如,可以利用共指解析器来将自然语言输入“I liked HypotheticalCafe last time we ate there(我喜欢上次我们在那里用餐的假想咖啡馆)”的术语“there(在那里)”解析为“Hypothetical Cafe”。
在一些实施方式中,自然语言处理器122的一个或多个组件可以依靠来自自然语言处理器122的一个或多个其它组件的注释。例如,在一些实施方式中,命名实体标记器在注释对特定实体的所有提及时可能依靠来自共指解析器和/或依赖性解析器的注释。另外,例如,在一些实施方式中,共指解析器在对对同一实体的引用进行聚类时可能依靠来自依赖性解析器的注释。在一些实施方式中,在处理特定自然语言输入时,自然语言处理器122的一个或多个组件可以使用相关在先输入和/或在特定自然语言输入之外的其它相关数据来确定一个或多个注释。
意图匹配器135可以使用各种技术来例如基于来自自然语言处理器122的输出(其可以包括自然语言输入的注释和术语)和/或基于来自视觉线索模块(例如,1121和/或1122)的输出确定用户的意图。在一些实施方式中,意图匹配器135可以能够访问包括例如语法、视觉线索与响应动作(或更一般地,意图)之间的多个映射的一个或多个数据库(未描绘)。在许多情况下,这些语法可能随着时间的推移而被选择和/或学习,并且可以表示用户的最常见意图。例如,可以将一种语法“play<artist>(播放<艺术家>)”映射到调用使得在由用户操作的客户端设备106上按<艺术家>播放音乐的响应动作的意图。另一语法“[weather|forecast]today(今日[天气|预报])”可以能够与诸如“what’s the weather today(今日天气怎样)”和“what’s the forecast for today?(今日预报怎样?)”的用户查询匹配。
除了语法之外或代替语法,在一些实施方式中,意图匹配器135可以单独或与一个或多个语法和/或视觉线索相结合地采用一个或多个训练后的机器学习模型。这些训练后的机器学习模型也可以被存储在一个或多个数据库中并且可以被训练来识别意图,例如,通过将指示用户的话语和/或任何检测到的用户提供的视觉线索的数据嵌入到潜在空间中,然后例如使用诸如欧几里得距离、余弦相似度等的技术来确定哪些其它嵌入(以及因此,意图)最接近。
如“play<artist>”示例语法中所看到的,一些语法具有能够用槽值(或“参数”)填充的槽(例如,<artist>)。可以以各种方式确定槽值。常常用户将主动地提供槽值。例如,对于语法“Order me a<topping>pizza(为我订购<浇头>披萨)”,用户可能很可能讲出短语“order me asausage pizza(为我订购香肠披萨)”,在此情况下槽<topping>被自动地填充。附加地或替换地,如果用户调用包括要用槽值填充的槽的语法,则在无需用户主动地提供槽值的情况下,自动助理120可以从用户恳求那些槽值(例如,“what type of crust doyou want on your pizza?(在你的披萨上你想要什么类型的外皮?)”)。在一些实施方式中,可以基于由视觉线索模块1121-2检测到的视觉线索用槽值填充槽。例如,用户能在向客户端设备106的视觉传感器107举起三只手指的同时发出像“ORDER me this many catbowls(为我订购这么大的猫碗)”一样的东西。或者,用户能在握住特定电影的DVD盒的同时发出像“Find me more movies like this(为我查找更多像这样的电影)”的东西。
履行模块124可以被配置成接收由意图匹配器135输出的预测/估计意图以及相关联的槽值(无论是由用户主动地提供还是从用户恳求)并且执行(或“解析”或者“履行”)意图。在各种实施方式中,用户的意图的履行(或“解析”或者“执行”)可以使得例如由履行模块124生成/获得各种履行信息(也称为“响应”信息或“解析信息”)。如将在下面描述的,可以在一些实施方式中将履行信息提供给自然语言生成器(在一些图中为“NLG”)126,该自然语言生成器可以基于履行信息生成自然语言输出。
因为可以各种方式履行(或“解析”)意图,所以履行(或“解析”)信息可以采取各种形式。假设用户请求纯信息,诸如“Where were the outdoor shots of‘The Shining’filmed?(‘闪灵’的室外镜头是在哪里拍摄的?)”用户的意图可以例如由意图匹配器135确定为搜索查询。可以将搜索查询的意图和内容提供给履行模块124,该履行模块像图1中所描绘的那样可以与被配置成在文档的语料库和/或其它数据源(例如,知识图等)搜索响应信息的一个或多个搜索模块150进行通信。履行模块124可以向搜索模块150提供指示搜索查询的数据(例如,查询的文本、降维嵌入等)。搜索模块150可以提供响应信息,诸如GPS坐标或其它更显式的信息,诸如“Timberline Lodge,Mt.Hood,Oregon(俄勒冈州胡德山的山林小屋酒店)”。此响应信息可以形成由履行模块124生成的履行信息的一部分。
附加地或替换地,履行模块124可以被配置成例如从意图匹配器135接收用户的意图以及由用户提供或者使用其它手段(例如,用户的GPS坐标、用户偏好等)确定的任何槽值并且触发响应操作。响应动作可以包括例如订购商品/服务、启动定时器、设定提醒、发起电话呼叫、播放媒体、发送消息等。在一些此类实施方式中,履行信息可以包括与履行、确认响应(其在一些情况下可以选自预先确定的响应)等相关联的槽值。
自然语言生成器126可以被配置成基于从各种源获得的数据来生成和/或选择自然语言输出(例如,被设计来模仿人类语音的单词/短语)。在一些实施方式中,自然语言生成器126可以被配置成接收与意图的履行相关联的履行信息作为输入,并且基于履行信息生成自然语言输出。附加地或替换地,自然语言生成器126可以从诸如可以用来为用户组成自然语言输出的第三方应用(例如,所需槽)的其它源接收信息。
本公开的各个方面可以通过网站导航引擎128全部或部分地实现。通常,网站导航引擎128可以被配置成分析网站,特别是网站的组成网页,以便于促进通过这些网站的全部或部分进行的自动浏览。更具体地,网站导航引擎128可以分析网页及其组成的交互式元素以生成这些网页的抽象以生成用户状态。这些用户状态可以捕获网页的底层功能性,使得如果更改了这些网页,仍然可以自动浏览它们。用户状态还基于其底层功能性类似于先前已验证/已知的网站,从而能够通过迄今未知的网站进行自动导航。
网站导航引擎128可以访问多个数据库和/或索引,诸如网页数据库127。网页数据库127可以包括HTML、XML、PDF或可以使用web浏览器111或其他应用在互联网上通常可用并且可以使用各种搜索引擎(未描绘)可搜索的其他文档的一个或者多个数据库。
网站导航引擎128还可以访问过去用户状态129的数据库。过去用户状态129的数据库可以存储过去用户状态以及在那些过去用户状态是活动的时可能已经执行(或可能潜在可执行)的相应动作。形成交互式网站的交互式网页的序列可以在过去用户状态129的数据库中表示为过去用户状态和相应动作的“脚本”。相应动作可以是可执行以与网页的交互式元素进行交互的动作。交互式元素可能包括但不限于单选按钮、切换开关、复选框、文本输入字段、下拉菜单、滑块以及可使用诸如HTML、XML、CSS、JavaScript等技术的任何其他用户界面元素。
在一些实施方式中,过去用户状态/对应动作的每个脚本可以对应于特定网站或网页标识符(例如,统一资源定位符或“URL”、域名、IP地址等)。例如,一个脚本可以与比萨饼订购网站相关联,另一个脚本可以与用户可操作以订购各种服务(例如,乘车、草坪服务、家政服务、理发服务、预订、其他类型的约会等等)网站相关联。
如将在不久的将来更详细地描述的,在一些实施方式中,过去用户状态/相应动作的脚本可以例如由人类“验证”或由网站导航引擎128使用本文所述的技术自动地“验证”。“验证”脚本意味着确定该脚本能够执行与该脚本相对应的交互式网站的特定意图或目的。验证脚本的过程可能会定期(例如,每N秒、分钟、小时、天、周等,其中N为正整数),按需等发生。
用户状态可以根据各种信息生成并且可以采取各种形式。作为非限制性示例,过去用户状态(更一般地为“用户状态”)可以是至少部分地基于特定网页的内容而生成的数据结构,诸如语义丰富的特征矢量、嵌入等。换句话说,过去用户状态可以至少部分地表示网页的抽象。在一些实施方式中,该网页抽象可以包括从网页中提取的语义和/或句法信息,和/或表示在网页上找到的交互式元素的数据抽象,在某些实施方式中,其采取本文描述的“通用标识符矩阵”的形式。在各种实施方式中,从网页的交互式元素生成的通用标识符矩阵可以被制成从网页生成的过去用户状态中和/或被表示为与过去用户状态相关联的候选动作。
各种其他数据也可以被制成用户状态,包括先前在动作的序列或“痕迹”期间执行的动作和/或在执行那些动作中利用的参数。作为示例,采用从形成交互式网站的网页的序列中的第二(或第三或超过)连续网页生成的用户状态。此连续用户状态(“连续”意味着不是与交互式网站相关联的开放用户状态)可以包括从序列的第二连续(即,当前)网页中提取的信息,以及有关先前过去用户状态的信息(例如,指示交互式网站的先前网页)以及与那些先前过去用户状态相关联地采取的先前动作。例如,如果在先前过去用户状态中执行用诸如“pepperoni”的参数填充先前网页的交互式元素的动作,则可以将先前提供的参数制成连续用户状态。
另外,在一些实施方式中,例如可以从用户的简档获得的关于用户的各种信息可以包括在用户状态中。例如,各种用户偏好,诸如首选支付方法、是否应在每次交易中向用户征求支付信息、用户的首选就座方位(例如,飞机上的过道/窗户、电影院的部分或体育赛事等等,将在不久之后更详细地描述)、首选价格范围或各种其他特定于产品或服务的参数(例如,素食主义者或严格的素食主义者、吸烟者或不吸烟者等)被制成用户状态。可以在用户状态中包括的其他用户简档信息包括但不限于用户电子日历上的约会(例如,如果用户有冲突,可以用于自动消除电影放映时间)、电子通信的内容(诸如电子邮件、文本消息等(包括与其相关联的元数据)、社交媒体帖子(例如,状态更新、上传的图片等)等。
可以各种方式确定用户偏好。在一些实施方式中,它们可以被手动设置,例如,使用图形用户界面,或者由用户将其偏好告知自动助理120。附加地或可替代地,在一些实施方式中,例如,基于与交互式网站的用户交互、与自动助理120的用户交互等,可以随着时间流逝悉知一些用户偏好。例如,假设当使用web浏览器111购买商品或服务时,用户总是相对快速地点击确认屏幕(例如,比完全消耗呈现的任何免责声明或其他语言通常所需的速度更快)。在无需用户的显式输入的情况下,在确定用户可能对那些例如由网站导航引擎128和/或自动助理自动导航通过的屏幕感到舒适时,可以考虑到这一点。
当确定是否通过确认页面自动浏览时,本文描述的技术甚至可以考虑其他信号。例如,假设当操作web浏览器111时,当用户花费的金额低于阈值时,用户趋向于更快地点击这些页面,但是当花费的金钱量高于该阈值时,用户趋向于停留在这些确认页面上。当确定是否在不寻求显式用户输入的情况下通过特定确认网页自动浏览时,例如,通过网站导航引擎128,可以考虑此阈值。
图2A-I描绘可以由用户(未描绘)在客户端设备206上与之交互以从假想购票网站fakebooking.com购买商品(在这种情况下为两张电影票)的网页的序列或“痕迹”的示例。客户端设备206在此示例中采取具有触摸屏幕的智能电话或平板的形式,但是这不意在为限制性的。在这些示例中,用户操作客户端设备206的web浏览器111以与交互式网站交互,但是能替代地使用其他应用。例如,诸如消息交换客户端113的另一应用可以提供“webview”特征,其中它使得用户能够与被加载到应用的webview中的网页交互。在图2A-I中,麦克风图标可以由用户操作以调用自动助理120(或至少语音辨识),使得用户能够给出口头命令。
假设用户通过提供自然语言输入“Tickets for‘Hypothetical’on Friday(星期五‘假想’的门票)”来开始。响应于此请求,在图2A中,客户端设备206接收并加载提供所请求的电影在所请求的日期的放映时间的第一网页。在此示例中,所请求的电影正在两个剧院处播放,同时在每个剧院处有三个放映时间。
假设用户例如通过点击时间(其可以是可选链接)来选择在“第一剧院”处“20:45”放映。被加载的下一个网页被描绘在图2B中。在图2B中,用户被通知他或她已选择在第一剧院处于9月21日8:45(与20:45相同)的“假想”,并且电影持续124分钟。现在,用户面临两个选项:登录到现有账户,例如利用fakebooking.com,或者作为访客预订。假定用户作为访客登录,接下来将向用户呈现图2C的网页。
在图2C中,所提供的网页是在本文中被称为“确认”网页的一种类型的网页。在确认网页中,一旦用户有时间消费在确认页面上呈现的任何免责声明或信息,用户就被要求选择一些交互式元素(图2C中的“继续”按钮)。在图2C中,例如,向用户通知购买每张票要收取0.76美元费用。如果用户选择“继续”按钮,则可以向用户呈现图2D中描绘的网页。
在图2D中,向用户提供新交互式网页,该新交互式网页包括下拉菜单,该下拉菜单允许用户选择他或她想要购买多少票以及票的类型(例如,成人、儿童、青少年、老年人等)。每种类型的票具有不同的价格。在图2D中,用户仍然尚未与下拉菜单交互。因此,“下一步”按钮如由阴影所指示的那样为不活动的。一旦用户选择至少一张票,此按钮就可以变得被激活。例如,在图2E中,用户已选择了两张成人票。因此,现在激活“下一步”按钮并且还描绘总订单价值。一旦用户选择他或她期望的票并操作“下一步”按钮,就可以将她带到图2F中描绘的网页。
图2F描绘另一确认网页。此时用户被通知票不可退款且不可兑换。还向用户提供了关于儿童进入剧院等的其他一般信息等。一旦用户点击“确认”按钮,就可以向他或她呈现图2G的网页。
在图2G中,向用户呈现包括用户能够与之交互以选择座位的座位表作为一个或多个交互式元素的网页。在图2G中,用户已经选择了两个座位,如由黑色框所指示的。白色框表示仍然可用的座位,而阴影框表示不可用的座位。一旦用户选择座位(例如,与图2E中选择的票相同数目的座位),则用户可以操作在底部的“选择”按钮以转向下一个屏幕。
在图2H中,向用户呈现用户能够与之交互以提供支付信息的多个交互式元素,主要是文本输入字段。一旦用户键入有效支付信息,就可以将用户带到图2I的网页。图2I的网页是概括用户的购买并最后一次要求来自用户的确认的另一最终确认页面。一旦用户点击“确认”,交易就可以完成。用户可以以各种形式例如在文本消息或电子邮件中、在邮件中等接收票。
如从图2A-I中演示的,用户被要求与九个不同的界面(网页)交互以便购买所期望的商品。此过程可能是麻烦的,尤其在用户身体残疾或者另外不能与视觉界面交互(例如,因为她只有一个独立交互式扬声器可用,因为她在开车等)的情况下如此。因此,本文描述的技术,包括由自动助理120和/或网站导航引擎128的各方面执行的技术,使得有可能自动地浏览诸如图1和图2中描绘的交互式网站,即使该网站的所有人仍然尚未创建第三方代理(例如,图1中的150)来放任自动助理120也如此。
图3A-C描绘如何能够整个地或至少部分地使浏览图2A-I中描绘的同一交互式网站自动化、使得用户能够更容易地购买商品和/或服务的示例。在图3A至图3C中,用户与如图2A-I中所描绘的相同的客户端设备206交互,但是这不意在为限制性的。例如,能在被配备有触摸屏显示器并充当助理设备的独立交互式扬声器上实现图3A-C中描绘的界面和交互。
在图3A中,用户可能已点击麦克风并讲出或键入(例如,到消息交换客户端113)自然语言输入“’Hypothetical’movie Louisville Friday,two tickets(星期五‘假想’电影Louisville,两张票)”。在各种实施方式中,此自然语言输入可以由自动助理120的各种组件处理以标识用户的意图(购买电影票)以及可用于执行该意图的一个或多个参数(例如,movie=Hypothetical,date=Friday,September 21,num_tickets=2)。
基于这种数据,自动助理120可以从同一交互式网站fakebooking.com中检索一个或多个网页,并且开始使用本文描述的技术来自动地浏览该交互式网站的至少一部分。用户的请求不包括用于购买电影票的所有必要的参数。例如,用户未陈述具体时间、剧院或期望的座位。因此,在各种实施方式中,fakebooking.com网站的自动导航可以在选择的网页/界面处暂停,以允许用户提供任何遗漏信息。
在图3A中,例如,自动助理120提供所请求的电影在所请求的日期的放映时间。类似于图2A,在图3A中,用户能够选择期望的放映时间以继续进行。在图3B中,例如,用户轻敲麦克风并讲出短语“8:45at 1st theatre(在第一剧院8:45)”。或者,用户可能已如上类似地选择了到所期望的时间的链接。不管怎样,交互式网站的自动导航都可以尽可能远地恢复,直到需要附加遗漏信息为止。
用户确实未指定他或她想要哪些座位。因此,响应于用户在图3B中的第一句话,自动助理120提供输出“Please select your seats(请选择你的座位)”。在那之下,自动助理120提供模拟或复制来自图2G中描绘的交互式网页的相同交互式元素的交互式座位选择界面。一旦用户选择相同的座位,就可以在下方出现列举所选择的座位的按钮(它还可能简单地说出“确认”或“下一步”)。点击此按钮可以恢复自动导航到图3C中描绘的界面。
在图3C中,自动助理120要求用户确认购买的细节。这种信息可以从由用户提供的各种参数编译和/或从底层网站(例如,图2I)的对应的确认网页导出。用户通过口头上答复“Yep(是的)”来确认。自动助理120回答“Enjoy the show(享受放映)”,然后可以提供一些有帮助的链接,诸如用于将事件添加到用户的日历的按钮、用于按预加载方向打开导航应用的深度链接等。
在包括此示例的一些实施方式中,用户被要求确认购买。然而,这不总是必需的。在一些实施方式中,如果足够确信用户期望完成购买,则购买可以自动地进行。例如,如果用户频繁地做出特定类型的购买并且总是几乎无延迟地确认购买,则最终用户可以停止被要求用户确认购买。附加地或替换地,在一些实施方式中,可以在确定是否要求用户确认购买时考虑诸如所支付的价格、产品的类型和/或其他信号的因素。例如,如果所支付的价格低于被推测为正好在用户的花费舒适区内的某个阈值,则该购买可以被自动地确认,而无需进一步用户输入。或者,如果存在确证购买的其他信号,诸如陈述用户将参与用户正在购买票的事件的日历条目、与说出类似某事的朋友的电子邮件、或用户已购买了与该事件有关的其他物品(例如,酒店房间、后台通行证等),则购买可以被自动地确认。
图4A-B描绘其中图2A-I的交互式网站的自动导航与在图3A-C比能够在较大程度上使用户体验流畅的替代实施方式。在此示例中,描绘了相同客户端设备206。然而,图4A-B中的用户与自动助理120之间的交互不一定需要显示界面。例如,不是显示如图4A中描绘的放映时间,而是自动助理120可能可听地输出不同的剧院和放映时间。因此,可能使用甚至不包括显示器的助理设备如独立交互式扬声器或车辆计算系统(其可以具有屏幕但是可能不使用它以避免使驾驶员分散注意力)来实现图4A-B中描绘的交互图4A-B。
图4A与图3A大致相似。一旦用户选择如4B中描绘的剧院和放映时间,在各种实施方式中,自动助理120就可以呈现可选择以完成交易的卡。或者,在替代方案中,如果图4A-B的交互是纯可听的,则自动助理120可以可听地输出细节并要求用户确认。
在图4A-B中,座位选择表被跳过。这可以是由于各种原因而导致的。例如,由用户选择的剧院或放映时间可以是开放座位,在此情况下座位是不能预订的,而替代地是先到先得。或者,在一些实施方式中,可以例如基于由用户进行的手动输入或用户的随着时间的推移而学习的座位偏好根据用户的简档确定用户对座位的偏好。假设用户总是选择后三排到五排之间的座位,并且仅选择剧院的中间部分。进一步假设在这些座位不可用的过去情况下,用户确实未购买票或者购买了不同放映时间的期望座位。这些信号可以用于学习用户的座位偏好。因此,自动助理120可以分析座位表以确定满足用户的座位偏好的座位是否可用,然后可以自动地选择那些座位。这样,用户他自己或她自己不需要选择它们。可以采用相似的技术来自动地选择飞机、火车、体育赛事等的座位。
图5描绘图1的各种组件可以如何被配置成自动地浏览各自包括一个或多个交互式网页的交互式网站的全部或部分的一个示例。虽然在一些实施方式中可以采用这些技术来允许自动助理120自动地浏览没有对应的第三方代理(150)的交互式网站,但是这不意在为限制性的。本文描述的技术可以用于在其他上下文中自动地浏览交互式网站的全部或部分。例如,web浏览器111可能被配备有被配置成执行本公开的所选方面以促进自动网站导航的插件。用户可能在使用web浏览器111的同时操作插件,例如,通过点击在web浏览器被导航到先前被验证用于使用本文描述的技术进行自动导航的交互式网站时显示的图标。点击图标可以自动填充和/或提交尽可能多的从网站需要的信息,然后可以允许用户与个别的交互式元素交互以提供遗漏信息。
在图5的步骤1中,用户向自动助理120提供自然语言输入。在此示例中,用户问:“Order me a thin crust pepperoni pizza from hypotheticalpizza.com(为我从hypotheticalpizza.com订购薄皮烤胡椒辣香肠比萨)”。假定hypotheticalpizza.com处的交互式网站不具有对应的第三方代理(150)。自动助理120可以分析用户的请求以确定用户的意图是从hypotheticalpizza.com订购比萨,并且自动助理120应该使用参数“烤胡椒辣香肠”和“薄皮”来履行订单。
基于分析,在步骤2处,自动助理120和/或网站导航引擎128可以例如从网页数据库127中检索在所请求的网络标识符(hypotheticalpizza.com)处的网站的打开交互式网页。在步骤3处,可以至少部分地基于所检索到的打开网页和/或基于诸如用户的偏好、日历等的其他信息来生成当前用户状态。如先前指出的,此当前用户状态可以采取各种形式,诸如特征矢量、语义丰富的嵌入等。在一些情况下,可以分析网页内容以基于该网页的一个或多个交互式元素生成一个或多个通用标识符矩阵。可以将指示这些通用标识符矩阵的数据包括在用户状态中。
在步骤4处,用户状态可以与包含在过去用户状态数据库129中的一个或多个候选过去用户状态5601-M匹配(M是正整数)。此匹配可以基于各种准则,诸如当前用户状态与候选过去用户状态560中的每一个之间的相似性量度。例如,在一些实施方式中,可以选择仅与当前用户具有满足阈值的相似性量度的那些候选过去用户状态550,或者可以选择顶部最相似的候选过去用户状态。或者,可以匹配候选过去用户状态和当前用户状态的相应的通用标识符矩阵。
未必已从与当前用户状态相同的网站生成了候选过去用户状态。在许多情况下,从功能相似的网页生成候选过去用户状态可能是足够的,使得相似动作无论是在功能相似的网页还是用于生成当前用户状态的网页上执行都将是成功的。以这种方式,在一些实施方式中网站导航引擎128可以基于其与先前已验证脚本的已知网站的相似性自动地浏览迄今未知或未遇到的网站的部分。
如图5中描绘的,每个候选过去用户状态560可以与一个或多个动作相关联。例如,第一候选过去用户状态5601与动作1,1、动作1,2、…和动作1,N(N是正整数)相关联。第二候选过去用户状态5602与动作2,1、动作2,2、…和动作2,N等相关联。每个动作可以对应于例如交互式网页元素。在一些实施方式中,每个动作可以由从过去在网页上遇到的特定交互式元素生成的通用标识符矩阵表示。因此,动作可能包括例如将参数输入到文本字段中、从下拉列表中选择参数、勾选单选按钮或复选框、拨动拨动开关、激活“提交”或“确认”或“下一步”按钮等
在步骤5处,可以基于各种准则选择并执行一个或多个动作。如果成功,则可以在步骤6处通过交互式网站加载脚本中的下一个网页,并且可以重复过程。如果所选择的动作未成功,则可以选择另一动作,直到某个动作成功为止。在一些实施方式中,当动作成功时,可以例如与至少成功动作关联地将当前用户状态添加到过去用户状态数据库127。以这种方式,系统“学习”如何自动地浏览交互式网站和/或能够通过交互式网站来验证/重新验证已知脚本。
在图5的示例中,每一候选过去用户状态560具有N个潜在动作。这可能是因为,例如,所有可能动作变得对每个候选过去用户状态560可用。在各种实施方式中,一种或多种策略可以规定尝试哪些动作,或者以什么次序尝试动作。在一些此类实施方式中,所有动作1-N都可以基于各种准则如它们相应的通用标识符矩阵(其如以上所指出的那样可以与过去用户状态和/或其相关动作相关联)之间的相似性例如按照一种或多种策略被排名。然而,这不意在为限制性的。在一些实施方式中,每个过去用户状态560可以仅与和在用于生成那些过去用户状态的底层网页中找到的交互式元素(以及因此,通用标识符矩阵)相符的那些动作相关联。这实际上减少针对给定候选过去用户状态的潜在动作的搜索空间。
在本文中设想了其他策略。例如,在一些实施方式中,状态/动作可以由随着时间的推移而演变的策略统治,例如,类似于强化学习。例如,策略可以采取被训练以接收当前用户状态作为输入并且提供指示哪一个动作应该被首先、其次等执行的数据作为输出的神经网络或其他统计模型的形式。例如,输出可能是每个潜在动作将成功的概率。在一些实施方式中,最可能成功的动作可以被例如以其成功概率的次序执行。
在一些实施方式中,每当无论是由人类还是自动地使用本文描述的技术成功地导航交互式网站时,可以连续地训练策略。例如,被操作以浏览交互式网站的网页的序列中的每个网页可以用于生成状态。可以使与网站的交互分成“轮次”。在每个轮次期间,可以基于策略和当前用户状态来选择并执行动作以与新网页的交互式元素交互。如果通过交互式网站的网页的一系列轮次成功,则可能生成并使用累积奖励以针对每个轮次的每个当前用户状态/动作对训练策略。例如,累积奖励可能用于对针对所执行的每个用户状态/动作的策略执行诸如梯度下降和/或反向传播的技术。随着时间的流逝,策略可能变得在基于当前用户状态选择动作时更好,以便成功地自动地浏览交互式网站。
附加地或替换地,在一些实施方式中,例如,如果所选择的动作不成功,则可以引发单独的每轮次奖励(或惩罚)。例如,如果执行的动作包括尝试用日期填充信用卡号字段,则底层网站可以发出输入无效的警告(例如,使用JavaScript)。这可能构成该动作的失败,这可以使每轮次惩罚被引发并用于训练策略,例如,作为负训练示例。类似地,当动作成功时可能引发正每轮次奖励。
图6A-B演示依照各种实施方式的如何可以生成通用标识符矩阵的两个示例。在图6A-B中,描绘了用于假铁路的用户界面。此界面可以由用户操作以预订火车票。例如,用户可以在输入框670中键入或以其他方式输入他或她期望的票的来源(“Von”翻译为英语中的“From(来自)”)。用户可以在输入框671中键入或以其他方式输入他或她期望的票的目的地(“Nach”)。依此类推。一旦用户已为各种交互式元素提供了输入,用户就能够通过按压按钮668来寻找可用票。值得注意的是,图6A-B的界面中的文本是德语。然而,即使非德语讲话者也很可能基于如下事实理解交互式元素中的每一个表示什么:那些交互式元素具有很可能从其他相似的网站例如用于购买机票的网站熟悉的视觉和/或几何上下文。
因此,在各种实施方式中,可以采用所描述的技术来为界面(即,网页)的每个交互式元素生成通用标识符矩阵672A、672B,该通用标识符矩阵包括既指示相应的交互式元素又指示网页/界面的在该网页被渲染时立即围绕相应的交互式元素的其他可见内容的数据。更一般地,通用标识符矩阵基于其几何上下文和类型作为用于HTML/XML节点的选择器,使得即使网页结构和/或DOM树显著地改变,也能够容易地从网页中检索它们。在一些实施方式中,最近更改的网页的使用其通用选择器矩阵检索的节点可以具有相同的类型(例如,单选按钮、文本输入等)并且可以能够接收与原始节点相同的动作。
在图6A-6B中描绘了一种用于生成通用标识符矩阵的“基于网格的”方法。在图6A中,为按钮668生成第一通用标识符矩阵672A。第一通用标识符矩阵672A包括三乘三布置中的九个单元。每个单元可以具有可以按需/视需要而定更改的预定宽度和/或高度。在本文中设想了单元的其他数目、大小和/或布置,诸如五乘五、九乘九等。第一通用选择器672A以按钮668的活动部分为中心(并且因此捕获按钮668的活动部分)。如底部处的第一通用标识符矩阵672A的放大版本所示,左顶部单元从界面捕获文本“AN”,左中间单元从界面捕获文本“SUCHEN”,并且底部中间单元从界面捕获文本“SUCHE”。在一些实施方式中,仅由单元完全捕获的整个单词可以被包括在通用标识符矩阵中,但是这不是必需的。
在图6B中,第二通用标识符矩阵672B以文本输入670(“VON”)为中心。如底部处的第二通用标识符矩阵672B的放大版本所示,左顶部单元从界面捕获文本“VON”,右顶部单元从界面捕获文本“FAKE”,并且左底部单元从界面捕获文本“NACH”。
这些通用标识符矩阵672A-B以及为图6A-B中描绘的界面的其他交互式元素生成的通用标识符矩阵可以被例如存储在过去用户状态的数据库127中。例如,每个过去用户状态可以包括指示这些通用标识符矩阵的数据。附加地或替换地,这些通用标识符矩阵可以用于定义可以按那些过去用户状态执行的动作。如先前描述的,当在在与假铁路相关联的网站的自动导航期间遇到图6A-B的界面时,由用户提供的参数(预先作为自然语言输入的一部分或稍后)可以用于试图与成为这些通用标识符矩阵的基础的交互式元素交互。
在一些实施方式中,可以如下在给定网页(或webview)中搜索特定DOM节点(或更一般地,交互式元素)。可以检索从搜寻后节点生成的参考通用矩阵。可以生成捕获整个网页(即,覆盖整个网页)的第一通用矩阵。然后,对于此第一通用矩阵的每个单元,可以生成被定中心在该单元中并适合整个单元的另一较小的通用标识符矩阵。然后,过程可以循环遍历较小的通用标识符矩阵中的每一个以找到与参考通用标识符矩阵最接近的较小的通用标识符矩阵。然后,过程可以循环遍历在最接近的较小的通用标识符矩阵内找到的所有DOM节点,以标识具有与参考通用标识符矩阵相同的类型的DOM节点。
在这种“基于网格的”方法的一些实施方式中,可以基于通用标识符矩阵之间的距离确定它们之间的相似性。例如,两个基于网格的通用标识符矩阵之间的“距离”可以是根据词语集通过遍及网格单元计算其差异的总数来计算的。在图7中描绘了用于在“基于网格的”方法下确定两个通用标识符矩阵之间的距离的示例伪代码。注意,能够在不同的网格大小的通用标识符矩阵之间计算距离。在一些实施方式中,图7中的以下代码行“distance+=SetDiff(Ny.GetTerms(i),Nx.GetTerms(j)).size;”可以用以下代码替换:
这种变化可以通过使用逆文档频率(idf)来使距离测量变得对词语变化更健壮。在以上替换代码中,idf是从字符串到log(|D|/|D(term)|)的映射,其中|D|是通用标识符矩阵的数目并且|D(term)|是在围绕中央单元的单元中具有词语作为文本的通用标识符矩阵的数目。
如图6A-B中演示的,生成通用标识符矩阵的基于网格的方法的一个好处是它与网格中的单元的数目线性地缩放。然而,在本文中设想了用于生成通用标识符矩阵的其他方法。例如,在一些实施方式中,可以将通用标识符矩阵定义为与给定交互式元素相关联的<location,text>对的集合。<location>可以是相对于以感兴趣交互式元素为中心的边界矩形(或其他形状)的中心的方位。围绕感兴趣交互式元素的每个元素可以按其相对于该交互式元素的位置被分类。例如,<(-10,10):“first”,“name”>可以是指位于左边十个像素(或其他距离单位)和在感兴趣交互式元素上方十个像素(或其他距离单位)的文本“firstname”。当比较以这种方式构造的两个通用标识符矩阵时,可以计算各个对之间的距离以确定两个通用标识符矩阵之间的整体相似性。尽管计算复杂性增加,但是此方法可以提供交互式元素的几何/视觉上下文的更精确表示。这样的方法的示例伪代码被描绘在图8中。
图9是图示根据本文公开的实施方式的示例方法900的流程图。为了方便起见,参考执行操作的系统来描述流程图的操作。该系统可以包括各种计算机系统的各种组件,诸如自动助理120和/或网站导航引擎128的一个或多个组件。此外,尽管以特定顺序示出方法900的操作,但这并不意味着限制。一个或多个操作可能会重新排序、省略或添加。
在框902处,系统可以在计算设备(例如,客户端设备106、206)的输入组件处从用户接收自然语言输入。在各种实施方式中,用户可以将自然语言输入引导到自动助理120,该自动助理120至少部分地(例如,借助于自动助理客户端108)在计算设备上进行操作。在框904处,该系统,例如借助于基于云的自动辅助组件119,可以分析自然语言输入以标识用户的意图以及与执行用户的意图相关联的一个或多个参数。
在框906处,系统可以获得包括一个或多个交互式元素的网页。在一些实施方式中,可以基于自然语言输入、用户的意图或一个或多个参数中的一个或多个来标识网页。例如,该网页可以可操作以执行用户的意图。一个或多个交互式元素可以可操作以输入一个或多个参数。
在框908处,系统可以确定与用户相关联的当前用户状态。如前所述,当前用户状态(并且通常是任何用户状态)可以由各种类型的数据结构表示,诸如特征矢量、嵌入、一个或多个通用标识符矩阵等。在各种实施方式中,当前用户状态可以至少部分地基于网页的内容(包括其组成的交互式元素)来确定。
在框910处,系统可基于例如在框908处确定(例如,生成的)的当前用户状态从过去用户状态127的数据库中标识一个或多个候选过去用户状态(例如,5601-M)。在一些实施方式中,一个或多个候选过去用户状态中的每一个可以包括例如用于与网页的一个或多个交互式元素进行交互的一个或多个候选动作。在一些实施方式中,一个或多个候选动作可能先前已经被验证为能够执行意图的至少一部分。
在框912处,系统可以至少部分地基于第一准则从一个或多个候选过去用户状态中选择特定候选过去用户状态。可以采用各种第一准则,诸如两个状态之间的相似性度量(例如,距离)、其组成的通用标识符矩阵之间的相似性度量(例如,距离)等。在框914处,系统可以至少部分地基于第二准则从与特定候选过去用户状态相关联的一个或者多个候选动作中选择特定候选动作。例如,系统可以选择由与从用于生成当前用户状态的网页的交互式元素生成的通用标识符矩阵最相似的通用标识符矩阵表示的过去用户状态的动作。
在框916处,系统可以使用一个或多个参数来执行所选择的候选动作以与网页的一个或多个交互式元素进行交互。例如,一个参数可以用于从下拉菜单中选择,另一个参数可以用于填充文本输入字段等等。在框918处,系统可以例如借助于自动助理120将指示已经执行了用户意图的至少一部分的自然语言输出作为音频或者视觉输出提供给用户。
图10描绘根据各种实施例的用于实践本公开的所选方面的示例方法1000。特别地,例如在那些网页已经改变的情况下,方法100可以被执行以重新验证先前已验证的网页/网站。为了方便起见,参考执行该操作的系统来描述流程图的操作。该系统可以包括各种计算机系统的各种组件,包括自动助理120和/或网站导航引擎128。此外,尽管以特定顺序示出方法1000的操作,但这并不意味着是限制性的。一个或多个操作可能会重新排序、省略或添加。
在框1002处,系统可以确定网页的标识符,诸如URL、域、IP地址等。在各种实施方式中,该标识符可以先前已经被验证以指示该网页最后已知为可操作以实现用户的意图。在各种实施方式中,网页可能最后已知包括一个或多个交互式元素的第一集合,该第一集合已知可操作以输入与意图相关联的一个或多个参数。
在框1004处,系统可以基于标识符来检索(例如,下载)网页的更新版本。在框1006处,系统可以分析在框1004处检索的网页的更新版本,以标识一个或多个交互式元素的第二集合。在框1008处,系统可以基于从在框1004处检索到的网页的更新版本中标识出的一个或多个交互式元素的第二集合来生成对应的通用标识符矩阵的更新集合。每个更新集合可以包括指示第二集合的相应的交互式元素和指示网页被渲染时立即围绕相应的交互式元素的网页的其他可视内容两者的数据。
在框1010处,系统可以确定通用标识符矩阵的更新集合与基于最后已知与所述网页包括在一起的一个或多个交互式元素的第一集合而生成的通用标识符矩阵的已知集合之间的映射。换句话说,系统尝试例如使用过去用户状态和过去用户状态数据库129中可用的其他信息来使更新网页的交互式元素与网页的先前版本的交互式元素一致。
在框1012处,系统可以基于映射在第二集合的一个或多个对应交互式元素上尝试在一个或多个交互式元素的第一集合上先前执行的动作。换句话说,系统尝试使用先前已验证的相同动作来看看它们是否仍然有效,并确定映射是否合理。
基于尝试的一个或多个结果,在框1014处,系统可以将网页的标识符选择性地分类为经验证的或无效的。例如,如果相同的动作在网站的更新版本上成功,则那些动作(例如,通过交互式网站形成脚本的一部分)可以被认为经验证的。因此,系统可以使新经验证的标识符作为多个经验证的网页标识符(对应于经验证的过去用户状态)的一部分可用,这些网页标识符可用来促进通过网站的基于自然语言的自动导航,这些网站包括与经验证的网页标识符相关联的网页。
图11描绘根据各种实施例的用于实践本公开的所选方面的示例方法1100。特别地,图11的操作可以用于分析迄今未知的交互式网站,以便于促进自动浏览那些网站。为了方便起见,参考执行该操作的系统来描述流程图的操作。该系统可以包括各种计算机系统的各种组件,包括自动助理120和/或网站导航引擎128。此外,尽管以特定顺序示出方法1100的操作,但这并不意味着是限制性的。一个或多个操作可能会重新排序、省略或添加。
在框1102处,系统可以例如基于用户提供的网站标识符来获得包括一个或多个交互式元素的未知网页。未知网页可以可操作以执行至少一部分购买(例如,购买商品或服务),并且一个或多个交互式元素可操作以输入一个或多个参数以执行至少一部分购买。
在框1104处,系统可以例如基于未知网页的一个或多个交互式元素来生成一个或多个通用标识符矩阵的对应第一集合。如前所述,第一集合的每个通用标识符矩阵可以包括指示未知网页的相应交互式元素以及指示当渲染未知网页时立即围绕相应交互式元素的未知网页的其他可视内容两者的数据。
在框1106处,系统可以例如至少部分地基于通用标识符矩阵的第一集合从过去用户状态的数据库127中标识一个或多个候选过去用户状态。这些可以再次使用各种准则(诸如总体(例如,整个网页)相似性/距离或相应交互式元素之间(或由此产生的通用标识符矩阵之间)的相似度/距离)来标识。如先前描述的实现方式,一个或多个候选过去用户状态的每个相应候选过去用户状态可以包括一个或多个候选动作,其用于与用于生成相应候选过去用户状态的已知网页的一个或多个交互式元素进行交互。并且在各种实施方式中,一个或多个候选过去用户状态中的给定候选用户过去状态可以基于对通用标识符矩阵的第一集合和与给定候选过去用户状态相关联的一个或多个通用标识符矩阵的第二集合的比较来标识。
在框1108处,系统可以在未知网页的一个或多个交互式元素上尝试与一个或多个候选过去用户状态相关联的一个或多个候选动作。如果自动执行方法1100以促进将来未知网站的自动导航,则在一些实施方式中,未知网站的组成网页可以下载到测试系统(例如,沙盒)中,并且可以使用虚拟值作为用于测试目的的参数。在框1110处,系统可以基于尝试的一个或多个结果将未知网页选择性地分类为经验证的或者无效的。像以前一样,经验证的网页可能可用于促进通过包括经验证的网页的网站的基于自然语言的自动配对导航。
在这里讨论的某些实施方式可以收集或使用关于用户的个人信息(例如,从其他电子通信中提取的用户数据、关于用户的社交网络的信息、用户位所、用户的时间、用户的生物特征信息、以及用户的活动和人口统计信息、用户之间的关系等),向用户提供一个或多个机会来控制是否收集信息、是否存储个人信息、是否使用个人信息以及如何收集、存储和使用有关用户的信息。即,本文所讨论的系统和方法仅在接收到来自相关用户要这样做的显式授权后收集、存储和/或使用用户个人信息。
例如,向用户提供对程序或特征是否收集关于该特定用户或与程序或特征相关的其他用户的用户信息的控制。向要为其收集个人信息的每个用户呈现一个或多个选项,以允许控制与该用户有关的信息收集,以提供关于是否收集信息以及信息的哪些部分要被收集的许可或授权。例如,可以通过通信网络向用户提供一个或多个这样的控制选项。另外,在存储或使用某些数据之前,可能会以一种或多种方式处理某些数据,使得移除个人可识别信息。作为一个示例,可以处理用户的身份,使得不能确定个人可识别信息。作为另一示例,用户的地理位所可以被概括为更大的区域,使得不能确定用户的特定位所。
图12是可以任选地用于执行本文描述的技术的一个或多个方面的示例计算设备1210的框图。在一些实现方式中,客户端计算设备、网站导航引擎128、自动助理120和/或其它组件中的一个或多个可以包括示例计算设备1210的一个或多个组件。
计算设备1210通常包括经由总线子系统1212与许多外围设备进行通信的至少一个处理器1214。这些外围设备可以包括存储子系统1224(包括例如存储器子系统1225和文件存储子系统1226)、用户界面输出设备1220、用户界面输入设备1222和网络接口子系统1216。输入和输出设备允许用户与计算设备1210交互。网络接口子系统1216提供到外部网络的接口并且耦合到其它计算设备中的对应接口设备。
用户界面输入设备1222可以包括键盘、诸如鼠标、轨迹球、触摸板或图形平板的指点设备、扫描仪、并入到显示器中的触摸屏、诸如话音辨识系统的音频输入设备、麦克风和/或其它类型的输入设备。通常,术语“输入设备”的使用旨在包括将信息输入到计算设备1210中或输入到通信网络上的所有可能类型的设备和方式。
用户界面输出设备1220可以包括显示子系统、打印机、传真机或诸如音频输出设备的非视觉显示器。显示子系统可以包括阴极射线管(CRT)、诸如液晶显示器(LCD)的平板设备、投影设备或用于创建可见图像的某种其它机制。显示子系统也可以诸如经由音频输出设备提供非视觉显示。通常,术语“输出设备”的使用旨在包括将信息从计算设备1210输出到用户或输出到另一机器或计算设备的所有可能类型的设备和方式。
存储子系统1224存储提供本文描述的模块中的一些或全部的功能性的编程和数据构造。例如,存储子系统1224可以包括执行图7-9的方法的所选方面以及实现图1中描绘的各种组件的逻辑。
这些软件模块通常由处理器1214单独或与其它处理器相结合地执行。存储子系统1224中使用的存储器1225能够包括许多存储器,包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)1230和其中存储有固定指令的只读存储器(ROM)1232。文件存储子系统1226能够为程序和数据文件提供持久存储,并且可以包括硬盘驱动器、软盘驱动器以及关联的可移动介质、CD-ROM驱动器、光驱或可移动介质盒。实现某些实现方式的功能性的模块可以由文件存储子系统1226存储在存储子系统1224中,或者存储在处理器1214可访问的其它机器中。
总线子系统1212提供了用于让计算设备1210的各种组件和子系统按预期彼此通信的机制。尽管总线子系统1212被示意性地示出为单条总线,但是总线子系统的替代实现方式可以使用多条总线。
计算设备1210可以具有各种类型,包括工作站、服务器、计算集群、刀片服务器、服务器场或任何其它数据处理系统或计算设备。由于计算机和网络的不断变化的性质,图12中描绘的计算设备1210的描述仅旨在作为用于图示一些实现方式的目的的具体示例。计算设备1210的许多其它配置可能具有比图12中描绘的计算设备更多或更少的组件。
虽然已在本文中描述并图示了若干实现方式,但是可以利用用于执行功能和/或获得结果和/或本文描述的优点中的一个或多个的各种其它手段和/或结构,并且此类变化和/或修改中的每一个均被视为在本文描述的实现方式的范围内。更一般地,本文描述的所有参数、尺寸、材料和构造都意在为示例性的,并且实际的参数、尺寸、材料和/或构造将取决于使用教导的一个或多个具体应用。本领域的技术人员将认识或者能够使用不止一个例行试验来探知本文描述的具体实现方式的许多等同物。因此,应当理解,前面的实现方式仅通过示例来呈现,并且在所附权利要求及其等同物的范围内,可以以不同于具体地描述和要求保护的方式实践实现方式。本公开的实现方式针对本文描述的每个单独的特征、系统、制品、材料、套件和/或方法。另外,如果此类特征、系统、制品、材料、套件和/或方法不是相互不一致的,则在本公开的范围内包括两个或更多个此类特征、系统、制品、材料、套件和/或方法的任何组合。
Claims (22)
1.一种使用一个或多个处理器实现的方法,包括:
在计算设备的输入组件处从用户接收自然语言输入,其中,所述自然语言输入由所述用户引导到至少部分在所述计算设备上操作的自动助理;
分析所述自然语言输入以标识所述用户的意图以及与执行所述用户的意图相关联的一个或多个参数;
获得包括一个或多个交互式元素的网页,其中,所述网页可操作以执行所述用户的意图并且所述一个或多个交互式元素可操作以输入所述参数中的一个或多个;
确定与所述用户相关联的当前用户状态,其中,所述当前用户状态至少部分地基于所述网页的内容来确定;
基于所述当前用户状态从过去用户状态的数据库中标识一个或多个候选过去用户状态,其中,所述一个或多个候选过去用户状态中的每一个均包括用于与所述网页的交互式元素中的一个或多个交互的一个或多个候选动作,其中,所述一个或多个候选动作先前被验证为能够执行所述意图的至少一部分;
至少部分地基于第一准则从所述一个或多个候选过去用户状态中选择特定候选过去用户状态;
至少部分地基于第二准则、与所选择的候选过去用户状态相关联地从所述一个或多个候选动作中选择特定候选动作;
使用所述参数中的一个或多个来执行所选择的候选动作以与所述网页的交互式元素中的一个或多个交互;以及
由所述自动助理将指示所述用户的意图的至少一部分已被执行的自然语言输出作为音频或视觉输出提供给所述用户。
2.根据权利要求1所述的方法,进一步包括基于所述自然语言输入、所述用户的意图或所述一个或多个参数中的一个或多个来标识所述网页。
3.根据前述权利要求中的任一项所述的方法,其中,所述一个或多个候选动作中的每一个先前已被验证为与同一网页兼容。
4.根据前述权利要求中的任一项所述的方法,其中,所述一个或多个候选动作中的每一个先前已被验证为与可操作以执行对应意图的不同网页兼容。
5.根据前述权利要求中的任一项所述的方法,其中,所述第一准则包括所述当前用户状态和所选择的候选过去用户状态具有最大相似性量度。
6.根据前述权利要求中的任一项所述的方法,其中,确定所述当前用户状态包括对于所述网页的一个或多个交互式元素中的每一个,生成通用标识符矩阵,所述通用标识符矩阵包括指示相应的交互式元素并且指示在所述网页被渲染时立即围绕所述相应的交互式元素的所述网页的其他可见内容两者的数据。
7.根据权利要求6所述的方法,其中,所述标识包括将从所述网页生成的所述一个或多个通用标识符矩阵与和所述一个或多个候选过去用户状态中的每一个相关联的一个或多个其他通用标识符矩阵进行比较。
8.根据权利要求6或者7所述的方法,其中,所述标识包括对于所述一个或多个候选过去用户状态中的每个给定候选过去用户状态,将从所述网页生成的所述一个或多个通用标识符矩阵与对应于与所述给定候选过去用户状态相关联的所述一个或多个候选动作的一个或多个其他通用标识符矩阵进行比较。
9.根据权利要求8所述的方法,进一步包括基于所述比较对与所述给定候选过去用户状态相关联的所述一个或多个候选动作进行排名。
10.根据权利要求6或者7所述的方法,其中,所述通用标识符矩阵包括一个或多个元组,其中,所述一个或多个元组中的每一个包括来自所述网页的一条内容以及所述一条内容相对于用于确定所述通用标识符矩阵的底层相应的交互式元素的几何位置。
11.根据权利要求6或者7所述的方法,其中,所述通用标识符矩阵包括单元的二维网格,其中,所述单元的二维网格的中央单元对应于用于确定所述通用标识符矩阵的所述底层相应的交互式元素,并且所述单元的二维网格的围绕所述中央单元的一个或多个单元对应于来自所述网页的其他条内容。
12.一种使用一个或多个处理器实现的方法,包括:
确定网页的标识符,其中,所述标识符先前被验证以指示所述网页最后已知为可操作以执行用户的意图,并且其中,所述网页最后已知包括已知可操作以输入与所述意图相关联的一个或多个参数的一个或多个交互式元素的第一集合;
基于所述标识符检索所述网页的更新版本;
分析所述网页的更新版本以标识一个或多个交互式元素的第二集合;
基于从所述网页的更新版本标识出的所述一个或多个交互式元素的第二集合,生成对应的通用标识符矩阵的更新集合,所述对应的通用标识符矩阵各自包括指示所述第二集合的相应的交互式元素并且指示在所述网页被渲染时立即围绕所述相应的交互式元素的所述网页的其他可见内容两者的数据;
确定所述通用标识符矩阵的更新集合与基于最后已知与所述网页包括在一起的一个或多个交互式元素的第一集合而生成的通用标识符矩阵的已知集合之间的映射;
基于所述映射,在所述第二集合的一个或多个对应的交互式元素上尝试先前在所述一个或多个交互式元素的第一集合上执行的动作;以及
基于所述尝试的一个或多个结果,将所述网页的标识符选择性地分类为经验证的或无效的;
其中,经验证的网页标识符可用于促进通过包括与所述经验证的网页标识符相关联的网页的网站的基于自然语言的自动导航。
13.根据权利要求12所述的方法,其中,所述网页的标识符包括统一资源定位符(“URL”)。
14.根据权利要求12-13中的任一项所述的方法,其中,所述更新集合的每个给定通用标识符矩阵包括一个或多个元组,其中,所述一个或多个元组中的每一个包括来自所述网页的更新版本的一条内容以及所述一条内容相对于用于确定所述给定通用标识符矩阵的底层交互式元素的几何位置。
15.根据权利要求12-14中的任一项所述的方法,其中,所述更新集合的每个给定通用标识符矩阵包括单元的二维网格,其中,所述单元的二维网格的中央单元对应于用于确定所述给定通用标识符矩阵的底层交互式元素,并且所述单元的二维网格的围绕所述中央单元的一个或多个单元对应于来自所述网页的更新版本的其他条内容。
16.根据权利要求12-15中的任一项所述的方法,其中,所述经验证的网页标识符能被自动助理用于促进通过包括与所述经验证的网页标识符相关联的所述网页的所述网站的所述基于自然语言的自动导航。
17.一种使用一个或多个处理器实现的方法,包括:
获得包括一个或多个交互式元素的未知网页,其中,所述未知网页可操作以执行购买的至少一部分并且所述一个或多个交互式元素可操作以输入用于执行所述购买的至少一部分的一个或多个参数;
基于所述未知网页的一个或多个交互式元素,生成一个或多个通用标识符矩阵的对应的第一集合,其中,所述第一集合的每个通用标识符矩阵包括指示所述未知网络的相应的交互式元素并且指示在所述未知网页被渲染时立即围绕所述相应的交互式元素的所述未知网页的其他可见内容两者的数据;
至少部分地基于所述通用标识符矩阵的第一集合从过去用户状态的数据库中标识一个或多个候选过去用户状态,
其中,所述一个或多个候选过去用户状态中的每个相应的候选过去用户状态包括用于与用于生成所述相应的候选过去用户状态的已知网页的一个或多个交互式元素交互的一个或多个候选动作,并且
其中,所述一个或多个候选过去用户状态中的给定候选过去用户状态基于对所述通用标识符矩阵的第一集合以及与所述给定候选过去用户状态相关联的一个或多个通用标识符矩阵的第二集合的比较来标识;
在所述未知网页的交互式元素中的一个或多个上尝试与所述候选过去用户状态中的一个或多个相关联的一个或多个候选动作;以及
基于所述尝试的一个或多个结果,将所述未知网页选择性地分类为经验证的或无效的;
其中,经验证的网页可用于促进通过包括所述经验证的网页的网站的基于自然语言的自动导航。
18.根据权利要求17所述的方法,其中,所述经验证的网页对自动助理可用于促进通过包括所述经验证的网页的所述网站的所述基于自然语言的自动导航。
19.根据权利要求17或者18所述的方法,进一步包括响应于将所述未知网页分类为经验证的而生成新用户状态。
20.根据权利要求19所述的方法,其中,所述新用户状态是基于所述未知网页来生成的,并且将新用户状态添加到所述过去用户状态的数据库。
21.一种系统,包括被配置成执行前述权利要求中的任一项所述的方法的一个或多个处理器。
22.一种计算机程序产品,包括计算机可执行指令,所述计算机可执行指令在由一个或多个处理器执行时使所述一个或多个处理器执行前述权利要求。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862737822P | 2018-09-27 | 2018-09-27 | |
US62/737,822 | 2018-09-27 | ||
PCT/US2019/031529 WO2020068169A1 (en) | 2018-09-27 | 2019-05-09 | Analyzing web pages to facilitate automatic navigation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112997171A true CN112997171A (zh) | 2021-06-18 |
CN112997171B CN112997171B (zh) | 2024-08-27 |
Family
ID=66655460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980063632.3A Active CN112997171B (zh) | 2018-09-27 | 2019-05-09 | 分析网页以促进自动导航 |
Country Status (6)
Country | Link |
---|---|
US (3) | US11487832B2 (zh) |
EP (1) | EP3655840B1 (zh) |
JP (1) | JP7209818B2 (zh) |
KR (2) | KR102582513B1 (zh) |
CN (1) | CN112997171B (zh) |
WO (1) | WO2020068169A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI779887B (zh) * | 2021-10-19 | 2022-10-01 | 國立臺灣大學 | 動態式民宿資訊推薦裝置 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9990674B1 (en) | 2007-12-14 | 2018-06-05 | Consumerinfo.Com, Inc. | Card registry systems and methods |
US8312033B1 (en) | 2008-06-26 | 2012-11-13 | Experian Marketing Solutions, Inc. | Systems and methods for providing an integrated identifier |
US9106691B1 (en) | 2011-09-16 | 2015-08-11 | Consumerinfo.Com, Inc. | Systems and methods of identity protection and management |
US8738516B1 (en) | 2011-10-13 | 2014-05-27 | Consumerinfo.Com, Inc. | Debt services candidate locator |
US9853959B1 (en) | 2012-05-07 | 2017-12-26 | Consumerinfo.Com, Inc. | Storage and maintenance of personal data |
US9654541B1 (en) | 2012-11-12 | 2017-05-16 | Consumerinfo.Com, Inc. | Aggregating user web browsing data |
US9916621B1 (en) | 2012-11-30 | 2018-03-13 | Consumerinfo.Com, Inc. | Presentation of credit score factors |
US10102570B1 (en) | 2013-03-14 | 2018-10-16 | Consumerinfo.Com, Inc. | Account vulnerability alerts |
US9406085B1 (en) | 2013-03-14 | 2016-08-02 | Consumerinfo.Com, Inc. | System and methods for credit dispute processing, resolution, and reporting |
US9477737B1 (en) | 2013-11-20 | 2016-10-25 | Consumerinfo.Com, Inc. | Systems and user interfaces for dynamic access of multiple remote databases and synchronization of data based on user rules |
US20200074541A1 (en) | 2018-09-05 | 2020-03-05 | Consumerinfo.Com, Inc. | Generation of data structures based on categories of matched data items |
JP7209818B2 (ja) | 2018-09-27 | 2023-01-20 | グーグル エルエルシー | 自動ナビゲーションを容易にするためのウェブページの分析 |
US11315179B1 (en) | 2018-11-16 | 2022-04-26 | Consumerinfo.Com, Inc. | Methods and apparatuses for customized card recommendations |
US11238656B1 (en) * | 2019-02-22 | 2022-02-01 | Consumerinfo.Com, Inc. | System and method for an augmented reality experience via an artificial intelligence bot |
US11074918B2 (en) * | 2019-03-22 | 2021-07-27 | Adobe Inc. | Real-time agreement comprehension tool |
US11941065B1 (en) | 2019-09-13 | 2024-03-26 | Experian Information Solutions, Inc. | Single identifier platform for storing entity data |
US11861674B1 (en) * | 2019-10-18 | 2024-01-02 | Meta Platforms Technologies, Llc | Method, one or more computer-readable non-transitory storage media, and a system for generating comprehensive information for products of interest by assistant systems |
US11567788B1 (en) | 2019-10-18 | 2023-01-31 | Meta Platforms, Inc. | Generating proactive reminders for assistant systems |
EP4158455A4 (en) * | 2020-05-25 | 2024-02-07 | Microsoft Technology Licensing, LLC | A CRAWLER OF WEB AUTOMATION SCRIPTS |
US11561672B1 (en) * | 2020-07-24 | 2023-01-24 | Tableau Software, LLC | Compatibility-based feature management for data prep applications |
US20220108079A1 (en) * | 2020-10-06 | 2022-04-07 | Sap Se | Application-Specific Generated Chatbot |
US11669582B2 (en) * | 2021-03-24 | 2023-06-06 | Rookie Road, Inc. | Systems and methods for automatic resource replacement |
US11861263B1 (en) * | 2021-08-24 | 2024-01-02 | X Development Llc | Robust natural language based control of computer applications |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120016678A1 (en) * | 2010-01-18 | 2012-01-19 | Apple Inc. | Intelligent Automated Assistant |
CN102349087A (zh) * | 2009-03-12 | 2012-02-08 | 谷歌公司 | 自动提供与捕获的信息例如实时捕获的信息关联的内容 |
CN103370701A (zh) * | 2010-12-23 | 2013-10-23 | 诺基亚公司 | 用于提供自动和增量移动应用识别的方法、装置和计算机程序产品 |
CN103473291A (zh) * | 2013-09-02 | 2013-12-25 | 中国科学院软件研究所 | 一种基于隐语义概率模型的个性化服务推荐系统及方法 |
CN105247511A (zh) * | 2013-06-07 | 2016-01-13 | 苹果公司 | 智能自动化助理 |
US20160246885A1 (en) * | 2015-02-23 | 2016-08-25 | Genesys Telecommunications Laboratories, Inc. | Proactive knowledge offers |
CN106462608A (zh) * | 2014-05-16 | 2017-02-22 | 微软技术许可有限责任公司 | 改进语言模型的知识源个性化 |
JP2017521739A (ja) * | 2014-05-30 | 2017-08-03 | マイクロソフト テクノロジー ライセンシング,エルエルシー | パーソナルインテリジェンスプラットフォーム |
CN107209762A (zh) * | 2014-05-15 | 2017-09-26 | 思腾科技(巴巴多斯)有限公司 | 视觉交互式搜索 |
CN107481719A (zh) * | 2016-06-07 | 2017-12-15 | 谷歌公司 | 个人助理模块的非确定性任务发起 |
CN108027738A (zh) * | 2015-05-27 | 2018-05-11 | 苹果公司 | 用于在触敏设备上主动识别和显示相关内容的系统和方法 |
CN108205467A (zh) * | 2016-12-19 | 2018-06-26 | 谷歌有限责任公司 | 重复动作的智能辅助 |
CN108351870A (zh) * | 2015-11-13 | 2018-07-31 | 微软技术许可有限责任公司 | 根据活动模式的计算机语音识别和语义理解 |
CN109643331A (zh) * | 2016-08-31 | 2019-04-16 | 微软技术许可有限责任公司 | 通过利用现有内容使自然语言任务/对话创作自动化 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6192380B1 (en) | 1998-03-31 | 2001-02-20 | Intel Corporation | Automatic web based form fill-in |
JP2002175285A (ja) | 2000-12-05 | 2002-06-21 | Nec Corp | ネットワーク用エージェントシステム |
US7676829B1 (en) | 2001-10-30 | 2010-03-09 | Microsoft Corporation | Multiple credentials in a distributed system |
JP2003271643A (ja) | 2002-03-15 | 2003-09-26 | Bandai Co Ltd | 情報提供システム及びユーザ端末並びに情報収集装置及び情報提供ホスト並びに記録媒体 |
US20070226783A1 (en) | 2006-03-16 | 2007-09-27 | Rabbit's Foot Security, Inc. (A California Corporation) | User-administered single sign-on with automatic password management for web server authentication |
US8468155B2 (en) * | 2006-06-22 | 2013-06-18 | Infosys Limited | Collaborative filtering-based recommendations |
US20080120257A1 (en) | 2006-11-20 | 2008-05-22 | Yahoo! Inc. | Automatic online form filling using semantic inference |
US20100174758A1 (en) | 2009-01-05 | 2010-07-08 | International Business Machines Corporation | Automatic management of single sign on passwords |
WO2011041672A1 (en) | 2009-10-02 | 2011-04-07 | Massachusetts Institute Of Technology | Translating text to, merging, and optimizing graphical user interface tasks |
US8510237B2 (en) | 2011-03-15 | 2013-08-13 | Qualcomm Incorporated | Machine learning method to identify independent tasks for parallel layout in web browsers |
US9600456B2 (en) | 2011-08-30 | 2017-03-21 | Hewlett-Packard Development Company, L.P. | Automatically performing a web service operation |
US8826398B2 (en) | 2011-09-29 | 2014-09-02 | Hewlett-Packard Development Company, L.P. | Password changing |
US10170123B2 (en) | 2014-05-30 | 2019-01-01 | Apple Inc. | Intelligent assistant for home automation |
US9852286B2 (en) | 2014-08-01 | 2017-12-26 | Okta, Inc. | Automated password generation and change |
CN106250412B (zh) * | 2016-07-22 | 2019-04-23 | 浙江大学 | 基于多源实体融合的知识图谱构建方法 |
US10192551B2 (en) | 2016-08-30 | 2019-01-29 | Google Llc | Using textual input and user state information to generate reply content to present in response to the textual input |
US20180349447A1 (en) * | 2017-06-02 | 2018-12-06 | Apple Inc. | Methods and systems for customizing suggestions using user-specific information |
JP7209818B2 (ja) | 2018-09-27 | 2023-01-20 | グーグル エルエルシー | 自動ナビゲーションを容易にするためのウェブページの分析 |
-
2019
- 2019-05-09 JP JP2021516651A patent/JP7209818B2/ja active Active
- 2019-05-09 KR KR1020217008316A patent/KR102582513B1/ko active IP Right Grant
- 2019-05-09 WO PCT/US2019/031529 patent/WO2020068169A1/en unknown
- 2019-05-09 KR KR1020237032242A patent/KR102643444B1/ko active IP Right Grant
- 2019-05-09 CN CN201980063632.3A patent/CN112997171B/zh active Active
- 2019-05-09 EP EP19726825.3A patent/EP3655840B1/en active Active
- 2019-05-09 US US16/619,777 patent/US11487832B2/en active Active
-
2022
- 2022-10-26 US US17/974,086 patent/US11971936B2/en active Active
-
2024
- 2024-03-21 US US18/612,174 patent/US20240232272A1/en active Pending
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102349087A (zh) * | 2009-03-12 | 2012-02-08 | 谷歌公司 | 自动提供与捕获的信息例如实时捕获的信息关联的内容 |
US20120016678A1 (en) * | 2010-01-18 | 2012-01-19 | Apple Inc. | Intelligent Automated Assistant |
CN103370701A (zh) * | 2010-12-23 | 2013-10-23 | 诺基亚公司 | 用于提供自动和增量移动应用识别的方法、装置和计算机程序产品 |
CN105247511A (zh) * | 2013-06-07 | 2016-01-13 | 苹果公司 | 智能自动化助理 |
CN103473291A (zh) * | 2013-09-02 | 2013-12-25 | 中国科学院软件研究所 | 一种基于隐语义概率模型的个性化服务推荐系统及方法 |
CN107209762A (zh) * | 2014-05-15 | 2017-09-26 | 思腾科技(巴巴多斯)有限公司 | 视觉交互式搜索 |
CN106462608A (zh) * | 2014-05-16 | 2017-02-22 | 微软技术许可有限责任公司 | 改进语言模型的知识源个性化 |
JP2017521739A (ja) * | 2014-05-30 | 2017-08-03 | マイクロソフト テクノロジー ライセンシング,エルエルシー | パーソナルインテリジェンスプラットフォーム |
US20160246885A1 (en) * | 2015-02-23 | 2016-08-25 | Genesys Telecommunications Laboratories, Inc. | Proactive knowledge offers |
CN108027738A (zh) * | 2015-05-27 | 2018-05-11 | 苹果公司 | 用于在触敏设备上主动识别和显示相关内容的系统和方法 |
CN108351870A (zh) * | 2015-11-13 | 2018-07-31 | 微软技术许可有限责任公司 | 根据活动模式的计算机语音识别和语义理解 |
CN107481719A (zh) * | 2016-06-07 | 2017-12-15 | 谷歌公司 | 个人助理模块的非确定性任务发起 |
CN109643331A (zh) * | 2016-08-31 | 2019-04-16 | 微软技术许可有限责任公司 | 通过利用现有内容使自然语言任务/对话创作自动化 |
CN108205467A (zh) * | 2016-12-19 | 2018-06-26 | 谷歌有限责任公司 | 重复动作的智能辅助 |
Non-Patent Citations (3)
Title |
---|
SA XIAO 等: "Optimal Device Choice and Media Display: A Novel Multimedia Exhibition System Based on Multi-terminal Display Platform", 《PROCEDIA COMPUTER SCIENCE》, vol. 129, 13 April 2018 (2018-04-13), pages 103 - 109, XP085381559, DOI: 10.1016/j.procs.2018.03.056 * |
于洪涌 等: "IPTV视频个性化推荐方案", vol. 33, no. 12, 20 December 2017 (2017-12-20), pages 127 - 135 * |
刘洪伟 等: "基于用户浏览行为的兴趣识别管理模型", 《数据分析与知识发现》, vol. 2, no. 02, 25 February 2018 (2018-02-25), pages 74 - 85 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI779887B (zh) * | 2021-10-19 | 2022-10-01 | 國立臺灣大學 | 動態式民宿資訊推薦裝置 |
Also Published As
Publication number | Publication date |
---|---|
US11971936B2 (en) | 2024-04-30 |
KR102582513B1 (ko) | 2023-09-26 |
US11487832B2 (en) | 2022-11-01 |
KR102643444B1 (ko) | 2024-03-06 |
US20200342039A1 (en) | 2020-10-29 |
US20240232272A1 (en) | 2024-07-11 |
KR20210035319A (ko) | 2021-03-31 |
KR20230141907A (ko) | 2023-10-10 |
EP3655840B1 (en) | 2024-01-17 |
JP2022501730A (ja) | 2022-01-06 |
JP7209818B2 (ja) | 2023-01-20 |
WO2020068169A1 (en) | 2020-04-02 |
EP3655840A1 (en) | 2020-05-27 |
CN112997171B (zh) | 2024-08-27 |
US20230050054A1 (en) | 2023-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112997171B (zh) | 分析网页以促进自动导航 | |
US11775254B2 (en) | Analyzing graphical user interfaces to facilitate automatic interaction | |
CN109952572B (zh) | 基于消息贴纸的建议响应 | |
CN110770694B (zh) | 获得来自多个语料库的响应信息 | |
US11734375B2 (en) | Automatic navigation of interactive web documents | |
US10679622B2 (en) | Dependency graph generation in a networked system | |
CN112136124B (zh) | 用于与计算机实现的自动助理进行人机对话会话的依赖图谈话建模 | |
CN110582765A (zh) | 未索求内容到人类与计算机对话中的前摄并入 | |
CN107644053A (zh) | 通知的场境信息 | |
US20230274090A1 (en) | Recommending action(s) based on entity or entity type |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |