GitHub iniciado hace varios años , que ha preparado modelos de aprendizaje automático y conjuntos de datos necesarios para el análisis, clasificación y estudio de código en varios lenguajes de programación. CodeSearchNet, análogamente a , incluye una gran colección de fragmentos de código, acompañados de anotaciones que formalizan las acciones ejecutadas por el código. Los componentes para entrenar los modelos y ejemplos de uso de CodeSearchNet están escritos en Python utilizando el marco Tensorflow y bajo licencia MIT.
Al crear CodeSearchNet, se utilizaron tecnologías de análisis de texto en lenguaje natural, que permiten a los sistemas de aprendizaje automático considerar no solo las características sintácticas, sino también el sentido de las acciones ejecutadas por el código. En GitHub, el sistema en experimentos de organización de búsqueda semántica de código utilizando consultas en (por ejemplo, al consultar «ordenar una lista de cadenas» se muestra código que implementa los algoritmos correspondientes).
El conjunto de datos propuesto incluye más de 2 millones de pares «código-comentario», preparados a partir de textos fuente de bibliotecas abiertas existentes. El código abarca el texto completo de funciones o métodos individuales, y el comentario describe las acciones realizadas por la función (se proporciona documentación detallada). Actualmente, se han preparado conjuntos de datos para los lenguajes Python, JavaScript, Ruby, Go, Java y PHP. Se proporcionan ejemplos de uso de los conjuntos de datos propuestos para entrenar varios tipos de redes neuronales, incluyendo , , (BERT) y .
Para desarrollar mecanismos de búsqueda en lenguaje natural, se ha preparado adicionalmente un conjunto CodeSearchNet Challenge, que incluye
con alrededor de 4 mil anotaciones de expertos que describen los enlaces más probables al código en el conjunto de datos CodeSearchNet Corpus, que abarca alrededor de 6 millones de métodos y funciones ( alrededor de 20 GB). CodeSearchNet Challenge puede servir como referencia para evaluar la efectividad de diversos métodos de búsqueda de código en lenguaje natural. Usando la herramienta preparado
motor para la búsqueda de código.
Fuente: opennet.ru
