Dua cerita tentang cara ANKI boleh membantu anda mempelajari bahasa asing dan bersedia untuk temu duga

Saya sentiasa percaya bahawa pengaturcara yang malas adalah pengaturcara yang baik. kenapa? Kerana meminta seorang pekerja keras untuk melakukan sesuatu, dia akan pergi dan melakukannya. Dan pengaturcara yang malas akan menghabiskan 2-3 kali lebih banyak masa, tetapi akan menulis skrip yang akan melakukannya untuknya. Ia mungkin mengambil masa yang tidak munasabah untuk melakukan ini pada kali pertama, tetapi dengan tugasan berulang pendekatan ini akan membuahkan hasil dengan cepat. Saya menganggap diri saya seorang pengaturcara yang malas. Itulah mukadimahnya, sekarang mari kita berniaga.

Cerita satu

Beberapa tahun yang lalu saya tertanya-tanya bagaimana saya boleh meningkatkan bahasa Inggeris saya. Tiada yang lebih baik terlintas di fikiran selain membaca sastera. Saya membeli pembaca elektronik, memuat turun buku dan saya mula membaca. Semasa membaca, saya terus terjumpa perkataan yang tidak dikenali. Saya segera menterjemahkannya menggunakan kamus yang dibina ke dalam pembaca, tetapi saya perhatikan satu ciri: perkataan itu tidak mahu diingati. Apabila saya menjumpai perkataan ini sekali lagi beberapa muka surat kemudian, dengan kebarangkalian 90% saya sekali lagi memerlukan terjemahan, dan ini berlaku setiap kali. Kesimpulannya adalah tidak cukup untuk hanya menterjemah perkataan yang tidak dikenali semasa membaca, anda perlu melakukan sesuatu yang lain. Pilihan yang ideal ialah memperkenalkannya ke dalam kehidupan seharian dan mula menggunakannya, tetapi saya tidak tinggal di negara berbahasa Inggeris dan ini tidak mungkin. Kemudian saya teringat bahawa saya pernah membaca tentangnya Ulangan Berjarak.

Apa itu dan dengan apa ia dimakan? Pendek kata, ada ini lupa keluk, petikan lanjut dari Wikipedia:

Sudah dalam jam pertama, sehingga 60% daripada semua maklumat yang diterima dilupakan; 10 jam selepas hafalan, 35% daripada apa yang dipelajari kekal dalam ingatan. Kemudian proses melupakan berjalan perlahan, dan selepas 6 hari kira-kira 20% daripada jumlah suku kata yang dipelajari pada mulanya kekal dalam ingatan, dan jumlah yang sama kekal dalam ingatan selepas sebulan.

Dan kesimpulan dari sini

Kesimpulan yang boleh dibuat berdasarkan keluk ini ialah untuk menghafal yang berkesan perlu mengulang bahan yang dihafal.

Jadi kami mendapat idea ulangan jarak.

АNKI ialah program sumber terbuka dan bebas sepenuhnya yang melaksanakan idea pengulangan jarak. Ringkasnya, kad kilat berkomputer mempunyai soalan di satu pihak dan jawapan di sisi lain. Memandangkan anda boleh melakukan soalan/jawapan menggunakan biasa html/css/javascript, maka kita boleh mengatakan bahawa ia mempunyai kemungkinan yang tidak terhad. Di samping itu, ia boleh dikembangkan dengan istimewa pemalam, dan salah satu daripadanya akan sangat berguna kepada kita pada masa hadapan.

Membuat kad secara manual adalah panjang, membosankan, dan dengan kebarangkalian yang tinggi, selepas beberapa ketika anda akan melupakan tugas ini, dan pada satu ketika saya bertanya kepada diri sendiri soalan, adakah mungkin untuk mengautomasikan tugas ini. Jawapannya ya, boleh. Dan saya melakukannya. Saya akan katakan segera, ia lebih POC (Bukti konsep), tetapi yang boleh digunakan. Sekiranya terdapat minat daripada pengguna dan pembangun lain terlibat, maka ia boleh dibawa ke produk siap yang boleh digunakan oleh pengguna yang buta huruf secara teknikal. Sekarang, menggunakan utiliti saya memerlukan sedikit pengetahuan tentang pengaturcaraan.

