在示例编程中从输入模式中进行学习制造技术

技术编号:18609774 阅读:26 留言:0更新日期:2018-08-04 22:53
本文中公开的实施例涉及用于由基础示例编程(PBE)系统使用输入逻辑模式以基于用户输入示例来生成一个或多个程序的系统和方法。一种系统包括处理器和系统存储器。该系统访问一组输入数据。该系统接收针对该组输入数据的一个或多个用户输入示例。用户输入示例指示应当被实现以符合用户确定的结果的输出。该系统分析该组输入数据以标识该组输入数据共有的一个或多个逻辑模式。基于与一个或多个用户输入示例相一致的一组一个或多个逻辑模式,该系统生成将输出用户确定的结果的一个或多个程序。

【技术实现步骤摘要】
【国外来华专利技术】在示例编程中从输入模式中进行学习
技术介绍
目前,数十亿用户可以访问计算设备。然而,这些用户中的大量用户没有专业编程知识并且因此可能无法编写能够在很多程序中自动执行重复任务的小脚本。示例编程(PBE)有可能帮助这样的用户生成小脚本。PBE涉及基于由用户输入的、指定用户意图的结果的示例来生成小脚本的技术。PBE可以用于很多领域特定的语言。本文中要求保护的主题不限于解决任何缺点的实施例或仅在诸如上述环境中操作的实施例。相反,提供本背景仅用于说明其中可实施本文中描述的一些实施例的一个示例性

