Statistiska språkmodelleringsmetoder har framgångsrikt tillämpats på källkod, vilket ger en mängd nya verktyg för programvaruutveckling, såsom verktyg för kodförslag och förbättrad läsbarhet. Ett stort problem med dessa tekniker är att koden introducerar ny vokabulär i mycket högre takt än naturligt språk, eftersom nya identifierare namn förökar sig. Men traditionella språkmodeller begränsar ordförrådet till en fast uppsättning vanliga ord. För kod har detta starka antagande visat sig ha en betydande negativ effekt på prediktiva resultat. Men den öppna vokabulärversionen av neurala nätverksspråkmodeller för kod har inte introducerats i litteraturen. Vi presenterar en ny öppen-vokabulär neural språkmodell för kod som inte är begränsad till en fast vokabulär av identifierare namn. Vi använder en segmentering i underord enheter, undersekvenser av polletter som valts baserat på ett komprimeringskriterium, efter tidigare arbete i maskinöversättning. Vårt nätverk uppnår bäst i klassprestanda, överträffar även toppmoderna metoder av Hellendoorn och Devanbu som är utformade specifikt för modellkod. Dessutom presenterar vi en enkel metod för dynamisk anpassning av modellen till ett nytt testprojekt, vilket resulterar i ökad prestanda. Vi visar upp vår metodik för kodkorpora på tre olika språk på över en miljard polletter vardera, hundratals gånger större än i tidigare arbete. Så vitt vi vet är detta den största neurala språkmodellen för kod som har rapporterats. • Programvara och dess konstruktion → Verktyg för underhåll av programvara.
Uppföljningsarbetet från Ref har lett till att det nuvarande tekniska läget har fastställts.
Maybe Deep Neural Networks are the Best Choice for Modeling Source Code
{'venue': 'ArXiv', 'journal': 'ArXiv', 'mag_field_of_study': ['Computer Science']}