一种基于神经网络的编程教育智慧管理方法及系统

xiaoxiao2026-08-27  11


本发明涉及源代码分析,具体涉及一种基于神经网络的编程教育智慧管理方法及系统。


背景技术:

1、由于现代社会对信息和通信技术(ict)的需求,编程的重要性日益增加。人工智能可以提供更多的动态支持,例如代码搜索、代码建议,算法识别和分类等。在这种情况下,人们试图将ai模型以及神经网络引入智慧编程教育中。

2、中国专利文献cn201911338011.x提供了《一种基于图形编程的人工智能教学系统》,该系统包括编程终端,云端服务器,嵌入式设备。编程终端通过将神经网络的基本参数传送到云端服务器。云端服务器接收神经网络的基本参数并对其进行处理并生成训练完成的网络模型。嵌入式设备通过互联网接收并运行处理训练完成的网络模型,得到相应的运行结果。该发明将复杂的编程简单化,以达到快速搭建神经网络、快速运行模型并查看神经网络运行结果的目的,青少年学生不用编写或只需编写较少程序代码,便可完成复杂的程序设计,提高学习效率和学习乐趣。然而该模型无法完成对学生编写的代码内容的评估,无法准确为学生提供优质的编程教育。


技术实现思路

1、针对上述现有技术存在的问题,本发明提供了一种基于神经网络的编程教育智慧管理方法及系统,通过分别提取源代码的文本语义信息,抽象语法树语义信息以及变量程序依赖图语义信息并经过特征融合准确提取学生编写代码的语义信息,进而可以评估理解学生编写的代码,评估学生在各个知识点上的掌握程度。该技术方案如下:

2、第一方面,提供了一种基于神经网络的编程教育智慧管理方法,包括源代码语义理解模型,所述源代码语义理解模型的数据处理过程包括如下步骤:

3、基于第一神经网络提取学生源代码文本的第一语义信息;

4、基于第二神经网络提取学生源代码的抽象语法树的第二语义信息;

5、基于第三神经网络提取学生源代码的变量程序依赖图的第三语义信息;

6、将第一语义信息、第二语义信息、第三语义信息利用基于transformer的多模态特征融合模型进行融合,得到融合语义特征;

7、将所述融合语义特征输入输出层,得到学生源代码质量分析结果。

8、在一些实施方式中,所述的编程教育智慧管理方法,还包括:

9、基于学生用户输入的编程问题关键词,输入自然语言语义理解模型,获得用户的问题语义特征;

10、基于数据库中存储的源代码数据,输入源代码语义理解模型,获取源代码语义特征;

11、基于用户的问题语义特征和源代码语义特征进行匹配,获得用户输入问题的答案。

12、在一些实施方式中,所述基于第一神经网络提取学生源代码文本的第一语义信息,包括:

13、针对学生源代码文本数据,提取关键字符信息记为token,token包括关键字、变量名、操作符;

14、对于提取的文本token采用神经词袋模型nbow嵌入成词向量;

15、将源代码文本的token词向量输入bilstm获得代码函数的语义信息,记为第一语义信息xt。

16、在一些实施方式中,所述基于第二神经网络提取学生源代码的抽象语法树的第二语义信息,包括:

17、对源代码的抽象语法树中的每个函数模块提取基本路径集向量;

18、将基本路径集输入神经网络模型自动生成功能语义特征,获得第二语义信息xp。

19、在一些实施方式中,所述对源代码的抽象语法树中的每个函数模块提取基本路径集向量,包括如下步骤:

20、(1)获取函数的控制流图cfg;

21、(2)从函数的入口节点出发,对于入口节点获取一条从入口节点出发的边和所述边连接的尾节点;

22、(3)将所述尾节点作为新的目标分析节点,针对目标分析节点获取所有从目标分析节点出发的边;

23、(4)若所述目标分析节点不存在从目标分析节点出发的边,则进入步骤(5),否则进入步骤(6);

24、(5)则所述目标分析节点确定为边界节点;对于边界节点,从入口节点到所述边界节点之间所有的节点构成的序列形成一条基本路径;

25、(6)获取每个从目标分析节点出发的边的尾节点,若所有尾节点均已经被访问过,则进入步骤(5);否则进入步骤(7);

26、(7)对于未被访问的尾节点中选择一个作为新的目标分析节点,进入步骤(3)。

27、在一些实施方式中,所述将基本路径集输入神经网络模型自动生成功能语义特征,获得第二语义信息,包括:

28、记基本路径集p={p1,...,pi...,pn},n为路径集中路径pi的总个数,i=1,2,...,n;

29、将路径节点对应的抽象语法树节点编码为token向量;

30、利用词嵌入算法将token向量映射到实值向量,获得维度为d的路径向量ci;

31、利用n*n维度的权重矩阵w将n个维度为d的路径向量ci加权融合并经过激活函数tanh激活得到n个维度为d的组合上下文向量tanh是双曲正切函数;w是可学习的全连接层权重矩阵;

32、将n个路径向量对应的n个组合上下文向量输入注意力层,基于维度为n的注意力向量a作用后输出注意力分值向量,注意力向量a是可学习参数,随网络模型训练得到;

33、将注意力层输出的注意力分值向量经过softmax函数归一化为注意力权重向量α;

34、基于注意力权重向量α对n个组合上下文向量进行融合,得到基本路径集对应的语义特征向量xp。

35、在一些实施方式中,所述注意力权重的计算方法,包括:第i个路径对应的注意力权重αi为:其中,a是可学习的注意力参数。

36、在一些实施方式中,所述基于第三神经网络提取学生源代码的变量程序依赖图的第三语义信息,包括:

37、基于以节点代表语句、边代表依赖关系的程序依赖图构造变量程序依赖图vpdg,程序p的所述变量程序依赖图为三元结构(g,s,q),其中g=(n,e)是程序p基于程序依赖图pdg获取;n和e分别是g中的节点集和有向边集;s,q分别是从节点到状态和从节点到条件概率分布的映射;

38、基于变量程序依赖图vpdg输入到门控图卷积网络ggnn中,获得变量程序依赖图的第三语义信息,所述门控图卷积网络ggnn输出层连接注意力层获得不同节点的权重,并经过加权融合输出所述第三语义信息。

39、在一些实施方式中,所述将第一语义信息、第二语义信息、第三语义信息利用transformer特征融合模型进行融合,得到融合语义特征,包括:

40、基于输入的第一语义信息、第二语义信息得到第一相似度参数;并将两个语义信息通过基于transformer的多头交叉注意力模块获得第一跨模态语义对齐特征;

41、基于输入的第一语义信息、第三语义信息得到第二相似度参数;并将两个语义信息通过基于transformer的多头交叉注意力模块获得第二跨模态语义对齐特征;

42、输入的第二语义信息、第三语义信息得到第三相似度参数;并将两个语义信息通过基于transformer的多头交叉注意力模块获得第三跨模态语义对齐特征;

43、基于第一跨模态语义对齐特征、第二跨模态语义对齐特征、第三跨模态语义对齐特征经过全连接层融合后经过softmax函数得到跨模态语义对齐特征的权重;

44、基于权重分别对第一相似度参数、第二相似度参数、第三相似度参数进行加权融合,得到融合语义特征。

45、第二方面,提供了一种基于神经网络的编程教育智慧管理系统,包括源代码语义理解模型,所述源代码语义理解模型包括:第一神经网络单元、第二神经网络单元、第三神经网络单元、多模态特征融合模型单元、输出层单元;

46、所述第一神经网络单元用于提取学生源代码文本的第一语义信息;

47、所述第二神经网络单元用于提取学生源代码的抽象语法树的第二语义信息;

48、所述第三神经网络单元用于提取学生源代码的变量程序依赖图的第三语义信息;

49、所述多模态特征融合模型单元用于将第一语义信息、第二语义信息、第三语义信息进行融合,得到融合语义特征;

50、所述输出层单元用于将所述融合语义特征输入并输出学生源代码质量分析结果。

51、本发明的一种基于神经网络的编程教育智慧管理方法及系统,具备如下有益效果:不仅利用了源代码的文本数据,还分别利用了源代码的抽象语法树提取源代码的功能语义、利用变量程序依赖图提取源代码的第三语义信息,利用源代码的多种数据类型充分提取源代码的语义信息,利用基于transformer的多模态特征融合模型,可以同时将源编程语言代码的文本表示、抽象语法树(ast)的路径集表示以及变量程序依赖图表示结合起来,提供一种面向学生编写代码的语义理解方法,分析学生的编程结果,评估学生在各个知识点上的掌握程度,为教育工作者提供一种新的工具。


技术特征:

1.一种基于神经网络的编程教育智慧管理方法,其特征在于,包括源代码语义理解模型,所述源代码语义理解模型的数据处理过程包括如下步骤:

2.根据权利要求1所述的编程教育智慧管理方法,其特征在于,还包括:

3.根据权利要求1所述的基于神经网络的编程教育智慧管理方法,其特征在于,所述基于第一神经网络提取学生源代码文本的第一语义信息,包括:

4.根据权利要求1所述的基于神经网络的编程教育智慧管理方法,其特征在于,所述基于第二神经网络提取学生源代码的抽象语法树的第二语义信息,包括:

5.根据权利要求4所述的基于神经网络的编程教育智慧管理方法,其特征在于,所述对源代码的抽象语法树中的每个函数模块提取基本路径集向量,包括如下步骤:

6.根据权利要求4所述的基于神经网络的编程教育智慧管理方法,其特征在于,所述将基本路径集输入神经网络模型自动生成功能语义特征,获得第二语义信息,包括:

7.根据权利要求6所述的基于神经网络的编程教育智慧管理方法,其特征在于,所述注意力权重的计算方法,包括:第i个路径对应的注意力权重αi为:其中,a是可学习的注意力参数。

8.根据权利要求1所述的基于神经网络的编程教育智慧管理方法,其特征在于,所述基于第三神经网络提取学生源代码的变量程序依赖图的第三语义信息,包括:

9.根据权利要求1所述的基于神经网络的编程教育智慧管理方法,其特征在于,所述将第一语义信息、第二语义信息、第三语义信息利用transformer特征融合模型进行融合,得到融合语义特征,包括:

10.一种基于神经网络的编程教育智慧管理系统,其特征在于,包括源代码语义理解模型,所述源代码语义理解模型包括:第一神经网络单元、第二神经网络单元、第三神经网络单元、多模态特征融合模型单元、输出层单元;


技术总结
本发明公开了一种基于神经网络的编程教育智慧管理方法及系统,该方法包括:基于第一神经网络提取学生源代码文本的第一语义信息;基于第二神经网络提取学生源代码的抽象语法树的第二语义信息;基于第三神经网络提取学生源代码的变量程序依赖图的第三语义信息;将第一语义信息、第二语义信息、第三语义信息利用基于Transformer的多模态特征融合模型进行融合,得到融合语义特征;将所述融合语义特征输入输出层,得到学生源代码质量分析结果。本发明利用源代码的多种数据类型充分提取源代码的语义信息,实现更全面地捕捉源代码的语义信息。

技术研发人员:戴鹏,马小琴,汪珺,王成宝,柯万超,陆克中,朱玉荣
受保护的技术使用者:池州学院
技术研发日:
技术公布日:2024/9/23
转载请注明原文地址:https://www.famiwei.com/read-9026679.html

最新回复(0)