技术实现思路
提供本
技术实现思路
部分是为了以简化的形式介绍将在以下具体实施方式部分中进一步描述的一些概念。本
技术实现思路
部分无意确定所要求保护的主题的关键特征或基本特征,也无意用作确定所要求保护的主题的范围的辅助手段。本文中公开的实施例涉及用于由基础示例编程(PBE)系统使用输入逻辑模式以基于用户输入示例来生成一个或多个程序的系统和方法。在一个实施例中,一种系统包括处理器和系统存储器。该系统访问一组输入数据。该系统接收针对该组输入数据的一个或多个用户输入示例。用户输入示例指示应当被实现以符合用户确定的结果的输出。该系统分析该组输入数据以标识该组输入数据共有的一个或多个逻辑模式。该系统基于与一个或多个用户输入示例相一致的一组一个或多个逻辑模式,生成将输出用户确定的结果的一个或多个程序。在另一实施例中,在PBE计算系统的处理器处接收用户输入数据。用户输入数据至少包括第一输入数据串和第二输入数据串。接收用户输入数据的一个或多个用户输入示例。用户输入示例指示应当被实现以符合用户确定的结果的输出。确定针对第一输入数据串的第一组逻辑模式,并且确定针对第二输入数据串的第二组逻辑模式。将第一输入数据串的第一组逻辑模式组织成第一图,第一图具有第一节点和连接第一图的第一节点的第一边。将第二输入数据串的第二组逻辑模式组织成第二图,第二图具有第二节点和连接第二图的第二节点的第二边。将第一图和第二图相交以生成相交的第三图,相交的第三图具有第三节点和连接第三图的第三节点的第三边。基于一个或多个用户输入示例来对第三节点和第三边进行排序。基于排序来生成将输出用户确定的结果的一个或多个程序。附加的特征和优点将在下面的描述中阐述,并且部分将从描述中变得清楚,或者可以通过实施本文中的教导来了解。可以通过在所附权利要求中特别指出的手段和组合来实现和获得本专利技术的特征和优点。本专利技术的特征从以下描述和所附权利要求书中将变得更加明显,或者可以通过如下文中阐述的本专利技术的实践来了解。附图说明为了描述可以获取本专利技术的上述和其他优点和特征的方式,上面简要描述的本专利技术的更具体描述将通过参考附图中示出的其特定实施例来呈现。应当理解,这些附图仅描绘了本专利技术的典型实施例,并且因此不被认为是对其范围的限制,本专利技术将通过使用附图以更多的特征和细节来描述和解释,在附图中:图1示出了其中可以采用本文中描述的一些实施例的计算系统;图2示出了通过示例编程(PBE)计算系统的实施例;图3示出了图2的PBE计算系统的图生成器;图4示出了由PBE计算系统生成的图的实施例;图5示出了由PBE计算系统生成的图的另一实施例;图6示出了图4和图5的图的相交的图的实施例;图7A至图7D示出了基于本文中公开的实施例的使用逻辑模式来生成程序的示例;图8示出了用于基于输入数据的共有逻辑模式来生成程序的示例方法的流程图,该程序基于用户输入示例来输出用户预期结果;以及图9示出了用于基于输入数据的共有逻辑模式来生成程序的替代示例方法的流程图,该程序基于用户输入示例来输出用户预期结果。具体实施方式示例编程(PBE)涉及基于由用户输入的、指定用户意图的结果的示例来生成小程序及其相关联的子表达式的技术。可以理解,由PBE生成的小程序的数目可能非常大。因此,基础PBE系统可能最终生成与用户输入的示例相一致但实际上并不提供用户期望的结果的程序。这是因为可以存在与所提供的示例相一致但是在一些其他输入上的动作不同的程序。为了解决这个问题,PBE计算系统通常将对所生成的程序进行排序以确定哪个程序对于用户预期的结果是最佳的并且将该程序提供给用户。然而,这种排序往往涉及需要大量计算资源来执行的复杂算法,这会使用户的进程减速。所公开的实施例的各方面涉及创建和使用可以用于提供用于基于用户示例来生成程序的更有效的方式的PBE计算系统。在本公开中,PBE计算系统使用输入数据共有的逻辑模式,这些输入数据受所生成的程序支配,该程序产生由用户输入示例指定的用户预期结果。通过实施所公开的实施例的各方面可以实现各种技术效果和益处。作为示例,所公开的实施例中的逻辑模式的使用显著减少了可能由PBE计算系统生成的潜在程序的数目,因此减少了生成程序所需要的计算机资源。另外,与所公开的实施例相关的技术效果还可以包括通过减少使用PBE计算系统所花费的时间而提高用户便利性和效率增益,这可以带来PBE计算系统的更广泛使用。将参考图1描述计算系统的一些介绍性讨论。然后,将参考图2至图6描述用于使用输入逻辑模式以基于用户输入示例来生成一个或多个程序的PBE计算系统的性能。计算系统现在越来越多地采用各种各样的形式。例如,计算系统可以是手持设备、家用电器、膝上型计算机、台式计算机、大型机、分布式计算系统、数据中心、或甚至照惯例不会被认为是计算系统的设备,诸如可穿戴设备(例如,眼镜)。在本说明书和权利要求书中,术语“计算系统”被广义地定义为包括具有至少一个物理和有形处理器以及能够在其上具有计算机可执行指令的物理和有形存储器的任何设备或系统(或它们的组合),这些计算机可执行指令可以由处理器执行,从而将计算系统提供用于特殊目的。存储器可以采取任何形式,并且可以取决于计算系统的性质和形式。计算系统可以被分布在网络环境中,并且可以包括多个组成计算系统。如图1所示,在其最基本的配置中,计算系统100包括至少一个处理单元102和存储器104。存储器104可以是物理系统存储器,其可以是易失性的、非易失性的或两者的某种组合。术语“存储器”在本文中也可以用于指代非易失性大容量存储器,诸如物理存储介质。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。如本文中使用的,术语“可执行模块”或“可执行组件”可以指代可以在计算系统上执行的软件对象、路由或方法。本文中描述的不同组件、模块、引擎和服务可以被实现为在计算系统上执行的对象或进程(例如,作为单独的线程)。在下面的描述中,参考由一个或多个计算系统执行的动作来描述实施例。如果这样的动作以软件实现,则执行动作的相关联的计算系统的一个或多个处理器响应于已经执行计算机可执行指令来指导计算系统的操作。例如,这样的计算机可执行指令可以在形成计算机程序产品的一个或多个计算机可读介质上实现。这样的操作的示例涉及数据的操纵。计算机可执行指令(和所操纵的数据)可以被存储在计算系统100的存储器104中。计算机可执行指令可以用于实现和/或实例化所公开的所有功能、具体如参考图9至11的流程图中所示的方法所公开的所有功能。计算机可执行指令还将实现和/或实例化本文中公开的所有接口,包括分析视图窗口和图。计算系统100还可以包含允许计算系统100通过例如网络11本文档来自技高网...

