设计模式推荐方法、装置、设备及存储介质与流程

allin2023-03-14  123



1.本技术涉及计算机技术领域,特别涉及一种设计模式推荐方法、装置、设备及存储介质。


背景技术:

2.设计模式代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。合理快速的选择设计模式,可以大大提高程序员的代码设计与编程能力,提高程序员的工作效率。
3.但是现实中很多初级程序员不熟悉设计模式,无法将设计模式应用于实际编程中,导致代码的可用性、扩展性都大打折扣,使得后续开发与维护变得异常困难,无法很好地满足业务的需求。设计模式作为一种编程思想或规范,需要结合不同的业务场景来使用。对于不熟悉各种业务的程序员来说,采用哪种设计模式来编程也是一件非常困难的事情。目前市场上没有任何产品或方案来根据需求产出一种或多种设计模式来指导程序员编程。现有的很多设计模式相关的书籍和音视频也只是向读者介绍设计模式相关知识,并不能根据具体的需求来产出方案。


技术实现要素:

4.本公开实施例提供了一种设计模式推荐方法、装置、设备及存储介质。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
5.第一方面,本技术实施例提供了一种设计模式推荐方法,包括:
6.根据业务场景、设计模式、源代码之间的对应关系得到训练数据,根据训练数据训练设计模式推荐模型;
7.获取用户输入的业务场景需求参数;
8.将业务场景需求参数输入训练好的设计模式推荐模型,得到推荐的一种或多种设计模式以及示例源码。
9.在一个可选地实施例中,根据业务场景、设计模式、源代码之间的对应关系得到训练数据,包括:
10.提取业务场景的需求参数;
11.将需求参数与一个或多个设计模式进行配对,得到一个或多个包含需求参数与模式数据的键值对,其中,模式数据包括设计模式以及与设计模式对应的示例源码;
12.将键值对作为训练数据。
13.在一个可选地实施例中,提取业务场景的需求参数,包括:
14.获取业务场景需求描述文本;
15.采用预设的分词算法对需求描述文本进行分词,根据分词提取业务场景的需求关
键词;
16.根据需求关键词得到业务场景的需求参数。
17.在一个可选地实施例中,得到一个或多个包含需求参数与模式数据的键值对之后,还包括:
18.计算需求参数与其配对的多个模式数据之间的匹配得分;
19.根据匹配得分对键值对按照从高到低的顺序排序,并给键值对添加序列标签。
20.在一个可选地实施例中,将键值对作为训练数据,包括:
21.根据键值对的序列标签,将与每个需求参数匹配的前三个键值对作为训练数据。
22.在一个可选地实施例中,设计模式推荐模型为双向长短时记忆神经网络模型;
23.其中,双向长短时记忆神经网络模型包括顺序连接的输入层、嵌入层、丢弃层、全连接层、激活层、输出层以及归一化层。
24.在一个可选地实施例中,将业务场景需求参数输入训练好的设计模式推荐模型,得到推荐的一种或多种设计模式以及示例源码,包括:
25.将业务场景需求参数输入训练好的设计模式推荐模型;
26.设计模式推荐模型根据键值对的序列标签,输出排在第一位的键值对中的设计模式以及示例源码;
27.接收客户端返回的重新查询请求;
28.设计模式推荐模型根据键值对的序列标签,输出排在第二位的键值对中的设计模式以及示例源码;
29.接收客户端返回的重新查询请求;
30.设计模式推荐模型根据键值对的序列标签,输出排在第三位的键值对中的设计模式以及示例源码。
31.第二方面,本技术实施例提供了一种设计模式推荐装置,包括:
32.训练模块,用于根据业务场景、设计模式、源代码之间的对应关系得到训练数据,根据训练数据训练设计模式推荐模型;
33.获取模块,用于获取用户输入的业务场景需求参数;
34.推荐模块,用于将业务场景需求参数输入训练好的设计模式推荐模型,得到推荐的一种或多种设计模式以及示例源码。
35.第三方面,本技术实施例提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述实施例提供的设计模式推荐方法的步骤。
36.第四方面,本技术实施例提供了一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述实施例提供的设计模式推荐方法的步骤。
37.本公开实施例提供的技术方案可以包括以下有益效果:
38.根据本技术实施例提供的设计模式推荐方法,可以根据用户输入的具体业务需求产出对应的设计模式及示例源码,指导程序员进行编程。可以大大提高程序员的代码设计与编程能力,使得代码更加健壮有弹性,方便扩展和维护。
39.进一步地,随着业务的变更,对应业务采用的设计模式也可能变更,本技术实施例
中的设计模式推荐模型,可以根据新的优秀源码来训练更新模型,提高模型的推荐成功率。
40.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
41.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
42.图1是根据一示例性实施例示出的一种设计模式推荐方法的实施环境图;
43.图2是根据一示例性实施例示出的一种计算机设备的内部结构图;
44.图3是根据一示例性实施例示出的一种设计模式推荐方法的流程示意图;
45.图4是根据一示例性实施例示出的一种获取训练数据方法的流程示意图;
46.图5是根据一示例性实施例示出的一种神经网络模型的示意图;
47.图6是根据一示例性实施例示出的一种设计模式推荐装置的结构示意图。
具体实施方式
48.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
49.可以理解,本技术所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本技术的范围的情况下,可以将第一字段及算法确定模块成为第二字段及算法确定模块,且类似地,可将第二字段及算法确定模块成为第一字段及算法确定模块。
50.图1是根据一示例性实施例示出的一种设计模式推荐方法的实施环境图,如图1所示,在该实施环境中,包括服务器110以及终端120。
51.服务器110为设计模式推荐设备,例如为技术人员使用的电脑等计算机设备,服务器110上安装有设计模式推荐工具。终端120上安装有需要进行设计模式推荐的应用,当需要提供设计模式推荐服务时,技术人员可以在计算机设备110发出提供设计模式的请求,该请求中携带有请求标识,计算机设备110接收该请求,获取计算机设备110中存储的设计模式推荐方法。输出推荐的设计模式。
52.需要说明的是,终端120以及计算机设备110可为智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。计算机设备110以及终端120可以通过蓝牙、usb(universal serial bus,通用串行总线)或者其他通讯连接方式进行连接,本技术在此不做限制。
53.图2是根据一示例性实施例示出的一种计算机设备的内部结构图。如图2所示,该计算机设备包括通过系统总线连接的处理器、非易失性存储介质、存储器和网络接口。其中,该计算机设备的非易失性存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种设计模式推荐方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器
执行时,可使得处理器执行一种设计模式推荐方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图2中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
54.下面将结合附图3-附图5,对本技术实施例提供的设计模式推荐方法进行详细介绍。该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的数据传输装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。
55.请参见图3,为本技术实施例提供了一种设计模式推荐方法的流程示意图,如图3所示,本技术实施例的方法可以包括以下步骤s301-s303:
56.s301、根据业务场景、设计模式、源代码之间的对应关系得到训练数据,根据训练数据训练设计模式推荐模型。
57.在一种可能的实现方式中,首先获取训练数据,根据训练数据训练设计模式推荐模型。
58.图4是根据一示例性实施例示出的一种获取训练数据方法的流程示意图,如图4所示,获取训练数据的方法包括如下步骤s401-s405:
59.s401提取业务场景的需求参数。
60.具体地,首先获取业务场景需求描述文本,然后采用预设的分词算法对需求描述文本进行分词,例如,采用基于字符串匹配的分词方法、基于理解的分词方法、基于统计的分词方法、基于规则的分词方法或基于字标注的分词方法。得到分词后的各个词语。进一步地,提取业务场景的需求关键词,根据需求关键词得到业务场景的需求参数。
61.在一个实施例中,获取业务场景下的需求描述文本“某app的登录功能页面用户密码自动保存需求”,然后采用分词算法进行分词,得到拆分后的多个词语,进一步提取关键词,得到“登录”、“用户密码”、“保存”等关键词,将得到的关键词作为业务场景的需求参数。
62.s402将需求参数与一个或多个设计模式进行配对,得到一个或多个包含需求参数与模式数据的键值对,其中,模式数据包括设计模式以及与设计模式对应的示例源码。
63.通常,有23种常用的设计模式,每种设计模式的特点不同,适用于不同的业务场景。常用的设计模式包括三大类,第一类为创建型模式,包括工厂方法模式:一个工厂通过方法创建多个产品;抽象工厂模式:多个工厂创建多个产品族;建造者模式:分解构建步骤,分步构建;原型模式:一个对象需要多次修改部分值,利用克隆实现;单例模式:只要一个实例,减少系统开销。
64.第二类为结构型模式,包括适配器模式:重构时,不修改已有模块,增加适配器来协调2个模块工作;桥接模式:开发时,jdbc需要增加桥对象,可切换对接对象,实现不同桥功能;组合模式:开发时,组织机构,文档结构;装饰器模式:重构时,不修改已有模块,对已有模块功能进行扩展;外观模式:开发重构;享元模式:开发时,创建对象池,共享对象,减少系统开销;代理模式:重构时,代理目标对象执行,主要是控制目标对象方式是否执行。
65.第三类为行为型模式,包括责任链模式:审批流;命令模式:浏览器的请求方式,封装请求,分离请求者与接收者;解释器模式:表达式解析;迭代器模式:迭代器;备忘录模式:ghost,保存当前对象状态,用于恢复;中介者模式:qq,多个构件间通信的枢纽;观察者模式:消息通知,广播机制,通过注册接收者,观察者发消息给多个接收者;状态模式:针对对
象切换,将状态封装成对象,通过切换状态来用不同状态对象实现相同方法;策略模式:针对方法切换,对某个方法进行切换,实现不同的实现方式;模板方法模式:sitmesh,tiles,freemarker就是类似装饰模式,只不过如同模板一般,只需要关注变动的地方即可;访问者模式:利用多态特性。
66.在一种可能的实现方式中,一种业务场景也可能通过多个设计模式实现,因此,确定出业务场景的需求参数后,根据设计模式的特点查找与之相配的一个或多个设计模式。例如,用户登录功能可能采用策略模式、审批流模式、备忘录模式等多个模式实现。
67.将业务场景的需求参数与对应的模式数据组成键值对,《key,value》;key=需求参数;value=模式数据,模式数据包括设计模式和优秀的源代码组合。根据该键值对,可以得到业务场景-设计模式-源代码之间的对应关系。
68.s403计算需求参数与其配对的多个模式数据之间的匹配得分。
69.通常,一个需求参数可能有多个相匹配的设计模式,生成多个键值对。但是设计模式与需求参数之间的匹配度可能不同。因此,计算需求参数与其配对的多个模式数据之间的匹配得分。
70.在一种可能的实现方式中,事先标定设计模式对应的源代码适用的业务场景的分值。例如,一段设计模式对应的源代码,其适用的业务场景为登录场景-分值90;审批场景-分值70;注册场景-分值85。若该键值对的需求参数为登录场景,则键值对的匹配得分为90。
71.s404根据匹配得分对键值对按照从高到低的顺序排序,并给键值对添加序列标签。
72.在一种可能的实现方式中,根据键值对的匹配得分进行从高到低排序,并将序列号添加到键值对标签。通过进行排序推荐,可以为用户推荐最优的键值对。
73.s405根据键值对的序列标签,将与每个需求参数匹配的前三个键值对作为训练数据。
74.在一种可能的实现方式中,可以获取序列号为前三的键值对,根据匹配度较高的前三个键值对作为训练数据。可选地,也可以获取序列号为1的键值对,根据匹配度最高的一个键值对进行训练。
75.进一步地,得到训练数据后,利用训练数据训练设计模式推荐模型。其中,设计模式推荐模型可以为双向长短时记忆神经网络模型(bid irectional long short term memory,bi-lstm)。如图5所示,双向长短时记忆神经网络模型包括顺序连接的输入层、嵌入层、丢弃层、全连接层、激活层、输出层以及归一化层。
76.首先是输入层,可以将每条训练样本加载进模型。其次是嵌入层,可以将每一个词、每一个字母映射为词向量。bi-lstm模型可以结合输入样本在前向和后向两个方向上的信息进行训练。丢弃层是在训练过程中丢弃一部分神经元,目的是防止过拟合现象,全连接层用于在得到输出向量后,将向量铺平展开进入全连接层,而后经过激活层的激活函数tanh后得到最终的输出,将输出结果经过softmax函数归一化层即可得到其字符串特征。
77.经过训练后,即可得到训练好的设计模式推荐模型。
78.s302获取用户输入的业务场景需求参数。
79.在一个实施例中,用户根据具体地业务场景需求,将业务场景需求参数录入训练好的设计模式推荐模型。
80.s303将业务场景需求参数输入训练好的设计模式推荐模型,得到推荐的一种或多种设计模式以及示例源码。
81.在一个可选地实施例中,将业务场景需求参数输入训练好的设计模式推荐模型,设计模式推荐模型根据键值对的序列标签,输出排在第一位的键值对中的设计模式以及示例源码。
82.进一步地,若用户对输出的设计模式以及示例源码不满意,客户可发出重新获取的请求,接收客户端返回的重新查询请求后,设计模式推荐模型根据键值对的序列标签,输出排在第二位的键值对中的设计模式以及示例源码。
83.若客户仍不满意,可再次发出重新获取的请求,接收客户端返回的重新查询请求后,设计模式推荐模型根据键值对的序列标签,输出排在第三位的键值对中的设计模式以及示例源码。
84.在一个可选地实施例中,将业务场景需求参数输入训练好的设计模式推荐模型,设计模式推荐模型根据键值对的序列标签,仅输出排在第一位的键值对中的设计模式以及示例源码。
85.在一个可选地实施例中,随着业务的更新,设计模式推荐模型对输入的需求参数查询不到合适的设计模式以及示例源码,或对应业务采用的设计模式也可能变更。则在训练数据中添加更新的需求参数-模式数据键值对,根据新增训练数据更新设计模式推荐模型。
86.根据本技术实施例提供的智能设计模式推荐方法,包括建模模块、模型训练模块、需求录入及产出模块。首先设计一个设计模式模型,然后采集现有的优秀开源项目及源码使用第一步建立的设计模式模型进行训练,最后使用训练好的模型针对用户输入不同的需求产出对应的设计模式。该方法可以根据用户输入的具体业务需求产出对应的设计模式及示例源码,指导程序员进行编程。可以大大提高程序员的代码设计与编程能力,使得代码更加健壮有弹性,方便扩展和维护。同时随着业务的变更,对应业务采用的设计模式也可能变更,本设计模式推荐模型可以根据新的优秀源码来进行训练,拥抱变化,提高模型的推荐成功率。
87.下述为本技术装置实施例,可以用于执行本技术方法实施例。对于本技术装置实施例中未披露的细节,请参照本技术方法实施例。
88.请参见图6,其示出了本技术一个示例性实施例提供的设计模式推荐装置的结构示意图。如图6所示,该基于知识图谱的智能客服装置可以集成于上述的计算机设备110中,具体可以包括训练模块601、获取模块602、推荐模块603。
89.训练模块601,用于根据业务场景、设计模式、源代码之间的对应关系得到训练数据,根据训练数据训练设计模式推荐模型;
90.获取模块602,用于获取用户输入的业务场景需求参数;
91.推荐模块603,用于将业务场景需求参数输入训练好的设计模式推荐模型,得到推荐的一种或多种设计模式以及示例源码。
92.在一个可选地实施例中,训练模块601具体用于提取业务场景的需求参数;将需求参数与一个或多个设计模式进行配对,得到一个或多个包含需求参数与模式数据的键值对,其中,模式数据包括设计模式以及与设计模式对应的示例源码;将键值对作为训练数
据。
93.在一个可选地实施例中,提取业务场景的需求参数,包括:获取业务场景需求描述文本;采用预设的分词算法对需求描述文本进行分词,根据分词提取业务场景的需求关键词;根据需求关键词得到业务场景的需求参数。
94.在一个可选地实施例中,得到一个或多个包含需求参数与模式数据的键值对之后,还包括:计算需求参数与其配对的多个模式数据之间的匹配得分;根据匹配得分对键值对按照从高到低的顺序排序,并给键值对添加序列标签。
95.在一个可选地实施例中,将键值对作为训练数据,包括:
96.根据键值对的序列标签,将与每个需求参数匹配的前三个键值对作为训练数据。
97.在一个可选地实施例中,设计模式推荐模型为双向长短时记忆神经网络模型;
98.其中,双向长短时记忆神经网络模型包括顺序连接的输入层、嵌入层、丢弃层、全连接层、激活层、输出层以及归一化层。
99.在一个可选地实施例中,推荐模块具体用于,将业务场景需求参数输入训练好的设计模式推荐模型;设计模式推荐模型根据键值对的序列标签,输出排在第一位的键值对中的设计模式以及示例源码;接收客户端返回的重新查询请求;设计模式推荐模型根据键值对的序列标签,输出排在第二位的键值对中的设计模式以及示例源码;接收客户端返回的重新查询请求;设计模式推荐模型根据键值对的序列标签,输出排在第三位的键值对中的设计模式以及示例源码。
100.基于本公开实施例提供的设计模式推荐装置,可以根据用户输入的具体业务需求产出对应的设计模式及示例源码,指导程序员进行编程。可以大大提高程序员的代码设计与编程能力,使得代码更加健壮有弹性,方便扩展和维护。同时随着业务的变更,对应业务采用的设计模式也可能变更,本设计模式推荐模型可以根据新的优秀源码来进行训练,拥抱变化,提高模型的推荐成功率。
101.需要说明的是,上述实施例提供的设计模式推荐装置在执行设计模式推荐方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的设计模式推荐装置与设计模式推荐方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
102.在一个实施例中,提出了一种计算机设备,计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:根据业务场景、设计模式、源代码之间的对应关系得到训练数据,根据训练数据训练设计模式推荐模型;获取用户输入的业务场景需求参数;将业务场景需求参数输入训练好的设计模式推荐模型,得到推荐的一种或多种设计模式以及示例源码。
103.在一个可选地实施例中,根据业务场景、设计模式、源代码之间的对应关系得到训练数据,包括:
104.提取业务场景的需求参数;
105.将需求参数与一个或多个设计模式进行配对,得到一个或多个包含需求参数与模式数据的键值对,其中,模式数据包括设计模式以及与设计模式对应的示例源码;
106.将键值对作为训练数据。
107.在一个可选地实施例中,提取业务场景的需求参数,包括:
108.获取业务场景需求描述文本;
109.采用预设的分词算法对需求描述文本进行分词,根据分词提取业务场景的需求关键词;
110.根据需求关键词得到业务场景的需求参数。
111.在一个可选地实施例中,得到一个或多个包含需求参数与模式数据的键值对之后,还包括:
112.计算需求参数与其配对的多个模式数据之间的匹配得分;
113.根据匹配得分对键值对按照从高到低的顺序排序,并给键值对添加序列标签。
114.在一个可选地实施例中,将键值对作为训练数据,包括:
115.根据键值对的序列标签,将与每个需求参数匹配的前三个键值对作为训练数据。
116.在一个可选地实施例中,设计模式推荐模型为双向长短时记忆神经网络模型;
117.其中,双向长短时记忆神经网络模型包括顺序连接的输入层、嵌入层、丢弃层、全连接层、激活层、输出层以及归一化层。
118.在一个可选地实施例中,将业务场景需求参数输入训练好的设计模式推荐模型,得到推荐的一种或多种设计模式以及示例源码,包括:
119.将业务场景需求参数输入训练好的设计模式推荐模型;
120.设计模式推荐模型根据键值对的序列标签,输出排在第一位的键值对中的设计模式以及示例源码;
121.接收客户端返回的重新查询请求;
122.设计模式推荐模型根据键值对的序列标签,输出排在第二位的键值对中的设计模式以及示例源码;
123.接收客户端返回的重新查询请求;
124.设计模式推荐模型根据键值对的序列标签,输出排在第三位的键值对中的设计模式以及示例源码。
125.在一个实施例中,提出了一种存储有计算机可读指令的存储介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:根据业务场景、设计模式、源代码之间的对应关系得到训练数据,根据训练数据训练设计模式推荐模型;获取用户输入的业务场景需求参数;将业务场景需求参数输入训练好的设计模式推荐模型,得到推荐的一种或多种设计模式以及示例源码。
126.在一个可选地实施例中,根据业务场景、设计模式、源代码之间的对应关系得到训练数据,包括:
127.提取业务场景的需求参数;
128.将需求参数与一个或多个设计模式进行配对,得到一个或多个包含需求参数与模式数据的键值对,其中,模式数据包括设计模式以及与设计模式对应的示例源码;
129.将键值对作为训练数据。
130.在一个可选地实施例中,提取业务场景的需求参数,包括:
131.获取业务场景需求描述文本;
132.采用预设的分词算法对需求描述文本进行分词,根据分词提取业务场景的需求关
键词;
133.根据需求关键词得到业务场景的需求参数。
134.在一个可选地实施例中,得到一个或多个包含需求参数与模式数据的键值对之后,还包括:
135.计算需求参数与其配对的多个模式数据之间的匹配得分;
136.根据匹配得分对键值对按照从高到低的顺序排序,并给键值对添加序列标签。
137.在一个可选地实施例中,将键值对作为训练数据,包括:
138.根据键值对的序列标签,将与每个需求参数匹配的前三个键值对作为训练数据。
139.在一个可选地实施例中,设计模式推荐模型为双向长短时记忆神经网络模型;
140.其中,双向长短时记忆神经网络模型包括顺序连接的输入层、嵌入层、丢弃层、全连接层、激活层、输出层以及归一化层。
141.在一个可选地实施例中,将业务场景需求参数输入训练好的设计模式推荐模型,得到推荐的一种或多种设计模式以及示例源码,包括:
142.将业务场景需求参数输入训练好的设计模式推荐模型;
143.设计模式推荐模型根据键值对的序列标签,输出排在第一位的键值对中的设计模式以及示例源码;
144.接收客户端返回的重新查询请求;
145.设计模式推荐模型根据键值对的序列标签,输出排在第二位的键值对中的设计模式以及示例源码;
146.接收客户端返回的重新查询请求;
147.设计模式推荐模型根据键值对的序列标签,输出排在第三位的键值对中的设计模式以及示例源码。
148.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)等非易失性存储介质,或随机存储记忆体(random access memory,ram)等。
149.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
150.以上实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。

