Du çîrokên ku ANKI çawa dikare ji we re bibe alîkar ku hûn zimanek biyanî fêr bibin û ji bo hevpeyivînan amade bibin

Min her gav bawer dikir ku bernameçêkerê tembel bernamesazek ​​baş e. Çima? Ji ber ku ji kedkarekî bixwaze tiştekî bike, ew ê here û bike. Û bernamenûsek tembel dê 2-3 carî bêtir wext derbas bike, lê dê senaryoyek ku dê ji wî re bike binivîsîne. Dibe ku ji bo kirina yekem car demek dirêj dirêj bigire, lê bi karên dubare re ev nêzîkatî dê pir zû bide. Ez xwe bernamesazekî tembel dihesibînim. Pêşgotin ev bû, niha em werin ser kar.

Çîrok yek

Çend sal berê min meraq kir ku ez çawa dikarim îngilîziya xwe baştir bikim. Ji xwendina edebiyatê xweştir tiştek nehate bîra min. Min xwendevanek elektronîk kirî, pirtûk daxistin û min dest bi xwendinê kir. Di dema xwendinê de, ez her gav rastî gotinên nenas hatim. Min di cih de bi wan ferhengên ku di nav xwendevan de hatine çêkirin wergerandin, lê min bala xwe da yek taybetmendî: peyvan nedixwestin bên bîra min. Dema ku ez çend rûpelan şûnda dîsa rastî vê peyvê hatim, bi îhtimaleke %90 dîsa hewcedariya min bi wergerê hebû û her carê ev yek diqewimî. Encam ev bû ku di dema xwendinê de bi tenê wergerandina peyvên nenas têrê nake, divê hûn tiştek din bikin. Vebijarka îdeal dê ev be ku meriv wê bike nav jiyana rojane û dest bi karanîna wê bike, lê ez li welatek îngilîzîaxêv najîm û ev ne mimkûn e. Paşê hat bîra min ku min carekê xwendibû Dubarekirina Spaced.

Çi ye û bi çi tê xwarin? Bi kurtasî, ev heye kelek ji bîr kirin, jêdereke din ji Wîkîpediya:

Jixwe di saeta ewil de ji %60 ê hemî agahdariya ku hatî jibîrkirin tê jibîrkirin; 10 demjimêran piştî ezberkirinê, 35% ji tiştên ku hatine fêr kirin di bîranînê de dimîne. Dûv re prosesa jibîrkirinê hêdî hêdî pêşde diçe, û piştî 6 rojan ji sedî 20 ji hejmara giştî ya tîpên ku destpêkê fêr bûne di bîrê de dimîne, û heman hejmar piştî mehekê di bîranînê de dimîne.

Û encam ji vir

Encamên ku dikarin li ser bingeha vê kevokê werin derxistin ev in ku ji bo ezberkirina bi bandor pêdivî ye ku materyalê jibîrkirî dubare bibe.

Ji ber vê yekê me fikrek çêkir dubarekirina cihê.

ANKI bernameyek bi tevahî belaş û çavkaniyek vekirî ye ku ramana dubarekirina valahiyê pêk tîne. Bi hêsanî, kartên flash ên komputerkirî li aliyekî pirsek û ji hêla din ve jî bersivek heye. Ji ber ku hûn dikarin pirsan / bersivan bi karanîna rêkûpêk bikin html/css/javascript, wê demê em dikarin bibêjin ku bi rastî îmkanên wê yên bêsînor hene. Digel vê yekê, ew bi taybetî tê berfireh kirin pêvekên, û yek ji wan dê di pêşerojê de ji me re pir bikêr be.

Afirandina kartên bi destan dirêj, bêzar û bi îhtimalek mezin e, piştî demekê hûn ê vî karî ji bîr bikin, û ji ber vê yekê di demekê de min ji xwe pirs kir, gelo gengaz e ku meriv vî karî bixweber bike. Bersiv erê ye, hûn dikarin. Û min ew kir. Ez ê di cih de bêjim, ew bêtir e POC (Îsbata konsepta), lê kîjan dikare were bikar anîn. Ger eleqeya bikarhêneran hebe û pêşdebirên din jî tevlê bibin, wê hingê ew dikare were hilberek qediyayî ku bikarhênerên teknîkî nexwende jî bikar bînin. Naha, karanîna karanîna min hin zanîna bernamekirinê hewce dike.

