logo móvil
Contáctanos

Búsqueda de código neural mejorada con semántica profunda

Autores: Yin, Ying; Ma, Longfei; Gong, Yuqi; Shi, Yucen; Wahab, Fazal; Zhao, Yuhai

Idioma: Inglés

Editor: MDPI

Año: 2024

Descargar PDF

Acceso abierto

Artículo científico
2024

Búsqueda de código neural mejorada con semántica profunda


Categoría

Ingeniería y Tecnología

Subcategoría

Ingeniería Eléctrica y Electrónica

Palabras clave

Búsqueda de código
Consultas en lenguaje natural
Características semánticas
Características estructurales
Algoritmo de búsqueda de código neural
Mecanismo de atención

Licencia

CC BY-SA – Atribución – Compartir Igual

Consultas: 27

Citaciones: Sin citaciones


Descripción
La búsqueda de código utiliza consultas en lenguaje natural para recuperar fragmentos de código de una vasta base de datos, identificando aquellos que son semánticamente similares a la consulta. Esto permite a los desarrolladores reutilizar código y mejorar la eficiencia en el desarrollo de software. La mayoría de los algoritmos de búsqueda de código existentes se centran en capturar características semánticas y estructurales aprendiendo tanto del texto como de las estructuras de grafo de código. Sin embargo, estos algoritmos a menudo tienen dificultades para capturar características semánticas y estructurales más profundas dentro de estas fuentes, lo que lleva a una menor precisión en los resultados de búsqueda de código. Para abordar este problema, este documento propone un nuevo algoritmo de búsqueda de código neural mejorado con semántica llamado SENCS, que emplea la serialización de grafo y un mecanismo de atención de dos etapas. Primero, el grafo de dependencia del programa de código se transforma en una codificación serializada única, y se utiliza un modelo de memoria a corto y largo plazo bidireccional (LSTM) para aprender la información estructural del código en la secuencia de grafo y generar vectores de código ricos en características estructurales. En segundo lugar, un mecanismo de atención de dos etapas mejora los vectores incrustados asignando información de peso diferente a varias características de código durante la fase de fusión de características de código, capturando información de características significativas de diferentes secuencias de características de código, lo que resulta en vectores de código ricos en información semántica y estructural. Para validar el rendimiento del algoritmo de búsqueda de código propuesto, se realizaron experimentos extensos en dos conjuntos de datos de búsqueda de código ampliamente utilizados, CodeSearchNet y JavaNet. Los resultados experimentales muestran que el algoritmo SENCS propuesto mejora las métricas de precisión promedio de búsqueda de código en un 8,30 % (MRR) y un 17,85 % (DCG) en comparación con el mejor modelo de búsqueda de código de referencia en la literatura, con una mejora promedio del 14,86 % en la métrica SR@1. Los experimentos con dos conjuntos de datos de código abierto demuestran que SENCS logra un efecto de búsqueda mejor que los modelos de vanguardia.

Otros recursos que podrían interesarte

Temas Virtualpro