技术特征:
1.一种设计模式推荐方法,其特征在于,所述方法包括:根据业务场景、设计模式、源代码之间的对应关系得到训练数据,根据所述训练数据训练设计模式推荐模型;获取用户输入的业务场景需求参数;将所述业务场景需求参数输入训练好的设计模式推荐模型,得到推荐的一种或多种设计模式以及示例源码。2.根据权利要求1所述的方法,其特征在于,根据业务场景、设计模式、源代码之间的对应关系得到训练数据,包括:提取业务场景的需求参数;将所述需求参数与一个或多个设计模式进行配对,所述设计模式与示例源码具有一一对应关系,得到一个或多个包含需求参数与模式数据的键值对,其中,所述模式数据包括设计模式以及与设计模式对应的示例源码;将所述键值对作为训练数据。3.根据权利要求2所述的方法,其特征在于,提取业务场景的需求参数,包括:获取业务场景需求描述文本;采用预设的分词算法对所述需求描述文本进行分词,根据所述分词提取业务场景的需求关键词;根据所述需求关键词得到业务场景的需求参数。4.根据权利要求2所述的方法,其特征在于,得到一个或多个包含需求参数与模式数据的键值对之后,所述方法还包括:计算所述需求参数与其配对的多个模式数据之间的匹配得分;根据所述匹配得分对所述键值对按照从高到低的顺序排序,并给所述键值对添加序列标签。5.根据权利要求4所述的方法,其特征在于,将所述键值对作为训练数据,包括:根据所述键值对的序列标签,将与每个需求参数匹配的前三个键值对作为训练数据。6.根据权利要求1所述的方法,其特征在于,所述设计模式推荐模型为双向长短时记忆神经网络模型;其中,所述双向长短时记忆神经网络模型包括顺序连接的输入层、嵌入层、丢弃层、全连接层、激活层、输出层以及归一化层。7.根据权利要求1所述的方法,其特征在于,将所述业务场景需求参数输入训练好的设计模式推荐模型,得到推荐的一种或多种设计模式以及示例源码,包括:将所述业务场景需求参数输入训练好的设计模式推荐模型;所述设计模式推荐模型根据键值对的序列标签,输出排在第一位的键值对中的设计模式以及示例源码;接收客户端返回的重新查询请求;所述设计模式推荐模型根据键值对的序列标签,输出排在第二位的键值对中的设计模式以及示例源码;接收客户端返回的重新查询请求;所述设计模式推荐模型根据键值对的序列标签,输出排在第三位的键值对中的设计模
式以及示例源码。8.一种设计模式推荐装置,其特征在于,所述装置包括:训练模块,用于根据业务场景、设计模式、源代码之间的对应关系得到训练数据,根据所述训练数据训练设计模式推荐模型;获取模块,用于获取用户输入的业务场景需求参数;推荐模块,用于将所述业务场景需求参数输入训练好的设计模式推荐模型,得到推荐的一种或多种设计模式以及示例源码。9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项权利要求所述的设计模式推荐方法。10.一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项权利要求所述的设计模式推荐方法。

技术总结
本申请公开了一种设计模式推荐方法、装置、设备及存储介质。所述方法包括:根据业务场景、设计模式、源代码之间的对应关系得到训练数据,根据所述训练数据训练设计模式推荐模型;获取用户输入的业务场景需求参数;将所述业务场景需求参数输入训练好的设计模式推荐模型,得到推荐的一种或多种设计模式以及示例源码。根据本申请实施例提供的设计模式推荐方法,可以根据用户输入的具体业务需求产出对应的设计模式及示例源码,指导程序员进行编程,可以大大提高程序员的代码设计与编程能力。可以大大提高程序员的代码设计与编程能力。可以大大提高程序员的代码设计与编程能力。


技术研发人员:赵旗旗
受保护的技术使用者:平安普惠企业管理有限公司
技术研发日:2022.03.21
技术公布日:2022/7/5
转载请注明原文地址: https://www.8miu.com/read-5960.html

最新回复(0)