GitHub project , waarvoor modellen voor machine learning en datasets zijn voorbereid, die nodig zijn voor het parseren, classificeren en analyseren van code in verschillende programmeertalen. CodeSearchNet, vergelijkbaar met , omvat een grote collectie codefragmenten, voorzien van annotaties die de acties beschreven door de code formaliseren. De componenten voor het trainen van modellen en de voorbeeldtoepassingen van CodeSearchNet zijn geschreven in Python met behulp van het Tensorflow-framework en valt onder de MIT-licentie.
Bij de ontwikkeling van CodeSearchNet zijn technieken voor natuurlijke taalverwerking gebruikt waarmee machine learning-systemen niet alleen syntactische kenmerken, maar ook de betekenis van de acties die door de code worden uitgevoerd, kunnen begrijpen. Op GitHub heeft het systeem in experimenten met semantisch zoeken naar code met behulp van verzoeken in zoals bijvoorbeeld bij de opgave ālijst van strings sorterenā worden de implementaties van de bijbehorende algoritmen weergegeven.
De voorgestelde dataset omvat meer dan 2 miljoen paren ācode-opmerkingā, voorbereid op basis van de bronbestanden van bestaande open bibliotheken. De code omvat de volledige broncode van afzonderlijke functies of methoden, terwijl de opmerking de acties beschrijft die door de functie worden uitgevoerd (gedetailleerde documentatie wordt gegeven). Momenteel zijn datasets voorbereid voor de talen Python, JavaScript, Ruby, Go, Java en PHP. Voorbeelden van het gebruik van de voorgestelde datasets voor het trainen van verschillende soorten neurale netwerken zijn geleverd, waaronder , , (BERT) en .
Om de mechanismen voor zoeken in natuurlijke taal verder te ontwikkelen, is aanvullend de CodeSearchNet Challenge dataset voorbereid, die
verzoeken met ongeveer 4.000 deskundige annotaties omvat, die de meest waarschijnlijke toewijzingen naar de code in de CodeSearchNet Corpus dataset beschrijven, die ongeveer 6 miljoen methoden en functies omvat ( ongeveer 20 Gb). De CodeSearchNet Challenge kan fungeren als referentie voor het evalueren van de effectiviteit van verschillende methoden voor zoeken naar code in natuurlijke taal. Met behulp van de toolset voorbereid
de engine voor het zoeken naar code.
Bron: opennet.ru
