Explorando la optimización metaheurística del aprendizaje automático para la detección de defectos de software en conjuntos de datos de lenguaje natural y clásicos
Autores: Petrovic, Aleksandar; Jovanovic, Luka; Bacanin, Nebojsa; Antonijevic, Milos; Savanovic, Nikola; Zivkovic, Miodrag; Milovanovic, Marina; Gajic, Vuk
Idioma: Inglés
Editor: MDPI
Año: 2024
Acceso abierto
Artículo científico
2024
Explorando la optimización metaheurística del aprendizaje automático para la detección de defectos de software en conjuntos de datos de lenguaje natural y clásicos
Categoría
Matemáticas
Subcategoría
Matemáticas generales
Palabras clave
Software
Sistemas automatizados
Revisión de código
Inteligencia artificial
Procesamiento de lenguaje natural
Detección de errores
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 19
Citaciones: Sin citaciones
El software es cada vez más vital, con sistemas automatizados regulando funciones críticas. A medida que crecen las demandas de desarrollo, la revisión manual de código se vuelve más desafiante, lo que a menudo hace que las pruebas sean más lentas que el desarrollo. Un enfoque prometedor para mejorar la detección de defectos a nivel de código fuente es el uso de inteligencia artificial combinada con procesamiento de lenguaje natural (NLP). El análisis de código fuente, aprovechando instrucciones legibles por máquina, es un método efectivo para mejorar la detección de defectos y la prevención de errores. Este trabajo explora el análisis de código fuente a través de NLP y aprendizaje automático, comparando métodos clásicos y emergentes de detección de errores. Para optimizar el rendimiento del clasificador, se utilizan optimizadores metaheurísticos y se introducen modificaciones al algoritmo para satisfacer las necesidades específicas del estudio. El marco propuesto de dos niveles utiliza una red neuronal convolucional (CNN) en la primera capa para manejar grandes espacios de características, con clasificadores AdaBoost y XGBoost en la segunda capa para mejorar la identificación de errores. Experimentos adicionales utilizando codificación de frecuencia de término-inversa de documento (TF-IDF) en la segunda capa demuestran la versatilidad del marco. En cinco experimentos con conjuntos de datos públicos, la precisión de la CNN fue de 0.768799. La segunda capa, utilizando AdaBoost y XGBoost, mejoró aún más estos resultados a 0.772166 y 0.771044, respectivamente. La aplicación de técnicas de NLP produjo precisión excepcional de 0.979781 y 0.983893 con los optimizadores AdaBoost y XGBoost.
Descripción
El software es cada vez más vital, con sistemas automatizados regulando funciones críticas. A medida que crecen las demandas de desarrollo, la revisión manual de código se vuelve más desafiante, lo que a menudo hace que las pruebas sean más lentas que el desarrollo. Un enfoque prometedor para mejorar la detección de defectos a nivel de código fuente es el uso de inteligencia artificial combinada con procesamiento de lenguaje natural (NLP). El análisis de código fuente, aprovechando instrucciones legibles por máquina, es un método efectivo para mejorar la detección de defectos y la prevención de errores. Este trabajo explora el análisis de código fuente a través de NLP y aprendizaje automático, comparando métodos clásicos y emergentes de detección de errores. Para optimizar el rendimiento del clasificador, se utilizan optimizadores metaheurísticos y se introducen modificaciones al algoritmo para satisfacer las necesidades específicas del estudio. El marco propuesto de dos niveles utiliza una red neuronal convolucional (CNN) en la primera capa para manejar grandes espacios de características, con clasificadores AdaBoost y XGBoost en la segunda capa para mejorar la identificación de errores. Experimentos adicionales utilizando codificación de frecuencia de término-inversa de documento (TF-IDF) en la segunda capa demuestran la versatilidad del marco. En cinco experimentos con conjuntos de datos públicos, la precisión de la CNN fue de 0.768799. La segunda capa, utilizando AdaBoost y XGBoost, mejoró aún más estos resultados a 0.772166 y 0.771044, respectivamente. La aplicación de técnicas de NLP produjo precisión excepcional de 0.979781 y 0.983893 con los optimizadores AdaBoost y XGBoost.