Ez pirtûkan bi karanîna bernameyê dixwînim AIRreader. Ew şiyana girêdana ferhengên ji derve heye, û gava ku hûn peyvekê werdigerînin, ew peyva ku we ji bo wergerandinê gazî kiriye, di pelek nivîsê de tomar dike. Tiştê ku dimîne wergerandina van peyvan û çêkirina kartên ANKI ye.

Di destpêkê de min hewl da ku ji bo wergerandinê bikar bînim Wergêrra google, Lingvo API etc. Lê tişt bi servîsên belaş bi ser neketin. Min di pêvajoya pêşkeftinê de sînorê belaş westand, ji bilî vê, li gorî şertên lîsansê, mafê min tune ku peyvan cache bikim. Di demekê de min fêm kir ku pêdivî ye ku ez bixwe peyvan wergerînim. Di encamê de, modulek hate nivîsandin dsl2html ku hûn dikarin pê ve girêbidin Ferhengên DSL û kî dizane wan çawa vediguherîne HTML çap.

Ev e ku têketina ferhengê di * de xuya dike.html, vebijarka min li gorî vebijarkê GoldenDict

Du çîrokên ku ANKI çawa dikare ji we re bibe alîkar ku hûn zimanek biyanî fêr bibin û ji bo hevpeyivînan amade bibin

Berî ku li peyvekê di ferhengên girêdayî de bigerim, ez wê bînim ser forma ferhengê (lemma) pirtûkxaneyê bi kar tînin Stanford CoreNLP. Bi rastî, ji ber vê pirtûkxaneyê, min dest bi nivîsandina Java-yê kir û plana bingehîn ew bû ku ez her tiştî bi Java-yê binivîsim, lê di vê pêvajoyê de min pirtûkxane dît. node-java pê re hûn dikarin bi rehetî koda Java-yê ji nodejs bicîh bikin û hin kod di JavaScriptê de têne nivîsandin. Ger min berê vê pirtûkxaneyê dîtiba, dê yek rêzek jî bi Java-yê nehatiba nivîsandin. Projeyek din a ku di vê pêvajoyê de çêbû, afirandin e depo bi belgeyên DSL ku li ser torê di forma * de hate dîtin.chm, veguherandin û anîn şiklê xwedayî. Ger nivîskarê pelê orjînal bikarhênerek bi paşnav be yozhic Dema ku ew vê gotarê dibîne, ez ji bo xebata ku wî kiriye gelek spas dikim; bêyî belgeyên wî, bi îhtîmaleke mezin ez bi ser nedima.

Ji ber vê yekê, min peyvek bi Englishngilîzî heye, têketina wê ya ferhenga wê bi formata *.html, ya ku dimîne ev e ku meriv her tiştî li hev bicivîne, ji lîsteya peyvan gotarên ANKI çêbikin û têkevin databasa ANKIyê. Ji bo vê yekê projeya jêrîn hate çêkirin data2anki. Ew dikare navnîşek peyvan wekî têketinê bigire, wergerîne, ANKI biafirîne *.html gotaran û di databasa ANKI de tomar bikin. Di dawiya gotarê de rêwerzên li ser karanîna wê hene. Di vê navberê de, çîroka duyemîn ew e ku li wir dubarekirinên cihêreng dikarin kêrhatî bin.

Çîroka duyemîn.

Hemî kesên ku di lêgerîna pisporiyek bêtir/kêm jêhatî ne, di nav de bernamenûs jî, bi hewcedariya amadekirina hevpeyivînê re rû bi rû ne. Gelek têgehên ku di hevpeyvînan de têne pirsîn, hûn di pratîka rojane de bikar naynin û têne jibîrkirin. Dema ku ji bo hevpeyivînekê amade dibûm, di nav notan, pirtûkek, pirtûkek referansê de digerim, ez bi vê rastiyê re rû bi rû bûm ku ew gelek dem û balê dikişîne ku meriv agahdariya ku hûn jixwe dizanin ji holê rakin ji ber ku ew her gav ne diyar e û divê hûn bi baldarî bixwînin ku fêm bikin ka ew çi ye. ne girîng e. Gava ku hûn tê ser mijarek ku bi rastî hewce ye ku were dubare kirin, pir caran diqewime ku hûn jixwe westiyayî ne û kalîteya amadekirina we zirarê dibîne. Demekê ez fikirîm, çima ji bo vê jî kartên ANKI bikar naynin? Weke mînak dema ku li ser mijarekê notan dikişîne, di cih de têbînîyek di şiklê pirs û bersivê de çêbike û dûv re gava ku hûn dubare bikin, hûn ê tavilê bizanibin ka hûn bersiva vê pirsê dizanin an na.

