CN110018827A - 自动生成代码的方法、装置、电子设备及可读存储介质 - Google Patents

自动生成代码的方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN110018827A
CN110018827A CN201910267402.0A CN201910267402A CN110018827A CN 110018827 A CN110018827 A CN 110018827A CN 201910267402 A CN201910267402 A CN 201910267402A CN 110018827 A CN110018827 A CN 110018827A
Authority
CN
China
Prior art keywords
code
processed
gui image
prediction
code sequence
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
Application number
CN201910267402.0A
Other languages
English (en)
Other versions
CN110018827B (zh
Inventor
卫宁
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.)
Rajax Network Technology Co Ltd
Lazhasi Network Technology Shanghai Co Ltd
Original Assignee
Lazhasi Network Technology Shanghai Co Ltd
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 Lazhasi Network Technology Shanghai Co Ltd filed Critical Lazhasi Network Technology Shanghai Co Ltd
Priority to CN201910267402.0A priority Critical patent/CN110018827B/zh
Publication of CN110018827A publication Critical patent/CN110018827A/zh
Application granted granted Critical
Publication of CN110018827B publication Critical patent/CN110018827B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Image Analysis (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本公开实施例公开了一种自动生成代码的方法、装置、电子设备及可读存储介质,所述方法包括:获取训练数据,所述训练数据包括一幅或多幅训练GUI图像和与所述一幅或多幅训练GUI图像相对应的训练DSL代码,基于所述训练数据来训练预测模型,使用训练后的预测模型处理一幅或多幅待处理GUI图像,得到与所述一幅或多幅待处理GUI图像相对应的DSL代码。

Description

自动生成代码的方法、装置、电子设备及可读存储介质
技术领域
本公开涉及计算机技术领域,具体涉及一种自动生成代码的方法、装 置、电子设备及可读存储介质。
背景技术
随着计算机技术的发展,当前软件的应用越来越广泛,功能越来越复 杂,规模越来越庞大。
在实现本公开的过程中,发明人发现,在现有的前端程序开发过程中, 除了实现软件个性化、复杂化的功能外,前端开发工程师通常还需要花费 大量的时间和劳动,用于根据用户界面设计稿来编写用户界面代码。因此, 目前的前端程序开发过程中存在大量的重复劳动,且开发成本大、耗时长 而效率低。
发明内容
为了解决相关技术中的问题,本公开实施例提供一种自动生成代码的 方法、装置、电子设备及可读存储介质。
第一方面,本公开实施例中提供了一种自动生成代码的方法,包括:
获取训练数据,所述训练数据包括一幅或多幅训练GUI图像和与所述 一幅或多幅训练GUI图像相对应的训练DSL代码;
基于所述训练数据来训练预测模型;
使用训练后的预测模型处理一幅或多幅待处理GUI图像,得到与所述 一幅或多幅待处理GUI图像相对应的DSL代码。
结合第一方面,本公开在第一方面的第一种实现方式中,所述训练 DSL代码包括通过滑动窗口划分与所述训练GUI图像相对应的DSL代码 序列得到的多个DSL代码片段。
结合第一方面,本公开在第一方面的第二种实现方式中,所述使用训 练后的预测模型处理一幅或多幅待处理GUI图像,得到与所述一幅或多幅 待处理GUI图像相对应的DSL代码,包括:
对所述一幅或多幅待处理GUI图像进行编码,获得图像编码;
初始化输入代码序列;
对输入代码序列进行编码,获得中间代码编码;
通过预测模型基于所述图像编码和所述中间代码编码的组合进行预 测,获得预测代码序列;
使用所述预测代码序列更新所述输入代码序列,重复所述获得中间代 码编码和获得所述预测代码序列的步骤,直到获得符合预设条件的预测代 码序列;
至少根据所述预测代码序列生成与所述一幅或多幅待处理GUI图像 相对应的DSL代码。
结合第一方面的第二种实施方式,本公开在第一方面的第三种实现方 式中,所述对一幅或多幅待处理GUI图像进行编码包括通过第一神经网络 对所述一幅或多幅待处理GUI图像进行编码;并且/或者
所述对输入代码序列进行编码包括通过第二神经网络对所述输入代 码序列进行编码;并且/或者
所述预测模型包括第三神经网络。
结合第一方面的第三种实施方式,本公开在第一方面的第四种实现方 式中,所述第一神经网络包括卷积神经网络;并且/或者
所述第二神经网络和/或所述第三神经网络包括递归神经网络;并且/ 或者
所述第二神经网络和/或所述第三神经网络包括长短期记忆网络。
结合第一方面的第一种实施方式,本公开在第一方面的第五种实现方 式中,所述输入代码序列初始为以起始标识代码结尾的空序列;并且/或者
所述符合预设条件的预测代码序列为包括末尾标识代码的预测代码 序列。
结合第一方面,本公开在第一方面的第六种实现方式中,所述预测代 码序列包括预测得到的一个或多个代码;并且/或者
所述至少根据所述预测代码序列生成与所述一幅或多幅待处理GUI 图像相对应的DSL代码,包括将针对所述一幅或多幅待处理GUI图像生 成的至少一个预测代码序列依次连接形成所述与所述一幅或多幅待处理 GUI图像相对应的DSL代码。
结合第一方面,本公开在第一方面的第七种实现方式中,所述多幅训 练GUI图像包括彼此关联的多幅GUI图像;并且/或者
所述多幅待处理GUI图像包括彼此关联的多幅GUI图像;并且/或者
所述训练GUI图像和/或所述待处理GUI图像包括至少一个对象,所 述与所述一幅或多幅待处理GUI图像相对应的DSL代码描述所述待处理 GUI图像的至少一个对象的以下至少一个特征:位置、种类、外观属性、 与其他对象的关系。
第二方面,本公开实施例中提供了一种自动生成代码的装置,包括:
获取模块,被配置为获取训练数据,所述训练数据包括一幅或多幅训 练GUI图像和与所述一幅或多幅训练GUI图像相对应的训练DSL代码;
训练模块,被配置为基于所述训练数据来训练预测模型;
处理模块,被配置为使用训练后的预测模型处理一幅或多幅待处理 GUI图像,得到与所述一幅或多幅待处理GUI图像相对应的DSL代码。
结合第二方面,本公开在第二方面的第一种实现方式中,所述训练 DSL代码包括通过滑动窗口划分与所述训练GUI图像相对应的DSL代码 序列得到的多个DSL代码片段。
结合第二方面,本公开在第二方面的第二种实现方式中,所述使用训 练后的预测模型处理一幅或多幅待处理GUI图像,得到与所述一幅或多幅 待处理GUI图像相对应的DSL代码,包括:
对所述一幅或多幅待处理GUI图像进行编码,获得图像编码;
初始化输入代码序列;
对输入代码序列进行编码,获得中间代码编码;
通过预测模型基于所述图像编码和所述中间代码编码的组合进行预 测,获得预测代码序列;
使用所述预测代码序列更新所述输入代码序列,重复所述获得中间代 码编码和获得所述预测代码序列的步骤,直到获得符合预设条件的预测代 码序列;
至少根据所述预测代码序列生成与所述一幅或多幅待处理GUI图像 相对应的DSL代码。
结合第二方面的第二种实施方式,本公开在第二方面的第三种实现方 式中,所述对一幅或多幅待处理GUI图像进行编码包括通过第一神经网络 对所述一幅或多幅待处理GUI图像进行编码;并且/或者
所述对输入代码序列进行编码包括通过第二神经网络对所述输入代 码序列进行编码;并且/或者
所述预测模型包括第三神经网络。
结合第二方面的第三种实施方式,本公开在第二方面的第四种实现方 式中,所述第一神经网络包括卷积神经网络;并且/或者
所述第二神经网络和/或所述第三神经网络包括递归神经网络;并且/ 或者
所述第二神经网络和/或所述第三神经网络包括长短期记忆网络。
结合第二方面的第一种实施方式,本公开在第二方面的第五种实现方 式中,所述输入代码序列初始为以起始标识代码结尾的空序列;并且/或者
所述符合预设条件的预测代码序列为包括末尾标识代码的预测代码 序列。
结合第二方面,本公开在第二方面的第六种实现方式中,所述预测代 码序列包括预测得到的一个或多个代码;并且/或者
所述至少根据所述预测代码序列生成与所述一幅或多幅待处理GUI 图像相对应的DSL代码,包括将针对所述一幅或多幅待处理GUI图像生 成的至少一个预测代码序列依次连接形成所述与所述一幅或多幅待处理 GUI图像相对应的DSL代码。
结合第二方面,本公开在第二方面的第七种实现方式中,所述多幅训 练GUI图像包括彼此关联的多幅GUI图像;并且/或者
所述多幅待处理GUI图像包括彼此关联的多幅GUI图像;并且/或者
所述训练GUI图像和/或所述待处理GUI图像包括至少一个对象,所 述与所述一幅或多幅待处理GUI图像相对应的DSL代码描述所述待处理 GUI图像的至少一个对象的以下至少一个特征:位置、种类、外观属性、 与其他对象的关系。
第三方面,本公开实施例中提供了一种自动生成代码的电子设备,所 述电子设备包括储器和处理器;其中,所述存储器用于存储一条或多条计 算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现以 下方法步骤:
获取训练数据,所述训练数据包括一幅或多幅训练GUI图像和与所述 一幅或多幅训练GUI图像相对应的训练DSL代码;
基于所述训练数据来训练预测模型;
使用训练后的预测模型处理一幅或多幅待处理GUI图像,得到与所述 一幅或多幅待处理GUI图像相对应的DSL代码。
结合第三方面,本公开在第三方面的第一种实现方式中,所述训练 DSL代码包括通过滑动窗口划分与所述训练GUI图像相对应的DSL代码 序列得到的多个DSL代码片段。
结合第三方面,本公开在第三方面的第二种实现方式中,所述使用训 练后的预测模型处理一幅或多幅待处理GUI图像,得到与所述一幅或多幅 待处理GUI图像相对应的DSL代码,包括:
对所述一幅或多幅待处理GUI图像进行编码,获得图像编码;
初始化输入代码序列;
对输入代码序列进行编码,获得中间代码编码;
通过预测模型基于所述图像编码和所述中间代码编码的组合进行预 测,获得预测代码序列;
使用所述预测代码序列更新所述输入代码序列,重复所述获得中间代 码编码和获得所述预测代码序列的步骤,直到获得符合预设条件的预测代 码序列;
至少根据所述预测代码序列生成与所述一幅或多幅待处理GUI图像 相对应的DSL代码。
结合第三方面的第二种实施方式,本公开在第三方面的第三种实现方 式中,所述对一幅或多幅待处理GUI图像进行编码包括通过第一神经网络 对所述一幅或多幅待处理GUI图像进行编码;并且/或者
所述对输入代码序列进行编码包括通过第二神经网络对所述输入代 码序列进行编码;并且/或者
所述预测模型包括第三神经网络。
结合第三方面的第三种实施方式,本公开在第三方面的第四种实现方 式中,所述第一神经网络包括卷积神经网络;并且/或者
所述第二神经网络和/或所述第三神经网络包括递归神经网络;并且/ 或者
所述第二神经网络和/或所述第三神经网络包括长短期记忆网络。
结合第三方面的第一种实施方式,本公开在第三方面的第五种实现方 式中,所述输入代码序列初始为以起始标识代码结尾的空序列;并且/或者
所述符合预设条件的预测代码序列为包括末尾标识代码的预测代码 序列。
结合第三方面,本公开在第三方面的第六种实现方式中,所述预测代 码序列包括预测得到的一个或多个代码;并且/或者
所述至少根据所述预测代码序列生成与所述一幅或多幅待处理GUI 图像相对应的DSL代码,包括将针对所述一幅或多幅待处理GUI图像生 成的至少一个预测代码序列依次连接形成所述与所述一幅或多幅待处理 GUI图像相对应的DSL代码。
结合第三方面,本公开在第三方面的第七种实现方式中,所述多幅训 练GUI图像包括彼此关联的多幅GUI图像;并且/或者
所述多幅待处理GUI图像包括彼此关联的多幅GUI图像;并且/或者
所述训练GUI图像和/或所述待处理GUI图像包括至少一个对象,所 述与所述一幅或多幅待处理GUI图像相对应的DSL代码描述所述待处理 GUI图像的至少一个对象的以下至少一个特征:位置、种类、外观属性、 与其他对象的关系。
第四方面,本公开实施例中提供了一种可读存储介质,其上存储有计 算机指令,该计算机指令被处理器执行时实现如第一方面、第一方面的第 一种实现方式至第七种实现方式任一项所述的方法。
本公开实施例提供的技术方案可以包括以下有益效果:
根据本公开实施例提供的技术方案,能够自动获取所述一幅或多幅 GUI图像的对应DSL代码,有效避免了前端程序开发工程师将大量的时 间和劳动用于根据图像编写代码序列,简化了开发过程中重复劳动,降低 了人力和时间成本,提高了开发效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释 性的,并不能限制本公开。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本公开的其它特 征、目的和优点将变得更加明显。在附图中:
图1示出根据本公开实施例自动生成代码的方法的流程图;
图2示出根据本公开实施例使用训练后的预测模型处理一幅或多幅待 处理GUI图像的流程图;
图3示出根据本公开实施例用于实现自动生成代码的方法的示例性过 程;
图4A和图4B示出了彼此关联的两幅待处理GUI图像的示意图;
图4C示出了根据本公开实施例的初始输入代码序列的示意图;
图4D示出了根据本公开实施例的DSL代码的示意图;
图5示出根据本公开实施例自动生成代码的装置的结构框图;
图6示出根据本公开实施例的电子设备的结构框图;
图7是适于用来实现根据本公开实施例自动生成代码的方法的计算机 系统的结构示意图。
具体实施方式
下文中,将参考附图详细描述本公开的示例性实施方式,以使本领域 技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描 述示例性实施方式无关的部分。
在本公开中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明 书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并 且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组 合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施 例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公 开。
上文提及,随着计算机技术的发展,软件的应用越来越广泛,功能越 来越复杂,规模越来越庞大。在现有的前端程序开发过程中,除了实现软 件个性化、复杂化的功能外,前端开发工程师通常还需要花费大量的时间 和劳动,用于根据用户界面设计稿来编写用户界面代码。因此,目前的前 端程序开发过程中存在大量的重复劳动,且开发成本大、耗时长而效率低。
本公开实施例提供的技术方案获取训练数据,所述训练数据包括一幅 或多幅训练GUI图像和与所述一幅或多幅训练GUI图像相对应的训练 DSL代码,基于所述训练数据来训练预测模型,使用训练后的预测模型处 理一幅或多幅待处理GUI图像,得到与所述一幅或多幅待处理GUI图像 相对应的DSL代码。该技术方案能够自动获取一幅或多幅GUI图像相对 应的DSL代码,有效避免了前端程序开发工程师将大量的时间和劳动用 于根据图形用户界面图像编写代码,减少了开发过程中的重复劳动,节约 了人力和时间成本,提高了开发效率。
图1示出根据本公开实施例自动生成代码的方法的流程图。如图1所 示,所述自动生成代码的方法包括以下步骤S101-S103。
在步骤S101中,获取训练数据,所述训练数据包括一幅或多幅训练 GUI图像和与所述一幅或多幅训练GUI图像相对应的训练DSL代码。
在步骤S102中,基于所述训练数据来训练预测模型。
在步骤S103中,使用训练后的预测模型处理一幅或多幅待处理GUI 图像,得到与所述一幅或多幅待处理GUI图像相对应的DSL代码。
根据本公开的实施例,所述GUI图像为图形用户界面(Graphical UserInterface)图像。所述图形用户界面图像包括至少一个对象,例如可以包 括以下任意一项或多项:菜单栏、文本框、图片、表格、图标、开关、滑 块、滑轨、工具栏、网页视图(WebView)控件、单选与复选按钮、时钟 控件、对话框、进度条、日期和日历等,本公开对此不作具体限定。
根据本公开的实施例,所述DSL代码为领域特定语言(Domain SpecificLanguages)代码。所述DSL代码可以是与所述一幅或多幅GUI 图像相对应的代码序列。例如,可以用DSL代码来描述所述一幅或多幅 GUI图像。
所述DSL代码描述对应的所述GUI图像的至少一个对象的以下至少 一个特征:位置、种类、外观属性(例如颜色、形状、大小、字体等)、 与其他对象的关系等。例如,DSL代码中的每个代码可以是一个标志 (token),所述标志可以对应于所述对象的一个或多个特征。例如,标志 button表示GUI图像包含按钮控件,标志red表示颜色为红色,标志Calibri表示字体为Calibri字体,标志rrbutton表示红色圆形按钮等,本公开对此 不作具体限定。根据本公开的实施例,多个所述标志之间可以存在包含关 系,其中,当标志A包含标志B时,表示所述标志A包含所述标志B所 对应的特征。例如,代码序列button{round,red,position{x,y,r}}表示一红 色圆形按钮控件,且该按钮控件的圆心坐标为(x,y),半径为r。根据本 公开的实施例,可以根据实际需要自行设计用于描述GUI图像的各种标志, 本公开对此不作具体限定。
通过用DSL代码描述GUI图像中的特征,可以基于DSL代码生成用 于实现GUI图像的程序代码。
根据本公开的实施例,所述用于实GUI图像的程序代码是指计算机可 运行的机器代码,或者其他编程语言的源代码,例如以下中的至少一种语 音编写的代码:超文本标记语言(Hyper Text Markup Language,HTML)、层 叠样式表(Cascading Style Sheets,CSS)、JavaScript语言(JS语言)等计算 机语言,本公开对此不作具体限定。该技术方案能够自动生成用于实现所 述用户界面的程序代码。有效避免了前端程序开发工程师将大量的时间和 劳动用于编写用户界面代码,减少了开发过程中重复劳动,降低了人力和 时间成本,提高了开发效率。
根据本公开的实施例,所述预测模型是基于训练数据训练得到的。其 中,所述训练数据包括一幅或多幅训练GUI图像和与所述一幅或多幅训练 GUI图像相对应的训练DSL代码(步骤S101)。
根据本公开的实施例,所述训练DSL代码包括通过滑动窗口划分与 所述训练GUI图像相对应的DSL代码序列得到的多个DSL代码片段。
例如,针对待处理GUI图像P,已知其对应的DSL代码序列为{q1,q2, q3,q4,q5,q6,q7},可以使用长度为4的滑动窗口得到4个DSL代码片段 s1={q1,q2,q3,q4},s2={q2,q3,q4,q5},s3={q3,q4,q5,q6},s4{q4,q5,q6, q7},于是相应地得到四个训练数据,每个训练数据包括待处理GUI图像 P和上述4个DSL代码片段之一,即SA1={P,s1},SA2={P,s2},SA3={P, s3},SA4={P,s4}。
根据本公开的实施例,通过以滑动窗口划分与所述训练GUI图像相对 应的DSL代码序列得到多个DSL代码片段,从而生成多个训练数据,可 以充分利用训练数据,并且针对一幅待处理GUI图像进行多次训练,提高 了预测准确度。
根据本公开的实施例,所述基于所述训练数据来训练预测模型(步骤 S102),包括对于每个训练数据,其训练目标是预测该训练数据的DSL代 码片段之后的一个或多个代码。例如对于样本SA1,其训练目标是预测q5, 或q5和q6,或q5、q6和q7,以此类推。根据预测模型的输出结果与训 练目标的比较结果来调整预测模型的参数,以优化预测模型的准确率。
完成预测模型的训练后,可以使用训练后的预测模型处理一幅或多幅 待处理GUI图像,得到与所述一幅或多幅待处理GUI图像相对应的DSL 代码(步骤S103)。根据本公开的实施例,所述多幅训练GUI图像包括彼 此关联的多幅GUI图像。根据本公开的实施例,所述多幅待处理GUI图 像包括彼此关联的多幅GUI图像。
根据本公开的实施例,所述训练GUI图像和/或所述待处理GUI图像 包括至少一个对象,所述与所述一幅或多幅待处理GUI图像相对应的DSL 代码描述所述待处理GUI图像的至少一个对象的以下至少一个特征:位置、 种类、外观属性、与其他对象的关系。
下面参考图2具体说明根据本公开实施例得到与所述一幅或多幅待处 理GUI图像相对应的DSL代码的方法的示例性过程。
图2示出根据本公开实施例使用训练后的预测模型处理一幅或多幅待 处理GUI图像的流程图。
如图2所示,所述使用训练后的预测模型处理一幅或多幅待处理GUI 图像,得到与所述一幅或多幅待处理GUI图像相对应的DSL代码包括以 下步骤S201-S206。
在步骤S201中,对所述一幅或多幅待处理GUI图像进行编码,获得 图像编码。
在步骤S202中,初始化输入代码序列。
在步骤S203中,对输入代码序列进行编码,获得中间代码编码。
在步骤S204中,通过预测模型基于所述图像编码和所述中间代码编 码的组合进行预测,获得预测代码序列。
在步骤S205中,使用所述预测代码序列更新所述输入代码序列,重 复所述获得中间代码编码和获得所述预测代码序列的步骤,直到获得符合 预设条件的预测代码序列。
在步骤S206中,至少根据所述预测代码序列生成与所述一幅或多幅 待处理GUI图像相对应的DSL代码。下面参考图3具体说明根据本公开 实施例自动生成代码的方法的示例性过程。
图3示出根据本公开实施例用于实现自动生成代码的方法的示例性过 程。为了描述的方便,图3中以一幅待处理GUI图像X为例进行解释和 说明,应当了解的是,该示例仅为示例使用,并非是对于本公开的限制, 本公开也可用于从两幅或更多幅待处理GUI图像获得相应的DSL代码。
结合图2和图3,从待处理GUI图像X生成DSL代码Y的过程中, 先对待处理GUI图像X进行编码,获得图像编码x(步骤S201),并初始 化输入代码序列W(步骤S202),然后对所述输入代码序列W进行编码, 获得中间代码编码w(步骤S203)。
根据本公开的实施例,所述编码是指将信息从一种形式转换为另一种 形式的过程,例如,将所述待处理GUI图像X从直观的图像形式,转换 为计算机可以进行处理和分析的图像编码x。
根据本公开的实施例,所述图像编码x可以是可利用计算机进行处理 和分析的信息,例如以下中的至少一项:数字、字母、标志、符号或它们 之间的组合。这样,计算机能够根据所述图像编码x,处理和分析得到所 述待处理GUI图像X的至少一个特征(例如,待处理GUI图像中包括的 对象类型、颜色、位置、形状、字体等),从而在一定程度上使得计算机 能够理解图像所表达的含义。
根据本公开的实施例,所述中间代码编码w可以是可利用计算机进行 处理和分析的信息,例如以下中的至少一项:数字、字母、标志、符号或 它们之间的组合。这样,计算机能够根据所述中间代码编码w,确定所述 输入代码序列W的至少一个前后文特征(例如,前后文的语法、顺序、 拼写、语义等),从而在一定程度上使得计算机能够理解输入代码序列所 表达的含义。
根据本公开的实施例,所述输入代码序列W初始为以起始标识代码 结尾的空序列。
根据本公开的实施例,所述输入代码序列W包括N个代码和起始标识 代码,其中,N为任意大于零的整数。例如,起始标识代码为<BEG>,N为5 的输入代码序列W起始为{<null>,<null>,<null>,<null>,<null>,<BEG>}。
参考图2和图3,获取所述图像编码x(步骤S201)和所述中间代码 编码w(步骤S203)后,通过预测模型Model基于所述图像编码x和所述 中间代码编码w的组合进行预测,获得预测代码序列y(步骤S204)。
根据本公开的实施例,图像编码x和中间代码编码w的组合包括将所 述图像编码x和所述中间代码编码w拼接成单个特征编码c,例如,特征 编码c=(x,w)。通过预测模型Model基于所述图像编码x和所述中间代码 编码w的组合进行预测,获得预测代码序列y,包括通过预测模型Model 基于所述特征编码c进行预测,从而获得关于待处理GUI图像X和输入 代码序列W的预测代码序列y。
根据本公开的实施例,所述预测代码序列y包括预测得到的一个或多 个代码。
根据本公开的实施例,每个代码可以是一个标志,所述标志可以对应 于所述图像的一个或多个特征。因此,所述预测代码序列y包括预测得到 的待处理GUI图像X的一个或多个特征,例如,所述预测代码序列y为 {chara1,chara2},其中,chara1和chara2都是所述待处理GUI图像X的 特征。
根据本公开的实施例,DSL代码Y与待处理GUI图像X之间存在对 应关系,并且DSL代码Y的上下文之间具有一定关联,这就使得在已知 待处理GUI图像X和DSL代码Y的至少一部分(例如起始标识代码 <BEG>)的情况下,可以通过预测模型Model预测得到DSL代码Y。根据本公开的实施例,可以每次预测得到DSL代码Y中的一个或多个代码 作为预测代码序列y,将多个预测代码序列进行组合得到DSL代码Y。
继续参考图2和图3,获取预测代码序列y(步骤S204)之后,使用 所述预测代码序列更新所述输入代码序列,重复所述获得中间代码编码和 获得所述预测代码序列的步骤,直到获得符合预设条件的预测代码序列 (步骤S205)。
根据本公开的实施例,所述使用所述预测代码序列更新所述输入代码 序列包括将所述预测代码序列连接到输入代码序列的末尾,并相应删除所 述输入代码序列的前部代码序列,使得更新前后的输入代码序列长度一致。 其中,所述代码序列长度为所述代码序列中包含的标志数目。
例如,输入代码序列W初始为{<null>,<null>,<null>,<null>,<null>,< BEG>},预测代码序列y为{chara1,chara2},则更新后的输入代码序列W′为 {<null>,<null>,<null>,<BEG>,chara1,chara2}。
根据本公开的实施例,所述重复所述获得中间代码编码和获得所述预 测代码序列的步骤,包括对更新后的输入代码序列W′进行编码,获得更新 后的中间代码编码w′,然后通过预测模型Model基于所述图像编码x和所 述更新后的中间代码编码w′的组合进行预测,获得另一预测代码序列y’(步 骤S204)。
根据本公开的实施例,基于所述待处理GUI图像X与所述输入代码 序列W′的上下文关联性,可以预测得到用于描述所述待处理GUI图像X 的其他代码。例如,通过预测模型Model基于所述图像编码x和所述更新 后的中间代码编码w′的组合进行预测,获得另一预测代码序列y’{chara3, chara4}。
根据本公开的实施例,所述符合预设条件的预测代码序列为包括末尾 标识代码的预测代码序列。
根据本公开的实施例,所述符合预设条件的预测代码序列包括i个代码 和所述末尾标识代码,其中,i为大于等于零的整数。例如,假设末尾标识 代码为<END>,预测代码序列y”为{chara5,<END>},则预测代码序列 y”为符合预设条件的预测代码序列。
结合图2和图3,获得符合预设条件的预测代码序列(步骤S204)后, 至少根据所述预测代码序列y,y’,……,y”生成DSL代码Y。其中,可 以用所述DSL代码Y来描述所述待处理GUI图像X。
根据本公开的实施例,所述至少根据所述预测代码序列生成与所述一 幅或多幅待处理GUI图像相对应的DSL代码,包括将针对所述一幅或多 幅待处理GUI图像生成的至少一个预测代码序列依次连接形成与所述一 幅或多幅待处理GUI图像相对应的DSL代码。
例如,假设针对所述待处理GUI图像X生成的三个预测代码序列, y={chara1,chara2}、y′={chara3,chara4},y”={chara5,<END>},则 所述DSL代码Y为将所述三个预测代码序列依次连接形成的与所述待处 理GUI图像X相对应的DSL代码Y,即:
Y={y,y′y”}={chara1,chara2,chara3,chara4,chara5,<END>}。
根据本公开的实施例,也可以在Y的头部加上起始标识代码<BEG>, 从而得到与所述待处理GUI图像X相对应的DSL代码{<BEG> ,chara1,chara2,chara3,chara4,chara5,<END>},或者,也可以从Y去 掉末尾标识代码<END>从而得到与所述待处理GUI图像X相对应的 DSL代码{chara1,chara2,chara3,chara4,chara5}。或者,可以根据DSL 的语法规范,对预测代码序列进行适应性调整,以得到与所述待处理GUI 图像X相对应的DSL代码,本公开对此不作具体限定。
根据本公开的实施例,该技术方案能够自动获取所述一幅或多幅待处 理GUI图像所对应的DSL代码,有效避免了前端程序开发工程师将大量 的时间和劳动用于根据图像编写代码序列,简化了开发过程中重复劳动, 降低了人力和时间成本,提高了开发效率。
根据本公开的实施例,所述对一幅或多幅待处理GUI图像进行编码包 括通过第一神经网络对所述一幅或多幅待处理GUI图像进行编码。例如, 通过第一神经网络对所述待处理GUI图像X进行编码,获得图像编码x。 应当了解的是,除了通过第一神经网络获取所述一幅或多幅待处理GUI 图像的图像编码外,还可以通过其他方式或手段对所述一幅或多幅待处理 GUI图像进行编码,本公开对此不做限定等。
根据本公开的实施例,所述对输入代码序列进行编码包括通过第二神 经网络对所述输入代码序列进行编码。例如,通过第二神经网络对所述输 入代码序列W进行编码,获得中间代码编码w。应当了解的是,除了通 过第二神经网络获取所述输入代码序列的中间代码编码外,还可以通过其 他方式或手段对所述输入代码序列进行编码,本公开对此不做限定等。
根据本公开的实施例,所述预测模型Model包括第三神经网络。例如, 通过第三神经网络基于所述图像编码x和所述中间代码编码w的组合进行 预测,获得预测代码序列y。应当了解的是,除了通过第二神经网络获取 所述预测代码序列外,还可以通过其他方式或手段对所述预测代码序列进 行预测,本公开对此不做限定等。
例如,可以通过第一神经网络NN1,第二神经网络NN2以及第三神 经网络NN3,根据步骤S201-S206自动生成所述待处理GUI图像X相对 应的DSL代码。
先在步骤S201中,通过所述第一神经网络NN1对所述图像X进行编 码,获得图像编码矢量x,即:
x=NN1(X)。
接着在步骤S202中,初始化输入代码序列W。
W={<null>,<null>,<null>,<null>,<null>,<BEG>}。
在步骤S203中,通过第二神经网络NN2对初始输入代码序列W进 行编码,获得中间代码编码矢量w,即:
w=NN2(W)。
在步骤S204中,将代表图像编码的矢量x和代表中间代码编码的矢 量w进行拼接,得到特征矢量c,并通过所述第三神经网络NN3基于所述 特征矢量c进行预测,得到预测代码序列y,其中,所述预测代码序列y包 括至少一个标志,即:
c=(x,w),
y=NN3(c)={chara1,chara2}。
在步骤S205中,使用所述预测代码序列y更新所述输入代码序列W, 得到更新后的输入代码序列W′,即:
W′={<null>,<null>,<BEG>,chara1,chara2}。
重复所述获得中间代码编码和得到所述预测代码序列的步骤,即通过 第二神经网络NN2对当前输入代码序列W′进行编码,获得中间代码编码 矢量w′,将代表图像编码的矢量x和代表中间代码编码的矢量w′进行拼接, 得到特征矢量c′,并通过第三神经网络基于所述特征矢量c′进行预测,得 到预测代码序列y′,即:
w′=NN2(W′),
c′=(x,w′),
y′=NN3(c′)={chara3,chara4}。
使用所述预测代码序列y′更新所述输入代码序列W′,得到更新后的输 入代码序列W″,即:
W″={<BEG>,chara1,chara2,chara3,chara4}。
重复所述获得中间代码编码和得到所述预测代码序列的步骤,即通过 第二神经网络NN2对当前输入代码序列W″进行编码,获得中间代码编码 矢量w″,将代表图像编码的矢量x和代表中间代码编码的矢量w″进行拼接, 得到特征矢量c″,并通过第三神经网络基于所述特征矢量c″进行预测,得 到预测代码序列y″,即:
w″=NN2(W″),
c″=(x,w″),
y″=NN3(c″)={chara5,<END>}。
由于预测代码序列y″包括末尾标识代码<END>,因此,预测代码序 列y″为符合预设条件的预测代码序列。
在步骤S206中,针对所述待处理GUI图像X生成的三个预测代码序 列y、y′和y″依次连接形成所述DSL代码Y,即:
Y={y,y′y”}={chara1,chara2,chara3,chara4,chara5,<END>}。
根据本公开的实施例,所述第一神经网络包括卷积神经网络。例如, 通过卷积神经网络对所述待处理GUI图像X进行编码,获得图像编码x。 其中,卷积神经网络(Convolutional Neural Networks,CNN)是一类包含 卷积计算且具有深度结构的前馈神经网络,在图像识别领域具有较好的表 现。应当了解的是,所述第一神经网络还可以是能够对图像进行编码的其 他神经网络。
根据本公开的实施例,所述第二神经网络和/或所述第三神经网络包括 递归神经网络。根据本公开的实施例,所述第二神经网络和/或所述第三神 经网络包括长短期记忆网络。其中,所述长短期记忆网络(Long Short-Term Memory networks,LSTM)是一种时间递归神经网络,是递归神经网络的 改进之一,解决了递归神经网络不易处理的远距离信息上下文依赖、梯度 消失或梯度爆炸等问题。
根据本公开的实施例,通过神经网络进行图像和代码的编码以及代码 预测,能够优化从图像到代码的准确度和效率。
根据本公开的实施例,既可以是对一幅待处理GUI图像进行编码,生 成对应于所述一幅待处理GUI图像的DSL代码(参考图3,对待处理GUI 图像X进行编码,生成的是描述所述待处理GUI图像X的DSL代码Y), 也可以对多幅待处理GUI图像进行编码,生成对应于所述多幅待处理GUI 图像的DSL代码。其中,所述多幅待处理GUI图像可以是彼此关联的多 幅待处理GUI图像。
根据本公开的实施例,通过对多幅待处理GUI图像进行编码,获得图 像编码,一方面能够识别待处理GUI图像中的对象的特征,另一方面能够 结合多幅彼此关联的待处理GUI图像识别存在至少两种状态的对象(例如, 下拉菜单等),进而提高自动生成代码的准确性和可靠性,并能有效地减 少开发过程中的重复劳动,提高开发效率。
下面参考图4A~图4D,具体说明根据本公开实施例从两幅待处理GUI 图像生成相对应的DSL代码的示例性过程。
图4A和图4B示出了彼此关联的两幅待处理GUI图像的示意图。
图4C示出了根据本公开实施例的初始输入代码序列的示意图。
图4D示出了根据本公开实施例的DSL代码的示意图。
如图4A和图4B所示,在所述待处理GUI图像中,下拉菜单存在两 种状态,图4A示出了所述下拉菜单收起时的图像,图4B示出了所述下 拉菜单展开时的图像。
结合步骤S201,对图4A和图4B所示的两幅待处理GUI图像进行编 码,获得图像编码。
并结合步骤S202,初始化输入代码序列,如图4C所示。
结合步骤S203,对图4C所示的输入代码序列进行编码,获得中间代 码编码。
然后结合步骤S204,通过预测模型基于所述图像编码和所述中间代码 编码的组合进行预测,得到预测代码序列。
然后结合步骤S205,使用所述预测代码序列更新所述输入代码序列, 重复所述获得中间代码编码和得到所述预测代码序列的步骤,直到获得符 合预设条件的预测代码序列。
再结合步骤S206,至少根据所述预测代码序列生成如图4D所示的 DSL代码,且图4D所示的DSL代码与图4A和图4B所示的两幅待处理 GUI图像相对应。
如图4D所示,所述DSL代码包括多个代码,每个代码可以是一个标 志,所述标志可以对应于所述待处理GUI图像的一个特征。例如,标志 Image、Input、Dropdown和Button用于描述对象类型。由于是对图4A和 4B两幅相关联的GUI图像进行预测,可以识别出具有下拉状态的下拉菜 单。类似地,如果GUI图像中的对象具有多个不同显示状态,可以通过相关联的多幅GUI图像准确识别出这样的对象。标志position{}用于描述相 应对象的位置特征(例如,横坐标、纵坐标、与边界距离等),标志property{} 用于描述外观属性(例如,颜色、形状、大小、字体等),标志<END>为 末尾标识代码。应当了解的是,上述标志名称和对应的含义以及图4D中 的语法结构仅作为示例使用,并非是对于本公开的限制,本公开也可用其 他标志及语法结构构成所述DSL代码。
在自动生成DSL代码的应用场景中,DSL代码可以是用于描述待处 理GUI图像的对象的特征的数据结构,基于该数据结构,可以生成用户实 现所述待处理GUI图像的程序代码,例如以下中的至少一种语音编写的代 码:超文本标记语言(Hyper Text MarkupLanguage,HTML)、层叠样式表 (Cascading Style Sheets,CSS)、JavaScript语言(JS语言)等。
图5示出根据本公开实施例自动生成代码的装置500的结构框图。其 中,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分 或者全部。如图5示,所述自动生成代码的装置500包括获取模块501、 训练模块502和处理模块503。
获取模块501被配置为获取训练数据,所述训练数据包括一幅或多幅 训练GUI图像和与所述一幅或多幅训练GUI图像相对应的训练DSL代码。
训练模块502被配置为基于所述训练数据来训练预测模型。
处理模块503被配置为使用训练后的预测模型处理一幅或多幅待处理GUI图像,得到与所述一幅或多幅待处理GUI图像相对应的DSL代码。
根据本公开的实施例,所述训练DSL代码包括通过滑动窗口划分与 所述训练GUI图像相对应的DSL代码序列得到的多个DSL代码片段。
根据本公开的实施例,所述使用训练后的预测模型处理一幅或多幅待 处理GUI图像,得到与所述一幅或多幅待处理GUI图像相对应的DSL代 码,包括:
对所述一幅或多幅待处理GUI图像进行编码,获得图像编码;
初始化输入代码序列;
对输入代码序列进行编码,获得中间代码编码;
通过预测模型基于所述GUI图像编码和所述中间代码编码的组合进 行预测,获得预测代码序列;
使用所述预测代码序列更新所述输入代码序列,重复所述获得中间代 码编码和获得所述预测代码序列的步骤,直到获得符合预设条件的预测代 码序列;
至少根据所述预测代码序列生成与所述一幅或多幅待处理GUI图像 相对应的DSL代码。
根据本公开的实施例,所述对一幅或多幅待处理GUI图像进行编码包 括通过第一神经网络对所述一幅或多幅待处理GUI图像进行编码;并且/ 或者
所述对输入代码序列进行编码包括通过第二神经网络对所述输入代 码序列进行编码;并且/或者
所述预测模型包括第三神经网络。
根据本公开的实施例,所述第一神经网络包括卷积神经网络;并且/ 或者
所述第二神经网络和/或所述第三神经网络包括递归神经网络;并且/ 或者
所述第二神经网络和/或所述第三神经网络包括长短期记忆网络。
根据本公开的实施例,所述输入代码序列初始为以起始标识代码结尾 的空序列;并且/或者
所述符合预设条件的预测代码序列为包括末尾标识代码的预测代码 序列。
根据本公开的实施例,所述预测代码序列包括预测得到的一个或多个 代码;并且/或者
所述至少根据所述预测代码序列生成与所述一幅或多幅待处理GUI 图像相对应的DSL代码,包括将针对所述一幅或多幅待处理GUI图像生 成的至少一个预测代码序列依次连接形成所述与所述一幅或多幅待处理 GUI图像相对应的DSL代码。
根据本公开的实施例,所述多幅训练GUI图像包括彼此关联的多幅 GUI图像;并且/或者
所述多幅待处理GUI图像包括彼此关联的多幅GUI图像;并且/或者
所述训练GUI图像和/或所述待处理GUI图像包括至少一个对象,所 述与所述一幅或多幅待处理GUI图像相对应的DSL代码描述所述待处理 GUI图像的至少一个对象的以下至少一个特征:位置、种类、外观属性、 与其他对象的关系。
本公开还公开了一种电子设备,图6示出根据本公开的实施例的电子 设备的结构框图。
如图6所示,所述电子设备600包括存储器601和处理器602。所述 存储器601用于存储一条或多条计算机指令,其中,所述一条或多条计算 机指令被所述处理器602执行以实现以下方法步骤:
获取训练数据,所述训练数据包括一幅或多幅训练GUI图像和与所述 一幅或多幅训练GUI图像相对应的训练DSL代码;
基于所述训练数据来训练预测模型;
使用训练后的预测模型处理一幅或多幅待处理GUI图像,得到与所述 一幅或多幅待处理GUI图像相对应的DSL代码。
根据本公开的实施例,所述训练DSL代码包括通过滑动窗口划分与 所述训练GUI图像相对应的DSL代码序列得到的多个DSL代码片段。
根据本公开的实施例,所述使用训练后的预测模型处理一幅或多幅待 处理GUI图像,得到与所述一幅或多幅待处理GUI图像相对应的DSL代 码,包括:
对所述一幅或多幅待处理GUI图像进行编码,获得图像编码;
初始化输入代码序列;
对输入代码序列进行编码,获得中间代码编码;
通过预测模型基于所述GUI图像编码和所述中间代码编码的组合进 行预测,获得预测代码序列;
使用所述预测代码序列更新所述输入代码序列,重复所述获得中间代 码编码和获得所述预测代码序列的步骤,直到获得符合预设条件的预测代 码序列;
至少根据所述预测代码序列生成与所述一幅或多幅待处理GUI图像 相对应的DSL代码。
根据本公开的实施例,所述对一幅或多幅待处理GUI图像进行编码包 括通过第一神经网络对所述一幅或多幅待处理GUI图像进行编码;并且/ 或者
所述对输入代码序列进行编码包括通过第二神经网络对所述输入代 码序列进行编码;并且/或者
所述预测模型包括第三神经网络。
根据本公开的实施例,所述第一神经网络包括卷积神经网络;并且/ 或者
所述第二神经网络和/或所述第三神经网络包括递归神经网络;并且/ 或者
所述第二神经网络和/或所述第三神经网络包括长短期记忆网络。
根据本公开的实施例,所述输入代码序列初始为以起始标识代码结尾 的空序列;并且/或者
所述符合预设条件的预测代码序列为包括末尾标识代码的预测代码 序列。
根据本公开的实施例,所述预测代码序列包括预测得到的一个或多个 代码;并且/或者
所述至少根据所述预测代码序列生成与所述一幅或多幅待处理GUI 图像相对应的DSL代码,包括将针对所述一幅或多幅待处理GUI图像生 成的至少一个预测代码序列依次连接形成所述与所述一幅或多幅待处理 GUI图像相对应的DSL代码。
根据本公开的实施例,所述多幅训练GUI图像包括彼此关联的多幅 GUI图像;并且/或者
所述多幅待处理GUI图像包括彼此关联的多幅GUI图像;并且/或者
所述训练GUI图像和/或所述待处理GUI图像包括至少一个对象,所 述与所述一幅或多幅待处理GUI图像相对应的DSL代码描述所述待处理 GUI图像的至少一个对象的以下至少一个特征:位置、种类、外观属性、 与其他对象的关系。
图7示出适于用来实现根据本公开实施例的自动生成代码方法的计算 机系统的结构示意图。
如图7所示,计算机系统700包括中央处理单元(CPU)701,其可 以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载 到随机访问存储器(RAM)703中的程序而执行上述实施例中的各种处理。 在RAM 703中,还存储有系统700操作所需的各种程序和数据。CPU 701、 ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口 705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包 括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出 部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调 器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络 执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱 动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分 708。
特别地,根据本公开的实施例,上文描述的方法可以被实现为计算机 软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形 地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行上 述对象类别确定方法的程序代码。在这样的实施例中,该计算机程序可以 通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法 和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程 图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述 模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的 可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功 能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依 所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及 框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的 基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元或模块可以通过软件的方式 实现,也可以通过可编程硬件的方式来实现。所描述的单元或模块也可以 设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元 或模块本身的限定。
作为另一方面,本公开还提供了一种可读存储介质,该可读存储介质 可以是上述实施例中所述装置中所包含的可读存储介质;也可以是单独存 在,未装配入设备中的可读存储介质。可读存储介质存储有一个或者一个 以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开 的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本 领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术 特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的 情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方 案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特 征进行互相替换而形成的技术方案。

Claims (10)

1.一种自动生成代码的方法,其特征在于,包括:
获取训练数据,所述训练数据包括一幅或多幅训练GUI图像和与所述一幅或多幅训练GUI图像相对应的训练DSL代码;
基于所述训练数据来训练预测模型;
使用训练后的预测模型处理一幅或多幅待处理GUI图像,得到与所述一幅或多幅待处理GUI图像相对应的DSL代码。
2.根据权利要求1所述的方法,其特征在于:
所述训练DSL代码包括通过滑动窗口划分与所述训练GUI图像相对应的DSL代码序列得到的多个DSL代码片段。
3.根据权利要求1所述的方法,其特征在于,所述使用训练后的预测模型处理一幅或多幅待处理GUI图像,得到与所述一幅或多幅待处理GUI图像相对应的DSL代码,包括:
对所述一幅或多幅待处理GUI图像进行编码,获得图像编码;
初始化输入代码序列;
对输入代码序列进行编码,获得中间代码编码;
通过预测模型基于所述图像编码和所述中间代码编码的组合进行预测,获得预测代码序列;
使用所述预测代码序列更新所述输入代码序列,重复所述获得中间代码编码和获得所述预测代码序列的步骤,直到获得符合预设条件的预测代码序列;
至少根据所述预测代码序列生成与所述一幅或多幅待处理GUI图像相对应的DSL代码。
4.根据权利要求3所述的方法,其特征在于:
所述对一幅或多幅待处理GUI图像进行编码包括通过第一神经网络对所述一幅或多幅待处理GUI图像进行编码;并且/或者
所述对输入代码序列进行编码包括通过第二神经网络对所述输入代码序列进行编码;并且/或者
所述预测模型包括第三神经网络。
5.根据权利要求4所述的方法,其特征在于:
所述第一神经网络包括卷积神经网络;并且/或者
所述第二神经网络和/或所述第三神经网络包括递归神经网络;并且/或者
所述第二神经网络和/或所述第三神经网络包括长短期记忆网络。
6.根据权利要求2所述的方法,其特征在于:
所述输入代码序列初始为以起始标识代码结尾的空序列;并且/或者
所述符合预设条件的预测代码序列为包括末尾标识代码的预测代码序列。
7.根据权利要求1所述的方法,其特征在于:
所述预测代码序列包括预测得到的一个或多个代码;并且/或者
所述至少根据所述预测代码序列生成与所述一幅或多幅待处理GUI图像相对应的DSL代码,包括将针对所述一幅或多幅待处理GUI图像生成的至少一个预测代码序列依次连接形成所述与所述一幅或多幅待处理GUI图像相对应的DSL代码。
8.一种自动生成代码的装置,其特征在于,包括:
获取模块,被配置为获取训练数据,所述训练数据包括一幅或多幅训练GUI图像和与所述一幅或多幅训练GUI图像相对应的训练DSL代码;
训练模块,被配置为基于所述训练数据来训练预测模型;
处理模块,被配置为使用训练后的预测模型处理一幅或多幅待处理GUI图像,得到与所述一幅或多幅待处理GUI图像相对应的DSL代码。
9.一种电子设备,其特征在于,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现权利要求1-7任一项所述的方法步骤。
10.一种可读存储介质,其上存储有计算机指令,其特征在于,该计算机指令被处理器执行时实现权利要求1-7任一项所述的方法步骤。
CN201910267402.0A 2019-04-03 2019-04-03 自动生成代码的方法、装置、电子设备及可读存储介质 Active CN110018827B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910267402.0A CN110018827B (zh) 2019-04-03 2019-04-03 自动生成代码的方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910267402.0A CN110018827B (zh) 2019-04-03 2019-04-03 自动生成代码的方法、装置、电子设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN110018827A true CN110018827A (zh) 2019-07-16
CN110018827B CN110018827B (zh) 2020-10-30

Family

ID=67190507

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910267402.0A Active CN110018827B (zh) 2019-04-03 2019-04-03 自动生成代码的方法、装置、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN110018827B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110502236A (zh) * 2019-08-07 2019-11-26 山东师范大学 基于多尺度特征解码的前端代码生成方法、系统及设备
CN110968299A (zh) * 2019-11-20 2020-04-07 北京工业大学 一种基于手绘网页图像的前端工程化代码生成方法
CN111190600A (zh) * 2019-12-31 2020-05-22 中国银行股份有限公司 基于gru注意力模型的前端代码自动生成的方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160350136A1 (en) * 2015-05-27 2016-12-01 Google Inc. Assist layer with automated extraction
CN109298820A (zh) * 2018-10-09 2019-02-01 平安科技(深圳)有限公司 交互设计工具文件生成方法、装置、电子设备及存储介质
CN109408058A (zh) * 2018-10-31 2019-03-01 北京影谱科技股份有限公司 基于机器学习的前端辅助开发方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160350136A1 (en) * 2015-05-27 2016-12-01 Google Inc. Assist layer with automated extraction
CN109298820A (zh) * 2018-10-09 2019-02-01 平安科技(深圳)有限公司 交互设计工具文件生成方法、装置、电子设备及存储介质
CN109408058A (zh) * 2018-10-31 2019-03-01 北京影谱科技股份有限公司 基于机器学习的前端辅助开发方法和装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110502236A (zh) * 2019-08-07 2019-11-26 山东师范大学 基于多尺度特征解码的前端代码生成方法、系统及设备
CN110968299A (zh) * 2019-11-20 2020-04-07 北京工业大学 一种基于手绘网页图像的前端工程化代码生成方法
CN111190600A (zh) * 2019-12-31 2020-05-22 中国银行股份有限公司 基于gru注意力模型的前端代码自动生成的方法及系统
CN111190600B (zh) * 2019-12-31 2023-09-19 中国银行股份有限公司 基于gru注意力模型的前端代码自动生成的方法及系统

Also Published As

Publication number Publication date
CN110018827B (zh) 2020-10-30

Similar Documents

Publication Publication Date Title
Baddeley et al. Spatial point patterns: methodology and applications with R
CN109313719B (zh) 使用神经网络生成文本段的依存性解析
US9652441B2 (en) System and method for creation of templates
CN106502896B (zh) 一种函数测试代码的生成方法及装置
Kennard et al. Towards a general purpose architecture for UI generation
US11194884B2 (en) Method for facilitating identification of navigation regions in a web page based on document object model analysis
CN110018827A (zh) 自动生成代码的方法、装置、电子设备及可读存储介质
CN107291476A (zh) Canvas代码生成方法、装置、电子设备及存储介质
JP2005259039A (ja) 表示制御情報生成方法、表示制御情報を生成するコンピュータ、およびプログラム
CN105743736B (zh) 自动化测试方法及系统
US20170212928A1 (en) Cognitive decision making based on dynamic model composition
CN104572577B (zh) 数学公式处理方法及装置
Pimpler Programming ArcGIS with Python Cookbook
Sheriyev et al. Intelligence system for supporting human-computer interaction engineering processes
CN104081347A (zh) 运算次序的图形表示
CN109101520A (zh) 一种电子手册和电子手册的显示方法
CN104346174B (zh) 一种在线矢量图建模过程的描述与重现方法
KR101638511B1 (ko) 온라인 학습 콘텐츠 저작을 위한 프로그램이 기록된 컴퓨터 판독 가능한 매체 및 온라인 학습 콘텐츠 저작 방법
Roeder Juxta web service, lera, and variance viewer. web based collation tools for tei
CN108932225A (zh) 用于将自然语言需求转换成为语义建模语言语句的方法和系统
Rocha Silva et al. Ensuring the consistency between user requirements and GUI prototypes: A behavior-based automated approach
CA2738422C (en) Examining concurrent system states
CN107102748A (zh) 用于输入字词的方法和输入法
US11605006B2 (en) Deep-learning model catalog creation
CN106537372A (zh) 用于增强的文档生产率的实体识别

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
GR01 Patent grant
GR01 Patent grant