CN110286967A - 交互式教程集成 - Google Patents

交互式教程集成 Download PDF

Info

Publication number
CN110286967A
CN110286967A CN201811236758.XA CN201811236758A CN110286967A CN 110286967 A CN110286967 A CN 110286967A CN 201811236758 A CN201811236758 A CN 201811236758A CN 110286967 A CN110286967 A CN 110286967A
Authority
CN
China
Prior art keywords
course
study course
instruction
feature
study
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.)
Pending
Application number
CN201811236758.XA
Other languages
English (en)
Inventor
张惟德
丁志宏
L·A·唐彻瓦
G·D·威林斯基
D·G·普拉萨德
C·V·罗伯茨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Adobe Inc
Original Assignee
Adobe Systems Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Adobe Systems Inc filed Critical Adobe Systems Inc
Publication of CN110286967A publication Critical patent/CN110286967A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/20Education
    • G06Q50/205Education administration or guidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B19/00Teaching not covered by other main groups of this subclass
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B5/00Electrically-operated educational appliances
    • G09B5/02Electrically-operated educational appliances with visual presentation of the material to be studied, e.g. using film strip
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B5/00Electrically-operated educational appliances
    • G09B5/06Electrically-operated educational appliances with both visual and audible presentation of the material to be studied

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Educational Technology (AREA)
  • Educational Administration (AREA)
  • Human Computer Interaction (AREA)
  • Tourism & Hospitality (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • General Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

可以利用给定应用的教程来生成可执行代码,该可执行代码然后可以在应用的本地指令服务内执行。以这种方式,软件应用因此可以以超出包括在本地指令服务中的指令内容的方式为用户提供集成的交互式学习体验,即,包括教程的指令内容的至少一部分。

Description

交互式教程集成
技术领域
本说明书涉及用于软件应用的教程集成。
背景技术
软件开发者用于开发具有复杂和广泛特征的软件应用的能力通常超出用户用于获得这些特征的知识和专业利用这些特征的能力。结果,用户可能意识到期望的结果是可能的,但是可能无法生成期望的结果。在其他情况下,用户可能甚至不知道期望的结果是可获得的。
软件开发者通常例如通过提供用于使用正被开发的软件应用的指令来尝试减轻这些困难。在一些情况下,指令可以诸如通过提供出现在软件应用本身内并由软件应用本身生成的交互式指令在相关软件应用的上下文中被提供。然而,提供这样的指令通常是困难且耗时的。此外,软件应用可能具有由各种用户随时间开发的用途,这些用途未由原始软件开发者明确设想。
由于这些和其他原因,通常为软件应用特别是复杂的软件应用提供教程,该教程提供软件应用的解释和指令。例如,第三方可以独立地为软件应用创建教程,并向软件应用的用户提供教程以辅助用户利用软件应用。
这些教程可以采用静态网页或教学视频的形式。尽管此类教程的内容可能非常有用且具有指导性,但此类教程的形式和结构可能会有很大差异。此外,这些教程通常在相关软件应用的上下文之外,需要在教程和应用之间进行上下文切换,以及其他相关的不便。
发明内容
根据一个通用方面,计算机程序产品被有形地实施在非暂态计算机可读存储介质上并包括指令。该指令在由至少一个计算设备执行时,被配置为使得至少一个计算设备:解析从网页得到的并以层级格式被构造的教程文件,所述教程文件表示由所述网页针对软件应用提供的教程,在所述层级格式中教程属性相对于所述教程属性的对应的值被指定,所述值包括所述网页中被包括的、用于使用所述软件应用的至少一个指令。指令在被执行时还被配置为执行教程属性到软件应用的应用特征的映射,并基于该映射生成由软件应用的本地指令服务可执行的指令代码,用于生成该软件应用内的至少一个指令元素,所述至少一个指令元素标识所述应用特征中的至少一个应用特征,所述至少一个应用特征被配置为支持所述至少一个指令的完成。
根据另一个通用方面,一种计算机实现的方法包括解析从网页得到的并以层级格式被构造的教程文件,所述教程文件表示由所述网页针对软件应用提供的教程,在所述层级格式中教程属性相对于所述教程属性的对应的值被指定,所述值包括所述网页中被包括的、用于使用所述软件应用的至少一个指令。该计算机实现的方法还可以包括执行教程属性到软件应用的应用特征的映射,以及基于该映射生成由软件应用的本地指令服务可执行的指令代码,用于生成软件应用内至少一个指令元素,所述至少一个指令元素标识所述应用特征中的至少一个应用特征,所述至少一个应用特征被配置为支持所述至少一个指令的完成。
根据另一个通用方面,一种系统包括:至少一个存储器,包括指令;以及至少一个处理器,被可操作地耦合到所述至少一个存储器,并且被布置和配置为执行指令,所述指令在被执行时使得所述至少一个处理器输入教程文件,该教程文件包括用于执行软件应用的应用功能的有序指令,并将有序指令映射到软件应用的对应的应用特征。所述至少一个处理器可以被布置和配置为执行所述指令,所述指令在被执行时生成指令代码,所述指令代码由所述软件应用的本机指令服务可执行,并且被配置为支持所述应用内的所述对应的应用特征的交互执行以实现所述有序指令并执行所述应用功能。
在附图和以下描述中阐述了一个或多个实现的细节。根据说明书和附图以及权利要求,其他特征将是显而易见的。
附图说明
图1是用于内部和交互式教程集成的系统的框图。
图2图示了图1的系统的示例实现的屏幕截图。
图3是图示图1的系统的示例操作的流程图。
图4是图示了便携式教程格式(PTF)文件的生成的框图。
图5是图示了教程结构模型的第一示例的流程图。
图6是图示了教程结构模型的第二示例的流程图。
图7是图示了教程结构模型的第三示例的流程图。
图8是图示了教程结构模型的第四示例的流程图。
图9是图示了教程结构模型的第五示例的流程图。
图10图示了在图1和4的系统中使用的PTF文件的示例部分。
图11是图示了图4的系统的详细示例实现的流程图。
图12是图示了使用图4的PTF文件的可执行指令代码的生成的框图。
图13是图示了图12的系统的详细示例实现的流程图。
具体实施方式
本文档描述了为具有本机指令服务的软件应用提供交互式教程集成的系统和技术。这些系统和技术克服了先前系统和技术的现有挑战,并创建或改进了过程以执行相关自动处理。例如,软件应用可以包括本机指令服务,该本机指令服务被设计为辅助用户学习如何利用本机应用特征,包括向用户提供对指令内容和相关联的应用特征的交互式访问。同时,还可以设计基于web或其他教程内容以针对软件应用提供附加或替代的教学内容。
如本文所述,可以利用给定软件应用的教程来生成可执行代码,该可执行代码然后可以在软件应用的本地指令服务内执行。以这种方式,软件应用因此可以以超出在本地指令服务中包括的指令内容(即,包括教程的教学内容的至少一部分)的方式为用户提供集成的交互式学习体验。
所描述的代码生成技术利用高效、快速、准确和/或完整的算法来提供新的计算机功能。例如,算法可以从第三方教程网站为软件应用提取教程内容,包括生成在通用或普通教程格式中包含的结构化、注释和分类教程内容,本文称为可移植教程格式(PTF)。算法可以进一步处理这样的PTF文件以生成可执行代码,该可执行代码然后可以被包括用于在软件应用的本地指令服务内执行,以提供上面引用并在下面详细描述的集成的交互式指令的类型。
例如,系统和技术提供软件应用内的用户界面,以使用户能够从软件应用本身的上下文中了解给定软件应用的应用特征。例如,教程可以指示用户使用软件应用的特定菜单、工具或图标以获得期望的结果。即使在为用户提供名称或总体布局位置时,用户通常很难从软件应用的整个用户界面中定位特定菜单、工具或图标。然而,使用所描述的技术,通过使用本地指令服务来执行从教程获得的生成代码,可以在应用本身内突出显示或以其他方式标识期望的菜单、工具或图标。
除了刚引用的应用集成的类型之外,所描述的技术可以在软件应用内为用户提供交互式学习体验。例如,原始教程可以指示用户进行多个步骤以获得期望的结果。使用所描述的技术,本地指令服务可以结合第一应用特征向用户提供第一指令,从用户接收对应的输入,然后交互地(例如,基于所接收的输入)结合第二个应用特征向用户提供第二指令。
为了说明,提供非限制性的特定示例,软件应用可以是用于编辑图像或视频文件的编辑应用,并且可以包括本地指令服务,其被设计为向用户提供交互式指令以获得期望的编辑结果。例如,本地指令服务可以提供用于添加或移除图像元素或改变图像的亮度或颜色的指令。同时,可以相对于图像/视频编辑应用提供多个教程。例如,教程可以提供用于执行在编辑应用的能力范围内的特定类型的图像编辑的指令,但是没有具体地包括在本机指令服务的指令内容中。作为非限制性示例,这种专用的图像编辑可以在特定设置内发生,诸如以非常高的放大率级别拍摄的图像。
因此,所描述的算法可以被理解为将专用教程的内容转换为上面引用的PTF文件的类型,然后从PTF文件生成可执行代码,该可执行代码可以被提供给编辑应用的本地指令服务用于执行。以这种方式,可以向用户提供集成的、交互式的逐步指令,用于从编辑应用本身的上下文内执行所需的类型的图像编辑。
如下面详细描述的,示例技术包括各种类型的机器学习和相关联的算法和模型的使用。例如,这样的算法和模型可以用于以高效、自动的方式从教程网站提取教程内容,包括以特定于教程内容的方式注释所提取的内容。此类算法和模型还可用于将提取的注释内容转换为PTF文件,包括将注释内容分类为已知的教程结构集合中的教程结构。此类算法和模型还可用于确定由本地指令服务所支持的应用特征。此类算法和模型还可用于确定PTF文件的内容,其对应于由本地指令服务所支持的所确定的应用特征。在最后的示例中,这样的算法和模型可以用于生成本地指令服务的可执行代码,以为本文描述的教程内容提供集成的、交互式指令体验类型。
另外,本文描述的系统和技术有利地改进了现有技术领域。例如,如所描述的,例如通过提供用于利用应用特征的基于计算机的指令来改进基于计算机的指令。此外,系统和技术可以用于生成用于本地指令服务的可执行代码的更自动且更高效和更快速的方案。
图1是用于交互式教程集成的系统100的框图。系统100包括具有至少一个存储器104、至少一个处理器106和至少一个应用108的计算设备102。计算设备102可以通过网络110与一个或多个其他计算设备通信。例如,计算设备102可以通过网络110与用户设备112通信。计算设备102可以实现为服务器、台式计算机、膝上型计算机、诸如平板计算机设备或移动电话设备的移动设备、以及其他类型的计算设备。尽管图示了单个计算设备102,但是计算设备102可以代表彼此通信的多个计算设备,诸如彼此通信的多个服务器被用于通过网络执行各种功能。在以下许多示例中,计算设备102被描述为或可以被理解为表示服务器。
至少一个处理器106可以表示计算设备102上并行执行的两个或更多个处理器,并且利用使用至少一个存储器104存储的对应指令。至少一个存储器104表示至少一个非暂态存储器计算机可读存储介质。因此,类似地,至少一个存储器104可以表示由计算设备102利用的一个或多个不同类型的存储器。除了存储允许至少一个处理器106实现应用108及其各种组件的指令之外,至少一个存储器104可用于存储数据。
网络110可以实现为因特网,但是可以采用其他不同的配置。例如,网络110可以包括广域网(WAN)、局域网(LAN)、无线网络、内联网、这些网络的组合以及其他网络。当然,尽管网络110被示为单个网络,但是网络110可以被实现为包括多个不同的网络。
可以由计算设备102的用户在计算设备102处直接访问应用108。在其他实现中,应用108可以在作为云网络的组件的计算设备102上运行,其中用户通过诸如网络110的网络从另一计算设备(例如,用户设备112)访问应用108。在一个实现中,应用108可以是图像编辑应用,如上所述并在下面的详细示例中描述。在其他实现中,应用108可以是文档创建或查看器应用、搜索应用、电子表格应用、音乐或音频应用、或实际上可以受益于本文所述的交互式教程集成类型的任意其他类型的软件应用。应用108还可以是独立应用,或者至少部分地在诸如浏览器应用的另一应用中运行的应用。当然,应用108也可以是任意上述示例的组合。
在图1的示例中,用户设备112被示为包括其中图像116被绘制的显示器114。如上所述,图像116可以由图像编辑应用提供,该图像编辑应用可以包括应用108的至少一部分,或者可以利用应用108的能力以从本文描述的各种教程集成技术中受益。
具体地,图像116仅仅是包括房屋的图像,其仅用于说明本文相对于图1的系统100描述的一些相关概念。下面相对于图2提供应用108作为用于编辑图像的图像编辑应用的更详细的示例图示。
此外,在图1中,教程118表示网页的简化示例,其包括用于使用应用108的教程材料,例如,用于编辑图像116。在这方面,术语“教程”应理解为实际上表示通过网络110可以获得或以其他方式可获得的任意这种有组织的教学材料。实际上,教程118通常由第三方提供商提供,例如,除了软件应用108的提供者和用户设备112的用户之外的其他人。
例如,教程118可以由希望共享有用的图像编辑技术的另一用户提供。在其他示例中,诸如当专业教程作者共同创建和提供这样的教程时,教程118可以作为应用108和其他应用的一套教程的一部分被提供。在这种情况下,诸如教程118的教程可以被发现作为这种有组织的教程集合的一部分,例如,按主题索引。在其他场景中,可以直接找到个体教程,例如,作为用户设备112的用户执行的搜索的结果。教程118的其他示例在下面提供,或者将是显而易见的。
同时,应用108被示为包括本机指令服务120,其执行指令代码以在使用应用108时向用户设备112的用户提供有用指令。例如,指令元素生成器124被图示为作为提供关于应用108的特定应用特征的指令。因此,在图1的简化示例中,显示器114被图示为包括用于选择图像116的对比度的选择按钮126。在操作中,指令元素生成器124可以被配置为:例如通过突出显示或以其他方式标识对比度按钮126,诸如通过如图1中的虚线轮廓128所图示的指示元素的使用,来提供关于对比度按钮126的指令。例如,尽管未在图1中明确图示,但是本地指令服务120可以提供指令,诸如“然后,选择对比度按钮”,紧接着生成指令元素128,以促进用户对对比度按钮126的选择。
因此,应当理解,教程118和本地指令服务120两者都提供各种优点和挑战。例如,该教程提供了例如为应用108的用户提供高度定制的教程材料的优点。即,教程118可以针对特定用户或用户类别(例如,新手、中级或高级用户)而被定制,和/或可以基于给出的指令类型(例如,用于高速摄影的图像编辑或其他特定上下文)而被定制。此外,教程118可以在应用108本身被提供的时间之后被生成和发行,使得教程118包括在应用108的发布时可能不相关或不可用的材料。此外,教程118可以利用更大范围的作者,其在各自的专业领域具有高的技术程度,并且可以提供针对应用108的、甚至可能不被软件应用108的提供者所知或所理解的能力的教程材料。
另一方面,教程118的一个挑战是教程118通常在与应用108的操作分开的上下文中提供。例如,如果教程118作为网站的一部分提供,则教程118可以在与应用108的显示器114分离的浏览器或浏览器窗口中被提供。在这些和类似的情况下,可能要求用户设备112的用户从教程118的上下文切换到应用108的上下文,这可能是不方便和耗时的。
此外,用户可能难以标识和定位教程118。此外,用户可能在访问教程118时经历网站延迟、外围不期望的内容、以及各种其他不便。
作为直接使用教程118的困难的最后示例,对于教程118可能难以标识应用108的所需方面。例如,如果教程118试图提供关于对比度按钮126的指令,教程118可能必须首先提供关于如何在第一位置定位对比度按钮126的指令(例如,通过标识一般布局位置或父菜单)。给定教程118的单独上下文,这些指令通常难以以简洁和可靠的方式提供,可能加剧上面提到的上下文切换的类型,并且通常可能导致用户的困惑和沮丧。
同时,本地指令服务120具有被包括在应用108本身内的优点。例如,应用108的设计者和开发者也可以提供本地指令服务120,例如,结合应用108的发布或更新。结果,如已经描述的,指令元素128可以在应用108的上下文内被直接提供。
一般而言,应用108的这样的设计者/开发者将访问和了解应用108的特征列表130的相关特征。在这方面,并且如下面更详细地引用和解释的,这样的特征通常指的是指令可以被提供给的应用108的任意相关能力,包括被包括的任意工具、动作或命令,以及任意相关联的菜单、按钮、工具栏、图标、或用于选择或实现工具、动作或命令的其他视觉(或音频、或触觉)元素。当然,这种特征的示例是由对比度按钮126实现的调整图像对比度的特征。
为了解决上面提到的挑战和其他挑战,并且为了利用教程118和本地指令服务120的各种优点,教程管理器132被配置为例如定位教程118,以及集成教程118的内容,包括生成要包括在指令代码122内的指令代码。例如,如果教程118包括用于使用对比度按钮126的指令,则教程管理器132可以生成包含在指令代码122内的、并且由指令元素生成器124可执行的指令代码。因此,指令元素生成器124可以直接在显示器114和应用108的上下文内生成指令元素128,从而利用教程118的教程内容并且还利用本地指令服务120的便利性。
在图1的描述的其余部分中,教程管理器132的元素134-150被单独描述为具有特定功能的分离模块或组件。应当理解,这样的描述旨在提供这些功能的非限制性示例以用于解释,但是其他实现也是可能的。例如,在这可能是适当的情况下,教程管理器132的任意单个元素可以实现为两个或更多个子元素,或者相反地,任意两个或更多个元素可以被集成并实现为单个元素,因为可能是合适的。下面针对其余的图2-13提供图1的实现的具体示例,或者将是显而易见的。
在图1的示例中,教程管理器132包括教程注释器134。教程注释器134可以被配置为解析教程118并注释教程118的内容。例如,教程注释器134可以添加教程118的内容的一个或多个术语的元数据、标记、标签、或定义语义含义或其他上下文或特征的其他注释。通过特定的非限制性示例,可以添加注释,以标识教程118的标题或作者、或内容描述或主题标题。
教程提取器136可以被配置为提取教程118的结构或结构元素。即,如下面详细描述的,诸如教程118的教程倾向于包括一个版本的一个或多个教程结构。教程提取器136可以包括可以应用于教程118的一个或多个模板,例如,应用于教程注释器134的输出,以标识(例如,进一步注释)这样的结构元素或方面。可以存储所得到的带注释的教程内容138以供进一步处理。
具体地,便携式教程格式(PTF)生成器140可以被配置为解析带注释的教程内容138的语义和结构注释,并生成具有标准化、一致的格式的文件,其可应用于(例如,可以用于准确地和完整地表示)几乎所有教程,并且如下所述,可以容易地转换用于由本地指令服务120使用。然后,PTF格式的结果文件可以存储在PTF文件142中。
通常,并且如下面关于图10详细图示和描述的,PTF文件具有层级格式,其中基础教程的标识的结构被分类为有限结构模型集合之一,如下面关于图5-9所图示和所述。此外,在所得到的PTF文件中包括的信息可以被包括并存储为属性/值对(例如,“作者:RebeccaCreger”),以促进进一步处理。
在图1的示例中,模型训练器144应被理解为被配置为训练可由例如教程注释器134、教程提取器136和PTF生成器140使用的多个模型和相关联的算法。在这方面,应当理解,在机器学习或人工智能中,通常定义一个或多个功能或算法,其将输入或输入类型与对应的输出或输出类型相关联。使用训练数据来训练这样的算法/功能,训练数据被接受为表示正被考虑的输入/输出之间的已知的、准确关系的“基础事实”。
在此上下文中,术语训练通常是指执行一系列迭代轮次的训练,其中确定一个或多个所引用的算法/功能的最优权重值。在确定最优权重时,模型训练器144基本上基于训练数据来进行预测,然后使用相关训练数据集合内可用的基础事实来测量预测中的误差。用于测量此类误差水平的功能通常被称为损失函数,其通常被设计为对相关训练示例求和,并且如果预测不正确则增加到计算的损失,或者如果预测是正确的,则减少/最小化计算的损失。通过这种方式,模型可以在概念上被理解为训练以学习在各种预测迭代期间所犯的错误,使得所引用的所得到的训练模型在被部署在教程管理器132的上下文中时将是快速、高效和准确的。
以下例如关于图4和11-13提供了模型训练器144的操作的更详细示例。通常,应当理解,教程注释器134、教程提取器136和PFT生成器140中的每一个可以至少部分地使用对应机器学习算法来实现,对应机器学习算法是使用模型训练器144训练的。当然,模型训练器144可以被理解为表示两个或更多个模型训练器,每个模型训练器被适当地配置用于被训练的对应模型。
例如,对于元素134、136、140,模型训练器144可以使用一个或多个已知的教程网站,对于该一个或多个已知的教程网站,教程语义和结构已经被确定用于包括在对应的数据集合内,并且正确的PTF文件已经被生成。然后可以将这些数据集用作训练数据用于训练教程注释器134以注释新教程,用于训练教程提取器136以提取新教程的内容,并且用于训练PTF生成器140以生成对应的PTF文件以包括在PTF文件142中。
进一步在图1中,特征提取器146可以被配置为识别可能与一个或多个PTF文件142有关的软件应用108的任意和所有应用特征。例如,如上所述,应用108可以包括特征列表130,并且特征提取器146可以从可用特征列表130确定至少一些相关特征。然而,当特征列表130不可用或者为了教程管理器132的目的而不完整时,特征提取器146可以被配置为执行机器学习算法(由模型训练器144训练)以分析应用108并确定潜在相关的应用特征。例如,特征提取器146可以确定应用108的应用工具名称、命令、菜单和其他可操作元素。
然后,特征映射器148可以相对于PTF文件142的特定PTF文件使用所得到的特征。例如,如下面详细描述的,特征映射器148可以被配置为分析PTF文件和确定对所包括的菜单命令或工具名称或应用108的其他应用特征的引用。具体地,应当理解,这样的引用可能不使用对应应用特征的适当或完整名称。
因此,应当理解,特征映射器148可以由模型训练器144训练以执行PTF文件的内容的自然语言处理(NLP),以正确地标识所引用的应用特征。在这方面,NLP应被理解为表示或包括用于分析PTF文件的语言的任意合适形式的机器学习。例如,NLP可以实现为基于规则的方案,其中在文本内标识特定的单词和短语,并且当那些单词/短语被标识时指定到应用特征的特定映射。在其他示例中,可以使用大的训练数据集来构建抽象级别的层级,其中每个级别使用来自较早级别的知识来获得。具体地,例如,可以使用多种算法来创建表征训练数据集合的数据的统计模型,包括利用统计模型执行迭代,直到它们达到可接受的准确度水平(例如,充分地最小化误差或丢失函数)。
最后在图1中,指令代码生成器150被配置为接收关于给定PTF文件的特征映射器148的映射特征,并生成可包括在指令代码122内并由本地指令服务120(例如,通过指令元素生成器124)执行的可执行代码。例如,如下面详细描述的,PTF文件可以被转换为Javascript对象表示法(JSON)对象,其可以具有与PTF文件类似的层级结构,但是表示为执行原始教程118的指令所需的相关应用特征。
尽管给出了JSON对象的示例,其中使用了JavaScript编程语言的子集,但是应当理解,可以使用其他数据交换语言格式来生成指令代码。语言的选择可部分地取决于可能存在于各种软件应用中的指令代码122的语言。例如,可以使用可扩展标记格式(XML)文件。
以这种方式,可以修改本地指令服务120以在软件应用108的上下文内向用户设备112的用户提供指令。例如,软件应用的开发者或设计者可以利用教程管理器132来更新应用108。在其他示例中,监督多个用户对应用108的使用的管理员可以被授权使用教程管理器132来更新软件应用108。在其他示例中,可以向用户设备112的用户提供标识教程118并利用教程管理器132将教程118的内容集成在软件应用108内以用于本文描述的交互式上下文教程体验的类型的能力。
如刚才所引用的,教程118可以被单独标识并由教程管理器132处理,以便包括教程118的特定主题。在其他实现中,多个教程可以被标识,并被集成在一起。例如,特定教程网站可以具有与软件应用108有关的许多教程,并且所有教程都使用类似的语义和结构集合。在这种情况下,即使对于给定的一个教程可能不存在立即需要,教程组可以被集成在一起以供将来使用。
图2图示了图1的系统100的示例实现的屏幕截图。在图2的示例中,教程网页202被图示,并且表示例如图1的教程118。如图2的示例中,教程网页202包括由教程描述的一个或多个过程的多个步骤,包括图2中被图示为“步骤3”的步骤204。如上面参考图1,教程网页202也可以包括多个广告和其他辅助内容,在图2中由示例广告206表示。此外,教程内容可以包括图像、视频、音频或可以是所考虑的教程的主题的示例的其他类型的文件,由图像文件208表示。
在图2的示例中,并且在下面本文中的许多示例中,图1的软件应用108被认为是Adobe Photoshop编辑软件。在这样的示例实现中,图1的本地指令服务120可以被理解为由Adobe Photoshop原生的Photoshop学习面板程序表示。因此,如图2的示例所示,并且如本文中详细描述的,箭头210图示并表示图1的教程管理器132在分析教程网页202和生成在Adobe Photoshop软件应用的相关本地指令服务(Adobe Photoshop学习面板)内可执行的代码中的使用。
具体地,教程注释器134和教程提取器136可以被配置为注释和提取教程网页202的内容和结构,从而生成用于包括在PTF文件142内的PTF文件,作为PTF生成器的操作的结果。然后,使用由特征提取器146或通过特征提取器146获得的特征,特征映射器148可以被配置为将得到的PTF文件映射到Photoshop学习面板服务的对应特征。然后,指令代码生成器150可以继续生成可以在指令代码122内包括的Photoshop学习面板的指令代码。
结果,教程网页202的图像208可以被包括并被绘制为对应图像212,并且步骤204可以类似地被包括并被绘制为步骤214。如从图2中可以理解的,图像212并且步骤214直接在Adobe Photoshop学习面板本地指令服务内被绘制,使得用户不需要在Adobe Photoshop软件应用的上下文和教程网页202的上下文之间切换,以便于利用网页202的教程内容。
因此,例如,用户将能够利用教程内容并从中受益,包括例如在通过教程内容前进时利用本地控制功能和其他应用特征。例如,用户可以使用Adobe Photoshop学习面板的“下一步”选择按钮,以便从步骤204/214前进到本教程的过程的后续步骤。
此外,在图2的示例中,Adobe Photoshop学习面板可以被理解为包括称为“教练标记”的功能,其中叠加、突出显示或其他视觉或音频元素以被设计为对Photoshop学习面板的用户提供高度上下文支持的方式被绘制。例如,视觉指示符可以贴近用于实现特定指令所需的控件被渲染,使得用户可以快速且容易地标识所需的控件。在图2的示例中,覆盖216表示这种教练标记的示例,并且提供关于使用图像212执行的操作的特定指令。应当理解,使用图1的系统100,可以在Adobe Photoshop学习面板的上下文中生成教练标记216,作为由教程管理器132的指令代码生成器150已经生成的用于教练标记功能的对应的底层可执行代码的结果。
图3是图示了图1的系统100的示例实现的流程图300。在图3的示例中,操作302、304、306被图示为分离的顺序操作。在各种实现中,附加或替代操作或子操作可以被包括,和/或一个或多个操作或子操作可以被省略。在各种实现中,任意两个或更多个操作或子操作可以以部分或完全重叠或并行方式,或者以嵌套、迭代、循环或分支方式实现。
在图3的示例中,解析从网页得到的教程文件,该教程文件表示由网页针对软件应用提供并且以层级格式被构造的教程,其中教程属性相对于教程属性的对应值被指定,并且该值包括网页中包括的、用于使用软件应用的至少一个指令(302)。例如,参考图1,这样的教程文件可以包括PTF文件142的PTF文件,其代表教程118并且包括教程118中包括的、用于使用软件应用108的至少一个指令。如本文所述的教程属性可以包括例如教程动作、命令、工具、过程、步骤或被确定为与教程相关联的其他特征。软件应用可以与运行软件应用的设备的对应硬件特征相关联。
可以执行教程属性到软件应用的应用特征的映射(304)。例如,图1的特征映射器148可以被配置为执行这样的映射。在此上下文中,应当理解,教程属性中的一些教程属性将不包括直接映射到应用108的应用特征的值。例如,诸如“作者”的教程属性将不对应于应用108的特定工具或任务。另一方面,如上所述并在下面详细描述的,用于使用应用108的教程118的指令可以包括引用教程的任务和用于完成这样的任务的应用108的相关联的工具的语言。因此,特征映射器148被配置为确定教程118的特定指令与应用108的对应工具和其他元素之间的对应以及它们之间的关系。
因此,可以基于映射生成指令代码,该指令代码可由软件应用的本地指令服务执行以生成软件应用内的至少一个指令元素,其中至少一个指令元素标识应用特征的至少一个应用特征,该至少一个应用特征被配置为支持至少一个指令的完成(306)。例如,图1的指令代码生成器150可以被配置为生成要包括在应用108的本地指令服务120的指令代码122内的指令代码。结果,本地指令服务120可以被配置为生成指令元素,诸如关于图1的显示器114所图示的指令元素128。当然,为了说明起见,指令元素128表示简化的示例,并且这些指令元素的附加的更详细的示例是以上关于图2以及在以下描述中被提供。例如,指令元素可以包括图2中提供的指令214,以及图2的教练标记216内的指令。图像212也可以被认为是教程元素,因为它在图2的原始教程202的教程示例中被使用。
更一般地,如本文所述,所引用的软件应用可以引用任意软件应用,其例如包括内置或应用内教程播放器,和/或以其他方式支持用户可以与支持这种教程播放器的浏览器应用交互的模式,本文称为本地指令服务120。该教程还可以包括例如视频文件,从该视频文件中叙述文本和所选择的图像帧被提取。
因此,应当理解,图1的系统100和图3的相关联的示例操作为系统100的开发者、管理员和用户提供了许多优点。例如,系统100的开发者和管理员可以能够标识包括在本机指令服务120内的合适教程,而不需要单个用户做出关于所需教程的存在、可用性、相关性或质量的单个确定。此外,用户不需要在分离的浏览器中跟踪基于web的指令,而是可以代之以在期望的上下文中查看教程内容并与教程内容交互。例如,用户可以使用他们自己的资产(例如,图像资产)在软件应用108自身的特定菜单命令和工具的上下文中操作,或者在用户的特定工作流程的上下文中操作。
此外,本文描述的技术支持诸如教程118的教程的结构和语义的捕获和表示。这样的教程通常具有大量操作步骤,具有不同的细节和复杂度等级。此类教程通常还包含未被系统捕获或可供将来使用的丰富的元数据。
此外,使用传统技术编写和提供指令代码122可能是劳动密集且昂贵的工作。例如,系统100可以启用应用108的开发者以及第三方内容生成器以自动将高质量教程导入到PTF文件142的标准规范教程表示中,其可以容易地转换为用于在本地指令服务120内使用的可执行指令代码122,以及与教程管理器132兼容的其他软件应用的其他本地指令服务。
结果,所描述的技术自动捕获跨不同网站域的第一网络教程,用于在PTF格式内表示,其保留任意相应教程的所有语义和多级结构。捕获的教程可以在产品特定的教程播放器系统中执行,例如上面参考图2引用的学习面板系统,从而使教程能够成为可以快速部署用于各种产品的交互式和应用内体验。此外,通过生成要包括在指令代码122内的新指令代码,可以实现本地指令服务120的附加或替代特征。
例如,可以给用户继续教程的一个或多个“下一步骤”的选择,从而允许顺序或分离的过程或步骤,如下面参考图5-9所引用和图示的。此外,可以提供一种机制来指示给定教程步骤的控制和可选性(例如,必需的或可选的),从而允许不同程度的教程效果被完成。可以提供指示和选择与用户的技能水平(例如,基本、中级或高级)相关的教程的难度级别的机制。还可以指示期望的教程的总持续时间。作为最后一个例子,可以为指示和定义教程中提到的重要术语提供支持,以在教程期间增加术语学习。
图4是图示了图1的系统100的更详细示例实现的框图。具体地,图4是图示了教程注释器134、教程提取器136和PTF生成器140的更详细示例实现的框图。
如所示出的,图4图示了教程网站402和教程网站404。关于教程网站402图示了定制教程文档对象模型(DOM)解析器406,而关于教程网站404图示了定制教程DOM解析器408。如下面详细描述的,解析器406、408表示高级的、结构化的文本提取管道,其被配置为解析对应的教程网站402、404,尽管教程网站可能有不同的教程格式以及不同级别的层级的事实。在图4的示例中,假设教程网站402、404表示相对大规模的教程网站,其包括用于图1的软件应用108的许多个体的教程网页和相关联的教程,以及也可能的其他软件应用。在这样的场景中,各种教程网页可以具有相似的语义和结构,作为被包含在相应网站内的结果。
因此,例如,可以使用图1的模型训练器144训练定制教程DOM解析器406,以解析教程网站402并执行网站402的定制文本挖掘。例如,提取模板可以被学习和构建,然后应用于教程网站402的期望网页。
更详细地,例如,定制教程DOM解析器406可以被配置为将教程内容变换为专用的Markdown标记表示,其中内容以上面关于图1描述并且在下面关于图11更详细地描述的方式被注释。
通过模型训练器144的使用,定制教程DOM解析器406可以被配置为基于降价语言注释来得到教程内容的结构,诸如过程级层级或步骤级层级。可以根据现有的教程模型结构库对得到的注释的教程内容和结构进行分类,下面关于图5-9提供其示例。
图4进一步图示了教程网站410、412、414,其通常表示可在因特网上可用但尚未构建定制解析器的大量教程网站。在这样的场景中,可以利用基础提取器和相关联模板为每个新教程网站410、412、414构建基本模板的克隆,以用于注释、解析、分类和提取对应教程网站的内容。例如,模型训练器144可以被配置为从获得的教程网站的内容的Markdown标记表示实现教程网站410的教程结构的一次性学习过程,并从而加速基础模板的克隆过程。因此,用于特定教程网站的通用教程DOM解析器416的配置可以利用现有逻辑来执行已经相对于解析器406、408使用的web爬取、HTML提取和Markdown标记生成。
此外,在图4中,PTF生成器418被配置为以因特网上可用的教程网站(由教程网站402、404、410-414表示)的各种格式中的任意一个接收所有提取的、注释的教程内容,并生成PTF文件420。由此可以观察到,PTF文件420表示标准化的通用格式,而不管所表示的教程内容的原始教程格式如何。
在示例实现中,PTF生成器418可以由模型训练器144训练,以将每个教程的结构分类为例如图5-9的五个示例结构之一。如图4的简化示例PTF文件420中所图示的,以及关于图10的示例PTF文件的更详细的说明,PTF文件420可以以层级格式生成,其通常对应于基础教程的层级结构,如在图5-9的结构模型之一中捕获的。
例如,PTF生成器418可以通过使用自下而上模型分析教程内容来处理在各种教程内观察到的层级类型。例如,PTF生成器418可以通过标识单独句子开始,然后将句子内的参考标识到其他句子。可以将相关句子分组到步骤中,以确定步骤划分。类似地,可以将步骤分组为用于确定过程结构的过程,因此多个过程可以被确定和枚举。以这种方式,教程层级可以被确定。
如所参考的,PTF文件420图示了本文描述的层级格式类型的简化示例。如图所示,头部422可以引用标题424、描述426以及底层教程的一个或多个资产428。也就是说,头部422、标题424、描述426和资产428中的每一个表示基础教程和一般教程的属性,并且将具有作为PTF生成过程的一部分而被分配的那些属性的特定值。例如,描述426可以从底层网页的描述字段获得,或者可以使用PTF生成器418生成。资产428可以表示在例如图示或指令的教程内使用的特定文件,诸如图像或视频文件。
如上所述,教程的指令层级可以被捕获为具有关联描述432和多个步骤434的过程430。如图所示,每个步骤可以包括图像438之前/之后的文本436、以及与对应的步骤结合使用的各种工具/命令440。在此阶段将理解,工具/命令440可以不根据软件应用108的特定工具或命令来表达。例如,PTF文件420可以以相对于两个或多个软件应用和相关联的本地指令服务通用的方式被构造,使得PTF文件420可以用于为这些应用中的一者或两者生成指令代码。
在其他情况下,即使当主要利用相对于特定应用的PTF文件420时,也可能出现所表达的工具和命令可能以相对于软件应用程序本身的对应工具和命令不高度特定的方式被包括。例如,工具和命令的名称可以相对于应用108的特征列表130的对应特征以非正式、不精确或可能模糊的方式提供。
下面提供用于消除歧义和以其他方式澄清和理解工具和命令440的技术。然而,关于图4,应当理解,PTF文件420的层级格式仍然以标准化的通用方式捕获底层教程的内容的指令序列。此外,当然,尽管未在图4的简化示例中明确图示,但是应当理解,PTF文件420可以包括多个过程,可能包括在甚至更高级别的层级中,诸如子教程、章节、或其他指定的内容分组。
图4还图示了索引搜索442,作为PTF文件420的附加或替代使用的示例。具体地,例如,索引搜索442可以表示支持教程或其他网页的搜索的web服务。由于PTF文件420包括注释和关于对应的基础教程的语义和结构的其他细节,因此索引搜索442支持提供对这些属性和相关联的值的搜索。
如上所述,图5-9图示了可以与生成PTF文件420一起分类的教程结构类型的示例。具体地,图5图示了具有一个级别、非层级步骤结构的结合的、顺序结构。换句话说,如图所示,在初始节点502之后,步骤以步骤504、506、508和510的简单序列进行。例如,图5的示例可以在向用户提供对应于步骤504的第一指令、用户遵守该指令、并且后续指令506已经被提供的场景中实现。因此,例如,步骤504-510中的每一个可以与和应用108的对应应用特征相关联的单个任务、工具、动作或命令相关联。
在图6的示例中,图示了具有结合的顺序步骤的结构,其中任意特定步骤可以包括子步骤,例如,可以包括多个句子和相关联的工具、任务或其他动作。如所图示的,在初始节点602之后,指令可以进行到步骤604。如图所示的,在结构进行到步骤610之前,步骤604可以具有子步骤606、608,紧接着是步骤612。如图所示,步骤612具有子步骤614、616、618,于是该结构最终以最终步骤620结束。
因此,图5和6提供了结合的结构的示例,其中需要所有步骤和子步骤以便进行后续步骤或子步骤。相反,图7图示了分离的结构模型,因此不需要所有步骤或子步骤。例如,用户可以做出关于哪个步骤执行下一步的选择。
如图所示,在初始节点702之后,用户可以前进到步骤704,其可以包括子步骤706、708。替代地,用户可以前进到步骤710,或者前进到步骤712。如图所示,步骤712包括子步骤714、716、718。最终选项表示为步骤720。从图7的示例可以理解,用户可以从步骤704、710、712、720中的任意一个开始,并且如果有任意后续步骤和/或子步骤的话,然后进行后续步骤和/或子步骤。更一般地,用户可以具有从步骤704、710、712、720中任意步骤以及任意包括的子步骤中进行选择的选项,并且不需要遵循任意特定顺序,或者完成任意特定数目或百分比的步骤。
在图8的示例中,图示了结构模型,其中可以将顺序步骤分组为过程。如图所示,在初始节点802之后,第一过程804可以包括步骤806,其本身可以包括子步骤808、810、812。过程804还可以包括步骤814、816、818。后续过程820可以遵循第一过程804,并最终导致最终过程822。
图9提供了在生成PTF文件420时可以使用的结构模型类型的最终非限制性示例。如图所示,图9类似于图8的示例,但是提供了具有步骤和潜在子步骤的过程结构的分离的示例。如图所示,在初始节点902之后,过程904可以包括步骤906,步骤906包括子步骤908、910、912。过程904还包括步骤914、916、918。图9的示例还包括过程920和922。类似于图7,过程904、920、922应该被理解为可以由用户选择的、并且可以以所示顺序或以不同顺序执行的替代或可选过程。
例如,在一些场景中,可以将特定过程或指令指定为可选的。类似地,在其他示例中,特定过程或步骤可以与指定的用户的技能或体验的水平相关联。例如,特定过程或步骤可以被指定用于由专家用户实现,但是被指定用于跳过新手或中级用户。
图10是PTF文件的文件部分1000的示例,诸如图4的PTF文件420。在图10的示例中,头部1002包括行1004,其中属性作者具有值“Rebecca Creger”。行1006提供了作者URL的属性和特定网站链接的关联值的示例。因此,网站链接提供了即使在应用108的上下文中操作时可以由用户访问的资源的示例。此外,例如,将理解来自行1004和1006的信息和值可以由本地指令服务120提供。例如,当在本地指令服务120和应用108的上下文内提供教程内容时,可能需要并期望向作者或教程内容的其他源提供归属。当然,如本文中还描述的,作者和相关或类似的元数据的包括也支持对这些包括的属性的索引和搜索。
进一步在图10中,行1008支持基础教程的类别的包括和标识,而行1010支持教程的起源日期的包括。行1012提供头部文本的包括,如头部文本1013所示。如图所示,文本1013可以提供教程主题的描述。同时,行1014引用了所讨论的教程所使用的资源的URL,在这种情况下是本教程中使用的“之前”图像的URL的示例。行1016提供过程的标识符“proc_ID”。行1018“使用调整层”来提供教程的标题。行1020提供教程的类型指定,例如“教程”。最后相对于头部部分1002,行1022提供教程的源URL的包括。此外,当实现图1的系统100时,可以提供行1022的源URL以用于参考和归属的目的(例如,用于版权保护的目的)。
进一步在图10中,行1024指定教程的过程列表的开始。部分1026提供了该过程的名称和概述,以及根据图5-9的先前示例将该过程的角色指定为结合的或分离的。具体地,如图10的示例中的“任意”的指定,指定过程内的分离的例如可选的步骤集合。在其他示例中,将过程规则指定为“全部”将指定结合的过程列表。
行1028指定所讨论的过程的步骤列表的开始。如图所示,行1030包括第一包括步骤的名称,而行1032将步骤指定为需要或不需要。行1034指定步骤内的句子列表的开始。
如图10中所示,行1035指示用于表征关于在PTF对象内的包括的参考步骤的每个句子的部分。在这方面,如下面关于图12和13详细描述的,这样的PTF对象表示可能映射到对应软件应用的多个应用特征中的一个或多个的候选项,诸如菜单命令、工具名称、图标、面板、图库名称和其他应用特征。因此,每个这样的PTF对象可以具有PTF对象ID,PTF对象ID是从对应应用的应用特征的主词典确定的,其示例在下面提供,为了提供一致且统一的方法来参考所讨论的软件应用(例如,Adobe Photoshop)的所选择的命令。
具体地,如图所示,部分1036表征关于与亮度或对比度有关的PTF对象的句子,包括将PTF对象表征为与用于改变应用108内的亮度/对比度的工具有关,诸如已经关于图1和显示器114的对比度按钮126引用的。如图所示,可以关于相应地表征句子中的置信度给出置信水平(例如,归一化以排列在0和1之间)。部分1038图示了可以关于给定步骤和/或句子指定多个PTF对象。如图所示,该部分1038引用了与执行调整动作有关的潜在PTF对象。行1030包括来自相关步骤的参考句子的文本。在该示例中,句子文本参考亮度/合约的使用来对图像进行调整。
最后,在图10中,部分1032引用用于标识后续步骤句子的对象候选项的后续部分,包括所引用的句子的文本。行1034提供步骤可以被定位/检索的URL。
图11是图示了关于图5-10的示例的图4的系统的更详细示例操作的流程图1100。在图11的示例中,生成教程内容的markdown标记语言表示(1102)。例如,如上所述,markdown语言是一种标记语言和语法,其可用于添加上面参考的注释类型,并且可用于确定教程内容的属性和相关联的值。特别地,如所描述的,教程内容可以具有各种各样的格式、结构、层级级别和其他特征。模型训练器144可以被配置为使用示例、选择的教程网站来训练教程注释器134以生成教程内容的markdown标记。
通过分析所生成的markdown标记注释,可以确定教程内容的结构级别(1104)。然后可以提取教程内容,使得可以生成注释的结构化教程内容(1106)。例如,教程提取器136可以使用一个或多个模板用于这样的提取过程,包括从至少一个基本提取模板克隆的一个或多个模板。
然后可以根据教程结构模型对注释的结构化教程内容进行分类(1108)。例如,图1的PTF生成器140可以根据图5-9的五个结构模型之一对注释的教程内容138进行分类。最后,在图11中,可以生成用于教程的PTF文件(1110)。例如,图1的PTF生成器140或图4的PTF生成器418可以被配置为生成图4的PTF文件420,或者对应于图10的伪代码的PTF文件。
图12是图示图1的教程管理器132的更详细的示例实现的框图。更具体地,图12图示了关于图2-11的后续示例的图1的特征提取器146、特征映射器148和指令代码生成器150的更详细的示例操作。
具体地,图12继续示例,其中应用108由Adobe Photoshop软件应用表示,并且本地指令服务120由Adobe Photoshop的学习面板教程播放器表示。在这些示例中,如已经引用的,指令代码122可以指代可由本地指令服务120执行的Java脚本对象表示法(JSON)对象。因此,在图12的示例中,生成将由Photoshop学习面板教程播放器执行的JSON对象1210。
在图12中,通过Photoshop软件应用的一个或多个应用特征列表的使用,将图4的PTF文件420转换为可执行指令代码1210。具体地,如上所述并参照图12更详细地图示的,可以利用从诸如图1的特征列表130的主列表确定的菜单命令/工具名称的列表1202。换句话说,在相关软件应用提供应用特征的部分或完整列表的场景中,该列表可以由PTF文件420参考并且由可执行代码1210利用。当可用时,因此,可以使用任何适当的或可用的接口从相关应用中提取列表1202。
另一方面,如上所述,列表1204可以表示菜单命令、工具名称和可能在诸如特征列表130的列表内不(显式地)可用或未被提供的其他应用特征。相反,如上所述并在图12的示例中图示的,可以启发式地并且通过自然语言处理(NLP)和其他机器学习技术的使用来确定这样的应用特征。
在图12中,确定映射1206,其被配置为将诸如菜单命令、工具名称、图标、面板、图库名称和其他应用特征的应用特征转换为PTF对象ID。如上面关于图10所参考的,对象ID是从主词典确定的PTF文件的元素,目的是提供用于参考所讨论的软件应用(例如,AdobePhotoshop)的所选命令的一致且统一的方法。如所参考的,为了创建和利用这样的映射,PTF生成器418可以被配置为训练和实现用于学习和识别教程内容内的正式和非正式(例如,自然语言)工具和命令名称的算法。
使用映射1206,转换器1208可以被配置为将PTF文件420转换为学习面板(LP)代码1210。如所描述的,得到的学习面板代码可以由学习面板教程播放器执行以创建与AdobePhotoshop软件应用上下文中的相关教程的用户的交互。这样的交互可以包括教练标记(例如,UI提示的透明叠加)的使用,以及结合用户动作执行的特定项突出显示动作,诸如图1中的对比度按钮126的突出显示128。
图13是图示了图12的框图的更详细示例操作的流程图1300。在图13的示例中,操作可以在接收到PTF文件的任意特定实例之前开始。具体地,可以确定由本地指令服务支持的应用特征(1302)。然后,可以提供用于相应应用特征的生产函数(1304)。
更具体地,这样的生产函数(也称为回调函数)表示被设计为生成用于对应的应用特征的可执行代码的函数库。如下面详细描述的,因此可以在将PTF文件的个体实例转换成指令代码的对应代码部分的后续处理期间根据需要利用这样的生产函数中的各种生产函数。
具体地,当接收到PTF文件时,可以遍历PTF文件的树结构(1306)。例如,图12的转换器1208可以被配置为执行递归下降算法以遍历PTF文件420,其中解析从PTF文件420的根节点进行到PTF文件420的每个叶节点,从而分解/解构PTF文件420并选择特定于相关本地指令服务120(例如,Photoshop学习面板教程播放器)的部分。也就是说,例如,每个步骤的每个句子通常将以自然语言格式表示,但是将参考动作(例如,点击、选择或裁剪)和工具(例如,画笔工具、裁剪工具或其他Adobe Photoshop工具)。
在使用映射1206标识对应于特定应用特征的PTF文件树的一部分(1308)之后,转换器1208可以继续标识和选择生产函数库的对应生产函数(1310)。因此,指令代码1210的对应代码段可以由生产函数生成(1312),并且可以将得到的代码片段添加到对应的本地指令服务代码的层级中(1314)。换句话说,原始PTF文件树的递归下降遍历保留PTF文件树的结构,并执行树到树映射,该树到树的映射导致所得指令代码1210的对应层级表示。
如果未完成PTF文件树的遍历(1316),则遍历将继续,具有指令服务代码1210的相关部分的对应生成(1306-1314)。一旦遍历完成(1316),则可以利用生成的代码片段来生成可执行本地指令服务代码1210(1318)。
伪代码1图示了用于创建要在可执行本地指令服务代码1210内包括的一个或多个任务的算法的示例逻辑。具体地,如伪代码1所示,如果确定步骤句子列表中的PTF对象不包括对应的本地指令服务/学习面板教程播放器的工具,则句子的文本可以被包括在描述性文本中。如果确定在步骤句中存在可动作的工具,则可以生成对应的任务。如果标识出工具但是不可动作的,则对应的任务可以被生成但被标识为强制性假。另一方面,对于可动作的工具,每个任务和结果列表都被标记为可动作、强制为真。
#算法:何时创建任务以及何时不创建任务的逻辑
#描述:如果根本不存在工具,则它们一切都会进入描述。在遇到可动作的事情时创建新任务。为每个可动作的工具创建一个任务。如果存在工具但没有可动作的,则创建一个任务,强制为假。如果存在可动作的工具,则任务列表中的每个任务都是可动作的,强制为真。
#
#以前的=-1(到任务列表的索引)
#针对步骤_句子_列表中的每个对象
#如果存在工具呈现
#如果以前的==-1//如果完全不存在任务
#创建第一任务对象
#将任务对象的描述设置为"全部文本"+步骤_文本
#设置以前的=0
#如果存在可动作的工具
#设置可动作_工具_呈现=真
#否则
#如果没有工具是可动作的(进行返回第一可动作工具的索引的函数)
#将步骤_文本添加到以前的任务对象描述
任务[以前的].得到("描述")
#继续
#
#如果可动作_工具_呈现==假
#将步骤_文本添加到以前的任务对象描述
任务[以前的].得到("描述")
#否则
#创建任务对象
#将任务对象的描述设置为步骤_文本
#设置以前的+=1
#设置可动作_工具_呈现=真
#否则
#如果以前的==-1//如果完全不存在任务
#将发送_文本添加到全部文本
#否则
#将步骤_文本添加到以前任务对象描述
任务[以前的].得到("描述")
#
#如果以前的==-1,则全部文本进入文本描述,没有任务列表
#
伪代码1
尽管以上描述提供了许多示例实现,但是可以预期其他扩展和变化。例如,用于指示教程技能级别、估计的完成的持续时间和步骤选项的属性可以被捕获到PTF中并得到到学习面板JSON。这些扩展允许为新手用户以及具有不同经验和技能的用户定制教程经验。
此外,可以提供机制,通过该机制,用户可以具有继续教程的一个或多个“下一步骤”的选择。可以提供机制来指示和控制教程步骤(必需或可选)的可选性,从而允许不同程度的教程效果被完成。此外,可以提供机制以根据用户的技能(基本、中级、高级)和/或期望的总持续时间来指示和选择教程的难度级别。在附加或替代示例中,可以提供支持以指示和定义教程中提到的重要术语,以在教程期间增强术语学习。
本文描述的各种技术的实现可以在数字电子电路中实现,或者在计算机硬件、固件、软件或它们的组合中实现。实现可以实现为计算机程序产品,即,有形地体现在信息载体中的计算机程序,例如,在机器可读存储设备中,用于由数据处理装置执行或控制数据处理设备的操作,例如,可编程的处理器、计算机或多台计算机。诸如上述计算机程序的计算机程序可以用任意形式的编程语言编写,包括编译或解释语言,并且可以以任意形式部署,包括作为独立程序或作为模块、组件、子例程或适用于计算环境的其他单元。可以部署计算机程序以在一个计算机上或在一个站点的多个计算机上执行,或者分布在多个站点上并通过通信网络互连。
方法步骤可以由执行计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行功能。方法步骤也可以由专用逻辑电路执行,并且装置可以实现为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
举例来说,适合于计算机程序的执行的处理器包括通用微处理器和专用微处理器两者,以及任意类型的数字计算机的任意一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的元件可包括用于执行指令的至少一个处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还可以包括或可操作地耦合以从用于存储数据的一个或多个大容量存储设备接收数据或将数据传输到一个或多个大容量存储设备,例如磁、磁光盘或光盘。适用于实施计算机程序指令和数据的信息载体包括所有形式的非易失性存储器,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路补充或被并入专用逻辑电路中。
为了提供与用户的交互,可以在计算机上实现,计算机具有用于向用户显示信息的显示设备,例如,阴极射线管(CRT)或液晶显示器(LCD)监视器,以及用户可以通过其向计算机提供输入的键盘和指示设备,例如鼠标或轨迹球。其他类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任意形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任意形式接收来自用户的输入,包括声学、语音或触觉输入。
实现可以在计算系统中实现,计算系统中包括例如作为数据服务器的后端组件,或者包括中间件组件,例如应用服务器,或者包括前端组件,例如具有图形用户界面或Web浏览器的客户端计算机,用户可以通过其与实现进行交互,或者这种后端、中间件或前端组件的任意组合。组件可以通过任意形式数字数据通信或数字数据通信的介质互连,例如通信网络。通信网络的示例包括局域网(LAN)和广域网(WAN),例如因特网。
虽然已经如本文所述图示了所描述的实现的某些特征,但是对于本领域技术人员将出现许多修改、替换、改变和等同物。因此,应该理解,所附权利要求旨在覆盖所有这些修改和变化作为落入实施例的范围内。

Claims (20)

1.一种计算机程序产品,所述计算机程序产品被有形地体现在非暂态计算机可读存储介质上并且包括指令,所述指令在由至少一个计算设备执行时被配置为使得所述至少一个计算设备:
解析从网页得到的并以层级格式被构造的教程文件,所述教程文件表示由所述网页针对软件应用提供的教程,在所述层级格式中教程属性相对于所述教程属性的对应的值而被指定,所述值包括所述网页中被包括的、用于使用所述软件应用的至少一个指令;
执行所述教程属性到所述软件应用的应用特征的映射;以及
基于所述映射生成由所述软件应用的本地指令服务可执行的、用于生成所述软件应用内的至少一个指令元素的指令代码,所述至少一个指令元素标识所述应用特征中的至少一个应用特征,所述至少一个应用特征被配置为支持所述至少一个指令的完成。
2.根据权利要求1所述的计算机程序产品,其中所述指令在被执行时还被配置为使得所述至少一个计算设备:
生成所述教程文件,包括从所述网页提取教程内容并且标识所述教程内容的结构级别。
3.根据权利要求2所述的计算机程序产品,其中所述指令在被执行时还被配置为使得所述至少一个计算设备:
生成具有所述层级格式中包括的所标识的所述结构级别的所述教程文件,并包括相对于教程结构模型的集合对所述结构级别进行分类,所述教程结构模型确定所述教程的教程步骤之间的结合或分离。
4.根据权利要求1所述的计算机程序产品,其中所述层级格式包括具有所述教程的多个教程步骤的至少一个过程,并且所述多个教程步骤中的一个教程步骤包括所述至少一个指令。
5.根据权利要求4所述的计算机程序产品,其中所述多个教程步骤中的所述一个教程步骤包括标识符从所述应用特征的列表中标识所述至少一个应用特征。
6.根据权利要求1所述的计算机程序产品,其中所述指令在被执行以执行所述映射时,还被配置为使得所述至少一个计算设备:
执行所述教程属性的自然语言处理(NLP),以从而将每个教程动作属性与所述应用特征的名称的标准化列表的应用特征相关联。
7.根据权利要求1所述的计算机程序产品,其中所述指令在被执行以生成所述指令代码时,还被配置为使得所述至少一个计算设备:
确定所述多个应用特征;
存储针对所述多个应用特征的多个生产函数,每个生产函数被配置为生成针对对应的应用特征的所述指令代码的代码部分。
8.根据权利要求7所述的计算机程序产品,其中所述指令在被执行以生成所述指令代码时,还被配置为使得所述至少一个计算设备:
遍历所述教程文件的所述层级格式,以选择教程属性和对应的值,所述对应的值包括所述至少一个指令;
标识所述生多个产函数中的、对应于所述至少一个指令的生产函数;以及
基于所述生产函数来生成所述指令代码的代码部分。
9.根据权利要求1所述的计算机程序产品,其中所述至少一个应用特征包括所述软件应用的工具或动作功能。
10.根据权利要求1所述的计算机程序产品,其中所述至少一个应用特征包括使用所述软件应用的工具而被执行以完成所述至少一个指令的动作。
11.一种计算机实现的方法,所述方法包括:
解析从网页得到的并且以层级格式被构造的教程文件,所述教程文件表示由所述网页针对软件应用提供的教程,在所述层级格式中教程属性相对于所述教程属性的对应的值而被指定,所述值包括在所述网页中被包括的、用于使用所述软件应用的至少一个指令;
执行所述教程属性到所述软件应用的应用特征的映射;以及
基于所述映射,生成由所述软件应用的本地指令服务可执行的、用于生成所述软件应用内的至少一个指令元素指令代码,所述至少一个指令元素标识所述应用特征中的至少一个应用特征,所述至少一个应用特征被配置为支持所述至少一个指令的完成。
12.根据权利要求11所述的方法,其中执行所述映射包括:
执行所述教程属性的自然语言处理(NLP),以从而将每个教程动作属性与所述应用特征的名称的标准化列表的应用特征相关联。
13.根据权利要求11所述的方法,其中生成所述指令代码包括:
确定所述多个应用特征;
针对所述多个应用特征存储多个生产函数,每个生产函数被配置为生成针对对应的应用特征的所述指令代码的代码部分。
14.根据权利要求13所述的方法,其中生成所述指令代码包括:
遍历所述教程文件的所述层级格式,以选择教程属性和对应的值,所述对应的值包括所述至少一个指令;
标识所述多个生产函数中的、对应于所述至少一个指令的生产函数;以及
基于所述生产函数来生成所述指令代码的代码部分。
15.一种系统,包括:
至少一个存储器,包括指令;以及
至少一个处理器,所述至少一个处理器被可操作地耦合到所述至少一个存储器,并且所述至少一个处理器被布置和配置为执行指令,所述指令在被执行时使得所述至少一个处理器:
输入教程文件,所述教程文件包括用于执行软件应用的应用功能的有序指令;
将所述有序指令映射到所述软件应用的对应的应用特征;以及
生成指令代码,所述指令代码由所述软件应用的本地指令服务可执行,并且被配置为支持所述应用内的所述对应的应用特征的交互执行以实现所述有序指令并执行所述应用功能。
16.根据权利要求15所述的系统,其中所述教程文件包括对应于所述有序指令的层级格式,所述层级格式从提取自教程网页的教程内容而被确定。
17.根据权利要求16所述的系统,其中所述教程文件以标准化格式被构造,所述标准化格式适用于将多个教程网页的教程内容存储在对应的多个教程文件中。
18.根据权利要求15所述的系统,其中所述应用特征中的应用特征包括所述软件应用的工具或动作功能,并且其中所述交互式执行包括向所述软件应用的用户可视地标识所述工具以用于在完成所述有序指令中的至少一个有序指令时使用。
19.根据权利要求15所述的系统,其中所述系统映射所述有序指令包括执行所述教程文件的教程内容的自然语言处理(NLP),以从而将所述有序指令中的有序指令与来自所述应用特征的名称的列表中的对应的应用特征相关联。
20.根据权利要求15所述的系统,其中所述系统被配置为:
从教程网页提取教程内容;
用教程属性来注释所述教程内容;
标识对应于至少一个教程过程和所包括的教程步骤的所述教程内容的结构级别;以及
用层级格式来生成所述教程文件,所述层级格式反映所标识的所述结构级别并包括与对应的教程值一起被存储的所述教程属性。
CN201811236758.XA 2018-03-19 2018-10-23 交互式教程集成 Pending CN110286967A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/925,259 2018-03-19
US15/925,259 US10769738B2 (en) 2018-03-19 2018-03-19 Interactive tutorial integration

Publications (1)

Publication Number Publication Date
CN110286967A true CN110286967A (zh) 2019-09-27

Family

ID=64655320

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811236758.XA Pending CN110286967A (zh) 2018-03-19 2018-10-23 交互式教程集成

Country Status (5)

Country Link
US (1) US10769738B2 (zh)
CN (1) CN110286967A (zh)
AU (1) AU2018253637B2 (zh)
DE (1) DE102018008377A1 (zh)
GB (1) GB2572234A (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10885444B2 (en) 2017-03-10 2021-01-05 Adobe Inc. Application tool recommendations
US10866803B2 (en) * 2019-02-12 2020-12-15 Red Hat, Inc. Generating interaction libraries
US11468786B2 (en) * 2019-10-16 2022-10-11 Adobe Inc. Generating tool-based smart-tutorials
US10831516B1 (en) 2020-03-09 2020-11-10 Adobe Inc. Proficiency based tutorial modification
US11609772B2 (en) * 2020-09-18 2023-03-21 Red Hat, Inc. Dynamically generating guided tours for software
US11726803B2 (en) * 2021-03-01 2023-08-15 Orange Management Inc. Artificial intelligence based systems and methods for autonomously generating customer service help guides with integrated graphical components and for autonomously error-checking knowledge base support resources
US11715384B2 (en) 2021-06-02 2023-08-01 International Business Machines Corporation Automated personalization of a user experience
US20230244958A1 (en) * 2022-01-28 2023-08-03 Intuit Inc. Generation of conversational task completion structure

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101996093A (zh) * 2009-08-10 2011-03-30 日电(中国)有限公司 将桌面应用转换为网络应用的方法和系统
CN102160083A (zh) * 2008-09-22 2011-08-17 微软公司 跨复杂任务的向导
CN107608536A (zh) * 2017-09-25 2018-01-19 武汉优品鼎盛科技服务有限公司 一种自动完成数据输入的方法及设备

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5442759A (en) * 1992-03-26 1995-08-15 International Business Machines Corporation Interactive online tutorial system with user assistance function for software products
US5535422A (en) * 1992-03-26 1996-07-09 International Business Machines Corporation Interactive online tutorial system for software products
US5493658A (en) * 1992-03-26 1996-02-20 International Business Machines Corporation Interactive online tutorial system with monitoring function for software products
US6343237B1 (en) * 1999-06-04 2002-01-29 Clark Equipment Company User interface functionality for power machine control system
US6594466B1 (en) * 2000-05-24 2003-07-15 Bentley Systems, Incorporated Method and system for computer based training
US20020091993A1 (en) * 2000-09-29 2002-07-11 International Business Machines Corporation Contextual help information
GB0303977D0 (en) * 2003-02-21 2003-03-26 Ibm A method and system for generating a tutorial application
US7580702B2 (en) * 2005-05-13 2009-08-25 Core Mobility, Inc. Systems and methods for discovering features in a communication device
US9183752B2 (en) * 2005-07-14 2015-11-10 Red Hat, Inc. Tutorial generator with automatic capture of screenshots
US9449524B2 (en) * 2010-11-05 2016-09-20 International Business Machines Corporation Dynamic role-based instructional symbiont for software application instructional support
US9665234B2 (en) * 2013-04-16 2017-05-30 Autodesk, Inc. Community enhanced tutorials: improving tutorials with multiple demonstrations
US9649556B1 (en) * 2013-08-30 2017-05-16 Aftershock Services, Inc. System and method for dynamically inserting tutorials in a mobile application
US20150121217A1 (en) * 2013-10-28 2015-04-30 Kobo Incorporated Method and system for automatic invocation of guided reading tutorial based on account activity
WO2015116189A1 (en) * 2014-01-31 2015-08-06 Hewlett-Packard Development Company, L.P. User interface level tutorials
US10635460B2 (en) * 2015-12-21 2020-04-28 Google Llc Assisted interaction for mobile products
US10430214B2 (en) * 2016-12-30 2019-10-01 Google Llc Dynamically generating custom application onboarding tutorials
US10885808B2 (en) * 2017-09-28 2021-01-05 International Business Machines Corporation Curating tutorials based on historic user data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102160083A (zh) * 2008-09-22 2011-08-17 微软公司 跨复杂任务的向导
CN101996093A (zh) * 2009-08-10 2011-03-30 日电(中国)有限公司 将桌面应用转换为网络应用的方法和系统
CN107608536A (zh) * 2017-09-25 2018-01-19 武汉优品鼎盛科技服务有限公司 一种自动完成数据输入的方法及设备

Also Published As

Publication number Publication date
US10769738B2 (en) 2020-09-08
DE102018008377A1 (de) 2019-09-19
GB2572234A (en) 2019-09-25
AU2018253637A1 (en) 2019-10-03
US20190287197A1 (en) 2019-09-19
GB201817945D0 (en) 2018-12-19
AU2018253637B2 (en) 2021-07-29

Similar Documents

Publication Publication Date Title
CN110286967A (zh) 交互式教程集成
Raharjana et al. User stories and natural language processing: A systematic literature review
CA3001800C (en) Automated generation of narrative responses to data queries
CN108073680A (zh) 生成具有提炼内容的演示幻灯片
WO2020061586A1 (en) Code completion
Diefenbach et al. Qanswer KG: designing a portable question answering system over RDF data
US20220139075A1 (en) Deep learning guide device and method
US20160049083A1 (en) Systems and methods for authoring an integrated and individualized course or textbook
AU2011201127A1 (en) Collaborative Knowledge Management
US11119735B1 (en) Universal hybrid programming environment
Pontelli et al. Navigation of HTML tables, frames, and XML fragments
US10275462B2 (en) Automatic translation of string collections
Tamla Supporting access to textual resources using named entity recognition and document classification
Bacci et al. Inspecting data using natural language queries
Brel et al. Reusing and Combining UI, Task and Software Component Models to Compose New Applications
Pazienza et al. Semi-automatic generation of GUIs for RDF browsing
Paschke et al. Corporate semantic web: Towards the deployment of semantic technologies in enterprises
Tamla et al. Supporting Named Entity Recognition and Document Classification in a Knowledge Management System for Applied Gaming.
Boronat A comparison of HTML-aware tools for Web Data extraction
Tomić et al. An explanation facility framework for rule-based systems
Krosnick Improving Web Automation Tools through UI Context and Demonstration
Fischer et al. URU: a platform for prototyping and testing compatibility of multifunction interfaces with user knowledge schemata
Ulén et al. A single source of text: Supporting text management in cross-functional organisations
Bang et al. Help Annotating Software “HAnS”-Visualisation
Atterer Usability tool support for model-based web development

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