首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到19条相似文献,搜索用时 65 毫秒
1.
代码摘要是源代码的自然语言解释,高质量的代码摘要有助于提高开发人员程序理解效率.近年来,代码自动摘要的研究集中在为方法粒度的代码片段生成摘要.然而,对于面向对象的语言,例如Java,类才是项目的基本组成单元.基于上述问题,提出一种基于分层表示和上下文增强的类摘要生成方法HRCE(hierarchical representation and context enhancement),并构建了一个包含358 992个?Java类,上下文,摘要?数据对的类摘要数据集.HRCE使用代码精简策略去除类的非关键代码,从而缩短代码长度.然后,对类的层次结构,包括类签名、属性和方法分别进行建模,获得类的语义信息和层次结构信息.此外,从项目中抽取父类的签名及摘要来刻画类在项目中依赖的上下文.实验表明,基于分层表示和上下文增强的生成模型能够表征代码的语义和层次结构,并可以从目标类的内部和外部获取信息. HRCE在BLEU,METEOR,ROUGE-L等评估指标上超过了所有基准模型.  相似文献   

2.
陶传奇  包盼盼  黄志球  周宇  张智轶 《软件学报》2021,32(11):3351-3371
在软件开发的编程现场,有大量与当前开发任务相关的信息,比如代码上下文信息、用户开发意图等.如果能够根据已有的编程现场上下文给开发人员推荐当前代码行,不仅能够帮助开发人员更好地完成开发任务,还能提高软件开发的效率.而已有的一些方法通常是进行代码修复或者补全,又或者只是基于关键词匹配的搜索方法,很难达到推荐完整代码行的要求.针对上述问题,一种可行的解决方案是基于已有的海量源码数据,利用深度学习析取代码行的相关上下文因子,挖掘隐含的上下文信息,为精准推荐提供基础.因此,提出了一种基于深度学习的编程现场上下文深度感知的代码行推荐方法,能够在已有的大规模代码数据集中学习上下文之间潜在的关联关系,利用编程现场已有的源码数据和任务数据得到当前可能的代码行,并推荐Top-N给编程人员.代码行深度感知使用RNN Encoder-Decoder,该框架能够将编程现场已有的若干行上文代码行进行编码,得到一个包含已有代码行上下文信息的向量,然后根据该向量进行解码,得到预测的Top-N代码行输出.利用在开源平台上收集的大规模代码行数据集,对方法进行实验并测试,结果显示,该方法能够根据已有的上下文推荐相关的代码行给开发人员,Top-10的推荐准确率有60%左右,并且MRR值在0.3左右,表示用户满意的推荐项排在N个推荐结果中比较靠前的位置.  相似文献   

3.
4.
仇丽青  李伟明 《计算机工程》2010,36(21):265-266,269
针对现有的多文档自动摘要生成方法中存在的问题,提出一种多文档自动摘要生成方法,该方法能够最大限度地减小摘要内容的冗余。选取权重最大的句子作为摘要句,把已选句子中包含的词汇的权重设置为接近0的常数,当下次选择摘要句时,可以避免再次选取包含这些词汇的句子。使用自动摘要评测方法ROUGE对该方法进行评测。实验结果表明,根据该方法抽取的机器摘要能够获得较高的 成绩。  相似文献   

5.
理解软件代码的功能是软件复用的一个重要环节。基于主题建模技术的代码理解方法能够挖掘软件代码中潜在的主题,这些主题在一定程度上代表了软件代码所实现的功能。但是使用主题建模技术所挖掘出的代码主题有着语义模糊、难以理解的弊端。潜在狄利克雷分配(Latent Dirichlet Allocation,LDA)技术是一种比较常用的主题建模技术, 其在软件代码主题挖掘领域已取得了较好的结果,但同样存在上述问题。为此,需要为主题生成解释性文本描述。基于LDA的软件代码主题摘要自动生成方法除了利用主题建模技术对源代码生成主题之外,还利用文档、问答信息等包含软件系统功能描述的各类软件资源挖掘出代码主题的描述文本并提取摘要,从而能够更好地帮助开发人员理解软件的功能。  相似文献   

6.
代码摘要(code summary)是对一段源代码简短的自然语言描述,代码自动摘要(code summarization)技术通过自动化地生成代码摘要辅助开发者更好地理解程序代码,该技术在许多软件开发活动中都具有重要的应用价值.代码自动摘要同时结合了机器翻译和文本摘要2个任务,如何更好地对代码建模以及如何更好地筛选代码中的关键信息是代码摘要所面临的主要挑战.受人类写摘要时的习惯和相关研究的启发,提出了一种基于关键词的代码自动摘要方法(keyword-based source code summarization, KBCoS).该方法将函数签名和API(application programming interface)调用视为关键词,并利用关键词序列来优化解码器注意力机制中的权重分布,使模型在生成摘要时更集中地关注代码中的重要信息.此外,为克服代码符号词汇表过大的问题,提出了符号部分拆分算法,即当符号不在词表中时,依据常用命名规则将符号拆成子符号的序列.该算法简单有效,能很好地平衡代码符号序列长度和未登录词数目之间的矛盾.选用了带有注意力机制的序列到序列模型作为基准模型,并在公开的Java代码摘要数据集上进行了评估.实验表明,基于关键词的注意力机制和部分拆分算法在BLEU-4,METEOR,ROUGE-L这3个评测指标上均能提升基准模型的表现.同时,在另一个Python数据集上也取得了一致的实验结果.最后,将KBCoS与现有模型相结合,在Java数据集上取得了当前最好的结果,该结果表明KBCoS也能改进现有的其他模型.评测结果和注意力权重的热力图都表明了KBCoS的有效性.  相似文献   

