Done a arXiv
Título: When Deep Learning Met Code Search
Descargar PDF
Resumen: Ha habido varias propuestas recientes sobre el uso de redes neuronales profundas para la búsqueda de códigos utilizando lenguaje natural. Común a todas estas propuestas es la idea de queries\mathit{embedding} queries consultas de código y lenguaje natural, en vectores reales y luego usando la distancia vectorial para aproximar la correlación semántica entre el código y la consulta. Los múltiples enfoques que existen para el aprendizaje de estas incrustaciones,incluyendo $\mathit{sin supervisión}$ de técnicas, que se basan sólo en un corpus ofcode ejemplos, y $\mathit{supervisado}$ técnicas, que utilizan un$\mathit{aligned}$ corpus de pares de código de lenguaje natural y de las descripciones. El objetivo de esta supervisión es producir incrustaciones que sean más similares para aquery y el fragmento de código deseado correspondiente. Está claro que hay opciones para utilizar técnicas supervisadas y, si lo hace, qué tipo de red y capacitación usar para la supervisión. Este artículo es el primero en evaluar estas opciones de forma sistemática. Con este fin, ensamblamos implementaciones de técnicas de última generación para funcionar en una plataforma común,corpus de capacitación y evaluación. Para explorar el espacio de diseño en networkcomplexity, también introdujimos un nuevo punto de diseño que es una extensión de supervisión minimal \ mathit{minimal} supervision a una técnica existente sin supervisión. Nuestra evaluación muestra que: 1. agregar supervisión a una técnica existente sin supervisión puede mejorar el rendimiento, aunque no necesariamente por mucho; 2. las redes simples para la supervisión pueden ser más efectivas que las redes basadas en secuencias más sofisticadas para la búsqueda de código; 3. si bien es común el uso de cadenas de documentos para llevar a cabo la supervisión, existe una brecha considerable entre la eficacia de las cadenas de documentos y un corpus de supervisión más apropiado para las consultas.
El conjunto de datos de evaluación ya está disponible en arXiv:1908.09804
Materias: | Ingeniería de software (cs.SE); Computación y lenguaje (cs.CL); Aprendizaje automático (cs.LG) |
Cite as: | arXiv:1905.03813 |
(o arXiv:1905.03813v4 para esta versión) |