Dve zgodbi o tem, kako vam lahko ANKI pomaga pri učenju tujega jezika in pripravi na razgovore

Vedno sem verjel, da je len programer dober programer. Zakaj? Ker prosite pridnega delavca, naj nekaj naredi, bo šel in to naredil. In leni programer bo porabil 2-3 krat več časa, vendar bo napisal skript, ki bo to naredil namesto njega. Prvič bo morda trajalo nerazumno dolgo, vendar se bo ta pristop zelo hitro obrestoval pri ponavljajočih se opravilih. Imam se za lenega programerja. To je bila preambula, zdaj pa preidimo na stvar.

Zgodba ena

Pred nekaj leti sem se spraševal, kako bi lahko izboljšal svojo angleščino. Na misel mi ni prišlo nič boljšega kot branje literature. Kupil sem elektronski bralnik, naložil knjige in začel brati. Med branjem sem vedno znova naletel na neznane besede. Takoj sem jih prevedel s slovarji, vgrajenimi v bralnik, vendar sem opazil eno lastnost: besede si niso želele zapomniti. Ko sem čez nekaj strani znova naletel na to besedo, sem z 90% verjetnostjo ponovno potreboval prevod in to se je zgodilo vsakič. Zaključek je bil, da ni dovolj samo prevajanje neznanih besed med branjem, ampak morate narediti nekaj drugega. Idealna možnost bi bila, da bi ga uvedli v vsakdanje življenje in začeli uporabljati, vendar ne živim v angleško govoreči državi in ​​je to malo verjetno. Potem sem se spomnil, o čemer sem nekoč bral Razmaknjeno ponavljanje.

Kaj je in s čim se uživa? Skratka, tukaj je to krivulja pozabljanja, nadaljnji citat iz Wikipedije:

Že v prvi uri se pozabi do 60% vseh prejetih informacij, 10 ur po pomnjenju ostane v spominu 35% naučenega. Nato proces pozabljanja poteka počasi in po 6 dneh ostane v spominu približno 20% celotnega števila prvotno naučenih zlogov, enako količino pa ostane v spominu po enem mesecu.

In zaključek od tukaj

Na podlagi te krivulje lahko sklepamo, da je za učinkovito pomnjenje potrebno ponavljanje zapomnitve.

Tako smo prišli na idejo razmaknjeno ponavljanje.

АNKI je popolnoma brezplačen in odprtokoden program, ki uresničuje idejo razmaknjenega ponavljanja. Preprosto povedano, računalniške bliskovne kartice imajo vprašanje na eni strani in odgovor na drugi. Ker lahko postavljate vprašanja/odgovore z običajnim html/css/javascript, potem lahko rečemo, da ima resnično neomejene možnosti. Poleg tega je razširljiv s posebnimi vtičniki, eden izmed njih pa nam bo v prihodnosti zelo koristil.

Ročno ustvarjanje kart je dolgotrajno, dolgočasno in z veliko verjetnostjo boste čez nekaj časa pozabili na to opravilo, zato sem se na neki točki vprašal, ali je to opravilo mogoče avtomatizirati. Odgovor je da, lahko. In uspelo mi je. Takoj povem, da je več POC (dokaz koncepta), ki pa se lahko uporablja. Če obstaja interes uporabnikov in se vključijo tudi drugi razvijalci, se lahko pripelje do končnega izdelka, ki ga lahko uporabljajo tudi tehnično nepismeni uporabniki. Za uporabo mojega pripomočka je potrebno nekaj znanja programiranja.

S programom berem knjige AI Reader. Ima možnost povezovanja zunanjih slovarjev in ko besedo prevedete, besedo, ki ste jo poklicali za prevod, shrani v besedilno datoteko. Vse kar ostane je prevesti te besede in ustvariti kartice ANKI.

Sprva sem poskušal uporabiti za prevod Google Translate, Lingvo API itd. Toda z brezplačnimi storitvami stvari niso delovale. Med razvojnim procesom sem izčrpal brezplačno omejitev, poleg tega glede na pogoje licence nisem imel pravice do predpomnilnika besed. Na neki točki sem spoznal, da moram besede prevesti sam. Kot rezultat je bil napisan modul dsl2html na katerega se lahko povežete DSL slovarji in kdo ve, kako jih pretvoriti v HTML format.

Takole izgleda slovarski vnos v *.html, moja možnost v primerjavi z možnostjo GoldenDict

Dve zgodbi o tem, kako vam lahko ANKI pomaga pri učenju tujega jezika in pripravi na razgovore

