基于结构嵌入分析的智能代码推荐系统的设计与实现

来源 :南京大学 | 被引量 : 0次 | 上传用户:gichurn
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
作为开发人员,尤其是编程初学者,在进行日常的软件开发时,经常需要完成一些不熟悉的编程任务。这时,他们可能通过搜索参考已存在代码片段或者复用之前的代码,来帮助完成这个不熟悉的编程任务。近年来,业界已有很多外部代码搜索工具来帮助开发人员。但是使用这些工具会增加开发者搜索筛选的时间,降低编码效率,所以开发出一款与编程一体的代码推荐系统迫在眉睫。本文依托于慕测Web IDE系统进行更新与优化,实现了基于结构嵌入分析的智能代码推荐系统。用户进行编程练习或考试时,通过浏览器访问系统,使用智能编辑器进行在线编程,系统会监听用户编程行为,抓取代码信息进行分析,根据分析结果向用户推荐代码片段。代码推荐依赖大量源代码数据,因此首先需要基于大量的源代码构建语料库,并对其进行预处理。语料库中代码需要先进行词法和语法分析,构建解析树,获得令牌序列以代表代码结构特征。其次,对语料库中的所有令牌序列集,使用局部敏感哈希进行分类,减少比较次数,提高效率。接着,对相似度高的这些候选代码片段通过词嵌入训练模型,再进行句嵌入获得向量表示。最后,通过相似性分析算法对句向量进行比较,向用户推荐相似度值高于阈值且不同的前几位源代码片段,帮助用户根据现有源代码获得有价值的推荐,从而提高生产率,帮助缩短开发时间。本系统根据主要功能和特性划分为五个模块,包括编辑器模块、语言服务协议模块、代码搜索模块、特征提取模块和特征序列分析模块。系统使用Monaco Editor作为主要编辑器基础,并遵循语言服务协议实现Java、Python等编程语言的实时代码补全、悬浮提示、跳转定义、引用查找、代码诊断等智能功能。为保障数据的可靠性和高可用性,系统使用搜索引擎进行数据采集处理存储。目前该系统已替换原有慕测Web IDE系统上线使用。通过实验表明,系统提升了平均82.72%的用户的编程体验。智能代码推荐系统在用户开发时,有效地推荐代码片段帮助用户重用或纠正现有代码。该系统减少用户搜索筛选时间,缩短开发时间,提高用户编码效率。并且其简单易用的界面与交互风格,符合大多数用户习惯,提升和完善用户编程体验。
其他文献
本试验通过研究不同妊娠期母羊在舍饲条件下养分摄入量与血清生化指标的动态变化,为舍饲山羊日粮的合理配制和健康状态分析提供依据。随机选择空怀期、妊娠前期和妊娠后期健康
当前我国正处在体制转轨、经济转型、职能转换的社会改革时期,我们河道管理单位在各种矛盾中途存,在改革中发展.如何在全面建设社会主义市场经济的转型期,与时俱进、站稳脚跟
针对主井提升机电极式满仓保护在实际运行中存在的问题,提出新理念.
吴裕泰茶叶股份有限公司由吴裕泰茶栈、吴裕泰茶庄、吴裕泰茶叶公司组成,是中华老字号,其自建立至今的百年时间中,为我国茶文化的发展做出了巨大的贡献,而其也为我国茶企业的
<正> “其”、“之”在古代汉语中经常可以起第三人称代词的作用,相当于第三人称代词。一般情况下,“其”只作定语,可以译成“他(她、它)的”、“他(她、它)们的”等;“之”
采用熵值法、综合水平指数和耦合协调度的方法对山东半岛城市群的社会经济与资源环境的协调发展进行了研究分析。结果显示,在2007-2010年山东半岛城市群社会经济与资源环境的
【正】“中国短程通讯几乎是个空白,请你把能干好的做好,把公司办成功,为中国的通讯事业做出贡献。”2003年1月胡锦涛总书记走进郦亮位于中关村上地的办公室,对于这位海外留
<正>当前,互联网的迅猛发展推动生产生活方式发生深刻变革,对国有企业思想政治工作产生了全局性、深层次影响。深入研究把握新时代国有企业思想政治工作的特点和规律,推动思