首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于抽象语法树的人机协作程序翻译方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:西北工业大学

摘要:本发明公开了一种基于抽象语法树的人机协作程序翻译方法,首先源程序的抽象语法树输入到训练好的程序翻译机器模型,程序翻译模型根据源抽象语法树翻译得到目标抽象语法树;然后在翻译模型得到的翻译结果上进行检查,若发现错误,可选择合适的人机协作形式来进行修改,包括基于首个错误的修改和基于层次的修改方式;最后程序翻译模型收到修改信息作为反馈,根据反馈信息,程序翻译模型生成更优结果,随后将生成的更优结果进行检查。本发明将人机协作引入基于抽象语法树的程序翻译当中,充分利用了程序的结构性,减少了人力消耗。

主权项:1.一种基于抽象语法树的人机协作程序翻译方法,其特征在于,包括如下步骤:步骤1:基于抽象语法树的程序翻译模型;采用Tree-to-Tree模型,由能够接收不同个输入的LSTM单元构成;Tree-to-Tree模型的结构是编码器-解码器结构,它接收源抽象语法树为输入,并输出目标抽象语法树;在进行程序翻译时,模型的编码器对源抽象语法树进行编码;步骤1-1:LSTM单元首先使用左孩子右兄弟的规则将输入的源抽象语法树二值化,然后从叶子节点开始对二叉树进行编码;设节点N的值为VS,节点N有左右两个孩子NL和NR以及它们各自的LSTM状态信息hL,cL、hR,cR;基于此,节点N的LSTM状态信息h,c表示为:h,c=LSTM[hL:hR],[cL:cR],VS其中,缺失节点的h和c向量被表示为零向量;最终编码器得到的输出作为输入重新输入到解码器当中,解码器将编码器输出的向量添加到一个待扩展队列中,当待扩展队列不为空时,每次解码器按照先进先出的原则每次解码待扩展队列中的一个节点;步骤1-2:在Tree-to-Tree模型中引入注意力机制,其中注意力机制用于帮助解码器解码当前节点时利用源抽象语法树的信息;注意力机制向量et被计算为:et=tanhW1[es;h]其中W1是可训练的权重矩阵;es是由源抽象语法树的节点的h向量作点乘得到的上下文向量;随后,得到当前节点N的值VS为:Vs=argmaxsoftmaxWet其中W是可训练的矩阵;如果当前节点的值VS为EOS,则意味着当前节点没有孩子节点,为抽象语法树的叶节点;步骤1-3:Tree-to-Tree模型包括接受不同输入的Tree-LSTM单元集合LSTMs=LSTM1...LSTMm,其中m表示该LSTM单元可以接受几个输入,它的值为数据集中抽象语法树最大孩子数;则当前节点的第i个孩子的h和c状态表示为:hi,ci=LSTMh,c,[WpVs;et].其中,Wp矩阵连接了当前节点所有父节点的注意力向量,称为父注意力机制;步骤2:基于抽象语法树的首个错误处修改的人机协作程序翻译;步骤2-1:定义数据类型;源抽象语法树表示为:Xtree={x1,...xj...,xJ}其中J是源抽象语法树的节点数,xj表示源抽象语法树中的第j个节点,0<jJ;每一轮人机协作程序翻译迭代交互中生成的抽象语法树表示为: 其中t表示第t轮迭代,It表示第t轮迭代中目标抽象语法树的节点数;表示目标抽象语法树中的第i个节点,0iIt;步骤2-2:按照深度优先的顺序检查此轮迭代中解码器生成的抽象语法树直至检查到第一个错误节点随后将错误的节点修改为这也隐式地验证了错误节点之前的节点都是正确的节点,被表示为然后根据第t轮的反馈信息Ft和上一轮生成的结果Yt-1进行限制解码生成更优一轮结果;其中第t轮的反馈信息Ft用: 表示;解码器根据第t轮的反馈信息Ft和上一轮生成的结果Yt-1进行限制解码的过程用: 表示;此过程用: 进一步表示;步骤2-3:在LSTM中,解码器解码某节点时的概率分布用: 表示,其中W为可训练矩阵,et为LSTM中的注意力向量;步骤2-4:从整体,基于抽象语法树的首个错误处修改的人机协作程序翻译用: 表示;在基于抽象语法树的首个错误处修改的人机协作程序翻译中,将解码器待解码的节点存储在栈结构中;在解码时,解码器首先解码当前节点,若当前节点的值不为EOS,则解码器为该节点创建若干待解码的孩子节点存入栈结构中;解码器以深度优先的顺序解码目标抽象语法树;在每一轮迭代中仅修改一个错误节点,并给出反馈信息指导模型在当前轮结果的基础上生成更优结果;步骤3:基于抽象语法树的层次修改的人机协作程序翻译;采用基于抽象语法树的层次修改的人机协作程序翻译,以广度优先的顺序检查解码器在本轮迭代交互中生成的抽象语法树在发现了首个错误的抽象语法树节点后,修改与错误的抽象语法树节点所在层Lt相同的其他错误节点: 为: 本轮人机协作程序翻译交互迭代的反馈信息表示为: 同样,解码器会根据第t轮的反馈信息Ft和上一轮生成的结果Yt-1在更小的搜索空间进行限制解码生成更优一轮结果;这个过程用如下公式表示: 其中,m∈{1,...,It},k∈{1,...,It-1};步骤4:参数缓存模块;在LSTM单元中,每一个LSTM单元输出的隐藏状态h和细胞状态c以及上下文向量es被用于生成后续节点;基于此,参数缓存的机制是存储每一个节点解码时的关键信息St,St包含在第t轮人机协作程序翻译迭代交互的每一个LSTM单元输出的隐藏状态h和细胞状态c以及上下文向量es;将本轮人机协作程序翻译迭代交互生成的抽象语法树在第i个节点处出现了错误,同时发现该错误并作出修正;在第t+1轮人机协作程序翻译的迭代交互中,模型就不需要重新解码直接从参数缓存模块中获取St中存储的节点解码时的隐藏状态h和细胞状态c以及上下文向量es,然后根据修正反馈继续生存新一轮结果步骤5:提前终止模块;步骤5-1:在人机协作程序翻译的迭代交互过程中,提前终止模块通过减少在当前迭代交互轮中错误子树的生成来减少响应时间,避免计算资源的浪费;在提前终止模块中引入了分类器,来判断当前解码节点是否为低置信度节点,若是,则标记该节点为低置信度节点,触发提前终止条件,同时,为了保证对上下文信息的理解,模型继续解码一层节点后停止;步骤5-2:模型根据LSTM解码当前节点时输出的节点概率列表中最大概率和第k大概率的差值来判断当前解码节点是否为潜在的低置信度节点: 若二者差值小于设置的静态阈值α,则模型判断该节点为低置信度节点;当模型认为当前节点为潜在的低置信度节点后,会调用分类器进一步确认当前解码节点是否为低置信度节点;分类器的输入数据为LSTM解码当前节点时输出的节点概率列表中最大概率、第二大概率、两者差值以及当前解码节点所在层数四项信息: 输出结果为0或1,0表示当前解码节点不是低置信度节点,1表示当前解码节点为低置信度节点,需要提前终止;步骤5-3:分类器的训练数据为从训练集中采集的正确节点以及错误节点的输出的节点概率列表中最大概率、第二大概率、两者差值以及当前解码节点所在层数;被采样的潜在低置信度节点调用分类器判断是否为低置信度节点。

全文数据:

权利要求:

百度查询: 西北工业大学 一种基于抽象语法树的人机协作程序翻译方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。

相关技术
相关技术
相关技术
相关技术