7.
王金水  薛醒思  翁伟 《计算机应用》2015,35(7):1999-2003
针对词袋模型忽略了词条之间语义关系和概念结构的问题,提出一种基于句法分析的代码摘要技术。首先,该技术利用词性标注识别出最有可能体现代码特性的关键词;然后,通过块分析修正在词性标注过程中可能引入的错误;其次,对标识出的关键词进行降噪,以减少文本噪声带来的不利影响;最后,从关键词中选取若干个权值最高的词以组成代码摘要。实验结果表明,与基于词频-逆文档频率(TF-IDF)和基于TF-IDF扩展的代码摘要技术对比,所提技术生成的代码摘要与参考答案的重叠率(overlap)至少分别提高了9%和6%,说明该技术能够生成更加准确的代码摘要。  相似文献   

8.
项目案例库建设对高职项目化教学起着重要的支撑作用,本文提出了一种新的项目案例库生成方式,基于代码自动生成JSP项目案例库,通过代码自动生成工具将来自企业一线的多个项目转化为适合教学的项目案例库,取得了不错的效果。  相似文献   

9.
代码注释作为软件中的重要组成部分,在软件维护、复用等领域中发挥着重要作用。代码注释自动生成技术旨在减轻人工编写注释的工作量,从而提高软件开发效率。现有的注释自动生成方法分为基于规则、文本摘要、数据驱动、主题模型、深度学习等层次。综述了代码注释自动生成的相关概念,对比总结各类代码注释自动生成方法,对近年来代码注释自动生成相关应用进行了梳理和总结,最后对注释自动生成所面临的挑战进行了分析,展望了该领域未来的研究。  相似文献   

10.
近年来,随着软件需求的不断增加,开发人员通过复用已有的代码向项目中引入了大量的克隆代码。随着软件版本的迭代和更新,克隆代码会发生变化,而克隆代码变化会导致额外的维护代价,并逐渐成为软件维护的负担。研究人员尝试利用机器学习方法开展克隆代码一致性维护需求预测研究,通过预测克隆代码的变化是否会导致额外的维护代价,来帮助软件质量保障团队更有效地分配维护资源,从而提高工作效率并降低运维成本。然而,在软件开发的初期阶段,软件项目往往没有经过充分的演化,缺少历史数据用于构建有效的预测模型,因此跨项目克隆代码一致性维护需求预测方法被提出。文中以减少跨项目数据分布差异为切入点,提出了基于迁移学习和过采样技术的跨项目克隆代码一致性维护需求预测方法CPCCP+,旨在将测试集与数据集映射到核空间中,通过迁移主成分分析方法减小跨项目数据的分布差异,并对数据集的类不平衡问题进行处理,从而提高跨项目预测模型的性能。在实验数据集方面,选取了7个开源数据集,合计形成42组跨项目克隆代码一致性维护需求预测任务。将提出的方法与使用基分类器的方法进行比较,评估指标包含Precision,Recall和F-Measure。实验...  相似文献   

11.
源代码的摘要可以帮助软件开发人员快速地理解代码,帮助维护人员更快地完成维护任务.但是,手工编写摘要代价高、效率低,因此人们试图利用计算机自动地为源代码生成摘要.近年来,基于神经网络的代码摘要技术成为自动源代码摘要研究的主流技术和软件工程领域的研究热点.首先阐述了代码摘要的概念和自动代码摘要的定义,回顾了自动代码摘要技术...  相似文献   

12.
源代码注释生成旨在为源代码生成精确的自然语言注释,帮助开发者更好地理解和维护源代码.传统的研究方法利用信息检索技术来生成源代码摘要,从初始源代码选择相应的词或者改写相似代码段的摘要;最近的研究采用机器翻译的方法,选择编码器-解码器的神经网络模型生成代码段的摘要.现有的注释生成方法主要存在两个问题:一方面,基于神经网络的方法对于代码段中出现的高频词更加友好,但是往往会弱化低频词的处理;另一方面,编程语言是高度结构化的,所以不能简单地将源代码作为序列化文本处理,容易造成上下文结构信息丢失.因此,本文为了解决低频词问题提出了基于检索的神经机器翻译方法,使用训练集中检索到的相似代码段来增强神经网络模型;为了学习代码段的结构化语义信息,本文提出结构化引导的Transformer,该模型通过注意力机制将代码结构信息进行编码.经过实验,结果证明该模型在低频词和结构化语义的处理上对比当下前沿的代码注释生成的深度学习模型具有显著的优势.  相似文献   

