För att förbättra utvecklarproduktiviteten innehåller alla moderna integrerade utvecklingsmiljöer (IDE) kodförslag funktionalitet som föreslår sannolikt nästa tokens vid markören. Även om de nuvarande IDE:erna fungerar bra för statiskt typade språk innebär deras beroende av typanmärkningar att de inte ger samma stödnivå för dynamiska programmeringsspråk som för statiskt typade språk. Dessutom, förslag motorer i moderna IDE:er inte föreslå uttryck eller multi-uttalande idiomatiska kod. Det senaste arbetet har visat att språkmodeller kan förbättra kodförslagssystem genom att lära sig från programvaruarkiv. Detta papper introducerar en neural språkmodell med ett glest pekare nätverk som syftar till att fånga mycket långdistans beroenden. Vi släpper en storskalig kodförslag corpus av 41M linjer av Python kod kröp från GitHub. På denna corpus, fann vi standard neural språk modeller för att prestera bra på att föreslå lokala fenomen, men kämpa för att hänvisa till identifierare som introduceras många polletter i det förflutna. Genom att utöka en neural språkmodell med ett pekarnätverk specialiserat på att hänvisa till fördefinierade klasser av identifierare, får vi en mycket lägre perplexitet och en 5 procentenheters ökning i noggrannhet för kodförslag jämfört med en LSTM baslinje. I själva verket, denna ökning av kodförslag noggrannhet beror på en 13 gånger mer exakt förutsägelse av identifierare. Dessutom visar en kvalitativ analys att denna modell verkligen fångar intressanta långdistansberoenden, som att hänvisa till en klassmedlem som tidigare definierats över 60 polletter.
Bhoopchand m.fl. I Ref föreslogs en RNN-modell med en gles spetsmekanism som syftar till att fånga upp beroenden på lång sikt.
Learning Python Code Suggestion with a Sparse Pointer Network
{'venue': 'ArXiv', 'journal': 'ArXiv', 'mag_field_of_study': ['Computer Science']}