ANKI сізге шет тілін үйренуге және сұхбатқа дайындалуға қалай көмектесетіні туралы екі оқиға

Мен әрқашан жалқау бағдарламашы жақсы бағдарламашы деп сенетінмін. Неліктен? Өйткені, еңбекқор адамнан бірдеңе сұрасаңыз, ол барып орындайды. Ал жалқау программист 2-3 есе көп уақыт жұмсайды, бірақ оны орындайтын сценарий жазады. Мұны бірінші рет орындау үшін негізсіз ұзақ уақыт кетуі мүмкін, бірақ қайталанатын тапсырмалармен бұл тәсіл өте тез ақталады. Мен өзімді жалқау бағдарламашы деп санаймын. Бұл кіріспе болды, енді іске кірісейік.

Бірінші әңгіме

Бірнеше жыл бұрын мен ағылшын тілін қалай жақсартуға болатынын ойладым. Әдебиет оқудан артық ештеңе ойға келмеді. Мен электронды оқырман сатып алдым, кітаптарды жүктеп алдым және оқи бастадым. Оқып отырып, бейтаныс сөздерді кездестірдім. Мен оларды оқырманға енгізілген сөздіктердің көмегімен бірден аудардым, бірақ бір ерекшелігін байқадым: сөздер есте қалғысы келмеді. Бірнеше беттен кейін бұл сөзді қайта кездестіргенімде, 90% ықтималдықпен маған қайтадан аударма қажет болды және бұл әр уақытта болды. Бұдан шығатын қорытынды: оқу кезінде бейтаныс сөздерді жай ғана аудару жеткіліксіз, басқа нәрсемен айналысу керек. Оны күнделікті өмірге енгізу және қолдана бастау идеалды нұсқа болар еді, бірақ мен ағылшын тілінде сөйлейтін елде тұрмаймын және бұл екіталай. Содан кейін бір рет оқығаным есіме түсті Аралық қайталау.

Бұл не және оны немен жейді? Қысқасы, бұл бар ұмыту қисығы, Википедиядан қосымша дәйексөз:

Алғашқы сағаттың өзінде барлық алынған ақпараттың 60%-ға дейіні ұмытылады, есте сақтағаннан кейін 10 сағаттан кейін үйренгеннің 35%-ы жадта қалады. Содан кейін ұмыту процесі баяу жүреді, ал 6 күннен кейін бастапқы меңгерілген буындардың жалпы санының шамамен 20% жадта қалады, ал бір айдан кейін сол мөлшер есте қалады.

Ал қорытынды осыдан

Осы қисық сызыққа сүйене отырып, нәтижелі есте сақтау үшін есте қалған материалды қайталау қажет деген қорытынды жасауға болады.

Осылайша біз бір идеяны ойлап таптық аралық қайталау.

АКИ аралық қайталау идеясын жүзеге асыратын толығымен тегін және ашық бастапқы бағдарлама. Қарапайым тілмен айтқанда, компьютерленген флэш-карталардың бір жағында сұрақ, екінші жағында жауап болады. Себебі сіз сұрақтарды/жауаптарды әдеттегідей пайдалана аласыз html/css/javascript, онда оның шын мәнінде шексіз мүмкіндіктері бар деп айта аламыз. Сонымен қатар, ол арнайы көмегімен кеңейтіледі плагиндер, және олардың бірі болашақта бізге өте пайдалы болады.

Карточкаларды қолмен жасау ұзақ, жалықтырады және ықтималдығы жоғары, біраз уақыттан кейін сіз бұл тапсырманы ұмытып кетесіз, сондықтан бір сәтте мен өзіме сұрақ қойдым, бұл тапсырманы автоматтандыру мүмкін бе? Жауап иә, сіз аласыз. Мен мұны істедім. Мен бірден айтамын, бұл одан да көп POC (тұжырымдаманың дәлелі), бірақ қайсысын қолдануға болады. Егер пайдаланушылар қызығушылық танытса және басқа әзірлеушілер тартылса, оны тіпті техникалық сауатсыз пайдаланушылар пайдалана алатын дайын өнімге дейін жеткізуге болады. Енді менің утилитамды пайдалану бағдарламалау туралы біраз білімді қажет етеді.