Saya membaca buku menggunakan program ini Pemandu Udara. Ia mempunyai keupayaan untuk menyambungkan kamus luaran, dan apabila anda menterjemah perkataan, ia menyimpan perkataan yang anda panggil untuk terjemahan ke fail teks. Apa yang tinggal ialah menterjemah perkataan ini dan mencipta kad ANKI.

Pada mulanya saya cuba gunakan untuk terjemahan Terjemahan Google, API Lingvo dan lain-lain. Tetapi perkara tidak berjaya dengan perkhidmatan percuma. Saya kehabisan had percuma semasa proses pembangunan, di samping itu, mengikut syarat lesen, saya tidak mempunyai hak untuk cache perkataan. Pada satu ketika saya menyedari bahawa saya perlu menterjemah perkataan itu sendiri. Hasilnya, modul telah ditulis dsl2html yang anda boleh sambungkan Kamus DSL dan siapa tahu bagaimana untuk menukarnya menjadi HTML format.

Inilah rupa entri kamus dalam *. Html, pilihan saya berbanding dengan pilihan GoldenDict

Dua cerita tentang cara ANKI boleh membantu anda mempelajari bahasa asing dan bersedia untuk temu duga

Sebelum mencari perkataan dalam kamus bersambung, saya bawa ke borang kamus (lemma) menggunakan perpustakaan Stanford CoreNLP. Sebenarnya, kerana perpustakaan ini, saya mula menulis dalam Java dan rancangan asalnya adalah untuk menulis segala-galanya dalam Java, tetapi dalam proses itu saya menemui perpustakaan simpul-java yang mana anda boleh dengan mudah melaksanakan kod Java daripada nodejs dan beberapa kod ditulis dalam JavaScript. Jika saya telah menemui perpustakaan ini lebih awal, tiada satu baris pun akan ditulis dalam Java. Satu lagi projek sampingan yang dilahirkan dalam proses itu ialah penciptaan repositori dengan dokumentasi DSL yang ditemui pada rangkaian dalam format *.chm, ditukar dan dibawa ke dalam bentuk ilahi. Jika pengarang fail asal ialah pengguna dengan nama panggilan yozhic Apabila dia melihat artikel ini, saya mengucapkan ribuan terima kasih atas kerja yang telah dilakukannya; tanpa dokumentasinya, saya berkemungkinan besar tidak akan berjaya.

Jadi, saya mempunyai perkataan dalam bahasa Inggeris, entri kamusnya dalam format *. Html, yang tinggal hanyalah menyusun segala-galanya, mencipta artikel ANKI daripada senarai perkataan dan memasukkannya ke dalam pangkalan data ANKI. Untuk tujuan ini projek berikut telah dibuat data2anki. Ia boleh mengambil senarai perkataan sebagai input, menterjemah, mencipta ANKI *. Html artikel dan merekodkannya dalam pangkalan data ANKI. Pada akhir artikel terdapat arahan tentang cara menggunakannya. Sementara itu, cerita kedua adalah di mana pengulangan jarak boleh berguna.

Kisah kedua.

Semua orang yang mencari kepakaran yang lebih/kurang berkelayakan, termasuk pengaturcara, berhadapan dengan keperluan untuk bersedia untuk temu duga. Banyak konsep yang ditanya dalam temu bual yang anda tidak gunakan dalam amalan seharian dan ia dilupakan. Semasa membuat persediaan untuk temuduga, menyelak nota, buku, buku rujukan, saya berhadapan dengan hakikat bahawa ia memerlukan banyak masa dan perhatian untuk menyaring maklumat yang anda sudah tahu kerana ia tidak selalu jelas dan anda perlu baca dengan teliti untuk memahami apa itu.tidak relevan. Apabila anda datang ke topik yang benar-benar perlu diulang, sering berlaku bahawa anda sudah letih dan kualiti penyediaan anda terjejas. Pada satu ketika saya terfikir, mengapa tidak menggunakan kad ANKI untuk ini juga? Sebagai contoh, apabila mengambil nota mengenai topik, segera buat nota dalam bentuk soalan dan jawapan, dan kemudian apabila anda mengulanginya, anda akan segera mengetahui sama ada anda tahu jawapan kepada soalan ini atau tidak.

