Dua cerita tentang bagaimana ANKI dapat membantu Anda belajar bahasa asing dan mempersiapkan wawancara

Saya selalu percaya bahwa programmer yang malas adalah programmer yang baik. Mengapa? Karena meminta seorang pekerja keras untuk melakukan sesuatu, dia akan pergi dan melakukannya. Dan seorang programmer yang malas akan menghabiskan waktu 2-3 kali lebih banyak, tetapi akan menulis skrip yang akan melakukannya untuknya. Mungkin diperlukan waktu yang sangat lama untuk melakukan hal ini pada kali pertama, namun dengan tugas yang berulang-ulang, pendekatan ini akan membuahkan hasil dengan sangat cepat. Saya menganggap diri saya seorang programmer yang malas. Itu tadi pembukaannya, sekarang mari kita mulai bisnisnya.

Cerita satu

Beberapa tahun yang lalu saya bertanya-tanya bagaimana saya dapat meningkatkan bahasa Inggris saya. Tidak ada yang lebih baik terlintas dalam pikiran selain membaca literatur. Saya membeli pembaca elektronik, mengunduh buku dan mulai membaca. Saat membaca, saya terus menemukan kata-kata asing. Saya segera menerjemahkannya menggunakan kamus yang ada di dalam pembaca, tetapi saya memperhatikan satu ciri: kata-katanya tidak ingin diingat. Ketika saya menemukan kata ini lagi beberapa halaman kemudian, dengan kemungkinan 90% saya membutuhkan terjemahan lagi, dan ini terjadi setiap saat. Kesimpulannya adalah tidak cukup hanya menerjemahkan kata-kata asing saat membaca, Anda perlu melakukan hal lain. Pilihan yang ideal adalah memperkenalkannya ke dalam kehidupan sehari-hari dan mulai menggunakannya, tetapi saya tidak tinggal di negara berbahasa Inggris dan hal ini kecil kemungkinannya. Kemudian saya teringat bahwa saya pernah membaca tentang itu Pengulangan Berjarak.

Apa itu dan dimakan dengan apa? Singkatnya, ini dia melupakan kurva, kutipan lebih lanjut dari Wikipedia:

Dalam satu jam pertama, hingga 60% dari semua informasi yang diterima dilupakan, 10 jam setelah menghafal, 35% dari apa yang dipelajari tetap tersimpan dalam ingatan. Kemudian proses melupakan berlangsung perlahan, dan setelah 6 hari sekitar 20% dari jumlah total suku kata yang dipelajari awalnya tetap ada di memori, dan jumlah yang sama tetap ada di memori setelah satu bulan.

Dan kesimpulannya dari sini

Kesimpulan yang dapat diambil berdasarkan kurva tersebut adalah bahwa untuk hafalan yang efektif perlu dilakukan pengulangan materi yang telah dihafal.

Jadi kami punya ide pengulangan spasi.

ANKI adalah program sumber terbuka dan gratis yang mengimplementasikan gagasan pengulangan berkala. Sederhananya, kartu flash terkomputerisasi mempunyai pertanyaan di satu sisi dan jawaban di sisi lain. Karena Anda dapat melakukan tanya jawab menggunakan reguler html/css/javascript, maka kita dapat mengatakan bahwa kemungkinannya benar-benar tidak terbatas. Selain itu, dapat diperluas dengan spesial plugin, dan salah satunya akan sangat berguna bagi kita di masa depan.

Membuat kartu secara manual itu panjang, membosankan, dan dengan kemungkinan besar, setelah beberapa saat Anda akan melupakan tugas ini, dan pada titik tertentu saya bertanya pada diri sendiri, apakah mungkin untuk mengotomatiskan tugas ini. Jawabannya adalah ya, Anda bisa. Dan saya melakukannya. Saya akan segera mengatakannya, ini lebih dari itu POC (Bukti konsep), tapi mana yang bisa digunakan. Jika ada minat dari pengguna dan pengembang lain yang ikut terlibat, maka produk tersebut dapat dihasilkan menjadi produk jadi yang bahkan dapat digunakan oleh pengguna yang buta huruf secara teknis. Sekarang, menggunakan utilitas saya memerlukan pengetahuan pemrograman.

