用于串变换的归纳合成的排序的制作方法

文档序号:8417544阅读:348来源:国知局
用于串变换的归纳合成的排序的制作方法
【专利说明】用于串变换的归纳合成的排序
[0001] 背景
[0002] 世界范围内的数百万人使用电子表格等来存储和操纵数据。这些数据操纵场景通 常包括将大量的输入信息从一种格式转换为另一种格式以产生所需输出。通常,手动地或 使用小的、通常是一次性的计算机程序来实现这些任务,这些计算机程序由终端用户创建 或由程序员为终端用户来创建。
[0003] 另一种办法涉及采用计算机来合成程序以实现所需数据变换的尝试。存在合成程 序的两种主要的办法:演绎和归纳。在演绎程序合成中,完整的高级规范被转换成对应的低 级程序,其中使用一些公理来验证转换中的每个步骤。这一办法需要用户提供完整的规范, 这在一些情况下可能潜在地比编写写程序本身更加困难。这导致归纳合成办法近来变得更 加流行。在归纳程序合成办法中,从不完整的规范(诸如包括输入-输出示例集合的规范) 来合成程序。它近来被用于合成从低级指针操纵代码到电子表格宏的各种领域内的程序。
[0004] 由于归纳程序合成办法中的规范是不完整的且经常是不清楚的,存在具有符合给 定规范的底层领域专用语言的许多不同程序。为了消除不清楚以及收敛成想要的程序,用 户需要通过提供附加的输入-输出示例来加强规范。示例的数目与领域专用语言的表达性 直接成比例,即该语言表达的越多,收敛成想要的程序所需的输入-输出示例就越多。
[0005] 领域专用语言需要是可表达的以表达用户想要的最多任务,但同时不能预期用户 提供数量繁重的输入-输出示例以学习想要的程序。

【发明内容】

[0006] 本文中所描述的排序技术实施例一般涉及通过使用用户仅提供少量输入-输出 示例的归纳程序合成过程来生成的排序候选变换程序。在一个实施例中,计算机被用于排 序候选变换程序以建立对一个或多个变换程序的经排序组,每个变换程序从用户输入的每 个输入串产生具有用户想要形式的输出串,符合用户提供的一个或多个输入-输出示例中 的每一个。
[0007] 更具体而言,输入候选变换程序的集合。要注意,每个变换程序由具有领域专用语 言的程序表达式组成,该程序表达式进一步由子表达式组成。从用于在候选变换程序中发 现的子表达式的离线训练数据建立排序机制。这些排序机制中的每一个产生似然度分数, 该似然度分数指示子表达式是能够从用户输入的每个输入串产生具有用户想要形式的输 出串的程序的一部分的似然度,其符合用户提供的输入-输出示例中的每一个。对于已经 为其建立了排序机制的每个候选变换程序的每个子表达式,使用为该子表达式建立的排序 机制来建立似然度分数。按从较小子表达式到较大子表达式的次序计算似然度分数。随后 从为该候选变换程序建立的子表达式似然度分数计算针对每个候选变换程序的总排序分 数。
[0008] 在一个实施例中,使用与候选变换程序中的每一个相关联的总排序来选择规定数 目的排序在前的候选变换程序。这些排序在前的程序随后被指定为上述的对一个或多个变 换程序的经排序组。要注意在一个实现中,该规定数目为1,且因此仅选择和指定排序最高 的候选变换程序。
[0009] 应该注意,提供本
【发明内容】
是为了以简化的形式介绍将在以下详细描述中进一步 描述的一些概念。本
【发明内容】
不旨在标识出所要求保护的主题的关键特征或必要特征,也 不旨在用于帮助确定所要求保护的主题的范围。
[0010] 附图简述
[0011] 参考以下描述、所附权利要求书以及附图,将更好地理解本发明的具体特征、方面 和优点,附图中:
[0012] 图1是大体概述用于排序候选变换程序的过程的一个实施例的流程图。
[0013] 图2是大体概述图1的过程中涉及为原子表达式建立排序机制部分的实现的流程 图。
[0014] 图3是大体概述图2的过程中涉及从任务的训练集合产生训练数据部分的实现的 流程图。
[0015] 图4是大体概述图3的过程中涉及从正训练子表达式和负训练子表达式集合中的 每个子串表达式产生训练数据部分的实现的流程图。
[0016] 图5是大体概述图1的过程中涉及使用排序机制为候选变换程序的每个子表达式 建立似然度分数部分的实现的流程图,其中已经为每个子表达式建立了该排序机制。
[0017] 图6是大体概述用于使用最高排序的候选变换程序执行串变换的过程的一个实 施例的流程图。
[0018] 图7是描绘具有输入栏和输出栏的电子表格的表,其中所述输入栏包含标识一个 人姓氏的输入串,所述输出栏具有含对应输入串名连同置于该对应输入串名之前的串"先 生(Mr.)"的一个示例输出串。
[0019] 图8是描绘具有输入栏和输出栏的电子表格的表,其中所述输入栏包含包括城市 名称的地址,所述输出栏具有含对应输入串中与城市名称相对应的一部分的一个不例输出 串。
[0020] 图9是描绘构成用于实现本文中所述的各排序技术实施例的示例系统的通用计 算设备的图。
[0021] 详细描述
[0022] 在以下对排序技术的各实施例的描述中,对附图进行了参考,附图构成了各实施 例的一部分且在其中作为说明示出了可在其中实践该技术的具体实施例。可以理解,可以 使用其他实施例并且可以做出结构改变而不背离本发明技术的范围。
[0023] 还应注意,出于清楚的目的,在描述此处所描述的排序技术实施例中将依靠具体 的术语,但并不意味着这些实施例被限制于所选择的具体术语。此外,应当理解的是,每个 具体术语包括以宽泛地类似方式工作以实现类似目的的所有其技术等同物。此处提及"一 个实施例"、或"另一实施"、或"示例性实施例"、或"替代实施例"、或"一个实施方式"、或"另 一实施方式"、或"示例性实施方式"、或"替代实施方式"意味着结合实施例或实施方式描述 的特定特征、特定结构或特定特性可被包括在排序技术的至少一个实施例中。在本说明书 中各个地方出现短语"在一个实施例中"、"在另一实施例中"、"在示例性实施例中"、"在替 代实施例中"、"在一个实施方式中"、"在另一实施方式中"、"在示例性实施方式中"、"在替代 实施方式中"不一定全都指同一实施例或实施方式,也不是与其他实施例/实施方式互斥的 单独或替换实施例/实施方式。此外,表示排序技术的一个或多个实施例或实现的过程流 的次序既不固有地指示任何特定次序,也不暗示对排序技术的任何限制。
[0024] 还需要注意,本文中所用的术语"输入-输出示例"指形成输入的字符串的元组和 形成输
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1