Бағдарлама арқылы кітаптарды оқимын AI Reader. Оның сыртқы сөздіктерді қосу мүмкіндігі бар және сөзді аударған кезде аудармаға шақырған сөзді мәтіндік файлға сақтайды. Бұл сөздерді аудару және ANKI карталарын жасау ғана қалады.

Алғашында аударма үшін қолдануға тырыстым Google Аудармашы, Lingvo API және т.б. Бірақ тегін қызметтермен бәрі жақсы болмады. Әзірлеу барысында мен бос шектеуді таустым, сонымен қатар лицензия шарттарына сәйкес сөздерді кэштеуге құқығым болмады. Бір кезде мен сөздерді өзім аударуым керек екенін түсіндім. Нәтижесінде модуль жазылды dsl2html оған қосылуға болады DSL сөздіктері және оларды қалай түрлендіруді кім біледі HTML пішім.

* Сөздік жазбасы осылай көрінеді..html, менің нұсқам опциямен салыстырғанда GoldenDict

ANKI сізге шет тілін үйренуге және сұхбатқа дайындалуға қалай көмектесетіні туралы екі оқиға

Байланысты сөздіктерден сөз іздемес бұрын, мен оны келтіремін сөздік формасы (лемма) кітапхананы пайдалану Стэнфорд CoreNLP. Шындығында, осы кітапхананың арқасында мен Java тілінде жаза бастадым және бастапқы жоспар барлығын Java тілінде жазу болды, бірақ процесте мен кітапхананы таптым. түйін-java оның көмегімен сіз Java кодын nodejs жүйесінен салыстырмалы түрде оңай орындай аласыз және кодтың бір бөлігі JavaScript тілінде жазылған. Егер мен бұл кітапхананы ертерек тапқан болсам, Java тілінде бірде-бір жол жазылмас еді. Бұл процесте пайда болған тағы бір қосымша жоба - бұл құру DSL құжаттамасы бар репозиторий желіде * форматында табылған.chm, түрлендіріп, құдайлық пішінге келтірілді. Түпнұсқа файлдың авторы лақап аты бойынша пайдаланушы болса йожикалық Ол осы мақаланы көргенде, мен оған жасаған жұмысы үшін алғыс айтамын; оның құжаттамалары болмаса, мен сәттілікке жете алмас едім.

Сонымен, менде ағылшын тілінде бір сөз бар, оның сөздік жазбасы форматында *.html, барлығын біріктіру, сөздер тізімінен ANKI мақалаларын жасау және оларды ANKI дерекқорына енгізу ғана қалады. Осы мақсатта келесі жоба жасалды data2anki. Ол сөздер тізімін енгізу, аудару, ANKI құру ретінде қабылдай алады *.html мақалалар және оларды ANKI деректер базасына жазыңыз. Мақаланың соңында оны қалай пайдалану керектігі туралы нұсқаулар бар. Бұл арада екінші әңгіме аралық қайталаулар пайдалы болуы мүмкін.

Екінші әңгіме.

Біліктілігі жоғары/азырақ мамандықты іздейтін барлық адамдар, соның ішінде бағдарламашылар да сұхбатқа дайындалу қажеттілігіне тап болады. Сұхбатта сұралатын көптеген ұғымдар күнделікті тәжірибеде қолданылмайды және олар ұмытылады. Сұхбатқа дайындалған кезде, жазбаларды, кітапты, анықтамалықты парақтаған кезде мен бұрыннан білетін ақпаратты електен шығару көп уақыт пен назарды қажет ететіндігімен бетпе-бет келдім, өйткені ол әрқашан анық бола бермейді және сізге қажет. оның не екенін түсіну үшін оны мұқият оқып шығыңыз. Сіз шынымен қайталауды қажет ететін тақырыпқа келгенде, сіз шаршағаныңыз және дайындық сапасының төмендеуі жиі кездеседі. Бір кезде мен неге бұл үшін ANKI карталарын қолданбасқа деп ойладым? Мысалы, тақырып бойынша конспектілеу кезінде бірден сұрақ-жауап түрінде жазба жасаңыз, содан кейін оны қайталағанда сіз бұл сұрақтың жауабын білесіз бе, жоқ па, бірден білесіз.