Saya membaca buku menggunakan program ini Pembaca AI. Ia memiliki kemampuan untuk menghubungkan kamus eksternal, dan ketika Anda menerjemahkan sebuah kata, ia menyimpan kata yang Anda panggil untuk diterjemahkan ke file teks. Yang tersisa hanyalah menerjemahkan kata-kata ini dan membuat kartu ANKI.

Awalnya saya mencoba menggunakannya untuk terjemahan penerjemah Google, API Lingvo dll. Namun hal-hal tidak berjalan baik dengan layanan gratis. Saya telah menghabiskan batas gratis selama proses pengembangan, selain itu, menurut ketentuan lisensi, saya tidak memiliki hak untuk menyimpan kata-kata dalam cache. Pada titik tertentu saya menyadari bahwa saya perlu menerjemahkan kata-katanya sendiri. Hasilnya, sebuah modul ditulis dsl2html yang dapat Anda sambungkan kamus DSL dan siapa yang tahu bagaimana mengubahnya menjadi HTML format.

Ini adalah tampilan entri kamus di *. Html, pilihan saya dibandingkan dengan pilihan Dikte Emas

Dua cerita tentang bagaimana ANKI dapat membantu Anda belajar bahasa asing dan mempersiapkan wawancara

Sebelum mencari kata di kamus terkait, saya membawanya ke bentuk kamus (lemma) menggunakan perpustakaan Stanford CoreNLP. Faktanya, karena perpustakaan ini, saya mulai menulis di Java dan rencana awal adalah menulis semuanya di Java, tetapi dalam prosesnya saya menemukan perpustakaan tersebut node-java yang dengannya Anda dapat dengan mudah mengeksekusi kode Java dari nodejs dan beberapa kode ditulis dalam JavaScript. Jika saya menemukan perpustakaan ini lebih awal, tidak akan ada satu baris pun yang ditulis di Java. Proyek sampingan lain yang lahir dalam proses tersebut adalah penciptaan repositori dengan dokumentasi DSL yang ditemukan di jaringan dalam format *.chm, diubah dan dibawa ke dalam bentuk ilahi. Jika pembuat file asli adalah pengguna dengan nama panggilan yozhic Ketika dia melihat artikel ini, saya berterima kasih banyak atas pekerjaan yang telah dia lakukan; tanpa dokumentasinya, kemungkinan besar saya tidak akan berhasil.

Jadi, saya punya kata dalam bahasa Inggris, entri kamusnya dalam format *. Html, tinggal menyatukan semuanya, membuat artikel ANKI dari daftar kata dan memasukkannya ke dalam database ANKI. Untuk tujuan ini proyek berikut telah dibuat data2anki. Dapat mengambil daftar kata sebagai masukan, menerjemahkan, membuat ANKI *. Html artikel dan catat di database ANKI. Di akhir artikel ada petunjuk cara menggunakannya. Sementara itu, cerita kedua adalah dimana pengulangan dengan jarak tertentu dapat bermanfaat.

Cerita kedua.

Semua orang yang mencari spesialisasi yang lebih/kurang berkualitas, termasuk programmer, dihadapkan pada kebutuhan untuk mempersiapkan wawancara. Banyak konsep yang ditanyakan dalam wawancara tidak Anda gunakan dalam praktik sehari-hari dan terlupakan. Saat mempersiapkan wawancara, membolak-balik catatan, buku, buku referensi, saya dihadapkan pada kenyataan bahwa dibutuhkan banyak waktu dan perhatian untuk menyaring informasi yang sudah Anda ketahui karena tidak selalu jelas dan Anda harus melakukannya membacanya dengan cermat untuk memahami apa yang tidak relevan. Ketika Anda sampai pada suatu topik yang benar-benar perlu diulang, sering kali Anda sudah lelah dan kualitas persiapan Anda menurun. Suatu saat saya berpikir, kenapa tidak menggunakan kartu ANKI juga untuk ini? Misalnya ketika mencatat suatu topik, segera buatlah catatan berupa tanya jawab, kemudian ketika diulangi maka Anda akan langsung mengetahui apakah Anda mengetahui jawaban dari pertanyaan tersebut atau tidak.