Preden poiščem besedo v povezanih slovarjih, jo prinesem na slovarska oblika (lema) uporabo knjižnice Stanfordsko jedroNLP. Pravzaprav sem zaradi te knjižnice začel pisati v Javi in ​​prvotni načrt je bil, da bi vse napisal v Javi, vendar sem v procesu našel knjižnico vozlišče-java s katerim lahko razmeroma enostavno izvajate kodo Java iz nodejs in nekaj kode je napisane v JavaScriptu. Če bi to knjižnico našel prej, v Javi ne bi bila napisana niti ena vrstica. Drugi stranski projekt, ki se je rodil v procesu, je ustvarjanje repozitorij z dokumentacijo DSL ki je bil najden v omrežju v formatu *.chm, spreobrnjen in spravljen v božansko obliko. Če je avtor izvirne datoteke uporabnik po vzdevku yozhic Ko vidi ta članek, se mu lepo zahvalim za opravljeno delo, brez njegove dokumentacije mi verjetno ne bi uspelo.

Torej, imam besedo v angleščini, njen slovarski vnos v obliki *.html, ostane le še vse skupaj sestaviti, iz seznama besed ustvariti ANKI članke in jih vnesti v bazo ANKI. V ta namen je bil ustvarjen naslednji projekt data2anki. Kot vnos lahko vzame seznam besed, prevede, ustvari ANKI *.html članke in jih evidentirati v bazi ANKI. Na koncu članka so navodila za uporabo. Medtem pa je druga zgodba tista, kjer so lahko uporabne razmaknjene ponovitve.

Druga zgodba.

Vsi ljudje, ki iščejo bolj/manj usposobljeno specialnost, vključno s programerji, se soočajo s potrebo po pripravi na razgovor. Številnih pojmov, ki jih sprašujete na intervjujih, v vsakdanji praksi ne uporabljate in so pozabljeni. Ko sem se pripravljal na intervju, listal po zapiskih, knjigi, priročniku, sem se soočil z dejstvom, da vzame veliko časa in pozornosti, da izločiš informacije, ki jih že poznaš, ker niso vedno očitne in moraš pozorno preberite, da boste razumeli, kaj je nepomembno. Ko prideš do teme, ki jo je res treba ponoviti, se velikokrat zgodi, da si že utrujen in trpi kakovost tvoje priprave. V nekem trenutku sem pomislil, zakaj ne bi za to uporabil tudi kartic ANKI? Na primer, ko delate zapiske o temi, takoj ustvarite zapisek v obliki vprašanja in odgovora, nato pa, ko ga ponovite, boste takoj vedeli, ali poznate odgovor na to vprašanje ali ne.

Edina težava, ki se je pojavila, je bila, da je bilo tipkanje vprašanj zelo dolgo in dolgočasno. Za lažji postopek, data2anki dodal sem funkcijo pretvorbe markdown besedilo v karticah ANKI. Vse kar potrebujete je, da napišete eno veliko datoteko, v kateri bodo vprašanja in odgovori označeni z vnaprej določenim zaporedjem znakov, po katerem bo razčlenjevalnik razumel, kje je vprašanje in kje je odgovor.

Ko je ta datoteka ustvarjena, zaženete data2anki in ustvari kartice ANKI. Izvirno datoteko je enostavno urejati in deliti, le izbrisati morate ustrezne kartice in znova zagnati program, in ustvarjena bo nova različica.