Жалғыз мәселе сұрақтарды теру өте ұзақ және жалықтыратын болды. Процесті жеңілдету үшін, data2anki жоба мен түрлендіру функциясын қостым таңбалау ANKI карталарындағы мәтін. Сізге тек бір үлкен файлды жазу қажет, онда сұрақтар мен жауаптар алдын ала белгіленген таңбалар тізбегімен белгіленеді, сол арқылы талдаушы сұрақтың қай жерде және жауап қай жерде екенін түсінеді.

Бұл файл жасалғаннан кейін сіз data2anki іске қосасыз және ол ANKI карталарын жасайды. Түпнұсқа файлды өңдеу және ортақ пайдалану оңай, сізге сәйкес картаны(ларды) өшіріп, бағдарламаны қайта іске қосу керек, жаңа нұсқасы жасалады.

Орнату және пайдалану

  1. ANKI + AnkiConnect орнатылуда

    1. ANKI бағдарламасын мына жерден жүктеп алыңыз: https://apps.ankiweb.net/
    2. AnkiConnect плагинін орнату: https://ankiweb.net/shared/info/2055492159

  2. параметр data2anki

    1. Жүктеп алу data2anki github репозиторийінен
      git clone https://github.com/anatoly314/data2anki
    2. Тәуелділіктерді орнату
      cd data2anki && npm install
    3. Java тәуелділіктерін жүктеп алыңыз https://github.com/anatoly314/data2anki/releases/download/0.1.0/jar-dependencies.zip
    4. Қаптаманы ашу jar-dependencies.zip және оның мазмұнын орналастырыңыз data2anki/java/jars

  3. Сөздерді аудару үшін пайдаланыңыз:

    1. Файлда data2anki/config.json:

      • кілтте режимі мәнді енгізіңіз dsl2anki

      • кілтте modules.dsl.anki.deckName и modules.dsl.anki.modelName сәйкес жазыңыз Палуба атауы и Модель атауы (карталарды жасамас бұрын жасалған болуы керек). Қазіргі уақытта тек үлгі түріне қолдау көрсетіледі негізгі:

        Алдыңғы және артқы өрістері бар және бір карта жасайды. Алдыңғы жағына енгізген мәтін картаның алдыңғы жағында, ал Артқа енгізген мәтін картаның артында пайда болады.

        бастапқы сөз қайда? Алдыңғы өріс, және аударма болады Артқы өріс.

        Қолдау қосуда ешқандай проблема жоқ Негізгі (және кері карта), мұнда сөз және аударма үшін кері карта жасалады, мұнда аударма негізінде түпнұсқа сөзді есте сақтау қажет. Сізге тек уақыт пен тілек қажет.

      • кілтте modules.dsl.dictionariesPath * қосылған массивті тіркеңіз.dsl сөздіктер. Әрбір қосылған сөздік – сөздік файлдары пішімге сәйкес орналасқан каталог: DSL сөздік құрылымы

      • кілтте modules.dsl.wordToTranslatePath аударғыңыз келетін сөздер тізіміне жолды енгізіңіз.

    2. ANKI қолданбасы іске қосылған кезде іске қосыңыз
      node data2ankiindex.js
    3. ПАЙДА!!!

  4. Белгілеуден карталарды жасау үшін пайдаланады

    1. Файлда data2anki/config.json:

      • кілтте режимі мәнді енгізіңіз markdown2anki
      • кілтте modules.markdown.anki.deckName и modules.dsl.anki.modelName сәйкес жазыңыз Палуба атауы и Модель атауы (карталарды жасамас бұрын жасалған болуы керек). Үшін markdown2anki режимінде ғана үлгі түріне қолдау көрсетіледі негізгі.
      • кілтте modules.markdown.selectors.startQuestionSelectors и modules.markdown.selectors.startAnswerSelectors сіз сәйкесінше сұрақ пен жауаптың басын белгілейтін селекторларды жазасыз. Селекторы бар жолдың өзі талданбайды және картада аяқталмайды, талдаушы келесі жолдан жұмыс істей бастайды.

        Мысалы, бұл сұрақ/жауап картасы:

        ANKI сізге шет тілін үйренуге және сұхбатқа дайындалуға қалай көмектесетіні туралы екі оқиға

        Ол белгілеуде келесідей болады:
        #СҰРАҚ# ## 5-сұрақ. Келесі синтаксиспен шақырылғанда дұрыс жұмыс істейтін mul функциясын жазыңыз. ```javascript console.log(mul(2)(3)(4)); // шығыс : 24 console.log(mul(4)(3)(4)); // шығыс : 48 ``` #ANWER# Төменде оның жұмыс істеу әдісі түсіндірілетін код берілген: ```javascript функциясы mul (x) {қайтару функциясы (y) { // анонимді функцияны қайтару функциясы (z) { // анонимді функция қайтару x * y * z; }; }; } ``` Мұнда `mul` функциясы бірінші аргументті қабылдайды және екінші параметрді қабылдайтын анонимді функцияны қайтарады және үшінші параметрді қабылдайтын анонимді функцияны қайтарады және дәйекті түрде берілетін аргументтердің көбейтіндісін қайтарады Javascript функциясында анықталған inside сыртқы функция айнымалысына қол жеткізе алады және функция бірінші сынып нысаны болып табылады, сондықтан оны функция да қайтарып, басқа функцияда аргумент ретінде беруге болады. - Функция Объект түрінің данасы болып табылады - Функцияның қасиеттері болуы және оның конструктор әдісіне сілтеме болуы мүмкін - Функция айнымалы ретінде сақталуы мүмкін - Функция басқа функцияға параметр ретінде берілуі мүмкін - Функция болуы мүмкін басқа функциядан қайтарылды
        

        Мысал осы жерден алынған: 123-JavaScript-Интервью-сұрақтары

        Жоба қалтасында мысалдары бар файл да бар examples/markdown2anki-example.md

      • кілтте modules.markdown.pathToFile
        * болатын файлға жолды жазыңыз..md сұрақ/жауап файлы

    2. ANKI қолданбасы іске қосылған кезде іске қосыңыз
      node data2ankiindex.js
    3. ПАЙДА!!!

