CN117667185A - 实体关系处理方法、装置、计算机设备和存储介质 - Google Patents
实体关系处理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN117667185A CN117667185A CN202211005179.0A CN202211005179A CN117667185A CN 117667185 A CN117667185 A CN 117667185A CN 202211005179 A CN202211005179 A CN 202211005179A CN 117667185 A CN117667185 A CN 117667185A
- Authority
- CN
- China
- Prior art keywords
- entity
- target
- initial
- software
- training
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title description 19
- 238000010586 diagram Methods 0.000 claims abstract description 239
- 238000012549 training Methods 0.000 claims abstract description 162
- 238000000605 extraction Methods 0.000 claims abstract description 113
- 238000012937 correction Methods 0.000 claims abstract description 57
- 238000000034 method Methods 0.000 claims abstract description 47
- 238000012545 processing Methods 0.000 claims abstract description 34
- 238000004590 computer program Methods 0.000 claims abstract description 28
- 239000013598 vector Substances 0.000 claims description 40
- 230000008569 process Effects 0.000 claims description 9
- 239000010410 layer Substances 0.000 description 51
- 230000006870 function Effects 0.000 description 17
- 210000002569 neuron Anatomy 0.000 description 16
- 230000002776 aggregation Effects 0.000 description 12
- 238000004220 aggregation Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 9
- 239000011159 matrix material Substances 0.000 description 8
- 230000004913 activation Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 239000000284 extract Substances 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000001212 derivatisation Methods 0.000 description 4
- 239000002356 single layer Substances 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000009795 derivation Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000005284 excitation Effects 0.000 description 2
- 238000011478 gradient descent method Methods 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本申请涉及一种实体关系处理方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:获取待开发软件对应的初始软件建模图;初始软件建模图包含待开发软件涉及的多个领域实体之间的连接信息;对初始软件建模图进行实体关系提取得到初始软件建模图对应的初始实体关系集合;将初始实体关系集合输入目标实体关系提取模型进行实体关系修正得到初始软件建模图对应的目标实体关系集合;目标实体关系提取模型是基于训练软件建模图对应的训练实体关系集合和标签实体关系集合训练得到的,训练实体关系集合是对训练软件建模图进行实体关系提取得到的,目标实体关系集合用于辅助生成待开发软件对应的目标软件代码。采用本方法能提高代码生成效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种实体关系处理方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着计算机技术的发展,出现了领域模型,领域模型是对领域内的概念类或现实世界中对象的可视化表示。领域模型可以通过UML图(Unified Modeling Language,统一建模语言)来表示。UML图是以面向对象图的方式来描述软件系统。
传统技术中,通常是先绘制UML图,然后直接基于UML图编写代码建立软件系统。然而,人为绘制的UML图可能存在冗余或者错误的关系,在编写代码时需要反复修改代码,从而导致代码生成效率低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高代码生成效率的实体关系处理方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
本申请提供了一种实体关系处理方法。所述方法包括:
获取待开发软件对应的初始软件建模图;所述初始软件建模图包含所述待开发软件涉及的多个领域实体之间的连接信息;
对所述初始软件建模图进行实体关系提取,得到所述初始软件建模图对应的初始实体关系集合;
将所述初始实体关系集合输入目标实体关系提取模型进行实体关系修正,得到所述初始软件建模图对应的目标实体关系集合;所述目标实体关系提取模型是基于训练软件建模图对应的训练实体关系集合和标签实体关系集合训练得到的,所述训练实体关系集合是对所述训练软件建模图进行实体关系提取得到的,所述目标实体关系集合用于辅助生成所述待开发软件对应的目标软件代码。
本申请还提供了一种实体关系处理装置。所述装置包括:
初始软件建模图获取模块,用于获取待开发软件对应的初始软件建模图;所述初始软件建模图包含所述待开发软件涉及的多个领域实体之间的连接信息;
实体关系提取模块,用于对所述初始软件建模图进行实体关系提取,得到所述初始软件建模图对应的初始实体关系集合;
实体关系修正模块,用于将所述初始实体关系集合输入目标实体关系提取模型进行实体关系修正,得到所述初始软件建模图对应的目标实体关系集合;所述目标实体关系提取模型是基于训练软件建模图对应的训练实体关系集合和标签实体关系集合训练得到的,所述训练实体关系集合是对所述训练软件建模图进行实体关系提取得到的,所述目标实体关系集合用于辅助生成所述待开发软件对应的目标软件代码。
在一个实施例中,实体关系提取模块还用于从所述初始软件建模图对应的各个领域实体中确定当前实体;基于当前实体和对应的直接相邻实体之间的连接信息,确定由当前实体和直接相邻实体组成的实体对所对应的初始实体关系,基于当前实体和对应的间接相邻实体之间的连接信息,确定由当前实体和间接相邻实体组成的实体对所对应的初始实体关系;获取下一领域实体作为当前实体,返回所述基于当前实体和对应的直接相邻实体之间的连接信息,确定由当前实体和直接相邻实体组成的实体对所对应的初始实体关系,基于当前实体和对应的间接相邻实体之间的连接信息,确定由当前实体和间接相邻实体组成的实体对所对应的初始实体关系的步骤执行,直至遍历最后一个领域实体,得到各个实体对分别对应的初始实体关系;基于所述各个实体对分别对应的初始实体关系,得到所述初始实体关系集合。
在一个实施例中,连接信息包括连接类型和数量信息,目标相邻实体为当前实体对应的直接相邻实体或间接相邻实体。实体关系提取模块还用于将由当前实体和目标相邻实体组成的实体对作为初始实体对;基于当前实体和目标相邻实体之间的连接类型,确定初始实体对所对应的关联关系;基于当前实体和目标相邻实体之间的数量信息,确定初始实体对所对应的数量关系;基于初始实体对所对应的关联关系和数量关系,确定初始实体对所对应的初始实体关系。在一个实施例中,实体关系修正模块还用于将所述初始实体关系集合中的各个初始实体关系输入所述目标实体关系提取模型,得到各个初始实体关系对应的修正向量;所述修正向量包括实体对之间的多种候选关系分别对应的出现概率;基于同一种候选关系对应的出现概率和概率阈值确定初始实体关系对应的目标实体关系;基于所述各个初始实体关系分别对应的目标实体关系,得到所述目标实体关系集合。
在一个实施例中,实体关系处理装置还包括;
模型训练模块,用于获取训练集;所述训练集包括多个训练软件建模图对应的训练实体关系集合和标签实体关系集合;将所述训练集中的各个初始实体关系集合输入初始实体关系提取模型进行实体关系修正,得到各个训练软件建模图分别对应的预测实体关系集合;基于同一训练软件建模图对应的预测实体关系集合和标签实体关系集合之间的差异生成训练损失,基于所述训练损失调整所述初始实体关系提取模型的模型参数,直至满足收敛条件,得到所述目标实体关系提取模型。
在一个实施例中,模型训练模块还用于对所述训练软件建模图进行实体关系提取,得到所述训练软件建模图对应的候选实体关系集合;对所述候选实体关系集合进行实体整理,得到所述训练软件建模图对应的训练实体关系集合;获取所述训练软件建模图对应的目标实体关系集合作为标签实体关系集合;基于所述训练软件建模图对应的训练实体关系集合和标签实体关系集合,得到所述训练集。
在一个实施例中,实体关系处理装置还包括;
目标代码模板生成模块,用于基于所述目标实体关系集合生成所述待开发软件对应的目标代码模板集合;所述目标代码模板集合中的目标代码模板和所述目标实体关系集合中的目标实体关系一一对应;
目标软件代码生成模块,用于基于所述目标代码模板集合生成所述待开发软件对应的目标软件代码。
在一个实施例中,目标代码模板生成模块还用于从所述目标实体关系集合中确定当前实体关系;获取当前实体关系中的关联关系所对应的预设代码模板作为当前代码模板,基于当前实体关系中的其他关系对当前代码模板进行填充,得到当前实体关系对应的目标代码模板;从所述目标实体关系集合中获取下一目标实体关系作为当前实体关系,返回所述获取当前实体关系中的关联关系所对应的预设代码模板作为当前代码模板的步骤执行,直至得到各个目标实体关系分别对应的目标代码模板;基于各个目标代码模板得到所述目标代码模板集合。
在一个实施例中,目标软件代码生成模块还用于从所述目标代码模板集合对应的各个目标实体对中确定当前实体对;将当前实体对所对应的目标代码模板作为当前代码模板,将当前实体对所对应的实体信息填充至当前代码模板中,得到当前实体对所对应的目标代码;从所述目标代码模板集合中获取下一目标实体对作为当前实体对,返回所述将当前实体对所对应的目标代码模板作为当前代码模板的步骤执行,直至得到各个目标实体对分别对应的目标代码;基于各个目标代码得到所述目标软件代码。
在一个实施例中,实体关系处理装置还包括;
目标软件建模图生成模块,用于基于所述目标实体关系集合生成所述待开发软件对应的目标软件建模图;将所述目标软件建模图和所述目标软件代码进行关联存储。
在一个实施例中,所述训练软件建模图为已开发软件对应的初始软件建模图,所述标签实体关系集合是基于已开发软件对应的软件代码确定的。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述实体关系处理方法所述的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述实体关系处理方法所述的步骤。
一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述实体关系处理方法所述的步骤。
上述实体关系处理方法、装置、计算机设备、存储介质和计算机程序产品,获取待开发软件对应的初始软件建模图;初始软件建模图包含待开发软件涉及的多个领域实体之间的连接信息;对初始软件建模图进行实体关系提取,得到初始软件建模图对应的初始实体关系集合;将初始实体关系集合输入目标实体关系提取模型进行实体关系修正,得到初始软件建模图对应的目标实体关系集合;目标实体关系提取模型是基于训练软件建模图对应的训练实体关系集合和标签实体关系集合训练得到的,训练实体关系集合是对训练软件建模图进行实体关系提取得到的,目标实体关系集合用于辅助生成待开发软件对应的目标软件代码。这样,目标实体关系提取模型是通过已知软件建模图对应的初始实体关系集合和最优实体关系集合训练得到的,通过训练得到的目标实体关系提取模型可以去除冗余和错误的实体关系,提取到更优异的实体关系。因此,将从待开发软件对应的初始软件建模图中提取到的初始实体关系集合输入目标实体关系提取模型,可以通过目标实体关系提取模型对初始实体关系集合进行实体关系修正,得到质量更高的目标实体关系集合,后续基于目标实体关系集合可以快速生成待开发软件对应的目标软件代码,有效提高代码生成效率。
附图说明
图1为一个实施例中实体关系处理方法的应用环境图;
图2为一个实施例中实体关系处理方法的流程示意图;
图3为一个实施例中对初始软件建模图进行实体关系提取的流程示意图;
图4为一个实施例中初始软件建模图的示意图;
图5A为一个实施例中单个实体关系神经元的结构示意图;
图5B为一个实施例中实体关系提取模型的结构示意图;
图5C为一个实施例中模型内的神经元之间进行数据交互的示意图;
图6为一个实施例中生成目标软件代码的流程示意图;
图7为一个实施例中实体关系处理装置的结构框图;
图8为另一个实施例中实体关系处理装置的结构框图;
图9为一个实施例中计算机设备的内部结构图;
图10为另一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本发明实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。
本申请实施例提供的实体关系处理方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他服务器上。其中,终端102可以但不限于是各种台式计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群或者云服务器来实现。
终端和服务器均可单独用于执行本申请实施例中提供的实体关系处理方法。
例如,服务器获取待开发软件对应的初始软件建模图,初始软件建模图包含待开发软件涉及的多个领域实体之间的连接信息,对初始软件建模图进行实体关系提取,得到初始软件建模图对应的初始实体关系集合。服务器将初始实体关系集合输入目标实体关系提取模型进行实体关系修正,得到初始软件建模图对应的目标实体关系集合,目标实体关系提取模型是基于训练软件建模图对应的训练实体关系集合和标签实体关系集合训练得到的,训练实体关系集合是对训练软件建模图进行实体关系提取得到的。目标实体关系集合用于辅助生成待开发软件对应的目标软件代码。
终端和服务器也可协同用于执行本申请实施例中提供的实体关系处理方法。
例如,服务器从终端获取待开发软件对应的初始软件建模图,初始软件建模图包含待开发软件涉及的多个领域实体之间的连接信息。服务器对初始软件建模图进行实体关系提取,得到初始软件建模图对应的初始实体关系集合,服务器将初始实体关系集合输入目标实体关系提取模型进行实体关系修正,得到初始软件建模图对应的目标实体关系集合,目标实体关系提取模型是基于训练软件建模图对应的训练实体关系集合和标签实体关系集合训练得到的,训练实体关系集合是对训练软件建模图进行实体关系提取得到的。服务器将目标实体关系集合发送至终端,终端将目标实体关系集合进行展示。目标实体关系集合用于辅助生成待开发软件对应的目标软件代码。
在一个实施例中,如图2所示,提供了一种实体关系处理方法,以该方法应用于计算机设备来举例说明,该计算机设备可以是上述图1中的终端102或服务器104。参考图2,实体关系处理方法包括以下步骤:
步骤S202,获取待开发软件对应的初始软件建模图;初始软件建模图包含待开发软件涉及的多个领域实体之间的连接信息。
其中,待开发软件是指待构造、待编写的软件。软件建模图是在软件开发初期绘制的建模图,软件建模图是对软件系统可视化建模的图片。软件建模图具体可以是UML图,例如,软件建模图可以是UML图中的类图、序列图等。初始软件建模图是指待开发软件对应的、初始的软件建模图。初始软件建模图可以是开发人员根据待开发软件的有关需求绘制的软件建模图。
初始软件建模图包含待开发软件涉及的多个领域实体之间的连接信息。领域实体是指领域驱动设计(Domain Driven Design,简称为DDD)中对领域内的概念进行表示的实体,是指领域模型中的领域对象。可以理解,待开发软件存在对应的业务场景,领域实体用于表示业务场景中可以定义的事物或概念。例如,针对一个电梯系统,涉及的领域实体可以包括电梯、控制器、人等。可以理解,领域实体可以用于表示有形或无形的对象。
软件建模图是图像,在软件建模图中,通过连接相应的领域实体来表达领域实体之间的关系,因此,初始软件建模图包含待开发软件涉及的多个领域实体之间的连接信息,连接信息可以反映领域实体之间的关系。
具体地,计算机设备可以在本地或从其他设备上获取待开发软件对应的初始软件建模图,以开发人员针对待开发软件绘制的初始软件建模图为基础,借助深度学习模型提取出针对待开发软件来说更加优异的实体关系,基于更加优异的实体关系可以快速建立待开发软件对应的软件代码,从而有效节约软件开发时间、成本。
步骤S204,对初始软件建模图进行实体关系提取,得到初始软件建模图对应的初始实体关系集合。
其中,实体关系提取是指从软件建模图中提取出领域实体之间的、初始的实体关系。初始实体关系包括实体间的关联关系、实体间的数量关系、实体的衍生状态等基础的关系数据。初始实体关系集合是由多个初始实体关系组成的集合。
具体地,在获取到初始软件建模图后,计算机设备可以对初始软件建模图进行实体关系提取,基于初始软件建模图中领域实体之间的连接信息提取出领域实体之间的初始实体关系,最终得到初始软件建模图对应的初始实体关系集合。
在一个实施例中,可以将初始软件建模图在终端进行展示,相关人员可以基于展示的初始软件建模图在界面上录入人为提取出的初始实体关系,将录入的各个初始实体关系组成初始实体关系集合。在一个实施例中,也可以基于初始软件建模图的图像特征自动从初始软件建模图中提取得到初始实体关系集合。
步骤S206,将初始实体关系集合输入目标实体关系提取模型进行实体关系修正,得到初始软件建模图对应的目标实体关系集合;目标实体关系提取模型是基于训练软件建模图对应的训练实体关系集合和标签实体关系集合训练得到的,训练实体关系集合是对训练软件建模图进行实体关系提取得到的,目标实体关系集合用于辅助生成待开发软件对应的目标软件代码。
其中,目标实体关系提取模型是指训练完成的、已训练的实体关系提取模型。实体关系提取模型的输入数据为初始实体关系,输出数据为目标实体关系。实体关系提取模型的作用是对初始实体关系进行实体关系修正得到目标实体关系。实体关系修正用于去除冗余和错误的实体关系,得到更优异、更简单、更准确的实体关系。
训练软件建模图是指用于作为模型训练数据的软件建模图。对训练软件建模图进行实体关系提取可以得到训练实体关系集合,也就是,训练实体关系集合可以认为是训练软件建模图对应的初始实体关系集合。标签实体关系集合是训练数据对应的训练标签,标签实体关系集合是训练软件建模图对应的最优实体关系集合,也就是,标签实体关系集合可以认为是训练软件建模图对应的目标实体关系集合。标签实体关系集合可以是人为标注的最优实体关系集合。
目标实体关系集合是由多个目标实体关系组成的集合。目标软件代码是指待开发软件对应的软件代码。
具体地,实体关系集合可以用于辅助生成待开发软件对应的软件代码,但是从人为绘制的初始软件建模图中直接提取得到的初始实体关系并非最简单最真实的实体关系,人为绘制的初始软件建模图容易引入不必要的概念和关系,可能存在冗余或者错误的实体关系,因此,为了提高实体关系的质量,可以基于大量数据训练得到目标实体关系提取模型,基于目标实体关系提取模型对从初始软件建模图中提取到的初始实体关系集合进行实体关系修正,得到质量更好的目标实体关系集合。目标实体关系集合包括理论上更为真实与正确的实体关系,通过目标实体关系集合辅助生成待开发软件对应的软件代码,可以有效提高代码生成效率。
目标实体关系提取模型是基于训练软件建模图对应的训练实体关系集合和标签实体关系集合训练得到的,在训练过程中,通过学习训练软件建模图对应的最优实体关系集合的相关知识,不断缩小模型输入数据和预测数据之间的差异,使得最终训练得到的模型可以针对全新的软件建模图提取到理论上更为真实与正确的实体关系,提高抽取的实体关系的质量。
在一个实施例中,训练软件建模图为已开发软件对应的初始软件建模图,标签实体关系集合是基于已开发软件对应的软件代码确定的。
具体地,在构建模型的训练数据时,可以获取已开发软件对应的初始软件建模图作为训练软件建模图。可以理解,已开发软件是已经成功开发的软件,存在具体的软件代码,已开发软件对应的软件代码是经过一系列的编码、测试、修改确定的,已开发软件对应的软件代码中包含有真实与正确的实体关系,因此可以将基于已开发软件对应的软件代码确定的最优实体关系集合作为标签实体关系集合。标签实体关系集合可以是人为基于已开发软件对应的软件代码标注的最优实体关系组成的集合。这样,基于已开发软件对应的相关信息来确定模型对应的训练数据和训练标签,可以有效提高训练集的质量,从而在模型训练时可以使得模型学习到更优质的知识以提取到理论上更为真实与正确的实体关系。
在一个实施例中,在得到目标实体关系集合后,计算机设备可以将目标实体关系集合发送至开发人员对应的终端,以辅助开发人员快速编写待开发软件对应的目标软件代码。在得到目标实体关系集合后,计算机设备也可以基于目标实体关系集合通过相关算法自动生成待开发软件对应的目标软件代码。
上述实体关系处理方法中,获取待开发软件对应的初始软件建模图;初始软件建模图包含待开发软件涉及的多个领域实体之间的连接信息;对初始软件建模图进行实体关系提取,得到初始软件建模图对应的初始实体关系集合;将初始实体关系集合输入目标实体关系提取模型进行实体关系修正,得到初始软件建模图对应的目标实体关系集合;目标实体关系提取模型是基于训练软件建模图对应的训练实体关系集合和标签实体关系集合训练得到的,训练实体关系集合是对训练软件建模图进行实体关系提取得到的,目标实体关系集合用于辅助生成待开发软件对应的目标软件代码。这样,目标实体关系提取模型是通过已知软件建模图对应的初始实体关系集合和最优实体关系集合训练得到的,通过训练得到的目标实体关系提取模型可以去除冗余和错误的实体关系,提取到更优异的实体关系。因此,将从待开发软件对应的初始软件建模图中提取到的初始实体关系集合输入目标实体关系提取模型,可以通过目标实体关系提取模型对初始实体关系集合进行实体关系修正,得到质量更高的目标实体关系集合,后续基于目标实体关系集合可以快速生成待开发软件对应的软件代码,有效提高代码生成效率。
在一个实施例中,如图3所示,对初始软件建模图进行实体关系提取,得到初始软件建模图对应的初始实体关系集合,包括:
步骤S302,从初始软件建模图对应的各个领域实体中确定当前实体。
其中,当前实体是指当前处理的任意一个领域实体。
具体地,在进行实体关系提取时,计算机设备可以从初始软件建模图中自动提取出初始实体关系组成初始实体关系集合。计算机设备可以将初始软件建模图中直接相邻、直接连接的两个实体作为实体对,将初始软件建模图中间接相邻、间接连接的两个实体作为实体对,基于实体对中实体之间的连接信息确定实体对所对应的初始实体关系,最终基于各个实体对分别对应的初始实体关系组成初始实体关系集合。
为了遍历初始软件建模图中的所有初始实体关系,可以从初始软件建模图中获取任意一个领域实体作为当前实体,先挖掘出包含当前实体的各个实体对所对应的初始实体关系,再获取下一领域实体作为新的当前实体,挖掘出包含新的当前实体的各个实体对所对应的初始实体关系,以此类推,直至遍历初始软件建模图中的最后一个领域实体,得到各个实体对分别对应的初始实体关系。
步骤S304,基于当前实体和对应的直接相邻实体之间的连接信息,确定由当前实体和直接相邻实体组成的实体对所对应的初始实体关系,基于当前实体和对应的间接相邻实体之间的连接信息,确定由当前实体和间接相邻实体组成的实体对所对应的初始实体关系。
步骤S306,获取下一领域实体作为当前实体,返回基于当前实体和对应的直接相邻实体之间的连接信息,确定由当前实体和直接相邻实体组成的实体对所对应的初始实体关系,基于当前实体和对应的间接相邻实体之间的连接信息,确定由当前实体和间接相邻实体组成的实体对所对应的初始实体关系的步骤执行,直至遍历最后一个领域实体,得到各个实体对分别对应的初始实体关系。
其中,直接相邻实体是指与当前实体直接相邻、直接连接的领域实体。间接相邻实体是指与当前实体间接相邻、间接连接的领域实体。例如,软件建模图包括领域实体A、B、C、D,A与B直接连接,B与C直接连接,A与D直接连接,若A为当前实体,则B为A对应的直接相邻实体,D为A对应的直接相邻实体,C为A对应的间接相邻实体。
具体地,计算机设备可以从初始软件建模图中确定当前实体对应的直接相邻实体,将当前实体和直接相邻实体组成实体对,基于当前实体和对应的直接相邻实体之间的连接信息确定实体对所对应的初始实体关系。计算机设备可以从初始软件建模图中确定当前实体对应的间接相邻实体,将当前实体和间接相邻实体组成实体对,基于当前实体和对应的间接相邻实体之间的连接信息确定实体对所对应的初始实体关系。参考当前实体对应的直接相邻实体和间接相邻实体,计算机设备可以得到包含当前实体的各个实体对分别对应的初始实体关系。进而,计算机设备可以将初始软件建模图中的下一领域实体作为新的当前实体,参考同样的方式确定包含新的当前实体的各个实体对分别对应的初始实体关系,以此类推,直至确定包含最后一个领域实体的各个实体对分别对应的初始实体关系,最终计算机设备可以得到初始软件建模图中各个实体对分别对应的初始实体关系。
步骤S308,基于各个实体对分别对应的初始实体关系,得到初始实体关系集合。
具体地,计算机设备可以将从初始软件建模图中提取到的各个实体对分别对应的初始实体关系组成初始实体关系集合。
上述实施例中,从初始软件建模图对应的各个领域实体中确定当前实体;基于当前实体和对应的直接相邻实体之间的连接信息,确定由当前实体和直接相邻实体组成的实体对所对应的初始实体关系,基于当前实体和对应的间接相邻实体之间的连接信息,确定由当前实体和间接相邻实体组成的实体对所对应的初始实体关系;获取下一领域实体作为当前实体,返回基于当前实体和对应的直接相邻实体之间的连接信息,确定由当前实体和直接相邻实体组成的实体对所对应的初始实体关系,基于当前实体和对应的间接相邻实体之间的连接信息,确定由当前实体和间接相邻实体组成的实体对所对应的初始实体关系的步骤执行,直至遍历最后一个领域实体,得到各个实体对分别对应的初始实体关系;基于各个实体对分别对应的初始实体关系,得到初始实体关系集合。这样,基于实体和对应的直接相邻实体、实体和对应的间接相邻实体之间的连接信息来生成初始实体关系,可以快速得到初始实体关系。基于实体和对应的直接相邻实体或实体和对应的间接相邻实体生成的实体关系仅仅表达了最直接的实体关系,这样的实体关系有助于降低模型训练的训练难度,让模型学习到最直接的实体关系所蕴含的相关知识。
在一个实施例中,连接信息包括连接类型和数量信息,目标相邻实体为当前实体对应的直接相邻实体或间接相邻实体。
基于当前实体和对应的目标相邻实体之间的连接信息,确定由当前实体和目标相邻实体组成的实体对所对应的初始实体关系,包括:
将由当前实体和目标相邻实体组成的实体对作为初始实体对;基于当前实体和目标相邻实体之间的连接类型,确定初始实体对所对应的关联关系;基于当前实体和目标相邻实体之间的数量信息,确定初始实体对所对应的数量关系;基于初始实体对所对应的关联关系和数量关系,确定初始实体对所对应的初始实体关系。
其中,连接类型是指在软件建模图中领域实体之间的连线类型。可以理解,领域实体之间可以存在不同的关联关系,在软件建模图中不同的关联关系采用不同的连线类型来表示。例如,直线表示直接关联关系,直线加箭头连接表示单向关联关系;直线加四边形连接表示聚合关系;等等。
领域实体之间可以存在不同的数量关系,例如,一个人(实体为人)拥有N个身份(实体为身份),那么人与身份对应的数量关系就是1对多。在软件建模图中不同的数量关系采用不同的数量信息来表示。例如,领域实体之间的数量关系为1对多,则在软件建模图中领域实体之间的数量信息记录为1:*;领域实体之间的数量关系为1对1,则在软件建模图中领域实体之间的数量信息记录为1:1;等等。
具体地,软件建模图中的连接信息包括连接类型和数量信息,连接类型用于确定领域实体之间的关联关系,数量信息用于确定领域实体之间的数量关系。以目标相邻实体为例说明基于连接信息确定初始实体关系的过程,目标相邻实体为当前实体对应的直接相邻实体或间接相邻实体。将由当前实体和目标相邻实体组成的实体对作为初始实体对,先基于初始软件建模图判断当前实体和目标相邻实体之间的连接类型,再获取该连接类型对应的关联关系作为初始实体对所对应的关联关系。先基于初始软件建模图确定当前实体和目标相邻实体之间的数量信息,再基于数量信息确定初始实体对所对应的数量关系。最终,计算机设备将初始实体对所对应的关联关系和数量关系进行组合得到初始实体对所对应的初始实体关系。
在一个实施例中,初始实体关系还可以包括衍生状态,衍生状态用于表示实体对中的尾实体是否存在其他直接相邻实体。衍生状态包括有衍生和无衍生,有衍生表示实体对中的尾实体存在其他直接相邻实体,无衍生表示实体对中的尾实体没有其他直接相邻实体。
举例说明,如图4所示,为数据库访问系统对应的初始软件建模图的示意图,该初始软件建模图为UML图中的类图。数据库访问系统涉及的领域实体包括仓储类、kv表信息、路由键、字段、索引和索引类型。以仓储类为例,从UML图中提取得到的初始实体关系包括(仓储类,kv表信息,直接关联,1,1,有衍生)、(仓储类,路由键,间接关联,1,1,有衍生)、(仓储类,字段,间接关联,1,多,有衍生)。以kv表信息为例,从UML图中提取得到的初始实体关系包括(kv表信息,字段,直接关联,1,多,有衍生)、(kv表信息,路由键,直接关联,1,1,有衍生)、(kv表信息,索引,间接关联,1,多,有衍生)。在类图中,一个实体为一个类(Class),类封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。在类图中,一个实体用一个矩形来表示,矩形中的第一行用于指示实体的名称、类名,第二行用于指示实体的属性,第三行用于指示实体的操作,操作是类的任意一个实例对象都可以使用的行为,操作是类的成员方法。可以理解,图4仅为示意图。
上述实施例中,将由当前实体和目标相邻实体组成的实体对作为初始实体对;基于当前实体和目标相邻实体之间的连接类型,确定初始实体对所对应的关联关系;基于当前实体和目标相邻实体之间的数量信息,确定初始实体对所对应的数量关系;基于初始实体对所对应的关联关系和数量关系,确定初始实体对所对应的初始实体关系。这样,参考初始软件建模图的图像特征,基于初始软件建模图中相邻实体之间的连接信息可以快速生成初始实体关系。
在一个实施例中,将初始实体关系集合输入目标实体关系提取模型进行实体关系修正,得到初始软件建模图对应的目标实体关系集合,包括:
将初始实体关系集合中的各个初始实体关系输入目标实体关系提取模型,得到各个初始实体关系对应的修正向量;修正向量包括实体对之间的多种候选关系分别对应的出现概率;基于同一种候选关系对应的出现概率和概率阈值确定初始实体关系对应的目标实体关系;基于各个初始实体关系分别对应的目标实体关系,得到目标实体关系集合。
其中,实体之间可能存在各种关系,将实体之间可能存在的任意关系作为候选关系。可以理解,候选关系是有限的。修正向量包括各种候选关系分别对应的出现概率,出现概率是指相应的候选关系在实体关系中出现的概率。概率阈值是预设设置的阈值,概率阈值用于与出现概率进行比较来判断实体对之间是否存在相应的候选关系。例如,聚合关系对应的出现概率的取值范围为[0,1],0表示绝对不存在聚合关系,1表示绝对存在聚合关系,出现概率的数值越大,表示实体之间存在聚合关系的几率越大,若修正向量中聚合关系对应的出现概率大于概率阈值,则确定目标实体关系中存在聚合关系。可以理解,不同的候选关系对应的概率阈值可以相同可以不同。
具体地,在进行实体关系修正时,计算机设备可以将初始实体关系集合中的各个初始实体关系输入目标实体关系提取模型,经过模型内部的数据处理,得到各个初始实体关系分别对应的修正向量。针对任意的初始实体关系,其对应的修正向量包括各种候选关系分别对应的出现概率。可以预先设置各种实体关系分别对应的概率阈值,将实体关系对应的出现概率和相应的概率阈值进行比较,根据比较结果确定候选关系在目标实体关系中是否出现。例如,以聚合关系为例,假设出现概率越大表示聚合关系越存在,若聚合关系对应的出现概率大于概率阈值,则表明目标实体关系中应该包含聚合关系。最终,计算机设备基于各个初始实体关系分别对应的修正向量可以确定各个初始实体关系分别对应的目标实体关系,将各个目标实体关系组成目标实体关系集合。
在一个实施例中,实体关系提取模型包括输入层、隐含层和输出层。输入层的节点和输出层的节点一一对应。输入层包括多个节点,单个节点用于接收初始实体关系集合中单个实体对所对应的初始实体关系。输出层包括多个节点,单个节点用于输出相应初始实体关系所对应的修正向量。例如,实体关系提取模型的输入层和输出层均包括二十个节点,输入层中的第一个节点和输出层的第一个节点相对应,输入层中的第二个节点和输出层的第二个节点相对应,以此类推,输入层中的第二十个节点和输出层的第二十个节点相对应。若初始实体关系集合中第一个初始实体关系输入输入层中的第一个节点,则输出层的第一个节点用于输出该初始实体关系对应的修正向量,确定该初始实体关系对应的目标实体关系。
在一个实施例中,初始实体关系在输入模型时可以采用向量的形式进行表示,各个实体关系向量包括相同数量的元素。实体关系向量包括多个元素,一个元素对应一种候选实体关系。若初始实体关系中存在某一种实体关系,则对应的实体关系向量中相应元素的数值为1,若初始实体关系中不存在某一种实体关系,则对应的实体关系向量中相应元素的数值为0。
举例说明,实体关系向量包括11位元素,分别为2个实体位(表示实体对)、6个关联关系位(分别表示单向关联、泛化、组合、衍生、聚合和间接关联六种关联关系)、2个数量位(表示实体关系)和1个附加位(表示其他信息)。假设实体1和实体2对应的初始实体关系为实体1和实体2为单向关联,数量关系为1对1,其他信息为有衍生,则对应的实体关系向量为(entity1,entity2,1,0,0,0,0,0,1,1,1)。假设该初始实体关系对应的修正向量为(entity1,entity2,0.9,0,0.1,0,0.2,0.3,1,1,1),则最终对应的目标实体关系为实体1和实体2的关联关系推荐为单向关联,数量关系为1对1,有衍生。
上述实施例中,将初始实体关系集合中的各个初始实体关系输入目标实体关系提取模型,得到各个初始实体关系对应的修正向量;修正向量包括实体对之间的多种候选关系分别对应的出现概率;基于同一种候选关系对应的出现概率和概率阈值确定初始实体关系对应的目标实体关系;基于各个初始实体关系分别对应的目标实体关系,得到目标实体关系集合。这样,将初始实体关系集合输入目标实体关系提取模型,经过模型的数据处理,得到各个初始实体关系对应的修正向量,基于修正向量可以快速确定各个初始实体关系分别对应的目标实体关系。
在一个实施例中,目标实体关系提取模型的训练过程包括以下步骤:
获取训练集;训练集包括多个训练软件建模图对应的训练实体关系集合和标签实体关系集合;将训练集中的各个初始实体关系集合输入初始实体关系提取模型进行实体关系修正,得到各个训练软件建模图分别对应的预测实体关系集合;基于同一训练软件建模图对应的预测实体关系集合和标签实体关系集合之间的差异生成训练损失,基于训练损失调整初始实体关系提取模型的模型参数,直至满足收敛条件,得到目标实体关系提取模型。
其中,初始实体关系提取模型是指待训练的实体关系提取模型。
具体地,计算机设备可以采用有监督的训练方式来训练得到目标实体关系提取模型。计算机设备可以获取训练集,将训练集中各个训练软件建模图分别对应的初始实体关系集合输入初始实体关系提取模型进行实体关系修正,得到各个训练软件建模图分别对应的预测实体关系集合。预测实体关系集合是模型的预测数据,模型的训练目标是让预测数据和真实数据越接近越好,从而训练完成的模型可以预测出新的初始实体关系集合对应的最优实体关系集合。计算机设备可以基于同一训练软件建模图对应的预测实体关系集合和标签实体关系集合之间的差异生成训练损失,将训练损失进行反向传播来更新调整初始实体关系提取模型的模型参数,直至满足收敛条件,得到目标实体关系提取模型。
其中,收敛条件可以是训练损失小于预设损失、模型迭代次数大于预设迭代次数等中的至少一种。
计算机设备可以基于训练集生成多个训练子集,在每轮模型迭代训练时,基于训练子集调整模型参数,不同的训练迭代轮次采用不同的训练子集。计算机设备可以从各个训练子集中获取任意的训练子集作为当前子集,将当前子集中各个训练软件建模图分别对应的初始实体关系集合输入初始实体关系提取模型进行实体关系修正,得到各个训练软件建模图分别对应的预测实体关系集合,基于同一训练软件建模图对应的预测实体关系集合和标签实体关系集合之间的差异生成训练损失,基于训练损失调整初始实体关系提取模型的模型参数,得到中间实体关系提取模型。将中间实体关系提取模型作为新的初始实体关系提取模型,将下一训练子集作为新的当前子集,返回将当前子集中各个训练软件建模图分别对应的初始实体关系集合输入初始实体关系提取模型进行实体关系修正的步骤执行,直至满足收敛条件,得到目标实体关系提取模型。
在一个实施例中,实体关系提取模型为神经网络模型。实体关系提取模型包括输入层、隐含层和输出层。输入层、隐含层和输出层均包括多个实体关系神经元。单个神经元接受数据部分是一个典型的线性回归模型,神经元的反应主要通过激活函数来完成,在实体关系神经元中使用改良版的ReLu函数作为神经元的激活函数,其模式为:
将ReLu函数修改为带泄露的线性整流函数,让实体关系向量输出结果为负数的时候,能设置梯度为λ,其中λ是一个可以通过反向传播学习的变量。
参考图5A为单个实体关系神经元的神经元结构。以输入层为例,实体关系神经元的输入数据为初始实体关系向量,x1至xj分别表示初始实体关系向量中的各个元素,wi1至wij分别表示各个元素对应的权重系数,bi表示偏置,将各个元素进行加权求和,将加权求和结果加上偏置得到中间结果a,将中间结果a输入ReLu激活函数得到单个实体关系神经元的输出y,该输出用于输入至隐含层。
输入层的每个实体关系神经元都是从软件建模图中抽取的部分实体关系,隐含层的每个实体关系神经元都是对输入的初始实体关系向量不同角度的处理加工,提取输入向量的某一部分信息,然后这些信息会被用到分类任务中去,为最终的决策提供依据。
参考图5B,神经网络模型包括输入层、隐含层和输出层,隐含层可以包括多层,各层之间均为全连接。将实体关系输入层的各个神经元和隐含层中的神经元进行全连接,其中隐含层会进行正向计算以及对权重的计算。隐含层可以包括多层,单层的作用是对实体关系输入层输入至隐含层的数据做不同角度的处理,在单层隐含层的输出数据经过单层的激励函数处理后,会作为下一层隐含层的输入数据,以此类推,最后一层隐含层的输出数据经过单层的激励函数处理后,输入输出层。输出层对数据进行处理后得到预测数据。
神经网络通过前向计算逐层传递输出,最终得到预测数据,将预测数据和标签数据代入损失函数计算训练损失,采用梯度下降法将训练损失反向传播回传误差以调整模型参数(例如,调整权重参数,调整激活函数中的λ)。
参考图5C举例说明前向计算和反向传播的过程。针对前向计算,在每个连接过程中,来自前一层的信号被乘以一个权重,增加一个偏置,然后通过一个激活函数。X1、X2、X3表示输入层的实体关系神经元的输出数据。
[H11,H12,H13]=[X1,X2,X3]*W2+B2
H11=W(2)11*X1+W(2)21*X2+W(2)31*X3+B(2)1
H12=W(2)12*X1+W(2)22*X2+W(2)32*X3+B(2)2
H13=W(2)13*X1+W(2)23*X2+W(2)33*X3+B(2)3
其中,W2为权重矩阵,B2为偏置向量。W(2)11表示W2权重矩阵中(1,1)位置上的矩阵元素。W(2)21表示W2权重矩阵中(2,1)位置上的矩阵元素,以此类推。B(2)1表示B2偏置向量中第一个元素,B(2)2表示B2偏置向量中第一个元素,以此类推。
对[H11,H12,H13]执行调整过的ReLu函数可以得到[F(H11),F(H12),F(H13)]。F(H11)、F(H12)、F(H13)分别为隐含层神经元的输出数据。
[OUT1,OUT2,OUT3]=[F(H11),F(H12),F(H13)]*W3+B3,其中W3为权重矩阵。对[OUT1,OUT2,OUT3]执行调整过的ReLu函数可以得到[F(OUT1),F(OUT2),F(OUT3)],将[F(OUT1),F(OUT2),F(OUT3)]带入到损失函数即可计算训练损失Loss。
针对反向传播,基于训练损失Loss使用梯度下降法进行反向传播来更新权重参数和激活函数的λ。其中,loss(2)表示基于训练损失Loss确定的用于对W2权重矩阵进行调整的数据,loss(3)表示基于训练损失Loss确定的用于对W3权重矩阵进行调整的数据。
上述实施例中,获取训练集;训练集包括多个训练软件建模图对应的训练实体关系集合和标签实体关系集合;将训练集中的各个初始实体关系集合输入初始实体关系提取模型进行实体关系修正,得到各个训练软件建模图分别对应的预测实体关系集合;基于同一训练软件建模图对应的预测实体关系集合和标签实体关系集合之间的差异生成训练损失,基于训练损失调整初始实体关系提取模型的模型参数,直至满足收敛条件,得到目标实体关系提取模型。这样,基于训练集对初始实体关系提取模型进行有监督训练,能够快速训练得到目标实体关系提取模型。
在一个实施例中,获取训练集,包括:
对训练软件建模图进行实体关系提取,得到训练软件建模图对应的候选实体关系集合;对候选实体关系集合进行实体整理,得到训练软件建模图对应的训练实体关系集合;获取训练软件建模图对应的目标实体关系集合作为标签实体关系集合;基于训练软件建模图对应的训练实体关系集合和标签实体关系集合,得到训练集。
其中,实体整理用于对候选实体关系集合中的实体关系进行数据清洗、数据调整。
具体地,在获取训练集时,计算机设备可以获取训练软件建模图,对训练软件建模图进行实体关系提取,将实体关系的提取结果作为训练软件建模图对应的候选实体关系集合。为了提高模型训练数据的质量,计算机设备可以进一步对候选实体关系集合进行实体整理,避免候选实体关系集合中存在明显错误、重复的实体关系,将经过实体整体后的候选实体关系集合作为训练软件建模图对应的训练实体关系集合。针对训练标签,计算机设备可以获取训练软件建模图对应的目标实体关系集合作为标签实体关系集合,训练软件建模图对应的目标实体关系集合可以认为是训练软件建模图对应的最优实体关系集合。最终,计算机设备将各个训练软件建模图对应的训练实体关系集合和标签实体关系集合组成训练集。
在一个实施例中,在进行实体整理时,计算机设备可以判断训练软件建模图中是否存在重名实体,若存在重名实体,则对重名实体进行名称修改以区分不同的实体,并将修改结果同步更新至候选实体关系集合中。在进行实体整理时,计算机设备可以判断候选实体关系集合中是否存在明显错误的实体关系,若存在明显错误的实体关系,则对明显错误的实体关系进行修改。具体可以根据预先设定的规则来识别明显错误的实体关系并进行修改,例如,假设多个身份(实体为身份)对应一个人(实体为人)是非预期的,则需要修改为一个身份对应一个人(即从多对一的数量关系改为一对一的数量关系)。
上述实施例中,对训练软件建模图进行实体关系提取,得到训练软件建模图对应的候选实体关系集合;对候选实体关系集合进行实体整理,得到训练软件建模图对应的训练实体关系集合;获取训练软件建模图对应的目标实体关系集合作为标签实体关系集合;基于训练软件建模图对应的训练实体关系集合和标签实体关系集合,得到训练集。这样,经过实体整理得到的训练实体关系集合是参考价值更高的实体关系集合,将经过实体整理得到的训练实体关系集合作为模型的训练数据,有助于提高模型训练的训练质量。
在一个实施例中,如图6所示,实体关系处理方法还包括:
步骤S602,基于目标实体关系集合生成待开发软件对应的目标代码模板集合;目标代码模板集合中的目标代码模板和目标实体关系集合中的目标实体关系一一对应。
步骤S604,基于目标代码模板集合生成待开发软件对应的目标软件代码。
其中,目标代码模板集合是由多个目标代码模板组成的集合。目标代码模板集合中的目标代码模板和目标实体关系集合中的目标实体关系一一对应,也就是,目标代码模板集合包括目标实体关系集合中各个目标实体关系分别对应的目标代码模板,目标代码模板集合包括各个目标实体对分别对应的目标代码模板。目标实体对为目标实体关系对应的实体对。
目标代码模板是指目标实体关系对应的代码模板。代码模板是指结构化的代码语言,可以表示具有相同实体关系的一类实体对所对应的代码结构。代码模板用于填充实体对中各个实体的实体信息,以形成实体对专属的软件代码。
具体地,在得到目标实体关系集合后,计算机设备可以基于目标实体关系集合自动生成待开发软件对应的目标软件代码,进一步提高代码生成效率。计算机设备具体可以基于目标实体关系集合生成待开发软件对应的目标代码模板集合,基于目标实体关系集合中的目标实体关系生成目标实体关系对应的目标代码模板,将各个目标实体关系对应的目标代码模板组成目标代码模板集合。进而,计算机设备可以基于目标代码模板集合生成待开发软件对应的目标软件代码,将目标实体关系对应的目标实体对中各个领域实体的实体信息填充至相应的目标代码模板,将填充后的目标代码模板进行组合得到待开发软件对应的最终软件代码。
上述实施例中,通过基于目标实体关系集合生成待开发软件对应的目标代码模板集合;目标代码模板集合中的目标代码模板和目标实体关系集合中的目标实体关系一一对应;基于目标代码模板集合生成待开发软件对应的目标软件代码。这样,基于目标实体关系集合先建立目标代码模板集合,再基于目标代码模板集合生成目标软件代码,能够最大程度的自动化生成目标软件代码,进一步提高代码生成效率。
在一个实施例中,基于目标实体关系集合生成待开发软件对应的目标代码模板集合,包括:
从目标实体关系集合中确定当前实体关系;获取当前实体关系中的关联关系所对应的预设代码模板作为当前代码模板,基于当前实体关系中的其他关系对当前代码模板进行填充,得到当前实体关系对应的目标代码模板;从目标实体关系集合中获取下一目标实体关系作为当前实体关系,返回获取当前实体关系中的关联关系所对应的预设代码模板作为当前代码模板的步骤执行,直至得到各个目标实体关系分别对应的目标代码模板;基于各个目标代码模板得到目标代码模板集合。
其中,当前实体关系是指当前处理的目标实体关系。预设代码模板是指预先设置的代码模板,各种关联关系存在各自对应的预设代码模板,可以预先设置各种关联关系分别对应的代码模板。
具体地,在生成目标代码模板集合时,计算机设备可以先分别生成各个目标实体关系分别对应的目标代码模板,再将各个目标代码模板组成目标代码模板集合。
计算机设备可以从目标实体关系集合中随机选取一个目标实体关系作为当前实体关系,确定当前实体关系中包含的关联关系,获取当前实体关系中的关联关系所对应的预设代码模板作为当前代码模板,基于当前实体关系中的其他关系对当前代码模板进行填充,将填充后的当前代码模板作为当前实体关系对应的目标代码模板。计算机设备再从目标实体关系集合中获取下一目标实体关系作为新的当前实体关系,获取新的当前实体关系中的关联关系所对应的预设代码模板作为新的当前代码模板,基于新的当前实体关系中的其他关系对新的当前代码模板进行填充,得到新的当前实体关系对应的目标代码模板。以此类推,通过相同的方式确定各个目标实体关系分别对应的目标代码模板。最终,计算机设备将各个目标代码模板组成目标代码模板集合。
可以理解,可以对各个目标实体关系进行串行处理,串行生成各个目标代码模板;也可以对各个目标实体关系进行并行处理,同步生成各个目标代码模板。
在一个实施例中,目标实体关系包括目标实体对、目标实体对之间的关联关系和数量关系。目标实体对包括头实体和尾实体,头实体用于作为目标代码模板中的实例对象,尾实体用于作为目标代码模板中实例对象的组成部分。在对当前代码模板进行填充时,可以基于数量关系在当前代码模板中填充相应数量的尾实体得到目标代码模板。
上述实施例中,从目标实体关系集合中确定当前实体关系;获取当前实体关系中的关联关系所对应的预设代码模板作为当前代码模板,基于当前实体关系中的其他关系对当前代码模板进行填充,得到当前实体关系对应的目标代码模板;从目标实体关系集合中获取下一目标实体关系作为当前实体关系,返回获取当前实体关系中的关联关系所对应的预设代码模板作为当前代码模板的步骤执行,直至得到各个目标实体关系分别对应的目标代码模板;基于各个目标代码模板得到目标代码模板集合。这样,获取目标实体关系中的关联关系所对应的预设代码模板作为初始代码模板,基于目标实体关系中的其他关系对初始代码模板进行简单填充即可快速得到目标实体关系专属的目标代码模板。
在一个实施例中,基于目标代码模板集合生成待开发软件对应的目标软件代码,包括:
从目标代码模板集合对应的各个目标实体对中确定当前实体对;将当前实体对所对应的目标代码模板作为当前代码模板,将当前实体对所对应的实体信息填充至当前代码模板中,得到当前实体对所对应的目标代码;从目标代码模板集合中获取下一目标实体对作为当前实体对,返回将当前实体对所对应的目标代码模板作为当前代码模板的步骤执行,直至得到各个目标实体对分别对应的目标代码;基于各个目标代码得到目标软件代码。
其中,当前实体对所对应的实体信息包括当前实体对包含的各个领域实体对应的实体名称、实体属性、实体操作等信息。
具体地,在基于目标代码模板集合生成目标软件代码时,可以先生成各个目标代码模板对应的目标代码,再将各个目标代码进行组合得到目标软件代码。
计算机设备可以从目标代码模板集合对应的各个目标实体对中选取一个目标实体对作为当前实体对,将当前实体对所对应的目标代码模板作为当前代码模板,获取当前实体对包含的各个领域实体对应的实体信息,将当前实体对所对应的实体信息填充至当前代码模板中,从而得到当前实体对所对应的目标代码。同理,计算机设备可以从目标代码模板集合中获取下一个目标实体对作为新的当前实体对,重复上述步骤,得到新的当前实体对所对应的目标代码。以此类推,计算机设备可以得到各个目标实体对分别对应的目标代码。最终,计算机设备将各个目标代码进行组合得到目标软件代码。
可以理解,可以对各个目标代码模板进行串行处理,串行生成各个目标代码;也可以对各个目标代码模板进行并行处理,同步生成各个目标代码。
举例说明,模型的输入向量和输出向量包括2个实体位、6个关联关系位(单向关联,泛化,组合,衍生,聚合、间接关联)、2个数量位(用于表示数量关系)和1个附加位(用于表示是否有衍生)。
假设初始实体关系集合包括(仓储类,kv表信息,直接关联,1,1,有衍生)、(kv表信息,路由键,直接关联,1,1,有衍生)、(仓储类,路由键,间接关联,1,1,有衍生)、(kv表信息,字段,直接关联,1,多,有衍生)、(仓储类,字段,间接关联,1,多,有衍生)。
初始实体关系集合对应的实体关系向量包括(Repository,TableInfo,1,0,0,0,0,0,1,1,1)、(TableInfo,RouteKey,1,0,0,0,0,0,1,1,1)、(Repository,RouteKey,0,0,0,0,0,1,1,1,1)、(TableInfo,Field,1,0,0,0,0,0,1,7,1)、(Repository,Field,0,0,0,0,0,1,1,9,1)。可以理解,针对1对多的数量关系,在生成实体关系向量时可以随机初始化,也可以获取预设值作为初始值。经过模型处理得到的修正向量包括(Repository,TableInfo,0.9,0,0.1,0,0.2,0.3,1,1,1)、(TableInfo,RouteKey,0.2,0,0,0,0,0.1,1,2,1)、(Repository,RouteKey,0.3,0,0,0,0.4,0,1,5,1)、(TableInfo,Field,0.3,0,0.1,0.2,0.8,0,1,7,1)、(Repository,Field,0.9,0.1,0.2,0,0,0.41,1,1,1)。
基于(Repository,TableInfo,0.9,0,0.1,0,0.2,0.3,1,1,1)可以确定仓储类和kv表信息的关联关系为单向关联,数量关系1对1。
基于(TableInfo,RouteKey,0.2,0,0,0,0,0.1,1,2,1)可以确定kv表信息和路由键的关联关系为单向关联,数量关系为1对2。
基于(Repository,RouteKey,0.3,0,0,0,0.4,0,1,5,1)可以确定仓储类和路由键的关联关系为无关系。
基于(TableInfo,Field,1.3,0,0.5,0.2,0,0,1,7,1)可以确定kv表信息和字段的关联关系为聚合。
基于(Repository,Field,1.1,0.1,0.6,2.3,1.7,1,1,1)可以确定仓储类和字段的关联关系为单向关联,数量关系1对1。
第一实体对(仓储类和kv表信息)、第二实体对(kv表信息和路由键)、第四实体对(kv表信息和字段)、第五实体对(仓储类和字段)分别对应模板分别为:
第一实体对、第二实体对、第四实体对、第五实体对分别对应的目标代码为:
/>
进一步的,还可以将第一实体对和第五实体对分别对应的目标代码进行合并,合并后的目标代码为:
最后,基于各个目标代码可以得到目标软件代码。
在一个实施例中,可以在终端上展示各个目标代码,响应于作用于目标代码的组合操作,将各个目标代码进行组合得到目标软件代码。在自动生成目标代码后,可以向开发人员展示目标代码,开发人员可以在界面上进行相应操作来将各个目标代码进行组合得到最终的目标软件代码。可以理解,自动生成目标代码已经可以有效节约开发人员的编码工作,提高编码效率。
在一个实施例中,基于目标实体对所对应的目标代码可以生成类文件,得到多个类文件,多个类文件组成一个项目文件,获取项目文件所需的编译文件、配置文件、阅读文件等配置信息,将项目文件和配置信息进行打包得到目标软件代码。项目文件所需的配置信息可以是开发人员额外配置的,也可以是基于相关代码工具生成的。
上述实施例中,从目标代码模板集合对应的各个目标实体对中确定当前实体对;将当前实体对所对应的目标代码模板作为当前代码模板,将当前实体对所对应的实体信息填充至当前代码模板中,得到当前实体对所对应的目标代码;从目标代码模板集合中获取下一目标实体对作为当前实体对,返回将当前实体对所对应的目标代码模板作为当前代码模板的步骤执行,直至得到各个目标实体对分别对应的目标代码;基于各个目标代码得到目标软件代码。这样,将目标实体对所对应的实体信息填充至所对应的目标代码模板中,可以快速生成目标实体对所对应的目标代码,最终基于各个目标代码可以快速得到目标软件代码。
在一个实施例中,实体关系处理方法还包括:
基于目标实体关系集合生成待开发软件对应的目标软件建模图;将目标软件建模图和目标软件代码进行关联存储。
其中,目标软件建模图是指待开发软件对应的、最终的软件建模图。
具体地,在确定目标实体关系集合后,计算机设备可以基于目标实体关系集合生成待开发软件对应的目标软件建模图。目标软件建模图是待开发软件对应的、精简准确的软件建模图,目标软件建模图有助于让其他开发人员快速了解待开发软件对应的系统组成、系统结构。在完成待开发软件的软件开发后,计算机设备可以将目标软件建模图和目标软件代码进行关联存储。后续,其他开发人员在浏览待开发软件对应的目标软件代码时,可以通过查阅目标软件建模图来快速了解目标软件代码的代码结构。
上述实施例中,基于目标实体关系集合生成待开发软件对应的目标软件建模图;将目标软件建模图和目标软件代码进行关联存储。这样,基于目标实体关系集合生成的目标软件建模图是更加准确、简洁的软件建模图,目标软件建模图可以辅助开发人员快速了解相应软件的系统结构,快速理解相应软件对应的软件代码。
在一个具体的实施例中,本申请的实体关系处理方法可以应用于代码自动化生成项目中,最大程度地减少开发人员的工作,提高代码生成效率。本申请的实体关系处理方法包括以下步骤:
1、训练目标实体关系提取模型
1-1、构建训练集
获取基于UML知识构建的训练UML图,对训练UML图进行实体关系提取,对提取得到的实体关系集合进行数据清洗、调整得到训练数据(即训练实体关系集合),获取人为对训练UML图进行标注得到的最优实体关系集合作为训练标签(即标签实体关系集合)。基于多个训练UML图对应的训练数据和训练标签得到训练集。
1-2、有监督训练
基于训练集对初始实体关系提取模型进行有监督训练得到目标实体关系提取模型。
2、应用目标实体关系提取模型
获取待开发软件对应的初始UML图,从初始UML图中提取初始实体关系集合,将初始实体关系集合输入目标实体关系提取模型进行实体关系修正,得到目标实体关系集合。可以理解,直接从人为绘制的初始UML图中所提取的实体关系并非最简单最真实的实体关系,可能存在冗余或者错误的关系,人为绘制的初始UML图容易引入不必要的概念和关系,导致后续UML图的关系维护困难,此外,针对每个初始UML图都人为沟通讨论得到最优实体关系,存在沟通困难和维护门槛高的问题。然而,通过目标实体关系提取模型对初始实体关系集合进行实体关系修正,对于全新的、非绝对简洁和正确的UML图,可以借助模型强大的知识学习能力快速得到理论上更为真实与正确的实体关系,降低检验初始实体关系有效性的人力成本,提高抽取的实体关系的质量,提高实体关系处理的效率。
3、基于目标实体关系集合生成目标软件代码
3-1、基于目标实体关系集合生成目标代码模板集合
模板是格式化的实体关系与实体C++代码关系的映射,合理的模板在基于模板渲染领域类C++代码的时候能够提升生成的C++代码的质量。基于目标实体关系生成对应的目标代码模板,各个目标代码模板组成目标代码模板集合。
3-2、基于目标代码模板集合生成待开发软件对应的目标软件代码
基于目标代码模板生成相应的目标实体对所对应的目标代码,基于各个目标实体对分别对应的目标代码得到待开发软件对应的目标软件代码。
本实施例中,通过本申请的实体关系处理方法,可以帮助代码自动化生成项目,通过UML图直接拿到理论上更优异的实体关系,然后再用更优异的实体关系生成C++模板,进而生成C++代码。通过本申请的实体关系处理方法,可以帮助基于领域模型生成C++代码的代码自动化生成项目找到更为优质的实体关系,帮助整理代码结构,提高代码在可维护性、无冗余性等方面的优势。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的实体关系处理方法的实体关系处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个实体关系处理装置实施例中的具体限定可以参见上文中对于实体关系处理方法的限定,在此不再赘述。
在一个实施例中,如图7所示,提供了一种实体关系处理装置,包括:初始软件建模图获取模块702、实体关系提取模块704和实体关系修正模块706,其中:
初始软件建模图获取模块702,用于获取待开发软件对应的初始软件建模图;初始软件建模图包含待开发软件涉及的多个领域实体之间的连接信息。
实体关系提取模块704,用于对初始软件建模图进行实体关系提取,得到初始软件建模图对应的初始实体关系集合。
实体关系修正模块706,用于将初始实体关系集合输入目标实体关系提取模型进行实体关系修正,得到初始软件建模图对应的目标实体关系集合;目标实体关系提取模型是基于训练软件建模图对应的训练实体关系集合和标签实体关系集合训练得到的,训练实体关系集合是对训练软件建模图进行实体关系提取得到的,目标实体关系集合用于辅助生成待开发软件对应的目标软件代码。
上述实体关系处理装置,目标实体关系提取模型是通过已知软件建模图对应的初始实体关系集合和最优实体关系集合训练得到的,通过训练得到的目标实体关系提取模型可以去除冗余和错误的实体关系,提取到更优异的实体关系。因此,将从待开发软件对应的初始软件建模图中提取到的初始实体关系集合输入目标实体关系提取模型,可以通过目标实体关系提取模型对初始实体关系集合进行实体关系修正,得到质量更高的目标实体关系集合,后续基于目标实体关系集合可以快速生成待开发软件对应的目标软件代码,有效提高代码生成效率。
在一个实施例中,实体关系提取模块还用于:
从初始软件建模图对应的各个领域实体中确定当前实体;基于当前实体和对应的直接相邻实体之间的连接信息,确定由当前实体和直接相邻实体组成的实体对所对应的初始实体关系,基于当前实体和对应的间接相邻实体之间的连接信息,确定由当前实体和间接相邻实体组成的实体对所对应的初始实体关系;获取下一领域实体作为当前实体,返回基于当前实体和对应的直接相邻实体之间的连接信息,确定由当前实体和直接相邻实体组成的实体对所对应的初始实体关系,基于当前实体和对应的间接相邻实体之间的连接信息,确定由当前实体和间接相邻实体组成的实体对所对应的初始实体关系的步骤执行,直至遍历最后一个领域实体,得到各个实体对分别对应的初始实体关系;基于各个实体对分别对应的初始实体关系,得到初始实体关系集合。
在一个实施例中,连接信息包括连接类型和数量信息。实体关系提取模块还用于:
基于当前实体和对应的目标相邻实体之间的连接信息,确定由当前实体和目标相邻实体组成的实体对所对应的初始实体关系,包括:将由当前实体和目标相邻实体组成的实体对作为初始实体对;基于当前实体和目标相邻实体之间的连接类型,确定初始实体对所对应的关联关系;基于当前实体和目标相邻实体之间的数量信息,确定初始实体对所对应的数量关系;基于初始实体对所对应的关联关系和数量关系,确定初始实体对所对应的初始实体关系。
在一个实施例中,实体关系修正模块还用于:
将初始实体关系集合中的各个初始实体关系输入目标实体关系提取模型,得到各个初始实体关系对应的修正向量;修正向量包括实体对之间的多种候选关系分别对应的出现概率;基于同一种候选关系对应的出现概率和概率阈值确定初始实体关系对应的目标实体关系;基于各个初始实体关系分别对应的目标实体关系,得到目标实体关系集合。
在一个实施例中,如图8所示,实体关系处理装置还包括:
模型训练模块701,用于获取训练集;训练集包括多个训练软件建模图对应的训练实体关系集合和标签实体关系集合;将训练集中的各个初始实体关系集合输入初始实体关系提取模型进行实体关系修正,得到各个训练软件建模图分别对应的预测实体关系集合;基于同一训练软件建模图对应的预测实体关系集合和标签实体关系集合之间的差异生成训练损失,基于训练损失调整初始实体关系提取模型的模型参数,直至满足收敛条件,得到目标实体关系提取模型。
在一个实施例中,模型训练模块还用于:
对训练软件建模图进行实体关系提取,得到训练软件建模图对应的候选实体关系集合;对候选实体关系集合进行实体整理,得到训练软件建模图对应的训练实体关系集合;获取训练软件建模图对应的目标实体关系集合作为标签实体关系集合;基于训练软件建模图对应的训练实体关系集合和标签实体关系集合,得到训练集。
在一个实施例中,如图8所示,实体关系处理装置还包括:
目标代码模板生成模块707,用于基于目标实体关系集合生成待开发软件对应的目标代码模板集合;目标代码模板集合中的目标代码模板和目标实体关系集合中的目标实体关系一一对应。
目标软件代码生成模块708,用于基于目标代码模板集合生成待开发软件对应的目标软件代码。
在一个实施例中,目标代码模板生成模块还用于:
从目标实体关系集合中确定当前实体关系;获取当前实体关系中的关联关系所对应的预设代码模板作为当前代码模板,基于当前实体关系中的其他关系对当前代码模板进行填充,得到当前实体关系对应的目标代码模板;从目标实体关系集合中获取下一目标实体关系作为当前实体关系,返回获取当前实体关系中的关联关系所对应的预设代码模板作为当前代码模板的步骤执行,直至得到各个目标实体关系分别对应的目标代码模板;基于各个目标代码模板得到目标代码模板集合。
在一个实施例中,目标软件代码生成模块还用于:
从目标代码模板集合对应的各个目标实体对中确定当前实体对;将当前实体对所对应的目标代码模板作为当前代码模板,将当前实体对所对应的实体信息填充至当前代码模板中,得到当前实体对所对应的目标代码;从目标代码模板集合中获取下一目标实体对作为当前实体对,返回将当前实体对所对应的目标代码模板作为当前代码模板的步骤执行,直至得到各个目标实体对分别对应的目标代码;基于各个目标代码得到目标软件代码。
在一个实施例中,如图8所示,实体关系处理装置还包括:
目标软件建模图生成模块809,用于基于目标实体关系集合生成待开发软件对应的目标软件建模图;将目标软件建模图和目标软件代码进行关联存储。
在一个实施例中,训练软件建模图为已开发软件对应的初始软件建模图,标签实体关系集合是基于已开发软件对应的软件代码确定的。
上述实体关系处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储预设代码模板、目标软件建模图、目标软件代码等数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种实体关系处理方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图9所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种实体关系处理方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图8、9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (15)
1.一种实体关系处理方法,其特征在于,所述方法包括:
获取待开发软件对应的初始软件建模图;所述初始软件建模图包含所述待开发软件涉及的多个领域实体之间的连接信息;
对所述初始软件建模图进行实体关系提取,得到所述初始软件建模图对应的初始实体关系集合;
将所述初始实体关系集合输入目标实体关系提取模型进行实体关系修正,得到所述初始软件建模图对应的目标实体关系集合;所述目标实体关系提取模型是基于训练软件建模图对应的训练实体关系集合和标签实体关系集合训练得到的,所述训练实体关系集合是对所述训练软件建模图进行实体关系提取得到的,所述目标实体关系集合用于辅助生成所述待开发软件对应的目标软件代码。
2.根据权利要求1所述的方法,其特征在于,所述对所述初始软件建模图进行实体关系提取,得到所述初始软件建模图对应的初始实体关系集合,包括:
从所述初始软件建模图对应的各个领域实体中确定当前实体;
基于当前实体和对应的直接相邻实体之间的连接信息,确定由当前实体和直接相邻实体组成的实体对所对应的初始实体关系,基于当前实体和对应的间接相邻实体之间的连接信息,确定由当前实体和间接相邻实体组成的实体对所对应的初始实体关系;
获取下一领域实体作为当前实体,返回所述基于当前实体和对应的直接相邻实体之间的连接信息,确定由当前实体和直接相邻实体组成的实体对所对应的初始实体关系,基于当前实体和对应的间接相邻实体之间的连接信息,确定由当前实体和间接相邻实体组成的实体对所对应的初始实体关系的步骤执行,直至遍历最后一个领域实体,得到各个实体对分别对应的初始实体关系;
基于所述各个实体对分别对应的初始实体关系,得到所述初始实体关系集合。
3.根据权利要求2所述的方法,其特征在于,所述连接信息包括连接类型和数量信息,目标相邻实体为当前实体对应的直接相邻实体或间接相邻实体;
基于当前实体和对应的目标相邻实体之间的连接信息,确定由当前实体和目标相邻实体组成的实体对所对应的初始实体关系,包括:
将由当前实体和目标相邻实体组成的实体对作为初始实体对;
基于当前实体和目标相邻实体之间的连接类型,确定初始实体对所对应的关联关系;
基于当前实体和目标相邻实体之间的数量信息,确定初始实体对所对应的数量关系;
基于初始实体对所对应的关联关系和数量关系,确定初始实体对所对应的初始实体关系。
4.根据权利要求1所述的方法,其特征在于,所述将所述初始实体关系集合输入目标实体关系提取模型进行实体关系修正,得到所述初始软件建模图对应的目标实体关系集合,包括:
将所述初始实体关系集合中的各个初始实体关系输入所述目标实体关系提取模型,得到各个初始实体关系对应的修正向量;所述修正向量包括实体对之间的多种候选关系分别对应的出现概率;
基于同一种候选关系对应的出现概率和概率阈值确定初始实体关系对应的目标实体关系;
基于所述各个初始实体关系分别对应的目标实体关系,得到所述目标实体关系集合。
5.根据权利要求4所述的方法,其特征在于,所述目标实体关系提取模型的训练过程包括以下步骤:
获取训练集;所述训练集包括多个训练软件建模图对应的训练实体关系集合和标签实体关系集合;
将所述训练集中的各个初始实体关系集合输入初始实体关系提取模型进行实体关系修正,得到各个训练软件建模图分别对应的预测实体关系集合;
基于同一训练软件建模图对应的预测实体关系集合和标签实体关系集合之间的差异生成训练损失,基于所述训练损失调整所述初始实体关系提取模型的模型参数,直至满足收敛条件,得到所述目标实体关系提取模型。
6.根据权利要求5所述的方法,其特征在于,所述获取训练集,包括:
对所述训练软件建模图进行实体关系提取,得到所述训练软件建模图对应的候选实体关系集合;
对所述候选实体关系集合进行实体整理,得到所述训练软件建模图对应的训练实体关系集合;
获取所述训练软件建模图对应的目标实体关系集合作为标签实体关系集合;
基于所述训练软件建模图对应的训练实体关系集合和标签实体关系集合,得到所述训练集。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
基于所述目标实体关系集合生成所述待开发软件对应的目标代码模板集合;所述目标代码模板集合中的目标代码模板和所述目标实体关系集合中的目标实体关系一一对应;
基于所述目标代码模板集合生成所述待开发软件对应的目标软件代码。
8.根据权利要求7所述的方法,其特征在于,所述基于所述目标实体关系集合生成所述待开发软件对应的目标代码模板集合,包括:
从所述目标实体关系集合中确定当前实体关系;
获取当前实体关系中的关联关系所对应的预设代码模板作为当前代码模板,基于当前实体关系中的其他关系对当前代码模板进行填充,得到当前实体关系对应的目标代码模板;
从所述目标实体关系集合中获取下一目标实体关系作为当前实体关系,返回所述获取当前实体关系中的关联关系所对应的预设代码模板作为当前代码模板的步骤执行,直至得到各个目标实体关系分别对应的目标代码模板;
基于各个目标代码模板得到所述目标代码模板集合。
9.根据权利要求7所述的方法,其特征在于,所述基于所述目标代码模板集合生成所述待开发软件对应的目标软件代码,包括:
从所述目标代码模板集合对应的各个目标实体对中确定当前实体对;
将当前实体对所对应的目标代码模板作为当前代码模板,将当前实体对所对应的实体信息填充至当前代码模板中,得到当前实体对所对应的目标代码;
从所述目标代码模板集合中获取下一目标实体对作为当前实体对,返回所述将当前实体对所对应的目标代码模板作为当前代码模板的步骤执行,直至得到各个目标实体对分别对应的目标代码;
基于各个目标代码得到所述目标软件代码。
10.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
基于所述目标实体关系集合生成所述待开发软件对应的目标软件建模图;
将所述目标软件建模图和所述目标软件代码进行关联存储。
11.根据权利要求1至6任一项所述的方法,其特征在于,所述训练软件建模图为已开发软件对应的初始软件建模图,所述标签实体关系集合是基于已开发软件对应的软件代码确定的。
12.一种实体关系处理装置,其特征在于,所述装置包括:
初始软件建模图获取模块,用于获取待开发软件对应的初始软件建模图;所述初始软件建模图包含所述待开发软件涉及的多个领域实体之间的连接信息;
实体关系提取模块,用于对所述初始软件建模图进行实体关系提取,得到所述初始软件建模图对应的初始实体关系集合;
实体关系修正模块,用于将所述初始实体关系集合输入目标实体关系提取模型进行实体关系修正,得到所述初始软件建模图对应的目标实体关系集合;所述目标实体关系提取模型是基于训练软件建模图对应的训练实体关系集合和标签实体关系集合训练得到的,所述训练实体关系集合是对所述训练软件建模图进行实体关系提取得到的,所述目标实体关系集合用于辅助生成所述待开发软件对应的目标软件代码。
13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11中任一项所述的方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
15.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211005179.0A CN117667185A (zh) | 2022-08-22 | 2022-08-22 | 实体关系处理方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211005179.0A CN117667185A (zh) | 2022-08-22 | 2022-08-22 | 实体关系处理方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117667185A true CN117667185A (zh) | 2024-03-08 |
Family
ID=90070055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211005179.0A Pending CN117667185A (zh) | 2022-08-22 | 2022-08-22 | 实体关系处理方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117667185A (zh) |
-
2022
- 2022-08-22 CN CN202211005179.0A patent/CN117667185A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111310050B (zh) | 一种基于多层注意力的推荐方法 | |
CN107871014A (zh) | 一种基于深度融合哈希的大数据跨模态检索方法及系统 | |
CN112418292B (zh) | 一种图像质量评价的方法、装置、计算机设备及存储介质 | |
US11640634B2 (en) | Deep learning based visual compatibility prediction for bundle recommendations | |
CN111538868A (zh) | 知识追踪方法及习题推荐方法 | |
CN114722182A (zh) | 一种基于知识图谱的在线课推荐方法及系统 | |
CN116402352A (zh) | 一种企业风险预测方法、装置、电子设备及介质 | |
CN114417161B (zh) | 基于异构图的虚拟物品时序推荐方法、装置、介质及设备 | |
CN112529071A (zh) | 一种文本分类方法、系统、计算机设备和存储介质 | |
CN116306780B (zh) | 一种动态图链接生成方法 | |
CN116403019A (zh) | 遥感图像量子识别方法、装置、存储介质及电子装置 | |
CN116302088A (zh) | 一种代码克隆检测方法、存储介质及设备 | |
CN117667185A (zh) | 实体关系处理方法、装置、计算机设备和存储介质 | |
CN115204171A (zh) | 基于超图神经网络的文档级事件抽取方法及系统 | |
CN117011219A (zh) | 物品质量检测方法、装置、设备、存储介质和程序产品 | |
CN115545833A (zh) | 一种基于用户社交信息的推荐方法及系统 | |
WO2021115269A1 (zh) | 用户集群的预测方法、装置、计算机设备和存储介质 | |
CN114692012A (zh) | 一种基于Bert的神经协同过滤的电子政务推荐方法 | |
CN115631008A (zh) | 商品推荐方法、装置、设备及介质 | |
CN117235533B (zh) | 对象变量分析方法、装置、计算机设备和存储介质 | |
CN117151247B (zh) | 机器学习任务建模的方法、装置、计算机设备和存储介质 | |
CN108665056A (zh) | 一种基于nrl的智能搬运机器人预测任务状态的方法 | |
CN115658899A (zh) | 文本分类方法、装置、计算机设备和存储介质 | |
CN116881122A (zh) | 测试案例生成方法、装置、设备、存储介质和程序产品 | |
CN114662581A (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 |