littlebot
Published on 2025-04-08 / 0 Visits
0

【源码】基于Python和ONMT框架的神经源代码摘要系统

项目简介

本项目是基于Python和Open Neural Machine Translation (ONMT) 框架构建的神经源代码摘要系统。其目标是自动生成源代码的摘要,可支持Python、Java和Bash等多种编程语言。项目依据ICSE 2020论文《Retrieval-based Neural Source Code Summarization》,借助神经网络模型与检索技术,达成高效且准确的代码摘要生成。

项目的主要特性和功能

  1. 支持Python、Java和Bash等多种编程语言的代码摘要生成。
  2. 具备数据格式处理和预处理功能,保证输入数据契合模型要求。
  3. 支持神经网络模型训练,可通过调整参数优化模型性能。
  4. 集成检索功能,利用修改后的textdistance库实现代码相似度计算。
  5. 结合神经网络和检索技术,生成高质量的代码摘要。

安装使用步骤

环境准备

  • 硬件要求:16核2.4GHz CPU,128GB RAM,Titan Xp GPU(12GB内存)。
  • 操作系统:Ubuntu 16.04或Windows。
  • 依赖包:Python 3.9,PyTorch 1.10.1,torchtext 0.3.1,nltk 3.2.4,ConfigArgParse 0.14.0。

数据准备

  • samples目录下新建对应编程语言的文件夹(如bash)。
  • 创建traintestvalidpreprocessedoutputindexes文件夹。
  • 将训练集、测试集和验证集的代码、AST序列和注释分别放入对应目录。

数据预处理

  • 修改run.py中的代码,设置编程语言和输入输出长度。
  • 运行python run.py preprocess <language>进行数据预处理,结果保存在preprocessed目录下。

模型训练

  • 运行python run.py train <language>进行模型训练,参数可在onmt/opts.py中修改。
  • 记录验证准确率最高的模型。

检索功能

  • 修改normalize.pyrun.py中的代码,设置编程语言和输入长度。
  • 运行python run.py retrieval <language>进行检索。

生成摘要

  • 修改run.py中的命令行代码,设置模型参数和输出长度。
  • 运行python run.py translate <language> <mode>生成代码摘要,结果保存在samples/<language>/output/Rencos.out

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】