Satu-satunya masalah yang muncul adalah mengetik pertanyaan sangat panjang dan membosankan. Untuk mempermudah prosesnya, data2anki proyek saya menambahkan fungsionalitas konversi penurunan harga teks di kartu ANKI. Yang Anda butuhkan hanyalah menulis satu file besar di mana pertanyaan dan jawaban akan ditandai dengan urutan karakter yang telah ditentukan, yang dengannya parser akan memahami di mana pertanyaannya dan di mana jawabannya.

Setelah file ini dibuat, Anda menjalankan data2anki dan membuat kartu ANKI. File asli mudah untuk diedit dan dibagikan, Anda hanya perlu menghapus kartu yang sesuai dan menjalankan program lagi, dan versi baru akan dibuat.

Instalasi dan penggunaan

  1. Menginstal ANKI + AnkiConnect

    1. Unduh ANKI dari sini: https://apps.ankiweb.net/
    2. Instal plugin AnkiConnect: https://ankiweb.net/shared/info/2055492159

  2. Instalasi data2anki

    1. Unduh data2anki dari repositori github
      git clone https://github.com/anatoly314/data2anki
    2. Instal dependensi
      cd data2anki && npm install
    3. Unduh dependensi java https://github.com/anatoly314/data2anki/releases/download/0.1.0/jar-dependencies.zip
    4. Membongkar jar-dependensi.zip dan tempatkan isinya data2anki/java/jars

  3. Gunakan untuk menerjemahkan kata-kata:

    1. Dalam file data2anki/config.json:

      • di dalam kunci mode masukkan nilainya dsl2anki

      • di dalam kunci modul.dsl.anki.deckName ΠΈ modul.dsl.anki.modelName menulis sesuai Nama Dek ΠΈ Model Nama (harus sudah dibuat sebelum membuat kartu). Saat ini hanya tipe model yang didukung Dasar:

        Memiliki bidang Depan dan Belakang, dan akan membuat satu kartu. Teks yang Anda masukkan di Depan akan muncul di bagian depan kartu, dan teks yang Anda masukkan di Belakang akan muncul di bagian belakang kartu.

        mana kata aslinya? Bidang depan, dan terjemahannya akan masuk Bidang belakang.

        Tidak ada masalah untuk menambahkan dukungan Dasar (dan kartu terbalik), di mana kartu terbalik akan dibuat untuk kata dan terjemahannya, di mana berdasarkan terjemahannya Anda perlu mengingat kata aslinya. Yang Anda butuhkan hanyalah waktu dan keinginan.

      • di dalam kunci modul.dsl.dictionariesPath daftarkan array dengan terhubung *.dsl kamus. Setiap kamus yang terhubung adalah direktori tempat file kamus berada sesuai dengan format: Struktur kamus DSL

      • di dalam kunci modul.dsl.wordToTranslatePath masukkan jalur ke daftar kata yang ingin Anda terjemahkan.

    2. Luncurkan dengan aplikasi ANKI yang sedang berjalan
      node data2ankiindex.js
    3. LABA!!!

  4. Kegunaan untuk membuat kartu dari penurunan harga

    1. Dalam file data2anki/config.json:

      • di dalam kunci mode masukkan nilainya penurunan harga2anki
      • di dalam kunci modul.markdown.anki.deckName ΠΈ modul.dsl.anki.modelName menulis sesuai Nama Dek ΠΈ Model Nama (harus sudah dibuat sebelum membuat kartu). Untuk penurunan harga2anki mode hanya jenis model yang didukung Dasar.
      • di dalam kunci modul.markdown.selectors.startQuestionSelectors ΠΈ modul.markdown.selectors.startAnswerSelectors Anda menulis penyeleksi yang masing-masing digunakan untuk menandai awal pertanyaan dan jawaban. Baris dengan pemilih itu sendiri tidak akan diurai dan tidak akan berakhir di kartu; parser akan mulai bekerja dari baris berikutnya.

        Misalnya, kartu tanya/jawab ini:

        Dua cerita tentang bagaimana ANKI dapat membantu Anda belajar bahasa asing dan mempersiapkan wawancara

        Ini akan terlihat seperti ini dalam penurunan harga:
        #QUESTION# ## Pertanyaan 5. Tulis fungsi mul yang akan berfungsi dengan baik ketika dipanggil dengan sintaks berikut. ```javascript konsol.log(mul(2)(3)(4)); // keluaran : 24 konsol.log(mul(4)(3)(4)); // output : 48 ``` #ANSWER# Di bawah ini adalah kode yang diikuti dengan penjelasan cara kerjanya: ```javascript function mul (x) { return function (y) { // fungsi anonim return function (z) { // fungsi anonim mengembalikan x * y * z; }; }; } ``` Di sini fungsi `mul` menerima argumen pertama dan mengembalikan fungsi anonim yang mengambil parameter kedua dan mengembalikan fungsi anonim yang mengambil parameter ketiga dan mengembalikan perkalian argumen yang diteruskan secara berurutan. Dalam fungsi Javascript yang ditentukan inside memiliki akses ke variabel fungsi luar dan fungsi adalah objek kelas pertama sehingga dapat dikembalikan oleh fungsi juga dan diteruskan sebagai argumen di fungsi lain. - Fungsi merupakan turunan dari tipe Objek - Fungsi dapat memiliki properti dan memiliki link kembali ke metode konstruktornya - Fungsi dapat disimpan sebagai variabel - Fungsi dapat diteruskan sebagai parameter ke fungsi lain - Fungsi dapat berupa dikembalikan dari fungsi lain
        

        Contoh diambil dari sini: 123-JavaScript-Wawancara-Pertanyaan

        Ada juga file dengan contoh di folder proyek examples/markdown2anki-example.md

      • di dalam kunci modul.markdown.pathToFile
        tuliskan path ke file tempat *.md berkas pertanyaan/jawaban

    2. Luncurkan dengan aplikasi ANKI yang sedang berjalan
      node data2ankiindex.js
    3. LABA!!!

