Két történet arról, hogyan segíthet az ANKI az idegen nyelv tanulásában és az interjúkra való felkészülésben

Mindig is azt hittem, hogy a lusta programozó jó programozó. Miért? Mert kérj meg egy keményen dolgozót, hogy csináljon valamit, ő megy és megcsinálja. És egy lusta programozó 2-3-szor több időt tölt, de ír egy forgatókönyvet, ami megcsinálja neki. Előfordulhat, hogy az első alkalommal indokolatlanul sokáig tart, de ismételt feladatokkal ez a megközelítés nagyon hamar megtérül. Lusta programozónak tartom magam. Ez volt a preambulum, most térjünk a dologra.

Egy történet

Néhány évvel ezelőtt azon töprengtem, hogyan tudnám javítani az angol tudásomat. Semmi jobb nem jutott eszembe, mint az irodalom olvasása. Vettem egy elektronikus olvasót, letöltöttem könyveket és elkezdtem olvasni. Olvasás közben folyton ismeretlen szavakkal találkoztam. Azonnal lefordítottam őket az olvasóba épített szótárak segítségével, de egy tulajdonságot észrevettem: a szavak nem akartak emlékezni. Amikor néhány oldallal később újra találkoztam ezzel a szóval, 90%-os valószínűséggel ismét fordításra volt szükségem, és ez minden alkalommal megtörtént. A következtetés az volt, hogy nem elég olvasás közben egyszerűen lefordítani az ismeretlen szavakat, mást kell csinálni. Az ideális megoldás az lenne, ha bevezetnék a mindennapi életbe és elkezdenék használni, de nem élek angol nyelvű országban, és ez nem valószínű. Aztán eszembe jutott, hogy egyszer olvastam kb Szóközű ismétlés.

Mi ez és mivel eszik? Röviden, ez van felejtési görbe, további idézet a Wikipédiából:

Már az első órában az összes kapott információ 60%-a elfelejtődik, 10 órával a memorizálás után a tanultak 35%-a a memóriában marad. Ezután a felejtés folyamata lassan megy végbe, és 6 nap után az eredetileg megtanult szótagok körülbelül 20%-a marad a memóriában, és ugyanennyi marad a memóriában egy hónap múlva is.

És innen a következtetés

A görbe alapján az a következtetés vonható le, hogy a hatékony memorizáláshoz a memorizált anyagot meg kell ismételni.

Így hát eszünkbe jutott egy ötlet időközönkénti ismétlés.

АNKI egy teljesen ingyenes és nyílt forráskódú program, amely megvalósítja az időközönkénti ismétlés ötletét. Egyszerűen fogalmazva, a számítógépes flash kártyák egyik oldalán egy kérdés, a másikon válasz található. Mivel a rendszeres használatával kérdéseket/válaszokat tehet html/css/javascript, akkor azt mondhatjuk, hogy valóban korlátlan lehetőségei vannak. Ezen kívül speciálisval bővíthető bővítmények, és ezek egyike nagyon hasznos lesz számunkra a jövőben.

A kártyák manuális létrehozása hosszú, fárasztó, és nagy valószínűséggel egy idő után elfelejti ezt a feladatot, ezért egy ponton feltettem magamnak a kérdést, hogy lehetséges-e ezt a feladatot automatizálni. A válasz igen, megteheti. És megtettem. Azonnal mondom, ez több POC (Proof of concept), de ami használható. Ha van érdeklődés a felhasználók részéről, és más fejlesztők is bekapcsolódnak, akkor ez olyan késztermékké hozható, amelyet technikailag analfabéta felhasználók is használhatnak. A segédprogramom használatához programozási ismeretek szükségesek.

A program segítségével könyveket olvasok AI olvasó. Képes külső szótárakat csatlakoztatni, és amikor lefordít egy szót, a fordításra hívott szót szöveges fájlba menti. Már csak le kell fordítani ezeket a szavakat és létrehozni ANKI-kártyákat.

Először fordításhoz próbáltam használni Google Translate, Lingvo API stb. De a dolgok nem működtek az ingyenes szolgáltatásokkal. A fejlesztés során kimerítettem az ingyenes limitet, ráadásul a licenc feltételei szerint nem volt jogom a szavak gyorsítótárazására. Egy ponton rájöttem, hogy magamnak kell lefordítanom a szavakat. Ennek eredményeként egy modult írtak dsl2html amelyhez csatlakozhat DSL szótárak és ki tudja hogyan alakítsa át őket HTML formátum.

Így néz ki egy szótári bejegyzés *. Html, az opcióm az opcióhoz képest GoldenDict

Két történet arról, hogyan segíthet az ANKI az idegen nyelv tanulásában és az interjúkra való felkészülésben