【技术保护点】
1.一种计算系统,包括:至少一个处理器;以及存储有计算机可执行指令的至少一个存储设备,所述计算机可执行指令在由所述至少一个处理器执行时使所述计算系统执行以下:访问一组输入数据;接收针对所述一组输入数据的一个或多个用户输入示例,所述一个或多个用户输入示例指示应当被实现以符合用户确定的结果的输出;分析所述一组输入数据以标识所述一组输入数据共有的一个或多个逻辑模式;以及基于与所述一个或多个用户输入示例相一致的一组所述一个或多个逻辑模式,来生成将输出所述用户确定的结果的一个或多个程序。

【技术特征摘要】
【国外来华专利技术】2015.12.08 US 14/962,9641.一种计算系统,包括:至少一个处理器;以及存储有计算机可执行指令的至少一个存储设备,所述计算机可执行指令在由所述至少一个处理器执行时使所述计算系统执行以下:访问一组输入数据;接收针对所述一组输入数据的一个或多个用户输入示例,所述一个或多个用户输入示例指示应当被实现以符合用户确定的结果的输出;分析所述一组输入数据以标识所述一组输入数据共有的一个或多个逻辑模式;以及基于与所述一个或多个用户输入示例相一致的一组所述一个或多个逻辑模式,来生成将输出所述用户确定的结果的一个或多个程序。2.根据权利要求1所述的计算系统,其中分析所述数据以标识所述一个或多个逻辑模式包括将所述一组输入数据中的每个条目组织成数据图,所述数据图具有一个或多个节点和连接所述一个或多个节点的边。3.根据权利要求2所述的计算系统,其中所述一个或多个节点表示所述一组输入数据的数据串的索引,并且其中所述边表示能够用于生成将产生所述用户确定的结果的所述一个或多个程序的子串表达式。4.根据权利要求2所述的计算系统,其中基于所述一个或多个逻辑模式来生成所述一个或多个程序包括确定所述图的最长路径,所述最长路径包括最大数目的节点和连接所述节点的边。5.根据权利要求1所述的计算系统,其中基于所述一组一个或多个逻辑模式来生成所述一个或多个程序包括对所述一个或多个逻辑模式进行排序,以确定与排序最高的一个或多个逻辑模式相对应的子串表达式,所述子串表达式是将产生所述用户确定的结果的所述一个或多个程序的子串表达式。6.根据权利要求1所述的计算系统,其中所述一组一个或多个逻辑模式表示能够用于生成将产生所述用户确定的结果的所述一个或多个程序的子串表达式。7.一种计算机实现的方法,用于由基础示例程序(PBE)计算系统基于输入数据的共有逻辑模式来生成程序,所述程序基于用户输入示例来输出用户预期结果,所述方法包括:在所述PBE计算系统的处理器处接收用户输入数据的动作,所述用户输入数据至少包括第一输入数据串和第二输入数据串;接收针对所述用户输入数据的一个或多个用户输入示例的动作,所述一个或多个用户输入示例指示应当被实现以符合用户确定的结果的输出;确定针对所述第一输入数据串的第一组逻辑模式的动作;确定针对所述第二输入数据串的第二组逻辑模式的动作;将针对所述第一输入数据串的所述第一组逻辑模式组织成第一图的动作,所述第一图具有第一节点和连接所述第一图的所述第一节点的第一边;将针对所述第二输入数据串的所述第二组逻辑模式组织成第二图的动作,所述第二图具有第二节点和连接所述第二图的所述第二节点的第二边;将所述第一图和所述第二图相交以生成相交的第三图的动作,所述相交的第三图具有第...

【专利技术属性】
技术研发人员:R·辛格
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1