Ұялы телефонда мынандай көрінеді:

нәтиже

ANKI жұмыс үстелі нұсқасында алынған карталар ANKI бұлтымен еш қиындықсыз синхрондалады (100 мб дейін бос), содан кейін оларды барлық жерде пайдалануға болады. Android және iPhone үшін клиенттер бар және сіз оны браузерде де пайдалана аласыз. Нәтижесінде, сізде бос уақытыңыз болса, Facebook немесе Instagram-да мысықтарды мақсатсыз айналдырудың орнына сіз жаңа нәрсені біле аласыз.

Эпилогия

Мен айтып өткенімдей, бұл дайын өнімге қарағанда пайдалануға болатын жұмыс істейтін POC. DSL талдаушы стандартының шамамен 30% орындалмаған, сондықтан мысалы, сөздіктердегі сөздік жазбаларының барлығын табу мүмкін емес, оны қайта жазу идеясы да бар JavaScript, өйткені мен «дәйектілікті» қалаймын, сонымен қатар, қазір ол өте оңтайлы жазылмаған. Қазір талдаушы ағаш құрастыруда, бірақ менің ойымша, бұл қажет емес және кодты қиындатудың қажеті жоқ. IN markdown2anki режимінде кескіндер талданбайды. Бірте-бірте қысқартуға тырысамын, бірақ мен өзім үшін жазып отырғандықтан, мен ең алдымен өзім басатын мәселелерді шешемін, бірақ кімде-кім көмектескісі келсе, қабыл алыңыз. Бағдарлама туралы сұрақтарыңыз болса, мен тиісті жобалардағы ашық мәселелер арқылы көмектесуге қуаныштымын. Басқа сын мен ұсыныстарды осында жазыңыз. Бұл жоба біреуге пайдалы болады деп үміттенемін.

PS Егер сіз қандай да бір қателерді байқасаңыз (және, өкінішке орай, бар), маған жеке хабарламада жазыңыз, мен бәрін түзетемін.

Ақпарат көзі: www.habr.com

пікір қалдыру