13.
为弥补软件漏洞挖掘领域的不足,文章介绍了一种基于源代码信息流分析的静态漏洞挖掘方法,通过对源代码中函数的数据输入点进行信息流分析,观察其流向,在敏感函数调用点进行分析判断,最终确定是否存在漏洞。  相似文献   

14.
近年来, 信息的安全传输备受人们关注, 现有的物理层安全技术从信息论的角度出发, 将物理层安全编码与传输信道的动态物理特性进行结合, 实现信息的保密传输。作为一种纠删码, LT(Luby transform)码由于其编码随机性、码率不固定等特性,使得窃听者不能直接从泄露的编码符号中得到有用信息, 只要合法用户在窃听者之前接收到足够数量的编码符号, 便可实现信息的安全传输。而作为一种转移 LT(Shifted LT, SLT)码, SLT 码能高效恢复信息的同时具有更小的译码开销。因此, 我们将 SLT码应用于 Wyner 降阶窃听信道模型进行研究, 提出一种基于部分信息转移的 SLT-LT 联合码防窃听方案, 信源利用接收者已知的部分信息对度分布进行调整, 并对信源符号进行 SLT-LT 码级联编码。由于窃听信道是合法信道的降阶信道, 因此外在的窃听者截获到的消息符号是合法接收者的降阶版本, 在相同时间内, 合法接收者能够收到更多消息符号, 随着编解码过程的不断进行, 合法接收者的优势不断累积, 能够优先完成解码, 而度分布的调整以及级联编码方案使得编码符号的平均度进一步增大,窃听者难以完成解码, 进一步降低了窃听者译出率; 之后, 对所提方案的编解码性能以及安全性进行理论分析, 并通过实验仿真进行验证, 仿真结果表明, 与其他防窃听 LT 方案相比, 本文所提方案仅增加少量的译码开销但具有更好的安全性能。  相似文献   

15.
席荣荣  云晓春  张永铮 《软件学报》2015,26(7):1638-1649
传统的网络威胁态势评估方法主要是基于原始的警报信息,未结合目标网络的环境信息,使得方法的准确性受到很大的影响.提出了一种基于环境属性的网络威胁态势量化评估方法,该方法首先根据目标网络的环境属性对警报进行验证,判定引发警报的安全事件发生的可能性;然后,基于安全事件的风险级别及所针对的资产价值,分析安全事件发生后造成的损失;最后,基于安全事件发生的可能性及造成的损失量化评估网络的威胁态势.实例分析结果表明,该方法可以准确地量化评估网络的威胁态势.  相似文献   

16.
基于信息融合的多文档自动文摘技术   总被引:7,自引:0,他引:7  
徐永东  徐志明  王晓龙 《计算机学报》2007,30(11):2048-2054
提出了一个面向多文档自动文摘任务的多文本框架(Multiple Document Framework,MDF),该框架通过系统地描述不同层面的文本单元之间的相互关系以及文档集合蕴含的事件在时间上的发生及演变,将多篇文档在不损失文档集合原有信息的前提下实现信息融合.MDF简化了传统交叉文本结构理论的文本集合表示模型,又补充了信息融合理论中缺乏的事件主题的演变性和分布性信息.文中给出了建立MDF、基于MDF的信息融合、文摘生成等一整套算法.通过对32组不同主题的网络文档试验结果表明,MDF策略很好地实现了多知识源的并行融合,并获得了较好的结果.  相似文献   

17.
针对基于图的多文档摘要,该文提出了一种在图排序中结合维基百科实体信息增强摘要质量的方法。首先抽取文档集合中高频实体的维基词条内容作为该文档集合的背景知识,然后采用PageRank算法对文档集合中的句子进行排序,之后采用改进的DivRank算法对文档集合和背景知识中的句子一起排序,最后根据两次排序结果的线性组合确定文档句子的最终排序以进行摘要句的选取。在DUC2005数据集上的评测结果表明该方法可以有效利用维基百科知识增强摘要的质量。  相似文献   

18.
该文提出通过伪随机码来改善语音信息隐藏的性能。采用Hadamard作为伪随机码,不但可以使隐藏的语音信息更加隐蔽,而且对于外界的噪声、压缩、滤波干扰有很强的纠错能力。  相似文献   

19.
代码克隆检测在剽窃检测、版权侵犯调查、软件演化分析、代码压缩、错误检测,以及寻找bug,发现复用模式等方面有重要作用。现有的代码克隆检测工具算法复杂,或需要消耗大量的计算资源,不适用于规模巨大的代码数据。为了能够在大规模的数据上检测代码克隆,提出了一种新的代码克隆检测算法。该算法结合数据消重中的基于内容可变长度分块(content-defined chunking,CDC)思想和网页查重中的Simhash算法思想,采用了对代码先分块处理再模糊匹配的方法。在一个包含多种开源项目,超过5亿个代码文件,共约10 TB代码内容的数据源上,实现了该算法。通过实验,比较了不同分块长度对代码克隆检测率和所需要时间的影响,验证了新算法可以运用于大规模代码克隆检测,并且能够检测出一些级别3的克隆代码,达到了较高的准确率。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号