GitHub progetto , nel cui ambito sono stati sviluppati modelli di apprendimento automatico e set di dati necessari per l'analisi, la classificazione e l'analisi del codice in diversi linguaggi di programmazione. CodeSearchNet, per analogia con , include una grande collezione di frammenti di codice accompagnati da annotazioni che formalizzano le azioni eseguite dal codice. I componenti per l'addestramento dei modelli e gli esempi di utilizzo di CodeSearchNet sono scritti in Python utilizzando il framework Tensorflow e sotto licenza MIT.
Nella creazione di CodeSearchNet sono state utilizzate tecnologie di elaborazione del linguaggio naturale che consentono ai sistemi di apprendimento automatico di considerare non solo le peculiarità sintattiche, ma anche il significato delle azioni eseguite dal codice. Su GitHub, il sistema è stato utilizzato in esperimenti per l'organizzazione di una ricerca semantica del codice utilizzando query in (ad esempio, cercando "ordinamento di una lista di stringhe", viene restituito il codice con l'implementazione degli algoritmi corrispondenti).
Il set di dati proposto comprende oltre 2 milioni di coppie "codice-commento", preparate sulla base di testi sorgente di librerie open source esistenti. Il codice copre il testo sorgente completo di singole funzioni o metodi, e il commento descrive le azioni eseguite dalla funzione (viene fornita documentazione dettagliata). Attualmente i set di dati sono stati preparati per i linguaggi Python, JavaScript, Ruby, Go, Java e PHP. Sono forniti esempi di utilizzo dei set di dati proposti per l'addestramento di vari tipi di reti neurali, inclusi , , (BERT) e .
Per sviluppare meccanismi di ricerca in linguaggio naturale, è stato ulteriormente preparato un set di dati chiamato CodeSearchNet Challenge, che include
con circa 4.000 annotazioni di esperti che descrivono i collegamenti più probabili con il codice nel set di dati CodeSearchNet Corpus, che comprende circa 6 milioni di metodi e funzioni ( circa 20 Gb). CodeSearchNet Challenge può fungere da benchmark per valutare l'efficacia di diversi metodi di ricerca del codice in linguaggio naturale. Utilizzando gli strumenti è preparato
motore per la ricerca di codice.
Fonte: opennet.ru