Ini tampilannya di ponsel:

Hasil

Kartu yang diterima di ANKI versi desktop disinkronkan tanpa masalah dengan cloud ANKI (gratis hingga 100mb), dan kemudian Anda dapat menggunakannya di mana saja. Ada klien untuk Android dan iPhone, dan Anda juga dapat menggunakannya di browser. Hasilnya, jika Anda punya waktu yang tidak ada gunanya, alih-alih menelusuri Facebook atau Instagram tanpa tujuan, Anda bisa mempelajari sesuatu yang baru.

Bagian terakhir dr suatu karya sastra

Seperti yang saya sebutkan, ini lebih merupakan POC yang berfungsi yang dapat Anda gunakan daripada produk jadi. Sekitar 30% standar parser DSL tidak diterapkan, dan oleh karena itu, misalnya, tidak semua entri kamus yang ada di kamus dapat ditemukan, ada juga ide untuk menulis ulang JavaScript, karena saya ingin β€œkonsistensi”, apalagi sekarang ditulis kurang maksimal. Sekarang parser sedang membangun pohon, tetapi menurut saya ini tidak perlu dan tidak perlu mempersulit kode. DI DALAM penurunan harga2anki mode, gambar tidak diurai. Saya akan mencoba memotongnya sedikit demi sedikit, namun karena saya menulis untuk diri saya sendiri, maka saya sendiri yang akan menyelesaikan masalah yang akan saya injak terlebih dahulu, namun jika ada yang ingin membantu, silakan. Jika Anda memiliki pertanyaan tentang program ini, saya akan dengan senang hati membantu melalui isu terbuka di proyek terkait. Tulis kritik dan saran lainnya di sini. Saya harap proyek ini bermanfaat bagi seseorang.

PS Jika Anda melihat ada kesalahan (dan sayangnya ada beberapa), tulislah kepada saya melalui pesan pribadi, saya akan memperbaiki semuanya.

Sumber: www.habr.com

Tambah komentar