Identificación de clones de código mediante árboles de sintaxis frente a transformers.
Repositorio utilizado para la ejecución del benchmark entre la arquitectura ad-hoc de ASTNN frente a un transformer preentrenado con código como lo es CodeBERT. El análisis experimental y conceptual del flujo de trabajo se encuentra en nuestra memoria de trabajo: "Más Allá de la Sintaxis: Evaluación de CodeBERT frente a Métodos Basados en AST en BigCloneBench" disponible aquí.
-
Descarga el dataset: Enlace a Google Drive
-
Añádelos al proyecto: Descomprime los archivos y añádelos a las siguientes carpetas del directorio:
Clone_Benchmarking/ │ ├── astnn/ │ ├── ... │ ├── bcb_funcs_all.tsv <- Enlace │ ├── bcb_pair_ids.pkl <- Enlace │ ├── ast.pkl <- Enlace │ └── data │ └── train │ ├── blocks.pkl <- Enlace │ └── train_.pkl <- Enlace │ └── codebert/ └── codebert_train_10.csv <- Enlace
En la terminal Windows, dentro de la carpeta del proyecto:
python -m venv venv
venv\Scripts\activateEn la terminal Linux o Mac, dentro de la carpeta del proyecto:
python3 -m venv venv
source venv/bin/activatepip install -r requirements.txtpython3 evaluation.py Clone_Benchmarking/
│
├── README.md
├── requirements.txt
├── evaluation.py
├── resultados_benchmarking.txt <- Generado con evaluation.py
├── .gitignore
├── LICENSE
│
├── data_scripts/
│ ├── reduce_dataset.py
│ └── README.md
│
├── astnn/
│ ├── model.py
│ ├── train.py
│ ├── pipeline.py
│ ├── tree.py
│ ├── utils.py
│ ├── config.py
│ ├── bcb_funcs_all.tsv <- Enlace
│ ├── bcb_pair_ids.pkl <- Enlace
│ ├── ast.pkl <- Enlace
│ └── data
│ └── train
│ ├── blocks_10percent.pkl <- Enlace
│ └── train_.pkl <- Enlace
│
└── codebert/
├── train_codebert.py
└── codebert_train_10.csv <- Enlace
@inproceedings{zhang2019novel,
title={A novel neural source code representation based on abstract syntax tree},
author={Zhang, Jian and Wang, Xu and Zhang, Hongyu and Sun, Hailong and Wang, Kaixuan and Liu, Xudong},
booktitle={Proceedings of the 41st International Conference on Software Engineering},
pages={783--794},
year={2019},
organization={IEEE Press}
}
Autores: Miguel Gallego, Andrea Mejía e Isabel Escribano
Fecha: 26 Jan 2026