Yekane pirsgirêka ku derket holê ev bû ku nivîsandina pirsan pir dirêj û westiya bû. Ji bo ku pêvajoyê hêsantir bike, data2anki projeya min fonksiyona veguherînê zêde kir hilweşandin nivîs di kartên ANKI de. Tiştê ku hûn hewce ne ev e ku hûn pelek mezin binivîsin ku tê de pirs û bersiv bi rêzek tîpan a pêşwext diyarkirî têne nîşankirin, bi vî rengî parser dê fêm bike ka pirs li ku ye û bersiv li ku ye.

Dema ku ev pel hate afirandin, hûn data2anki dimeşînin û ew kartên ANKI diafirîne. Guherandin û parvekirina pelê orîjînal hêsan e, hûn tenê hewce ne ku qertên têkildar jêbikin û bernameyê ji nû ve bimeşînin, û guhertoyek nû dê were afirandin.

Sazkirin û bikaranîn

  1. Sazkirina ANKI + AnkiConnect

    1. ANKI ji vir daxînin: https://apps.ankiweb.net/
    2. Pêveka AnkiConnect saz bikin: https://ankiweb.net/shared/info/2055492159

  2. mîhengê data2anki

    1. Download data2anki ji depoya github
      git clone https://github.com/anatoly314/data2anki
    2. Pêwendiyan saz bikin
      cd data2anki && npm install
    3. Girêdanên java dakêşin https://github.com/anatoly314/data2anki/releases/download/0.1.0/jar-dependencies.zip
    4. Unpacking jar-dependencies.zip û naveroka wê tê de bi cih bikin data2anki/java/jars

  3. Ji bo wergerandina peyvan bikar bînin:

    1. Di pelê de data2anki/config.json:

      • di key awa nirxê binivîse dsl2anki

      • di key modules.dsl.anki.deckName и modules.dsl.anki.modelName li gorî wê binivîse Navê Deck и Navê model (Divê jixwe berî çêkirina qertan were afirandin). Niha tenê cureyê modelê piştgirî ye Bingehîn:

        Zeviyên Pêş û Paş hene, û dê yek qertê biafirîne. Nivîsa ku hûn li Pêşiyê dinivîsin dê li pêşiya qertê xuya bibe, û nivîsa ku hûn di paş de dinivîsin dê li pişta qertê xuya bibin.

        peyva orjînal li ku ye? Qada pêşiyê, û werger dê tê de be Zeviya paşde.

        Pirsgirêk tune ku piştgirî zêde bike Karta bingehîn (û berevajî), ku dê ji bo peyv û wergerê kartek berevajî were çêkirin, li wir li ser bingeha wergerê hûn hewce ne ku peyva orîjînal bînin bîra xwe. Tiştê ku hûn hewce ne dem û daxwaz e.

      • di key modules.dsl.dictionariesPath arrayek bi girêdayî * tomar bike.dsl ferhengan. Her ferhengek girêdayî pelrêçek e ku pelên ferhengê li gorî formatê tê de cih digirin: Struktura ferhenga DSL

      • di key modules.dsl.wordToTranslatePath têkevin rêya lîsteya peyvên ku hûn dixwazin wergerînin.

    2. Bi sepana ANKI ya ku tê xebitandin dest pê bikin
      node data2ankiindex.js
    3. BIRIN!!!

  4. Ji bo afirandina kartên ji nîşankirinê tê bikar anîn

    1. Di pelê de data2anki/config.json:

      • di key awa nirxê binivîse markdown2anki
      • di key modules.markdown.anki.deckName и modules.dsl.anki.modelName li gorî wê binivîse Navê Deck и Navê model (Divê jixwe berî çêkirina qertan were afirandin). Bo markdown2anki moda tenê celebê modelê piştgirî ye Bingehîn.
      • di key modules.markdown.selectors.startQuestionSelectors и modules.markdown.selectors.startAnswerSelectors hûn hilbijêrên ku hûn bi rêzdarî destpêka pirs û bersivê bi wan re nîşan didin, dinivîsin. Rêza bi hilbijêr bixwe dê neyê pars kirin û dê di qertê de neqede; parser dê ji rêza din dest bi xebatê bike.

        Ji bo nimûne, ev karta pirs / bersiv:

        Du çîrokên ku ANKI çawa dikare ji we re bibe alîkar ku hûn zimanek biyanî fêr bibin û ji bo hevpeyivînan amade bibin

        Dê di nîşankirinê de wiha xuya bike:
        #QUESTION# ## Pirs 5. Fonksiyonek mul-ê binivîsin ku dema ku bi hevoksaziya jêrîn were gazî kirin bi rêkûpêk bixebite. ``javascript console.log(mul(2)(3)(4)); // encam : 24 console.log(mul(4)(3)(4)); // encam : 48 ``` #ANSWER# Li jêr koda ku li pey ravekirina çawa dixebite heye: `` fonksiyona Javascript mul (x) { fonksiyona vegerê (y) { // fonksiyona vegerê ya nenas (z) { // fonksiyona nenas vedigere x * y * z; }; }; } ``` Li vir fonksiyona `mul` argumana yekem qebûl dike û fonksiyona anonîm vedigerîne ku parametreya duyemîn digire û fonksiyona nenas vedigerîne ku pîvana sêyemîn digire û pirbûna argumanan vedigerîne ku li pey hev têne derbas kirin Di fonksiyona Javascript de hatî diyarkirin. di hundurê de xwedan guhêrbara fonksiyonê ya derve ye û fonksiyona çîna yekem e ji ber vê yekê ew dikare ji hêla fonksiyonê ve jî were vegerandin û di fonksiyonek din de wekî arguman were derbas kirin. - Fonksîyonek nimûneyek ji celebê Objekt e - Fonksiyonek dikare xwedan taybetmendî be û girêdana wê bi rêbaza çêkerê ve heye - Fonksiyonek dikare wekî guhêrbar were hilanîn - Fonksiyonek dikare wekî parametreyek ji fonksiyonek din re were derbas kirin - Fonksiyonek dikare bibe ji fonksiyonek din vegeriya
        

        Mînak ji vir hatiye girtin: 123-JavaScript-Hevpeyvîn-Pirs

        Di peldanka projeyê de dosyayek bi mînakan jî heye examples/markdown2anki-example.md

      • di key modules.markdown.pathToFile
        riya pelê ku tê de binivîse *.md pelê pirs / bersiv

    2. Bi sepana ANKI ya ku tê xebitandin dest pê bikin
      node data2ankiindex.js
    3. BIRIN!!!

