GitHub progetto , all'interno del quale sono stati preparati modelli di machine learning e dataset necessari per l'analisi, la classificazione e la comprensione del codice in vari linguaggi di programmazione. CodeSearchNet, analogamente a , include una vasta collezione di frammenti di codice, dotati di 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 analisi del linguaggio naturale, che permettono ai sistemi di machine learning di considerare non solo le caratteristiche sintattiche, ma anche il significato delle azioni eseguite dal codice. Su GitHub, il sistema è stato impiegato in esperimenti sull'organizzazione della ricerca semantica del codice utilizzando query in (per esempio, nel caso di una query come «ordinare una lista di stringhe», viene restituito il codice che implementa gli algoritmi corrispondenti).
Il set di dati proposto include 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, mentre il commento descrive le azioni eseguite dalla funzione (è fornita una documentazione dettagliata). Attualmente, i set di dati sono disponibili 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 preparato un set aggiuntivo chiamato CodeSearchNet Challenge, che include
query con circa 4.000 annotazioni esperte, descriventi le associazioni più probabili al 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 di codice in linguaggio naturale. Usando il toolkit è stato preparato
un motore per la ricerca di codice.
Fonte: opennet.ru
