GitHub Projekt , in dessen Rahmen Modelle für maschinelles Lernen sowie Datensätze erstellt wurden, die für das Parsen, Klassifizieren und Analysieren von Code in verschiedenen Programmiersprachen erforderlich sind. CodeSearchNet ähnelt , enthält eine umfangreiche Sammlung von Codeausschnitten, die mit Annotationsinformationen versehen sind, die die auszuführenden Aktionen des Codes formalisieren. Die Komponenten zum Training der Modelle und die Anwendungsbeispiele von CodeSearchNet sind in Python unter Verwendung des TensorFlow-Frameworks geschrieben, und unter der MIT-Lizenz.
bei der Erstellung von CodeSearchNet wurden Technologien für die Verarbeitung natürlicher Sprache verwendet, die es den maschinellen Lernsystemen ermöglichen, nicht nur syntaktische Merkmale, sondern auch die Bedeutung der auszuführenden Codeaktionen zu berücksichtigen. Auf GitHub wird das System in Experimenten zur semantischen Code-Suche mit Anfragen in (zum Beispiel wird bei der Anfrage "Sortierung einer Liste von Zeichenfolgen" der Code ausgegeben, der die entsprechenden Algorithmen implementiert).
Das bereitgestellte Datenset umfasst über 2 Millionen Paare aus„Code und Kommentar“, die auf den Quelltexten bestehender öffentlicher Bibliotheken basieren. Der Code enthält den vollständigen Quelltext einzelner Funktionen oder Methoden, während der Kommentar die von der Funktion ausgeführten Aktionen erläutert (detaillierte Dokumentation ist verfügbar). Derzeit sind Datensets für die Sprachen Python, JavaScript, Ruby, Go, Java und PHP vorbereitet. Beispiele für die Verwendung der bereitgestellten Datensets zum Training verschiedener Typen von neuronalen Netzwerken sind enthalten, einschließlich , , (BERT) und .
Um die Suchmechanismen für natürliche Sprache weiterzuentwickeln, wurde zusätzlich das Set "CodeSearchNet Challenge" erstellt, das
Abfragen mit etwa 4.000 Expertenanmerkungen umfasst, die die wahrscheinlichsten Zuordnungen zum Code im Datensatz CodeSearchNet Corpus beschreiben, der etwa 6 Millionen Methoden und Funktionen umfasst ( ca. 20 GB). Die CodeSearchNet Challenge kann als Referenz zur Bewertung der Effektivität von Methoden zur Suche von Code in natürlicher Sprache dienen. Mit Hilfe des Tools ist bereitgestellt
wurde eine Engine zur Codesuche entwickelt.
Quelle: opennet.ru
