Inkorporation externen Wissens durch Vortraining für die Generierung von Naturalsprache in Code

Die generische Codegenerierung zielt darauf ab, Code in einer allgemein verwendbaren Programmiersprache (wie Python) aus natürlichen Sprachabsichten (Natural Language, NL) zu erzeugen. Ausgehend von der Beobachtung, dass Entwickler beim Schreiben von Code häufig Ressourcen im Web recherchieren, untersuchen wir die Wirksamkeit der Integration zweier Arten externer Wissensquellen in die NL-zu-Code-Generierung: automatisch abgeleitete Paare aus natürlicher Sprache und Code aus der Online-Programmier-Frage-Antwort-Plattform StackOverflow sowie Programmiersprach-API-Dokumentationen. Unsere Evaluierungen zeigen, dass die Kombination beider Quellen unter Verwendung von Datenverstärkung (data augmentation) und retrieval-basierter Datensampling-Neujustierung die derzeit beste Leistung um bis zu 2,2 Prozentpunkte im absoluten BLEU-Score auf dem Codegenerierungs-Testfeld CoNaLa übertrifft. Der Quellcode und die zugrundeliegenden Ressourcen sind unter https://github.com/neulab/external-knowledge-codegen verfügbar.