一种基于深度学习模型的分步式编程教学方法及系统

文档序号:40257860发布日期:2024-12-11 12:49阅读:13来源:国知局
一种基于深度学习模型的分步式编程教学方法及系统

本发明属于教学辅助领域,尤其涉及一种基于深度学习模型的分步式编程教学方法及系统。


背景技术:

1、编程教程是一种用于向学习者传授编程技巧以及如何解决编程问题的文档。许多程序员以教程的形式传播他们的编程知识。随着学习编程的需求不断扩大,教程作者的数量也随之增加(如程序开发人员、计算机科学教育工作者、数据科学等),有关改善编程教程的撰写体验和工作流程的研究也在增加。在编程教程的类型中,分步式编程教程是较为常见且易于理解的一种。

2、然而,撰写高质量的分步式编程教程仍然是一项繁琐的工作。高质量的教程应该包括简洁的代码、分步的解决方案与亮点等。在典型的工作流程中,创建一个分步编程教程需要组织结构和撰写散文说明。条理清晰、通俗易懂的代码说明需要作者具备丰富的经验和对代码的透彻理解。作者通常在编程工具(如visual studio code)中查看代码,然后在文本编辑器中编辑。这需要在编程工具和文本编辑器之间来回切换,确保内容结构描述的正确性。教程完成后,作者还需要验证它们的一致性,这使撰写教程成为一项费力的工作。

3、专利文献cn116151132a公开了一种编程学习场景的智能代码补全方法、系统及储存介质,将源代码输入到已训练完成的transformer深度神经网络模型中以输出源代码补全后的预测结果;该智能代码补全方法、系统及储存介质采用独特的数据集进行预处理,并且根据用户反馈选择不同的推荐算法,不断提高智能代码补全功能中推荐代码的质量,源代码生成的抽象语法树进行拆分与重构,捕获了代码更多的语义信息,从而提高了代码补全的准确度。该发明采用深度学习方法进行代码补全提示,但是无法理解用户的文本输入和问题需求。同时其方法完全依赖于所训练的数据集,模型的泛化能力较差。

4、专利文献cn116974541a公开一种基于llm的编程辅助方法,具体包括如下步骤:将编程辅助模型部署为接口服务,使用协议和数据格式进行接口访问;其中,编程辅助模型为大型语言模型;建立编程管理平台,并将编程辅助模型接口接入编程管理平台;利用编程管理平台与编程辅助模型进行交互以完成编程辅助工作。该发明没有针对图形化编程语言的语法进行特化训练,无法很好的完成图形化编程语言的生成以及可视化。


技术实现思路

1、本发明的目的在于提供一种基于深度学习模型的分步式编程教学方法及系统,该方法为用户提供教程内容撰写提示与引导,使用户可以在编程教程中快速、轻松地撰写分步式编程教程。

2、为了实现本发明的第一个目的,提供了如下技术方案:一种基于深度学习模型的分步式编程教学方法,包括以下步骤:

3、获取编程教程中涉及编程步骤描述的文本片段集合,并以每段文本片段为节点,编程步骤为边,构建对应的文本结构树;

4、根据编程教学中涉及的编程代码合集,以代码片段为节点,代码的运行关系为边,构建对应的抽象语法树;

5、基于文本结构树和抽象语法树作为约束框架,构建深度学习模型,所述深度学习模型包括特征提取模块,特征映射模块以及预测模块;

6、所述特征提取模块,用于提取输入的自然语言文本的第一文本特征,以及提取编程代码集合中代码片段的第二文特征;

7、所述特征映射模块,用于将第一文本特征和第二文特征,同时投影至一个向量空间以获得对应的第一特征向量和第二特征向量;

8、所述预测模块,利用第一特征向量和第二特征向量进行相似度匹配,以输出匹配结果,所述匹配结果包括输入的自然语言文本匹配前k个最高相似度的编码片段;

9、将用户输入的代码短语输入至深度学习模型中,以可视化输出与代码短语相关的代码片段;

10、使用时,将编程需求的文本内容输入至深度学习模型中,以获得编程需求对应的代码片。

11、本发明基于深度学习模型和用户交互历史的连接引擎,对文本-代码关联进行匹配。通过自然语言处理的深度学习模型,将代码和文本嵌入同一向量空间,检测向量相似度;同时引入了抽象语法树和文本结构树来对匹配方法进行约束,确保匹配结果是有效的代码片段,并与描述文本的顺序保持一致。