Satu-satunya masalah yang timbul ialah menaip soalan adalah sangat panjang dan membosankan. Untuk memudahkan proses, data2anki projek saya menambah fungsi tukar markdown teks dalam kad ANKI. Apa yang anda perlukan ialah menulis satu fail besar di mana soalan dan jawapan akan ditandakan dengan urutan aksara yang telah ditetapkan, yang mana penghurai akan memahami di mana soalan itu dan di mana jawapannya.

Setelah fail ini dibuat, anda menjalankan data2anki dan ia mencipta kad ANKI. Fail asal mudah untuk diedit dan dikongsi, anda hanya perlu memadamkan kad yang sepadan dan menjalankan program sekali lagi, dan versi baharu akan dibuat.

Pemasangan dan penggunaan

  1. Memasang ANKI + AnkiConnect

    1. Muat turun ANKI dari sini: https://apps.ankiweb.net/
    2. Pasang pemalam AnkiConnect: https://ankiweb.net/shared/info/2055492159

  2. Pemasangan data2anki

    1. Muat turun data2anki dari repositori github
      git clone https://github.com/anatoly314/data2anki
    2. Pasang kebergantungan
      cd data2anki && npm install
    3. Muat turun kebergantungan java https://github.com/anatoly314/data2anki/releases/download/0.1.0/jar-dependencies.zip
    4. Membongkar jar-dependencies.zip dan letakkan kandungannya data2anki/java/jars

  3. Gunakan untuk menterjemah perkataan:

    1. Dalam fail data2anki/config.json:

      • dalam kunci mod masukkan nilai dsl2anki

      • dalam kunci modules.dsl.anki.deckName ΠΈ modules.dsl.anki.modelName menulis dengan sewajarnya Nama Dek ΠΈ Nama Model (mesti sudah dibuat sebelum membuat kad). Pada masa ini hanya jenis model yang disokong Asas:

        Mempunyai medan Depan dan Belakang, dan akan mencipta satu kad. Teks yang anda masukkan di Depan akan muncul di hadapan kad, dan teks yang anda masukkan di Belakang akan muncul di belakang kad.

        mana perkataan asal? Padang hadapan, dan terjemahan akan masuk Padang belakang.

        Tiada masalah untuk menambah sokongan Asas (dan kad terbalik), di mana kad terbalik akan dibuat untuk perkataan dan terjemahan, di mana berdasarkan terjemahan anda perlu mengingati perkataan asal. Apa yang anda perlukan adalah masa dan keinginan.

      • dalam kunci modules.dsl.dictionariesPath daftarkan tatasusunan dengan tersambung *.dsl kamus. Setiap kamus yang disambungkan ialah direktori di mana fail kamus terletak mengikut format: Struktur kamus DSL

      • dalam kunci modules.dsl.wordToTranslatePath masukkan laluan ke senarai perkataan yang ingin anda terjemahkan.

    2. Lancarkan dengan aplikasi ANKI berjalan
      node data2ankiindex.js
    3. UNTUNG!!!

  4. Kegunaan untuk mencipta kad daripada penurunan harga

    1. Dalam fail data2anki/config.json:

      • dalam kunci mod masukkan nilai penurunan harga2anki
      • dalam kunci modules.markdown.anki.deckName ΠΈ modules.dsl.anki.modelName menulis dengan sewajarnya Nama Dek ΠΈ Nama Model (mesti sudah dibuat sebelum membuat kad). Untuk penurunan harga2anki jenis model mod sahaja disokong Asas.
      • dalam kunci modules.markdown.selectors.startQuestionSelectors ΠΈ modules.markdown.selectors.startAnswerSelectors anda menulis pemilih yang mana anda menandakan permulaan soalan dan jawapan, masing-masing. Baris dengan pemilih itu sendiri tidak akan dihuraikan dan tidak akan berakhir dalam kad; penghurai akan mula berfungsi dari baris seterusnya.

        Contohnya, kad soalan/jawapan ini:

        Dua cerita tentang cara ANKI boleh membantu anda mempelajari bahasa asing dan bersedia untuk temu duga

        Ia akan kelihatan seperti ini dalam penurunan harga:
        #QUESTION# ## Soalan 5. Tulis fungsi mul yang akan berfungsi dengan betul apabila dipanggil dengan sintaks berikut. ```javascript console.log(mul(2)(3)(4)); // output : 24 console.log(mul(4)(3)(4)); // output : 48 ``` #JAWAPAN# Di bawah ialah kod diikuti dengan penerangan tentang cara ia berfungsi: ```fungsi javascript mul (x) { return function (y) { // anonymous function return function (z) { // fungsi tanpa nama mengembalikan x * y * z; }; }; } ``` Di sini fungsi `mul` menerima argumen pertama dan mengembalikan fungsi tanpa nama yang mengambil parameter kedua dan mengembalikan fungsi tanpa nama yang mengambil parameter ketiga dan mengembalikan pendaraban argumen yang dihantar berturut-turut Dalam fungsi Javascript yang ditakrifkan dalam mempunyai akses kepada pembolehubah fungsi luar dan fungsi ialah objek kelas pertama supaya ia boleh dikembalikan oleh fungsi itu juga dan diluluskan sebagai hujah dalam fungsi lain. - Fungsi ialah contoh jenis Objek - Fungsi boleh mempunyai sifat dan mempunyai pautan kembali ke kaedah pembinanya - Fungsi boleh disimpan sebagai pembolehubah - Fungsi boleh dihantar sebagai parameter kepada fungsi lain - Fungsi boleh dikembalikan dari fungsi lain
        

        Contoh diambil dari sini: 123-JavaScript-Soalan Temu Bual

        Terdapat juga fail dengan contoh dalam folder projek examples/markdown2anki-example.md

      • dalam kunci modules.markdown.pathToFile
        tulis laluan ke fail di mana *.md fail soalan/jawapan

    2. Lancarkan dengan aplikasi ANKI berjalan
      node data2ankiindex.js
    3. UNTUNG!!!

