mltype-Typing practice för programmerare

mltype är ett kommandoradsverktyg för att förbättra skrivfärdigheter. Det gör det med en liten bit av djupt lärande.

om du klickade på det här inlägget hoppas du skulle lära dig något om statisk typning, skriv anteckningar eller liknande, det här är inte rätt artikel. Skrivningen jag pratar om i det här inlägget är det du gör med ditt tangentbord. Eller för att vara exakt

åtgärden eller skickligheten att skriva något med hjälp av en skrivmaskin eller dator.

för några månader sedan bestämde jag mig för att lära mig touch typing! Jag vet vad du tänker… ” Är du en snabbare maskinskrivare än tidigare och var all smärta värt det?”Jag skulle definitivt säga ja och ja. Internet är dock fullt av liknande före och efter vittnesmål och jag kommer inte att skriva ännu en.

vad jag vill prata om är att jag verkligen blev förvånad över hur få resurser det finns för att öva touch typing med programmeringsspråk. Efter en snabb google-sökning kommer du förmodligen att upptäcka följande webbplatser:

medan ovanstående webbplatser har flera starka punkter, låt mig påpeka några av deras brister

  • brist på variabilitet och överraskningselement
  • Manuellt val av källfiler och motsvarande rader
  • inte anpassningsbar
  • inte gratis (typing.com)
  • inte nerdy nog-skulle det inte vara möjligt att göra det i terminalen?

av ovan nämnda skäl bestämde jag mig för att ge det ett skott och skriva min egen skrivpraxis programvara: mltype.

Vad gör den?

kort sagt, det är ett kommandoradsverktyg (skrivet i Python). Den använder neurala nätverk för att generera text som ser ut som ett programmeringsspråk (eller normalt språk). Dessutom ger det icke-maskininlärningsfunktioner som att läsa text från en fil eller standardinmatning.

om du undrar vilken typ av ”neuralt nätverk” som ligger bakom det skulle jag mer än uppmuntra dig att (åter)läsa den orimliga effektiviteten av återkommande neurala nätverk av Andrej Karpathy. mltype gör mer eller mindre samma sak i bakgrunden. För att vara exakt finns det en språkmodell på teckennivå. Det spottar ut en sannolikhetsfördelning över nästa tecken som ges tidigare tecken. Viktigast, det försöker dölja all komplexitet och tråkiga detaljer i träningen och slutsatsen från användaren. Att generera text från en befintlig modell och träna en ny modell kan båda göras i ett enda kommando.

exempel

Nedan följer några exempel på olika programmeringsspråk. Alla modeller som genererade dem och många andra förskolade modeller finns tillgängliga för nedladdning (se README.md på github).

vill du prova?

om du vill veta mer och prova det själv, besök länkarna nedan!

github: https://github.com/jankrepl/mltype
docs: https://mltype.readthedocs.io/en/latest/