Namestitev in uporaba

  1. Namestitev ANKI + AnkiConnect

    1. Prenesite ANKI od tukaj: https://apps.ankiweb.net/
    2. Namestite vtičnik AnkiConnect: https://ankiweb.net/shared/info/2055492159

  2. Namestitev data2anki

    1. Prenesi data2anki iz repozitorija github
      git clone https://github.com/anatoly314/data2anki
    2. Namestitev odvisnosti
      cd data2anki && npm install
    3. Prenesite odvisnosti java https://github.com/anatoly314/data2anki/releases/download/0.1.0/jar-dependencies.zip
    4. Razpakiranje jar-dependencies.zip in vstavite njeno vsebino data2anki/java/jars

  3. Uporabite za prevajanje besed:

    1. V datoteki data2anki/config.json:

      • v ključu Način vnesite vrednost dsl2anki

      • v ključu modules.dsl.anki.deckName и modules.dsl.anki.modelName napiši temu primerno Ime krova и Ime modela (morajo biti že ustvarjeni pred ustvarjanjem kartic). Trenutno je podprt samo tip modela Osnovni:

        Ima sprednji in zadnji polji in ustvari eno kartico. Besedilo, ki ga vnesete Spredaj, bo prikazano na sprednji strani kartice, besedilo, ki ga vnesete Zadaj, pa na zadnji strani kartice.

        kje je izvirna beseda? Sprednje polje, prevod pa bo v Zadnje polje.

        Ni problema dodati podporo Osnovna (in obrnjena kartica), kjer bo za besedo in prevod ustvarjena povratna kartica, kjer si boste na podlagi prevoda morali zapomniti izvirno besedo. Potrebujete le čas in željo.

      • v ključu modules.dsl.dictionariesPath registrirajte polje s povezanim *.dsl slovarji. Vsak povezan slovar je imenik, v katerem se slovarske datoteke nahajajo v skladu s formatom: Struktura slovarja DSL

      • v ključu modules.dsl.wordToTranslatePath vnesite pot do seznama besed, ki jih želite prevesti.

    2. Zaženite z zagnano aplikacijo ANKI
      node data2ankiindex.js
    3. DOBIČEK!!!

  4. Uporablja se za ustvarjanje kartic iz oznake

    1. V datoteki data2anki/config.json:

      • v ključu Način vnesite vrednost markdown2anki
      • v ključu modules.markdown.anki.deckName и modules.dsl.anki.modelName napiši temu primerno Ime krova и Ime modela (morajo biti že ustvarjeni pred ustvarjanjem kartic). Za markdown2anki način je podprt samo tip modela Osnovni.
      • v ključu modules.markdown.selectors.startQuestionSelectors и modules.markdown.selectors.startAnswerSelectors napišete selektorje, s katerimi označite začetek vprašanja oziroma odgovora. Vrstica z izbirnikom sama ne bo razčlenjena in ne bo končala na kartici; razčlenjevalnik bo začel delovati od naslednje vrstice.

        Na primer, ta kartica z vprašanjem/odgovorom:

        Dve zgodbi o tem, kako vam lahko ANKI pomaga pri učenju tujega jezika in pripravi na razgovore

        V markdownu bo videti takole:
        #VPRAŠANJE# ## Vprašanje 5. Napišite funkcijo mul, ki bo pravilno delovala, ko bo priklicana z naslednjo sintakso. ```javascript console.log(mul(2)(3)(4)); // izhod: 24 console.log(mul(4)(3)(4)); // izhod : 48 ``` #ANSWER# Spodaj je koda, ki ji sledi razlaga, kako deluje: ```javascript funkcija mul (x) { vrni funkcijo (y) { // anonimna funkcija vrni funkcijo (z) { // vrnitev anonimne funkcije x * y * z; }; }; } ``` Tukaj funkcija `mul` sprejme prvi argument in vrne anonimno funkcijo, ki vzame drugi parameter, in vrne anonimno funkcijo, ki vzame tretji parameter in vrne množenje argumentov, ki se posredujejo zaporedoma V funkciji Javascript definirano znotraj ima dostop do zunanje spremenljivke funkcije in funkcija je objekt prvega razreda, tako da jo lahko funkcija tudi vrne in posreduje kot argument v drugi funkciji. - Funkcija je primerek tipa Object - Funkcija ima lahko lastnosti in ima povezavo nazaj do svoje metode konstruktorja - Funkcijo je mogoče shraniti kot spremenljivko - Funkcijo je mogoče posredovati kot parameter drugi funkciji - Funkcijo je mogoče vrnil iz druge funkcije
        

        Primer vzet od tukaj: 123-JavaScript-Interview-Vprašanja

        V mapi projekta je tudi datoteka s primeri examples/markdown2anki-example.md

      • v ključu modules.markdown.pathToFile
        zapišite pot do datoteke, kjer je *.md datoteka z vprašanji/odgovori

    2. Zaženite z zagnano aplikacijo ANKI
      node data2ankiindex.js
    3. DOBIČEK!!!

Takole izgleda na mobilnem telefonu:

Rezultat

Kartice, prejete v namizni različici ANKI, se brez težav sinhronizirajo z oblakom ANKI (brezplačno do 100mb), nato pa jih lahko uporabljate povsod. Obstajajo odjemalci za Android in iPhone, uporabljate pa ga lahko tudi v brskalniku. Posledično, če imate čas, ki ga nimate za kaj zapraviti, se lahko namesto brezciljnega brskanja po Facebooku ali mačkah na Instagramu naučite nekaj novega.

Epilog

Kot sem že omenil, je to bolj delujoč POC, ki ga lahko uporabite kot končni izdelek. Približno 30 % standarda razčlenjevalnika DSL ni implementiranega, zato na primer ni mogoče najti vseh slovarskih vnosov, ki so v slovarjih, obstaja tudi ideja, da bi ga prepisali v JavaScript, ker hočem “konsistentnost”, poleg tega pa zdaj ni napisano ravno optimalno. Zdaj razčlenjevalnik gradi drevo, vendar je po mojem mnenju to nepotrebno in ni treba zapletati kode. IN markdown2anki način, slike niso razčlenjene. Poskušal bom zmanjšati po malem, a ker pišem zase, bom najprej rešil probleme, na katere bom sam stopil, če pa želi kdo pomagati, je vabljen. Če imate vprašanja o programu, vam bom z veseljem pomagal pri odprtih vprašanjih v zadevnih projektih. Tukaj napišite ostale kritike in predloge. Upam, da bo ta projekt komu koristen.

PS Če opazite napake (in na žalost jih je), mi pišite v osebnem sporočilu, vse bom popravil.

Vir: www.habr.com

Dodaj komentar