Mielőtt a kapcsolódó szótárakban keresnék egy szót, elhozom szótári forma (lemma) a könyvtár használatával Stanford CoreNLP. Valójában ennek a könyvtárnak köszönhetően kezdtem el Java nyelven írni, és az eredeti terv az volt, hogy mindent Java nyelven írok, de közben megtaláltam a könyvtárat. csomópont-java amellyel viszonylag egyszerűen lehet Java kódot futtatni nodejs-ből és a kód egy része JavaScriptben van megírva. Ha korábban megtaláltam volna ezt a könyvtárat, egyetlen sor sem íródott volna Java nyelven. Egy másik mellékprojekt, amely a folyamat során született, az alkotás adattár DSL dokumentációval amely megtalálható a hálózaton a * formátumban.chm, átalakítva és isteni formába hozva. Ha az eredeti fájl szerzője becenevű felhasználó jozhic Amikor meglátja ezt a cikket, nagyon hálás vagyok neki az elvégzett munkájáért, a dokumentációja nélkül nagy valószínűséggel nem sikerült volna.

Tehát van egy szó angolul, szótári bejegyzése a következő formátumban: *. Html, nincs más hátra, mint mindent összerakni, a szólistából ANKI-cikkeket készíteni és bevinni az ANKI adatbázisába. Ebből a célból jött létre a következő projekt data2anki. Bemenetként egy szavak listáját veheti igénybe, lefordíthatja, létrehozhatja az ANKI-t *. Html cikkeket, és rögzítse azokat az ANKI adatbázisban. A cikk végén használati útmutató található. Addig is, a második történetben hasznosak lehetnek az időközönkénti ismétlések.

A második történet.

Minden ember, aki magasabb/kevésbé képzett szakterületet keres, beleértve a programozókat is, szembesül azzal, hogy fel kell készülnie egy interjúra. Az interjúkon feltett fogalmak közül sokat nem használ a mindennapi gyakorlatban, és feledésbe merül. Amikor interjúra készültem, jegyzeteket, könyvet, segédkönyvet lapozgattam, azzal szembesültem, hogy sok idő és odafigyelés szükséges ahhoz, hogy kiszűrjük azokat az információkat, amelyeket már ismerünk, mert nem mindig nyilvánvalóak és muszáj. olvassa el figyelmesen, hogy megértse, mi az. irreleváns. Ha olyan témához ér, amit valóban meg kell ismételni, gyakran előfordul, hogy már elfáradt, és a felkészülés minősége csorbát szenved. Valamikor arra gondoltam, hogy miért ne használnánk ehhez az ANKI kártyákat is? Például, amikor jegyzeteket készít egy témáról, azonnal hozzon létre egy jegyzetet kérdés és válasz formájában, majd amikor megismétli, azonnal tudni fogja, hogy tudja-e a választ erre a kérdésre vagy sem.

Az egyetlen probléma, ami felmerült, az volt, hogy a kérdések beírása nagyon hosszú és fárasztó volt. A folyamat megkönnyítése érdekében data2anki projekt Konvertálási funkciót adtam hozzá árleszállítás szöveg az ANKI kártyákon. Mindössze egyetlen nagy fájlt kell írni, amelyben a kérdések és válaszok előre meghatározott karaktersorozattal lesznek megjelölve, így az elemző megérti, hol van a kérdés és hol a válasz.

A fájl létrehozása után futtassa a data2ankit, és ez létrehozza az ANKI-kártyákat. Az eredeti fájl könnyen szerkeszthető és megosztható, csak törölni kell a megfelelő kártyá(ka)t, és újra kell futtatni a programot, és elkészül az új verzió.