12、具体的,在文本结构树中,将主步骤和子步骤视为父节点和子节点,而同级步骤设为同级节点。

13、具体的,所述抽象语法树以根节点为起点进行递归遍历,并将不符合要求的节点进行删除,以保留相关的节点与分支。

14、具体的,所述预测模块在进行相似度匹配的过程中遵循有效性原则和一致性原则。

15、具体的,所述有效性原则指第二特征向量对应的代码片段结构完整,具体设置如下:

16、设定抽象语法树为a,对任意节点ai∈a,如果parent(ai)∈f,则ai∈f;

17、则代码片段可以表示为ast子树的序列:f=subai∪subai+1∪...∪subai+n;

18、其中,subai表示根节点为ai的子树,同时{ai,ai+1,...,ai+n}为同一父节点的连续子节点。

19、具体的,所述一致性原则指第一特征向量对应的自然语言文本与第二特征向量对应的代码片段结构一致。

20、具体的,所述深度学习模型的网络框架采用预训练的unixcoder。

21、具体的,所述相似度匹配采用余弦相似度计算公式进行计算。

22、为了实现本发明的第二个目的,提供了如下技术方案:一种分步式编程教学系统,通过上述的基于深度学习模型的分步式编程教学方法实现,包括:

23、输入模块,用于输入编程需求的文本内容;

24、相关分析模块,根据输入的文本内容,以输出相关的编码片段;

25、源代码展示模块,用于展示编码片段对应的编程教程内容。

26、与现有技术相比,本发明的有益效果:

27、通过将文本与代码之间结构关联提取出来,可以帮助用户直观的了解到当前文本内容与代码之间的联系,实现二者之间的快速定位,作为后续进一步高效撰写、修改教程的入口,减轻认知负担;

28、同时使用深度学习模型对文本和代码进行相似度匹配,一方面辅助用户对当前内容进行验证,另一方面利于后续的教程撰写。



技术特征:

1.一种基于深度学习模型的分步式编程教学方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的基于深度学习模型的分步式编程教学方法,其特征在于,在文本结构树中,将主步骤和子步骤视为父节点和子节点,而同级步骤设为同级节点。

3.根据权利要求1所述的基于深度学习模型的分步式编程教学方法,其特征在于,所述抽象语法树以根节点为起点进行递归遍历,并将不符合要求的节点进行删除,以保留相关的节点与分支。

4.根据权利要求1所述的基于深度学习模型的分步式编程教学方法,其特征在于,所述预测模块在进行相似度匹配的过程中遵循有效性原则和一致性原则。

5.根据权利要求1所述的基于深度学习模型的分步式编程教学方法,其特征在于,所述有效性原则指第二特征向量对应的代码片段结构完整,具体设置如下:

6.根据权利要求1所述的基于深度学习模型的分步式编程教学方法,其特征在于,所述一致性原则指第一特征向量对应的自然语言文本与第二特征向量对应的代码片段结构一致。

7.根据权利要求1所述的基于深度学习模型的分步式编程教学方法,其特征在于,所述深度学习模型的网络框架采用预训练的unixcoder。

8.根据权利要求1所述的所述的基于深度学习模型的分步式编程教学方法,其特征在于,所述相似度匹配采用余弦相似度计算公式进行计算。

9.一种分步式编程教学系统,其特征在于,通过如权利要求1~8任一项所述的基于深度学习模型的分步式编程教学方法实现,包括:


技术总结
本发明公开了一种基于深度学习模型的分步式编程教学方法,包括构建文本结构树和抽象语法树;基于文本结构树和抽象语法树作为约束框架,构建深度学习模型,所述深度学习模型包括特征提取模块,特征映射模块以及预测模块;使用时,将编程需求的文本内容输入至深度学习模型中,以获得编程需求对应的代码片。本发明还提供了一种分步式编程教学系统。本发明提供的方法为用户提供教程内容撰写提示与引导,使用户可以在编程教程中快速、轻松地撰写分步式编程教程。

技术研发人员:刘亦晗,陈为
受保护的技术使用者:浙江大学
技术研发日:
技术公布日:2024/12/10
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1