GitHub projeto , no qual modelos de aprendizado de máquina e conjuntos de dados foram preparados para a análise, classificação e compreensão de código em várias linguagens de programação. CodeSearchNet, por analogia com , inclui uma grande coleção de trechos de código, acompanhados de anotações que formalizam as ações executadas pelo código. Os componentes para treinar modelos e exemplos de uso do CodeSearchNet foram escritos em Python usando o framework TensorFlow e sob a licença MIT.
Na criação do CodeSearchNet, foram utilizadas tecnologias de análise de texto em linguagem natural, possibilitando que sistemas de aprendizado de máquina considerem não apenas as características sintáticas, mas também o significado das ações executadas pelo código. No GitHub, o sistema nos experimentos de organização de busca semântica de código usando consultas em (por exemplo, ao pesquisar por “ordenar lista de strings”, o código que implementa os algoritmos correspondentes é exibido).
O conjunto de dados proposto inclui mais de 2 milhões de pares “código-comentário”, preparados com base em textos-fonte de bibliotecas abertas existentes. O código abrange o texto fonte completo de funções ou métodos individuais, e o comentário descreve as ações executadas pela função (a documentação detalhada é fornecida). Atualmente, conjuntos de dados foram preparados para as linguagens Python, JavaScript, Ruby, Go, Java e PHP. São fornecidos exemplos de uso dos conjuntos de dados propostos para treinar vários tipos de redes neurais, incluindo , , (BERT) e .
Para desenvolver mecanismos de busca em linguagem natural, um conjunto adicional chamado CodeSearchNet Challenge foi preparado, incluindo
com cerca de 4 mil anotações de especialistas, descrevendo as associações mais prováveis ao código no conjunto de dados CodeSearchNet Corpus, que abrange cerca de 6 milhões de métodos e funções ( cerca de 20 GB). O CodeSearchNet Challenge pode servir como referência para avaliar a eficácia de diferentes métodos de busca de código em linguagem natural. Com a utilização da ferramenta está preparado
motor de busca de código.
Fonte: opennet.ru
