CN104737155A - 用于串变换的归纳合成的排序 - Google Patents
用于串变换的归纳合成的排序 Download PDFInfo
- Publication number
- CN104737155A CN104737155A CN201380054348.2A CN201380054348A CN104737155A CN 104737155 A CN104737155 A CN 104737155A CN 201380054348 A CN201380054348 A CN 201380054348A CN 104737155 A CN104737155 A CN 104737155A
- Authority
- CN
- China
- Prior art keywords
- expression
- subexpression
- training
- substring
- input
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Machine Translation (AREA)
- Stored Programmes (AREA)
- Document Processing Apparatus (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Complex Calculations (AREA)
Abstract
提供了使用统计和机器学习技术来学习想要的排序函数以供在用于串变换的领域的归纳程序合成中使用的各排序技术实施例。这一般涉及从给定的训练任务集合(每个包括多个输入-输出示例)自动创建正示例和负示例的训练数据集。从训练数据集学习给具有领域专用语言的程序中的表达式指派似然度测量的排序函数。该排序函数随后被用来从针对新任务的极少量的输入-输出示例来计算已学程序的似然度。
Description
背景
世界范围内的数百万人使用电子表格等来存储和操纵数据。这些数据操纵场景通常包括将大量的输入信息从一种格式转换为另一种格式以产生所需输出。通常,手动地或使用小的、通常是一次性的计算机程序来实现这些任务,这些计算机程序由终端用户创建或由程序员为终端用户来创建。
另一种办法涉及采用计算机来合成程序以实现所需数据变换的尝试。存在合成程序的两种主要的办法:演绎和归纳。在演绎程序合成中,完整的高级规范被转换成对应的低级程序,其中使用一些公理来验证转换中的每个步骤。这一办法需要用户提供完整的规范,这在一些情况下可能潜在地比编写写程序本身更加困难。这导致归纳合成办法近来变得更加流行。在归纳程序合成办法中,从不完整的规范(诸如包括输入-输出示例集合的规范)来合成程序。它近来被用于合成从低级指针操纵代码到电子表格宏的各种领域内的程序。
由于归纳程序合成办法中的规范是不完整的且经常是不清楚的,存在具有符合给定规范的底层领域专用语言的许多不同程序。为了消除不清楚以及收敛成想要的程序,用户需要通过提供附加的输入-输出示例来加强规范。示例的数目与领域专用语言的表达性直接成比例,即该语言表达的越多,收敛成想要的程序所需的输入-输出示例就越多。
领域专用语言需要是可表达的以表达用户想要的最多任务,但同时不能预期用户提供数量繁重的输入-输出示例以学习想要的程序。
发明内容
本文中所描述的排序技术实施例一般涉及通过使用用户仅提供少量输入-输出示例的归纳程序合成过程来生成的排序候选变换程序。在一个实施例中,计算机被用于排序候选变换程序以建立对一个或多个变换程序的经排序组,每个变换程序从用户输入的每个输入串产生具有用户想要形式的输出串,符合用户提供的一个或多个输入-输出示例中的每一个。
更具体而言,输入候选变换程序的集合。要注意,每个变换程序由具有领域专用语言的程序表达式组成,该程序表达式进一步由子表达式组成。从用于在候选变换程序中发现的子表达式的离线训练数据建立排序机制。这些排序机制中的每一个产生似然度分数,该似然度分数指示子表达式是能够从用户输入的每个输入串产生具有用户想要形式的输出串的程序的一部分的似然度,其符合用户提供的输入-输出示例中的每一个。对于已经为其建立了排序机制的每个候选变换程序的每个子表达式,使用为该子表达式建立的排序机制来建立似然度分数。按从较小子表达式到较大子表达式的次序计算似然度分数。随后从为该候选变换程序建立的子表达式似然度分数计算针对每个候选变换程序的总排序分数。
在一个实施例中,使用与候选变换程序中的每一个相关联的总排序来选择规定数目的排序在前的候选变换程序。这些排序在前的程序随后被指定为上述的对一个或多个变换程序的经排序组。要注意在一个实现中,该规定数目为1,且因此仅选择和指定排序最高的候选变换程序。
应该注意,提供本发明内容是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
附图简述
参考以下描述、所附权利要求书以及附图,将更好地理解本发明的具体特征、方面和优点,附图中:
图1是大体概述用于排序候选变换程序的过程的一个实施例的流程图。
图2是大体概述图1的过程中涉及为原子表达式建立排序机制部分的实现的流程图。
图3是大体概述图2的过程中涉及从任务的训练集合产生训练数据部分的实现的流程图。
图4是大体概述图3的过程中涉及从正训练子表达式和负训练子表达式集合中的每个子串表达式产生训练数据部分的实现的流程图。
图5是大体概述图1的过程中涉及使用排序机制为候选变换程序的每个子表达式建立似然度分数部分的实现的流程图,其中已经为每个子表达式建立了该排序机制。
图6是大体概述用于使用最高排序的候选变换程序执行串变换的过程的一个实施例的流程图。
图7是描绘具有输入栏和输出栏的电子表格的表,其中所述输入栏包含标识一个人姓氏的输入串,所述输出栏具有含对应输入串名连同置于该对应输入串名之前的串“先生(Mr.)”的一个示例输出串。
图8是描绘具有输入栏和输出栏的电子表格的表,其中所述输入栏包含包括城市名称的地址,所述输出栏具有含对应输入串中与城市名称相对应的一部分的一个示例输出串。
图9是描绘构成用于实现本文中所述的各排序技术实施例的示例系统的通用计算设备的图。
详细描述
在以下对排序技术的各实施例的描述中,对附图进行了参考,附图构成了各实施例的一部分且在其中作为说明示出了可在其中实践该技术的具体实施例。可以理解,可以使用其他实施例并且可以做出结构改变而不背离本发明技术的范围。
还应注意,出于清楚的目的,在描述此处所描述的排序技术实施例中将依靠具体的术语,但并不意味着这些实施例被限制于所选择的具体术语。此外,应当理解的是,每个具体术语包括以宽泛地类似方式工作以实现类似目的的所有其技术等同物。此处提及“一个实施例”、或“另一实施”、或“示例性实施例”、或“替代实施例”、或“一个实施方式”、或“另一实施方式”、或“示例性实施方式”、或“替代实施方式”意味着结合实施例或实施方式描述的特定特征、特定结构或特定特性可被包括在排序技术的至少一个实施例中。在本说明书中各个地方出现短语“在一个实施例中”、“在另一实施例中”、“在示例性实施例中”、“在替代实施例中”、“在一个实施方式中”、“在另一实施方式中”、“在示例性实施方式中”、“在替代实施方式中”不一定全都指同一实施例或实施方式,也不是与其他实施例/实施方式互斥的单独或替换实施例/实施方式。此外,表示排序技术的一个或多个实施例或实现的过程流的次序既不固有地指示任何特定次序,也不暗示对排序技术的任何限制。
还需要注意,本文中所用的术语“输入-输出示例”指形成输入的字符串的元组和形成输出的字符串。输入表示用户希望变换的输入的示例,而输出串表示用户希望从输入产生的输出的示例。
1.0针对归纳程序合成的排序技术
本文中所述的各排序技术实施例使用统计和机器学习技术来学习用于在归纳程序合成中使用的想要的排序函数。一般而言,从给定的输入-输出示例集合自动创建正示例和负示例的训练数据集。从训练数据集学习排序函数,该排序函数给具有领域专用语言的程序中的表达式指派似然度测量。这些排序函数随后被用来从极少量的输入-输出示例来计算已学程序的似然度。
1.1串变换语言L s
在这一部分中,描述了本文中所述的用于实现各排序技术实施例的串变换语言。该串变换语言Ls的句法如下:
跟踪(trace)(或连接(concatenate))表达式e指示对原子表达式f1,..,fn的连接。原子表达式f可以或者指示常量串表达式ConstStr(s)或者指示子串表达式SubStr(vi,p1,p2)。常量串表达式ConstStr(s)指示产生常量串“s”的表达式。子串表达式SubStr(vi,p1,p2)表示在vi列中呈现的输入串的子串,所述vi列左边和右边的位置分别由位置对表达式p1和p2表示。如果整数常量为正(或为负),则位置表达式CPos(k)指示给定串中从左侧(或右侧)起的第k个索引。位置表达式Pos(r1,r2,c)指示在输入串中的位置,该位置左侧和右侧分别匹配正则表达式r1和r2,并且该位置是在该串中正则表达式的第c个这样的匹配。在形式上,正则表达式r1匹配s[0..t-1]的一些后缀,而r2匹配s[0..l+1]的一些前缀,其中l=Length(s),且如果c为正(或为负),则t是从左侧(或右侧)开始的第c个这样的索引/位置。
1.2L s 表达式的排序集合
用于表示Ls表达式的大集合的数据结构如下:
|ConstStr(s)
p:=CPos(k)|Pos(r1,r2,c)
r:=TokenSeq(T1,...,Tm)
数据结构独立地保持表达式的各独立子表达式以表示多项式空间中的指数个表达式。例如,子表达式集合SubStr(vi,{pj}j,{pk}k)独立地保持左位置表达式({pj}j)和右位置表达式({pk}k)的集合。映射W将ξ中的每个边沿映射到SubStr和ConstStr表达式集合,由此实现在即使不同长度的连接表达式间的共享(dag中从开始节点ηs到目标节点ηt的每一路径表示通过从该路径中的每个边沿提取任何表达式并将它们连接所获得的连接表达式集合)。本文中所述的各排序技术实施例保持子表达式的这一独立性,并且独立地排序子表达式集合。使用了用于排序子表达式集合的三种技术:基于频率的排序(用于对正则表达式r和位置表达式p进行排序),基于特征的排序(用于对子串(Substr)表达式进行排序),以及基于路径的排序(用于对连接表达式进行排序)。
1.2.1基于频率的排序
对于正则表达式和位置表达式(二者均从一些有限集合取得值),执行基于频率的排序以对此类表达式排序。存在将每个可能的表达式值映射到从训练数据估计出的该表达式值的频率的字典。正则表达式的似然度分数被定义成与其频率分数直接成比例。位置表达式的似然度分数被定义为是其频率分数及其组成正则表达式的似然度分数的平方根的任何线性函数。
1.2.2基于特征的排序
对于诸如原子表达式f之类从无界集合取得值的表达式,执行基于特征的排序。从底层输入-输出示例计算特征集合φ(e),并且从机器学习过程获取似然度。为了对针对原子表达式f的常量串表达式和子串表达式间的选择进行排序,在一个实施例中使用支持向量机(SVM)二进制分类过程。
1.2.3基于路径的排序
对于由原子表达式组成的连接表达式,执行基于路径的排序。在一个实施例中,基于路径的排序涉及将在连接表达式中发现的单个原子表达式的分数进行结合。在一个实现中,原子表达式的似然度分数通过将它们相乘来结合,而在另一个实现中通过将它们相加到一起来结合。
1.3.自动训练数据生成
在这一部分,描述了用于自动生成包括来自用于基于频率排序(或相应地基于特征排序)的输入-输出示例的集合的正示例(或者正示例和负示例)的训练数据的方法的一个实施例。获得任务的大集合,每个任务包括多个输入-输出示例{(i1,o1),…,(in,on)}。合成过程学习符合每个输入-输出示例(ik,ok)的所有程序的集合。随后如下获得正表达式值和负表达式值:正表达式值由集合中呈现的表达式值组成,而负表达式值由集合中呈现的表达式值组成。
1.3.1正表达式值和负表达式值
给定两个有向无环图(dag)和,挑战在于对准两个有向无环图中的边沿以计算正表达式值和负表达式值。在对准有向无环图之后,它们之间的公共边沿构成正表达式值,而呈现在中但没在中的边沿构成负表达式值。
DAG程序和运行在输入串ik上,并且使用标记函数L:η→int对有向无环图节点注释输出串ok的索引。有向无环图的开始节点ηs被注释有索引0,从而使L(ηs)=0。如果L(η1)=l,用索引m(即,L(η2)=m)注释有向无环图中的节点η2,并且在输入串ik上运行时在有向无环图边沿(η1,η2)上的表达式产生串ok[l..m]。一旦两个有向无环图的节点已被注释,收集具有相同标记的各节点间的边沿上的表达式以供比较。在有向无环图中产生串ok[l..m]的表达式集合被标示为,其中。在中出现的表达式被标示为正表达式,而在集合中出现的表达式被标示为负表达式。为每个输入-输出示例对获得正表达式值和负表达式值的集合。
1.3.2基于频率的训练数据生成
对于排序正则表达式和位置表达式,因为二者均从有限集合提取得值,所以执行基于频率的排序办法。还创建标记序列连同其针对标记序列表达式的频率分数的数据库。从正训练表达式集合估计频率。还可为其中出现特定表达式的每个不同上下文估计频率。例如,位置表达式或者是左位置表达式或者是右位置表达式(标示该位置表达式是作为SubStr表达式的第一自变量还是第二自变量出现)。正则表达式还在位置表达式内部的两个不同上下文中出现。
1.3.3基于特征的训练数据生成
学习串变换中的主要不清楚之一来自作出有关输出串中的子串是常量串还是输入串的子串的判定。由于作出这样的判定不仅取决于位置对的可能值和常量串表达式还取决于输入串和输出串,不可能在此情况使用基于频率的排序,因为存在无限多的可能输入和输出串。替代地,在一个实施例中,使用基于特征的排序办法来在SubStr(子串)和ConstStr(常量串)表达式间进行选择。更具体而言,为每个SubStr表达式定义特征的集合。可以使用的特征的示例包括但不限于以下:
a)IsOutputLeftTok:标示输出子串的左位置能否被标记识别的布尔值;
b)IsOutputLeftConstant:标示在输出子串的左位置处的字符是否是常量的布尔值;
c)IsOutputRightTok:标示输出子串的右位置能否被标记识别的布尔值;
d)IsOutputRightConstant:标示在输出子串的右位置处的字符是否是常量的布尔值;
e)IsOutputTok:标示输出子串是否标示标记的布尔值;
f)IsInputLeftTok:标示输入子串的左位置能否被标记识别的布尔值;
g)IsInputRightTok:标示输入子串的右位置能否被标记识别的布尔值;
h)IsInputTok:标示输入子串是否是标记的布尔值;
i)Casing:执行装套(casing)以获得输出子串;
j)LenSubstring:子串的长度;
k)RelLenInSubstring:子串相对输入串长度的相对长度(lenSubstring/lenInputString);以及
l)RelLenOutSubstring:子串相对输出串长度的相对长度(lenSubstring/lenOutputString)。
m)使用基于频率的排序机制估计的组成位置表达式的似然度分数。
所有这些特征可以在常量O(1)时间内计算。对于每个正SubStr表达式和负SubStr表达式,一起计算特征向量和类标记(例如,针对正表达式的+1,和针对负表达式的0)。现成的支持向量机(SVM)过程可随后被用来学习二进制分类器。更具体而言,所创建的每个特征向量具有规定的元素次序,其中每个元素(除了为类标记保留的那一个)对应于与上述特征之一分别相关联的特征值。对于具有与元素的规定次序相对应的次序的上述特征中的每一个,如果特征被展现在考虑中的SubStr表达式中,则具有第一二进制值(例如,1)的特征值被指派给对应的特征向量元素。如果该特征没有被展现,则具有第二二进制值(例如,0)的特征值被指派给对应的特征向量元素。此外,如果SubStr表达式是正SubStr表达式,则为上述类标记保留的特征向量元素被指派一个二进制值(例如,1),并且如果SubStr表达式是负SubStr表达式,则为上述类标记保留的特征向量元素被指派另一个二进制值(例如,0)。
1.4.排序程序
在这一部分,将描述如何排序由有向无环图表示的程序。
1.4.1排序有向无环图边沿表达式
有向无环图的每个边沿包括SubStr表达式和ConstStr表达式集合。在一个实施例中,基于特征的排序给每个SubStr表达式指派+1和0之间的似然度分数,而ConstStr表达式的似然度分数取0.5。
1.4.2排序有向无环图路径
有向无环图中的每条路径表示符合给定输入-输出示例的数个程序。边沿e的似然度分数w(e)被定义为该边沿上的任何SubStr或ConstStr表达式的最高似然度分数。路径的似然度分数被定义为w(p)≡∏e∈edges(p)w(e),从而通过将路径上的对应边沿表达式的似然度分数相乘(或相加)来计算该路径的似然度分数。随后使用Dijkstra的最短路径过程来计算有向无环图中被最高排序的路径,并且执行其以生成被最高排序的输出串。路径的似然度分数还可以是诸如以下的各种特征的更加复杂的函数:所有边沿的似然度分数的乘积/总和、边沿的数目、任意边沿的最小/最大似然度分数。此外,还可以通过使用机器学习技术来学习该函数。
1.5用于排序候选变换程序的示例过程
通过图1中概述的过程在一个一般的实现中可以达成本文中所述各排序技术实施例的前述方面。更具体而言,计算机(诸如在接下来的示例操作环境中所述的任何计算设备)被用于排序候选变换程序以建立对一个或多个变换程序的经排序组,每个变换程序从用户输入的每个输入串产生具有用户想要形式的输出串,符合用户提供的一个或多个输入-输出示例中的每一个。更具体而言,候选变换程序的集合被接收作为输入(过程动作100)。使用常规方法从用户提供的一个或多个输入-输出示例归纳地合成候选变换程序中的每一个,并且从用户提供的每个输入示例产生具有用户提供的每个输出示例所展现的形式的输出串。要注意,如前所述,每个变换程序由程序表达式组成,该程序表达式进一步由子表达式组成。接下来,对于已经为其建立了排序机制(从较小到较大的子表达式)的每个候选变换程序的每个子表达式,使用为该子表达式建立的排序机制来建立似然度分数(过程动作102)。要注意,排序机制中的每一个产生似然度分数,该似然度分数指示子表达式是能够从用户输入的每个输入产生具有用户想要形式的输出串的程序一部分的似然度,其符合用户提供的输入-输出示例中的每一个。随后从为该候选变换程序建立的子表达式似然度分数计算针对每个候选变换程序的总排序分数(过程动作104)。
针对不同种类的表达式使用不同种类的排序机制。如前所述,子表达式可以或者是正则表达式,或者是位置表达式,或者是原子表达式,或者是连接表达式。在一个实施例中,正则表达式和位置表达式采用基于频率的排序(因为此类排序可适用于从标记的有限集合取得值的表达式)。此外,针对原子表达式使用基于特征的排序,并且针对连接使用基于路径的排序。还要注意,为了效率,在一个实施例中,首先建立用于正则表达式的排序机制,随后建立用于位置表达式的排序机制,随后建立用于原子表达式的排序机制,且最后建立用于连接表达式的排序机制。
在原子表达式的情况下,如之前所指出的,这些表达式可以或者是常量串表达式或者是子串表达式。在此情况下,参考图2,在一个实施例中建立用于原子表达式的排序机制首先涉及标识该原子表达式是常量串表达式还是子串表达式(过程动作200)。随后输入任务的训练集合(过程动作202)。每个任务集合由多个输入-输出示例组成。从训练集合生成训练数据(过程动作204),并使用训练数据来训练机器学习分类器以向每个子串表达式和每个常量串表达式指派似然度分数(动作过程206)。在一个实施例中,机器学习分类器是支持向量机(SVM)二进制-分类器,并且该机器学习分类器被训练来根据子表达式有多少可能是想要的程序的一部分来给每个子串表达式指派具有从0到1范围内的值的似然度分数值。此外,分类器向每个常量串表达式指派规定似然度分数值(例如,0.5)。
关于从任务的训练集合生成训练数据,在一个实现中这涉及针对训练集合中的每个任务的以下内容。参考图3,选择任务中先前没选的输入-输出示例(过程动作300)。从所选的输入-输出示例归纳性地合成变换程序的集合(过程动作302)。每个变换程序从示例的输入中输入串的元组产生具有示例的输出中所展现的形式的输出串。输入串的元组指用来生成示例的输出的输入-输出示例中输入的一个或多个部分。接下来,从变换程序的集合建立正训练子表达式集合(动作过程304),并且还从变换程序的集合建立负训练子表达式集合(动作过程306)。在一个实施例中,从变换程序的集合建立正训练子表达式集合涉及将在从任务中的输入-输出示例合成的变换程序的所有集合的交集中发现的每个子表达式指定为正训练子表达式。相反,从变换程序的集合建立负训练子表达式集合涉及将没被标识为正训练子表达式的变换程序的集合中的每个子表达式指定为负训练子表达式。
在这一点,建立用于正则表达式和位置表达式的排序机制。更具体而言,生成基于子表达式在正训练子表达式集合中的频率将子表达式映射到基于频率的分数的字典,所述子表达式生成从具有有限数目个预定标记的集合取得值的输出子串(即,正则表达式和位置表达式)(动作过程308)。
接下来,对于来自子表达式的正训练集合和负训练集合二者的每个子串表达式,生成用于基于特征排序的训练数据(动作过程310)。随后确定是否已经选择并处理了任务中的所有输入-输出示例(过程动作312)。如果否,则重复过程动作300到312。否则,结束针对所选任务的过程。为所有剩下的任务和它们的输入-输出示例重复前述过程。
在如图4中所示的一个实施例中实现有关从正训练表达式集合和负训练子表达式集合中的每个子串表达式生成用于基于特征排序的训练数据的前述过程动作。首先,输入一个或多个特征(诸如之前所述的)的集合(过程动作400)。每个特征指示输出串中的子串是否由正训练子表达式集合和负训练子表达式集合中的子串表达式之一产生。接下来,对于正训练子表达式集合和负训练子表达式集合中的每个子串表达式,生成特征向量(动作过程402)。如前所述,每个特征向量是具有规定次序的诸元素,其中每个元素(除了为类标记保留的那一个)对应于与上述特征之一分别相关联的特征值。在一个实施例中,对于具有与元素的规定次序相对应次序的特征中的每一个,如果特征被展现在由考虑中的子串表达式产生的输出串的子串中,则通过指派具有第一二进制值(例如,1)的特征值来生成每个特征向量。更具体而言,特征向量被指派给与所展现的特征相关联的特征向量元素。此外,如果特征没被展现在由子串表达式产生的输出串的子串中,则具有第二二进制值(例如,0)的特征值被指派给与考虑中的特征相关联的特征向量元素。此外,如果子串表达式在正训练子表达式(sub-expression)集合中,则为上述类标记所保留的特征向量元素指派一个二进制值(例如,1),并且如果子串表达式在负训练子表达式集合中,则指派一不同的二进制值(例如,0)。
关于建立用于连接表达式的排序机制,在一个实施例中,这涉及对在连接表达式中发现的诸单个原子表达式的似然度分数进行结合。在一个实现中该结合是通过将分数相乘而实现的,并且在一个实现中该结合是通过将分数相加而实现的。
鉴于上文,在一个实施例中,对于已经为其建立了排序机制的候选变换程序的每个子表达式,使用涉及下文的排序机制来建立似然度分数。参考图5,首先使用基于频率的排序机制标识针对每个正则表达式的似然度(过程动作500)。随后,还使用基于频率的排序机制标识每个位置表达式的似然度(过程动作502)。如前所述,该基于频率的排序可以涉及采用将正则表达式和位置表达式映射到基于频率的分数的字典。接下来,使用基于特征的排序机制标识每个原子表达式的似然度(过程动作504)。如前所述,原子表达式或者是常量串表达式或者是子串表达式。当原子表达式是常量串表达式时,基于特征的排序可以涉及指派规定的似然度分数值(例如,0.5)。并且当原子表达式是子串表达式时,基于特征的排序可以涉及使用机器学习分类器指派似然度分数值(例如,范围从0到1),该机器学习分类器已经被训练向每个子串表达式指派似然度分数。随后,使用基于路径的排序机制标识每个连接表达式的似然度(过程动作506)。如前所述,该基于路径的排序可以涉及将在连接表达式中发现的单个原子表达式的分数进行结合。
有关上述为每个候选变换程序建立的总排序,有可能以不同的方式使用这些排序。例如,在一个实施例中,与每个候选变换程序相关联的排序被用来选择规定数目个排序在前的候选变换程序,并且将这些排序在前的程序指定为一个或多个变换程序的上述的经排序组。要注意在一个实现中,该规定数目为1,且因此仅选择和指定排序最高的候选变换程序。
1.6用于使用排序最高的变换程序执行串变换的示例过程
关于涉及选择排序最高的候选变换程序的后一实施例,这可以用在计算设备执行串变换的应用中。更具体而言,参考图6,在一个一般的实现中,输入从用户提供的一个或多个输入-输出示例归纳地合成的候选变换程序的集合(过程动作600)。如前所述,每个候选变换程序从用户提供的每个输入示例产生具有用户提供的每个输出示例所展现的形式的输出串。
一旦输入,候选变换程序的集合被排序以标识排序最高的变换程序(过程动作602)。该排序最高的变换程序随后被应用到用户提供的输入串以产生输出串(过程动作604)。
1.7示例变换场景
在这一部分中,呈现了数个示例变换场景。可以采用本文中所述的排序实施例来建立能够基于在这些场景中发现的少量输入-输出示例来从每个输入的输入串产生期望输出串的变换程序。
在第一个示例场景中,电子表格用户具有在输入栏中的一系列名称并且想要在每个名称前添加称谓“先生”。在图7中示出了用户提供的输入-输出示例。
通过确定输出串“先生Roger”中的哪些子串是常量串且哪些是输入串“Roger”的子串来从给定的输入-输出示例学习期望的变换程序是个挑战。在此情况下,可以推导出由于输出子串o1[0..0]≡M不在输入串中,它只能是常量串。但是,输出子串o1[1..1]≡r可能来自输入串中的两个不同子串(i1[0..0]≡R和i1[4..4]≡r)。本文中所述的排序技术实施例学习所有可能的表达式以计算输出串中的子串“r”,该输出串包括(i)提取子串i1[0..0]以及执行小写字母操作以从“R”产生“r”的位置对表达式,以及(ii)提取子串i1[4..4]的位置对表达式和常量串表达式“r”。在输入串中不存在的输出串的子串被保证是常量串,而在输入串中存在的子串可以或者是常量串或者是输入串的子串(尽管经验已经表明它们更可能是来自于输入串)。例如,输出串o1[4..8]≡Roger相比是常量串“Roger”而言更可能是来自于输入串i1。使用类似自变量,输出串中的子串o1[1..1]≡r还在输入串中的两处出现并且更可能是来自那里。但是在此示例中,因为期望的程序行为是在每个输入串之前添加常量串“先生(Mr.)”故而需要“r”是常量串。为了从一个输入-输出示例学习期望的变换,本文中所述的排序技术实施例对于输出子串“r”需要将常量串表达式排序成高于位置对表达式。可能有助于将“r”排序成常量串的一些特征包括:
a)子串的长度:由于子串“r”的长度为1,它不可能是输入子串;
b)子串的相对长度:与输出串相比子串“r”的相对长度也很小,即1/10;以及
c)常量相邻字符:“r”的相邻字符“M”和“.”二者均是常量表达式。
在第二示例场景中,电子表格用户具有在栏内的一系列地址并且想要从其提取城市名称。在图8中示出了用户提供的输入-输出示例。
在此情况下,本文中所述的排序技术实施例将学习超过100个不同的SubStr表达式以从输入串“243Flyer Drive,Cambridge,MA 02145(飞鸟大道243号,剑桥,马萨诸塞州02145)”提取子串“Cambridge(剑桥)”,其中的一些是:
a)p1:提取第3个字母标记串;
b)p2:提取第4个字母与数字混编的标记串;
c)p3:提取包括逗号和空格标记的第1个和第2个标记序列之间的子串;以及
d)p4:提取第3个大写字母标记(包含性的)和从左起的第2个逗号标记之间的子串。
学习位置对表达式p1和p2的问题是它在输入串“512Wright Ave,LosAngeles,CA 78911(赖特大街512号,洛杉矶,加州78911)”上产生并非期望输出的输出串“Los”。此外,位置对表达式p4不从输入串“64128th St,Seattle,WA 98102(第128路64号,西雅图,华盛顿州98102)”产生任何输出串。另一方面,位置对表达式p3生成针对每个位置对表达式的期望的输出串(即,分别是Cambridge,Los Angeles,Seattle and San Francisco(剑桥、洛杉矶、西雅图和旧金山))。由此,本文中所述的排序技术实施例将把位置对表达式p3排序成高于其他位置对表达式以从一个输入-输出示例生成期望的输出串。
2.0示例操作环境
本文描述的排序技术实施例可在多种通用或专用计算系统环境或配置内操作。图9示出其上可实现本文所描述的排序技术实施例的各实施例和元素的通用计算机系统的简化示例。应当注意,图9中由折线或虚线所表示的任何框表示简化计算设备的替换实施方式,并且以下描述的这些替换实施方式中的任一个或全部可以结合贯穿本文所描述的其他替换实施方式来使用。
例如,图9示出了总系统图,其示出简化计算设备10。这样的计算设备通常可以在具有至少一些最小计算能力的设备中找到,这些设备包括但不限于个人计算机、服务器计算机、手持式计算设备、膝上型或移动计算机、诸如蜂窝电话和PDA等通信设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机、大型计算机、音频或视频媒体播放器等。
为允许设备实现本文描述的排序技术的各实施例,该设备应当具有足够的计算能力和系统存储器以启用基本计算操作。具体而言,如图9所示,计算能力一般由一个或多个处理单元12示出,并且还可包括一个或多个GPU 14,处理单元与GPU中的任一者或两者均与系统存储器16通信。注意,通用计算设备的处理单元12可以是专用微处理器,如DSP、VLIW、或其他微控制器、或可以是具有一个或多个处理核的常规CPU,包括多核CPU中的专用的基于GPU核。
另外,图9的简化计算设备还可包括其他组件,诸如例如通信接口18。图9的简化计算设备还可包括一个或多个常规计算机输入设备20(例如,定点设备、键盘、音频输入设备、视频输入设备、触觉输入设备、用于接收有线或无线数据传输的设备等)。图9的简化计算设备还可包括其他任选组件,诸如例如一个或多个常规显示设备24和其他计算机输出设备22(例如,音频输出设备、视频输出设备、用于传送有线或无线数据传输的设备等)。注意,用于通用计算机的一般通信接口18、输入设备20、输出设备22和存储设备26是本领域技术人员所公知的,且将不在此详细描述。
图9的简化计算设备还可包括各种计算机可读介质。计算机可读介质可以是可由计算机10经由存储设备26访问的任何可用介质,并且包括是可移动28和/或不可移动30的易失性和非易失性介质,该介质用于存储诸如计算机可读或计算机可执行指令、数据结构、程序模块或其他数据等信息。计算机可读介质可包括计算机存储介质和通信媒体。计算机存储介质指计算机或机器可读介质或存储设备,诸如DVD、CD、软盘、磁带驱动器、硬盘驱动器、光盘驱动器、固态存储器设备、RAM、ROM、EEPROM、闪存或其他存储器技术、磁带盒、磁带、磁盘存储或其他磁存储设备、或可用于存储所需信息并且可由一个或多个计算设备访问的任何其他设备。
诸如计算机可读或计算机可执行指令、数据结构、程序模块等信息的保留还可通过使用各种上述通信介质中的任一种来编码一个或多个已调制数据信号或载波或其他传输机制或通信协议来实现,并且包括任何有线或无线信息传递机制。注意,术语“已调制数据信号”或“载波”一般指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。例如,通信介质包括诸如有线网络或直接线连接等携带一个或多个已调制数据信号的有线介质,以及诸如声学、RF、红外线、激光和其他无线介质等用于传送和/或接收一个或多个已调制数据信号或载波的无线介质。上述中任一组合也应包括在通信介质的范围之内。
此外,可以按计算机可执行指令或其他数据结构的形式存储、接收、传送或者从计算机或机器可读介质或存储设备和通信介质的任何所需组合中读取具体化本文描述的排序技术实施方式中的部分或全部的软件、程序和/或计算机程序产品或其各部分。
最终,此处描述的排序技术实施例还可在由计算设备执行的诸如程序模块等计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。本文描述的各实施例还可以在其中任务由通过一个或多个通信网络链接的一个或多个远程处理设备执行或者在该一个或多个设备的云中执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于包括介质存储设备的本地和远程计算机存储介质中。另外,上述指令可以部分地或整体地作为可以包括或不包括处理器的硬件逻辑电路来实现。
3.0其他实施例
应当注意,可以按所需的任何组合来使用本说明书全文中的上述实施例的任一个或全部以形成另外的混合实施例。另外,尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。
Claims (10)
1.一种计算机实现的用于对候选变换程序进行排序以建立一个或多个变换程序的经排序组的过程,每个所述候选变换程序包括含子表达式的程序表达式,每个所述变换程序从用户输入的输入串产生具有用户想要形式的输出串,符合用户提供的一个或多个输入-输出示例中的每一个,所述过程包括:
使用计算机来执行以下过程动作:
输入从用户提供的一个或多个输入-输出示例归纳地合成的候选变换程序的集合,每个所述候选变换程序从用户提供的每个输入示例产生具有用户提供的每个输出示例所展现的形式的输出串;
针对每个候选变换程序,
对于已经为其建立了排序机制的按照从较小到较大次序的候选变换程序的每个子表达式,使用为所述子表达式建立的排序机制来建立似然度分数,以及
从为所述候选变换程序建立的子表达式似然度分数计算针对所述候选变换程序的总排序分数。
2.如权利要求1所述的过程,其特征在于,子表达式或者是正则表达式,或者是位置表达式,或者是原子表达式,或者是连接表达式,并且建立所述排序机制以供按所述次序对所述正则表达式、位置表达式、原子表达式和连接表达式中的每一个进行排序。
3.如权利要求2所述的过程,其特征在于,原子表达式或者是常量串表达式或者是子串表达式,并且建立用于原子表达式的排序机制的过程动作包括动作:
标识所述原子表达式是常量串表达式还是子串表达式;
输入任务的训练集合,其中每个任务包括多个输入-输出示例;
从所述训练集合生成训练数据;以及
训练机器学习分类器以向每个子串表达式和每个常量串表达式指派似然度分数。
4.如权利要求3所述的过程,其特征在于,向每个子串表达式指派似然度分数的过程动作包括指派具有从0到1范围内的值的似然度分数,并且向每个常量串表达式指派似然度分数的过程动作包括指派规定的似然度分数值。
5.如权利要求3所述的过程,其特征在于,从任务的所述训练集合生成训练数据的过程动作包括以下动作:
针对所述训练集合中的每个任务,
针对所述任务中的每个输入-输出示例,
建立从所述输入-输出示例归纳地合成的变换程序的集合,其中每个所述变换程序从所述示例中的输入串的元组产生所述示例中的输出串,
从所述变换程序的集合建立正训练子表达式集合,
从所述变换程序的集合建立负训练子表达式集合,以及
从所述正训练子表达式集合和所述负训练子表达式集合中的每个子串表达式生成训练数据。
6.如权利要求5所述的过程,其特征在于,从所述正训练子表达式集合和所述负训练子表达式集合中的每个子串表达式生成训练数据的过程动作包括以下动作:
输入一个或多个特征的集合,每个所述特征指示所述输出串中的子串是否由所述正训练子表达式集合和所述负训练子表达式集合中的子串表达式产生;
对于所述正训练子表达式集合和所述负训练子表达式集合中的每个子串表达式,生成包括按规定次序的元素的特征向量,其中除了为类标记保留的那一个以外的每个元素对应于与所述特征之一分别相关联的特征值,所述特征向量生成包括:
对于按与元素的规定次序相对应的次序的所述特征中的每一个,如果所述特征被展现在由考虑中的子串表达式产生的输出串的子串中,则向对应的特征向量元素指派具有第一二进制值的特征值,并且如果所述特征没被展现在由考虑中的子串表达式产生的输出串的子串中,则向对应的特征向量元素指派具有第二二进制值的特征值,以及
对于为所述类标记保留的所述特征向量元素,如果所述子串表达式在正训练子表达式集合中,则指派一个二进制值,并且如果所述子串表达式在负训练子表达式集合中,则指派不同的二进制值。
7.如权利要求5所述的过程,其特征在于,从建立自任务中的输入-输出示例的所述变换程序的集合来建立正训练子表达式的集合的过程动作包括将在从所述任务中的所述输入-输出示例合成的变换程序的所有集合的交集中发现的每个子表达式指定为正训练子表达式。
8.如权利要求7所述的过程,其特征在于,从建立自任务中的输入-输出示例的所述变换程序的集合来建立负训练子表达式的集合的过程动作包括将没被标识为正训练子表达式的变换程序的集合中的每个子表达式指定为负训练子表达式。
9.如权利要求5所述的过程,其特征在于,建立用于正则表达式和位置表达式的排序机制的过程动作包括计算字典的动作,所述字典基于子表达式在所述正训练子表达式集合中的频率将所述子表达式映射到基于频率的分数,所述子表达式生成从具有有限数目个预定标记的集合取得值的输出子串。
10.如权利要求2所述的过程,其特征在于,建立用于连接表达式的排序机制的过程动作包括将在连接表达式中发现的单个原子表达式的分数进行结合。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/653,581 US9002758B2 (en) | 2012-10-17 | 2012-10-17 | Ranking for inductive synthesis of string transformations |
US13/653,581 | 2012-10-17 | ||
PCT/US2013/065497 WO2014062948A2 (en) | 2012-10-17 | 2013-10-17 | Ranking for inductive synthesis of string transformations |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104737155A true CN104737155A (zh) | 2015-06-24 |
CN104737155B CN104737155B (zh) | 2017-07-21 |
Family
ID=49517708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380054348.2A Active CN104737155B (zh) | 2012-10-17 | 2013-10-17 | 用于串变换的归纳合成的排序 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9002758B2 (zh) |
EP (1) | EP2909740B1 (zh) |
JP (1) | JP6285943B2 (zh) |
KR (1) | KR102129640B1 (zh) |
CN (1) | CN104737155B (zh) |
WO (1) | WO2014062948A2 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110114755A (zh) * | 2016-12-29 | 2019-08-09 | 微软技术许可有限责任公司 | 示例编程中的行为特征使用 |
CN110352423A (zh) * | 2016-11-04 | 2019-10-18 | 渊慧科技有限公司 | 序列转换神经网络 |
CN110610450A (zh) * | 2018-06-15 | 2019-12-24 | 伊姆西Ip控股有限责任公司 | 数据处理方法、电子设备和计算机可读存储介质 |
CN112115407A (zh) * | 2019-06-21 | 2020-12-22 | 富士通株式会社 | 伊辛机数据输入设备以及将数据输入至伊辛机的方法 |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9002758B2 (en) * | 2012-10-17 | 2015-04-07 | Microsoft Technology Licensing, Llc | Ranking for inductive synthesis of string transformations |
US9880997B2 (en) * | 2014-07-23 | 2018-01-30 | Accenture Global Services Limited | Inferring type classifications from natural language text |
US9891895B2 (en) | 2015-09-14 | 2018-02-13 | Microsoft Technology Licensing, Llc | User interaction models for disambiguation in programming-by-example |
US10528328B2 (en) | 2015-12-08 | 2020-01-07 | Microsoft Technology Licensing, Llc | Learning from input patterns in Programing-By-Example |
US10095484B2 (en) | 2015-12-15 | 2018-10-09 | International Business Machines Corporation | Automatic program synthesis using monadic second-order logic |
US20180039693A1 (en) * | 2016-08-05 | 2018-02-08 | Microsoft Technology Licensing, Llc | Learned data filtering |
US10621195B2 (en) | 2016-09-20 | 2020-04-14 | Microsoft Technology Licensing, Llc | Facilitating data transformations |
US10706066B2 (en) | 2016-10-17 | 2020-07-07 | Microsoft Technology Licensing, Llc | Extensible data transformations |
US11620304B2 (en) | 2016-10-20 | 2023-04-04 | Microsoft Technology Licensing, Llc | Example management for string transformation |
US11892987B2 (en) | 2016-10-20 | 2024-02-06 | Microsoft Technology Licensing, Llc | Automatic splitting of a column into multiple columns |
US11256710B2 (en) | 2016-10-20 | 2022-02-22 | Microsoft Technology Licensing, Llc | String transformation sub-program suggestion |
US10776380B2 (en) | 2016-10-21 | 2020-09-15 | Microsoft Technology Licensing, Llc | Efficient transformation program generation |
US11372830B2 (en) | 2016-10-24 | 2022-06-28 | Microsoft Technology Licensing, Llc | Interactive splitting of a column into multiple columns |
US10846298B2 (en) | 2016-10-28 | 2020-11-24 | Microsoft Technology Licensing, Llc | Record profiling for dataset sampling |
US11163788B2 (en) | 2016-11-04 | 2021-11-02 | Microsoft Technology Licensing, Llc | Generating and ranking transformation programs |
US11170020B2 (en) | 2016-11-04 | 2021-11-09 | Microsoft Technology Licensing, Llc | Collecting and annotating transformation tools for use in generating transformation programs |
US10713429B2 (en) | 2017-02-10 | 2020-07-14 | Microsoft Technology Licensing, Llc | Joining web data with spreadsheet data using examples |
US10782939B2 (en) * | 2017-08-07 | 2020-09-22 | Microsoft Technology Licensing, Llc | Program predictor |
US10831451B2 (en) * | 2017-12-01 | 2020-11-10 | Microsoft Technology Licensing, Llc | Synthesized programming-by-example programs |
US11132180B2 (en) * | 2018-01-05 | 2021-09-28 | Microsoft Technology Licensing, Llc | Neural-guided deductive search for program synthesis |
WO2020245993A1 (ja) * | 2019-06-06 | 2020-12-10 | 富士通株式会社 | 情報処理プログラム、情報処理方法、および情報処理装置 |
US11074048B1 (en) | 2020-04-28 | 2021-07-27 | Microsoft Technology Licensing, Llc | Autosynthesized sublanguage snippet presentation |
US11327728B2 (en) | 2020-05-07 | 2022-05-10 | Microsoft Technology Licensing, Llc | Source code text replacement by example |
US11900080B2 (en) | 2020-07-09 | 2024-02-13 | Microsoft Technology Licensing, Llc | Software development autocreated suggestion provenance |
US11875136B2 (en) | 2021-04-01 | 2024-01-16 | Microsoft Technology Licensing, Llc | Edit automation using a temporal edit pattern |
US11941372B2 (en) | 2021-04-01 | 2024-03-26 | Microsoft Technology Licensing, Llc | Edit automation using an anchor target list |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007200263A (ja) * | 2006-01-25 | 2007-08-09 | Yasushi Suga | 漢字辞書検索装置 |
CN101976233A (zh) * | 2010-09-30 | 2011-02-16 | 北京新媒传信科技有限公司 | 基于序列模式的新词发现方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5642472A (en) * | 1994-05-20 | 1997-06-24 | Lucent Technologies Inc. | Software discovery system |
EP1388812A1 (en) | 2002-07-04 | 2004-02-11 | Ronald E. Dr. Kates | Method for training a learning-capable system |
US8799234B2 (en) | 2010-07-12 | 2014-08-05 | Microsoft Corporation | Semantic entity manipulation using input-output examples |
US8060880B2 (en) * | 2007-05-04 | 2011-11-15 | Microsoft Corporation | System using backward inter-procedural analysis for determining alternative coarser grained lock when finer grained locks exceeding threshold |
US8181163B2 (en) | 2007-05-07 | 2012-05-15 | Microsoft Corporation | Program synthesis and debugging using machine learning techniques |
US8316345B2 (en) * | 2007-06-01 | 2012-11-20 | Microsoft Corporation | Program abstraction based on program control |
US8266598B2 (en) * | 2008-05-05 | 2012-09-11 | Microsoft Corporation | Bounding resource consumption using abstract interpretation |
US8719801B2 (en) * | 2008-06-25 | 2014-05-06 | Microsoft Corporation | Timing analysis of concurrent programs |
US8402439B2 (en) * | 2008-06-27 | 2013-03-19 | Microsoft Corporation | Program analysis as constraint solving |
US8271404B2 (en) * | 2008-10-02 | 2012-09-18 | Microsoft Corporation | Template based approach to discovering disjunctive and quantified invariants over predicate abstraction |
US8397221B2 (en) * | 2008-10-07 | 2013-03-12 | Microsoft Corporation | Calculating resource bounds of programs manipulating recursive data structures and collections |
US20100223213A1 (en) | 2009-02-27 | 2010-09-02 | Optillel Solutions, Inc. | System and method for parallelization of machine learning computing code |
US8249336B2 (en) * | 2009-08-14 | 2012-08-21 | Microsoft Corporation | Learning string transformations from examples |
US8752029B2 (en) * | 2009-09-29 | 2014-06-10 | Microsoft Corporation | Computing a symbolic bound for a procedure |
US8972930B2 (en) | 2010-06-04 | 2015-03-03 | Microsoft Corporation | Generating text manipulation programs using input-output examples |
US9613115B2 (en) | 2010-07-12 | 2017-04-04 | Microsoft Technology Licensing, Llc | Generating programs based on input-output examples using converter modules |
US10409892B2 (en) | 2011-01-26 | 2019-09-10 | Microsoft Technology Licensing, Llc | Formatting data by example |
US8484550B2 (en) * | 2011-01-27 | 2013-07-09 | Microsoft Corporation | Automated table transformations from examples |
US8825572B2 (en) * | 2011-02-01 | 2014-09-02 | Microsoft Corporation | Program synthesis with existentially and universally quantified belief propagation using probabilistic inference |
US8650207B2 (en) * | 2011-12-02 | 2014-02-11 | Microsoft Corporation | Inductive synthesis of table-based string transformations |
US9002758B2 (en) * | 2012-10-17 | 2015-04-07 | Microsoft Technology Licensing, Llc | Ranking for inductive synthesis of string transformations |
-
2012
- 2012-10-17 US US13/653,581 patent/US9002758B2/en active Active
-
2013
- 2013-10-17 JP JP2015537832A patent/JP6285943B2/ja active Active
- 2013-10-17 EP EP13786055.7A patent/EP2909740B1/en active Active
- 2013-10-17 KR KR1020157009902A patent/KR102129640B1/ko active IP Right Grant
- 2013-10-17 CN CN201380054348.2A patent/CN104737155B/zh active Active
- 2013-10-17 WO PCT/US2013/065497 patent/WO2014062948A2/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007200263A (ja) * | 2006-01-25 | 2007-08-09 | Yasushi Suga | 漢字辞書検索装置 |
CN101976233A (zh) * | 2010-09-30 | 2011-02-16 | 北京新媒传信科技有限公司 | 基于序列模式的新词发现方法 |
Non-Patent Citations (2)
Title |
---|
SUMIT GULWANI等: "Spreadsheet Data Manipulation Using Examples", 《COMMUNICATION OF THE ACM》 * |
TESSA LAU等: "Programming by Demonstration Using Version Space Algebra", 《MACHINE LEARNING》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110352423A (zh) * | 2016-11-04 | 2019-10-18 | 渊慧科技有限公司 | 序列转换神经网络 |
CN110352423B (zh) * | 2016-11-04 | 2021-04-20 | 渊慧科技有限公司 | 使用噪声信道模型生成目标序列的方法、存储介质和系统 |
US11423237B2 (en) | 2016-11-04 | 2022-08-23 | Deepmind Technologies Limited | Sequence transduction neural networks |
CN110114755A (zh) * | 2016-12-29 | 2019-08-09 | 微软技术许可有限责任公司 | 示例编程中的行为特征使用 |
CN110610450A (zh) * | 2018-06-15 | 2019-12-24 | 伊姆西Ip控股有限责任公司 | 数据处理方法、电子设备和计算机可读存储介质 |
CN110610450B (zh) * | 2018-06-15 | 2023-05-05 | 伊姆西Ip控股有限责任公司 | 数据处理方法、电子设备和计算机可读存储介质 |
CN112115407A (zh) * | 2019-06-21 | 2020-12-22 | 富士通株式会社 | 伊辛机数据输入设备以及将数据输入至伊辛机的方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2909740A2 (en) | 2015-08-26 |
CN104737155B (zh) | 2017-07-21 |
EP2909740B1 (en) | 2019-04-24 |
JP6285943B2 (ja) | 2018-02-28 |
US9002758B2 (en) | 2015-04-07 |
US20140108305A1 (en) | 2014-04-17 |
WO2014062948A2 (en) | 2014-04-24 |
JP2016502701A (ja) | 2016-01-28 |
WO2014062948A3 (en) | 2014-11-20 |
KR20150070171A (ko) | 2015-06-24 |
KR102129640B1 (ko) | 2020-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104737155A (zh) | 用于串变换的归纳合成的排序 | |
RU2745632C1 (ru) | Серверное устройство автоматизированного ответа, оконечное устройство, система ответа, способ ответа и программа | |
CN110168575B (zh) | 用于信息检索评分的动态张量注意力 | |
CN112633973B (zh) | 一种商品推荐方法及其相关设备 | |
CN107391549B (zh) | 基于人工智能的新闻召回方法、装置、设备及存储介质 | |
CN104331411B (zh) | 推荐项目的方法和装置 | |
Yan et al. | A spatially explicit reinforcement learning model for geographic knowledge graph summarization | |
US10185725B1 (en) | Image annotation based on label consensus | |
CN108875090A (zh) | 一种歌曲推荐方法、装置和存储介质 | |
CN107391509A (zh) | 标签推荐方法及装置 | |
CN110457339A (zh) | 数据搜索方法及装置、电子设备、存储介质 | |
CN116796045B (zh) | 一种多维度图书分级方法、系统及可读介质 | |
CN113298221B (zh) | 基于逻辑回归和图神经网络的用户风险预测方法及装置 | |
Ding et al. | Enhance Image-to-Image Generation with LLaVA Prompt and Negative Prompt | |
CN115455171A (zh) | 文本视频的互检索以及模型训练方法、装置、设备及介质 | |
CN110232131A (zh) | 基于创意标签的创意素材搜索方法及装置 | |
Chen et al. | Cross-domain recommendation with behavioral importance perception | |
CN104484365A (zh) | 一种多源异构网络中社会关系的预测方法与系统 | |
CN112765481B (zh) | 一种数据处理方法、装置、计算机及可读存储介质 | |
CN114443824B (zh) | 数据处理方法、装置、电子设备及计算机存储介质 | |
CN109471969A (zh) | 一种应用搜索方法、装置及设备 | |
CN111460169B (zh) | 语义表达式生成方法、装置及设备 | |
CN109697642A (zh) | 数据推送方法、装置以及计算机可读存储介质 | |
CN113407704A (zh) | 文本匹配方法、装置、设备及计算机可读存储介质 | |
CN106547876A (zh) | 一种基于归属度标签传播的社团发现处理方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20171019 Address after: Washington State Patentee after: Micro soft technique license Co., Ltd Address before: Washington State Patentee before: Microsoft Corp. |