Inilah rupanya pada telefon bimbit:

Keputusan

Kad yang diterima pada versi desktop ANKI disegerakkan tanpa masalah dengan awan ANKI (percuma sehingga 100mb), dan kemudian anda boleh menggunakannya di mana-mana sahaja. Terdapat pelanggan untuk Android dan iPhone, dan anda juga boleh menggunakannya dalam penyemak imbas. Akibatnya, jika anda mempunyai masa yang anda tidak mempunyai apa-apa untuk dibelanjakan, maka daripada menatal tanpa tujuan melalui Facebook atau kucing di Instagram, anda boleh mempelajari sesuatu yang baharu.

Epilog

Seperti yang saya nyatakan, ini lebih kepada POC yang berfungsi yang boleh anda gunakan daripada produk siap. Kira-kira 30% daripada piawaian penghurai DSL tidak dilaksanakan, dan oleh itu, contohnya, tidak semua entri kamus yang terdapat dalam kamus boleh ditemui, ada juga idea untuk menulis semula JavaScript, kerana saya mahukan "konsistensi", dan selain itu, sekarang ia tidak ditulis dengan sangat optimum. Sekarang parser sedang membina pokok, tetapi pada pendapat saya ini tidak perlu dan tidak perlu merumitkan kod. DALAM penurunan harga2anki mod, imej tidak dihuraikan. Saya akan cuba potong sedikit demi sedikit, tetapi memandangkan saya menulis untuk diri saya sendiri, saya akan menyelesaikan masalah yang saya sendiri akan pijak, tetapi jika ada yang ingin membantu, maka dialu-alukan. Jika anda mempunyai soalan tentang program ini, saya dengan senang hati akan membantu melalui isu terbuka dalam projek yang berkaitan. Tulis kritikan dan cadangan lain di sini. Saya berharap projek ini akan berguna kepada seseorang.

PS Jika anda melihat sebarang ralat (dan, malangnya, terdapat beberapa), tulis kepada saya dalam mesej peribadi, saya akan membetulkan segala-galanya.

Sumber: www.habr.com

Tambah komen