Telepítés és használat

  1. Az ANKI + AnkiConnect telepítése

    1. Töltse le az ANKI-t innen: https://apps.ankiweb.net/
    2. Telepítse az AnkiConnect bővítményt: https://ankiweb.net/shared/info/2055492159

  2. Telepítés data2anki

    1. Letöltés data2anki a github adattárból
      git clone https://github.com/anatoly314/data2anki
    2. Függőségek telepítése
      cd data2anki && npm install
    3. Java függőségek letöltése https://github.com/anatoly314/data2anki/releases/download/0.1.0/jar-dependencies.zip
    4. Kicsomagolás jar-dependencies.zip és helyezze be a tartalmát data2anki/java/jars

  3. Szavak fordításához használja:

    1. Fájlban data2anki/config.json:

      • a kulcsban üzemmód adja meg az értéket dsl2anki

      • a kulcsban modules.dsl.anki.deckName и modules.dsl.anki.modelName ennek megfelelően írj Fedélzet neve и Modell neve (már a kártyák létrehozása előtt létre kell hozni). Jelenleg csak a modell típusa támogatott alapvető:

        Elülső és hátsó mezőkkel rendelkezik, és egy kártyát hoz létre. Az elöl beírt szöveg a kártya elején, a Hátul beírt szöveg pedig a kártya hátulján jelenik meg.

        hol van az eredeti szó? Elülső mező, és meglesz a fordítás Hátsó mező.

        Nincs probléma a támogatás hozzáadásával Alap (és fordított kártya), ahol a szóhoz és a fordításhoz egy fordított kártya készül, ahol a fordítás alapján meg kell emlékezni az eredeti szóra. Csak időre és vágyra van szüksége.

      • a kulcsban modules.dsl.dictionariesPath regisztráljon egy tömböt a csatlakoztatott *.dsl szótárak. Minden csatlakoztatott szótár egy könyvtár, amelyben a szótárfájlok a következő formátumnak megfelelően helyezkednek el: A DSL szótár szerkezete

      • a kulcsban modules.dsl.wordToTranslatePath adja meg a lefordítani kívánt szavak listájának elérési útját.

    2. Indítsa el az ANKI alkalmazás futtatásával
      node data2ankiindex.js
    3. NYERESÉG!!!

  4. Kártyák létrehozására használható leértékelésből

    1. Fájlban data2anki/config.json:

      • a kulcsban üzemmód adja meg az értéket markdown2anki
      • a kulcsban modules.markdown.anki.deckName и modules.dsl.anki.modelName ennek megfelelően írj Fedélzet neve и Modell neve (már a kártyák létrehozása előtt létre kell hozni). Mert markdown2anki mód csak a modelltípus támogatott alapvető.
      • a kulcsban modules.markdown.selectors.startQuestionSelectors и modules.markdown.selectors.startAnswerSelectors szelektorokat írsz, amelyekkel a kérdés és válasz elejét jelölöd, ill. A választót tartalmazó sor nem kerül elemzésre, és nem kerül a kártyára, az értelmező a következő sortól kezdi meg a munkát.

        Például ez a kérdés/válasz kártya:

        Két történet arról, hogyan segíthet az ANKI az idegen nyelv tanulásában és az interjúkra való felkészülésben

        Így fog kinézni a leértékelésben:
        #KÉRDÉS# ## 5. kérdés. Írjon egy mul függvényt, amely megfelelően működik, ha a következő szintaxissal hívja meg. ```javascript console.log(mul(2)(3)(4)); // kimenet : 24 console.log(mul(4)(3)(4)); // output : 48 ``` #ANSWER# Az alábbiakban található a kód, majd a működés magyarázata: ```javascript function mul (x) { return function (y) { // anonymous function return function (z) { // névtelen függvény return x * y * z; }; }; } ``` Itt a `mul` függvény elfogadja az első argumentumot, és visszaadja az anonim függvényt, amely a második paramétert veszi fel, és visszaadja az anonim függvényt, amely a harmadik paramétert veszi fel, és visszaadja az argumentumok szorzatát, amelyet az egymást követő Javascript függvényben definiált. Az inside hozzáfér a külső függvényváltozóhoz, és a függvény az első osztályú objektum, így a függvény is visszaadhatja, és argumentumként átadhatja egy másik függvényben. - A függvény egy objektum típusú példány - Egy függvénynek lehetnek tulajdonságai és linkje lehet a konstruktor metódusához - Egy függvény változóként tárolható - Egy függvény paraméterként átadható egy másik függvénynek - Egy függvény lehet egy másik függvényből tért vissza
        

        Példa innen vett: 123-JavaScript-Interjú-Kérdések

        A projekt mappájában található egy példákat tartalmazó fájl is examples/markdown2anki-example.md

      • a kulcsban modules.markdown.pathToFile
        írja le a fájl elérési útját ahol *.md kérdés/válasz fájl

    2. Indítsa el az ANKI alkalmazás futtatásával
      node data2ankiindex.js
    3. NYERESÉG!!!

Így néz ki egy mobiltelefonon:

Eredmény

Az ANKI asztali verzióján kapott kártyák probléma nélkül szinkronizálódnak az ANKI felhővel (100 mb-ig ingyenes), majd mindenhol használhatod őket. Androidra és iPhone-ra is vannak kliensek, és böngészőben is használhatod. Ennek eredményeként, ha van időd, amire nincs mit költened, akkor ahelyett, hogy céltalanul görgetnél a Facebookon vagy az Instagramon, tanulhatsz valami újat.

Epilógus

Mint említettem, ez inkább egy működő POC, amelyet használhat, mint egy késztermék. A DSL elemző szabvány körülbelül 30%-a nincs implementálva, ezért például nem minden szótárbejegyzés található a szótárban, van egy ötlet az átírásra is JavaScript, mert „konzisztenciát” akarok, ráadásul most nem túl optimálisan van megírva. Most az elemző egy fát épít, de véleményem szerint ez felesleges, és nem kell bonyolítania a kódot. BAN BEN markdown2anki módban a képek nem kerülnek elemzésre. Igyekszem apránként vágni, de mivel magamnak írok, elsősorban azokat a problémákat fogom megoldani, amelyekre én magam lépek rá, de ha valaki segíteni szeretne, akkor szívesen fogadom. Ha kérdése van a programmal kapcsolatban, szívesen segítek az érintett projektek nyitott kérdéseiben. Írjon ide más kritikákat és javaslatokat. Remélem valakinek hasznos lesz ez a projekt.

PS Ha bármilyen hibát észlel (és sajnos van is), írjon nekem személyes üzenetben, mindent kijavítok.

Forrás: will.com

Hozzászólás