Ev e ku ew li ser têlefonek desta xuya dike:

Di encama

Kartên ku li ser guhertoya sermaseyê ya ANKI-yê hatine wergirtin bêyî pirsgirêk bi ewrê ANKI re têne hevdem kirin (heta 100 mb belaş), û dûv re hûn dikarin wan li her derê bikar bînin. Ji bo Android û iPhone-ê xerîdar hene, û hûn dikarin wê di gerokek de jî bikar bînin. Wekî encamek, ger wextê we hebe ku tiştek we tune ku hûn lê xerc bikin, wê hingê li şûna ku hûn bê armanc li Facebook an pisîkên li ser Instagram-ê bigerin, hûn dikarin tiştek nû fêr bibin.

Încîlê

Wekî ku min behs kir, ev ji hilberek qediyayî bêtir POCek kar e ku hûn dikarin bikar bînin. Nêzîkî 30% ji standarda parsera DSL-ê nayê bicîh kirin, û ji ber vê yekê, wek nimûne, hemû navnîşên ferhengê yên ku di ferhengan de hene nayên dîtin, di heman demê de ramanek ji nû ve nivîsandinê jî heye JavaScript, ji ber ku ez "hevgirtî" dixwazim, û ji bilî vê, naha ew pir xweş nayê nivîsandin. Naha parser darek çêdike, lê bi dîtina min ev nepêwist e û ne hewce ye ku kodê tevlihev bike. LI markdown2anki mode, wêne nayên pars kirin. Ez ê hewl bidim hêdî hêdî bibirim, lê ji ber ku ez ji bo xwe dinivîsim, berî her tiştî ez ê pirsgirêkên ku ez bi xwe jî pê li wan bikim çareser bikim, lê heke kesek bixwaze alîkariyê bike, hûn bi xêr hatin. Ger pirsên we di derheqê bernameyê de hebin, ez ê kêfxweş bibim ku di nav pirsgirêkên vekirî de di projeyên têkildar de alîkariyê bikim. Rexne û pêşniyarên din li vir binivîsin. Ez hêvî dikim ku ev proje dê ji bo kesek kêrhatî be.

PS Ger hûn xeletiyek bibînin (û, mixabin, hin jî hene), di peyamek kesane de ji min re binivîsin, ez ê her tiştî rast bikim.

Source: www.habr.com

Add a comment