Zwei Geschichten darüber, wie ANKI Ihnen beim Erlernen einer Fremdsprache und bei der Vorbereitung auf Vorstellungsgespräche helfen kann

Ich habe immer geglaubt, dass ein fauler Programmierer ein guter Programmierer ist. Warum? Denn wenn Sie einen harten Arbeiter bitten, etwas zu tun, wird er es tun. Und ein fauler Programmierer wird zwei- bis dreimal mehr Zeit aufwenden, aber ein Skript schreiben, das dies für ihn erledigt. Dies kann beim ersten Mal unangemessen lange dauern, aber bei wiederholten Aufgaben wird sich dieser Ansatz sehr schnell auszahlen. Ich halte mich für einen faulen Programmierer. Das war die Präambel, jetzt kommen wir zur Sache.

Erste Geschichte

Vor ein paar Jahren habe ich mich gefragt, wie ich mein Englisch verbessern könnte. Mir fiel nichts Besseres ein, als Literatur zu lesen. Ich kaufte ein elektronisches Lesegerät, lud Bücher herunter und begann zu lesen. Beim Lesen stieß ich immer wieder auf unbekannte Wörter. Ich habe sie sofort mit den im Reader integrierten Wörterbüchern übersetzt, aber eine Besonderheit ist mir aufgefallen: Die Wörter wollten nicht im Gedächtnis bleiben. Als ich ein paar Seiten später wieder auf dieses Wort stieß, brauchte ich mit einer Wahrscheinlichkeit von 90 % erneut eine Übersetzung, und das passierte jedes Mal. Die Schlussfolgerung war, dass es nicht ausreicht, beim Lesen einfach unbekannte Wörter zu übersetzen, man muss etwas anderes tun. Die ideale Option wäre, es in den Alltag einzuführen und zu nutzen, aber ich lebe nicht in einem englischsprachigen Land und das ist unwahrscheinlich. Dann fiel mir ein, dass ich einmal darüber gelesen hatte Abstandswiederholung.

Was ist es und womit wird es gegessen? Kurz gesagt, das gibt es Kurve vergessen, weiteres Zitat aus Wikipedia:

Bereits innerhalb der ersten Stunde sind bis zu 60 % aller aufgenommenen Informationen vergessen, 10 Stunden nach dem Auswendiglernen bleiben 35 % des Gelernten im Gedächtnis. Dann schreitet der Vergessensprozess langsam voran, und nach 6 Tagen bleiben etwa 20 % der Gesamtzahl der ursprünglich gelernten Silben im Gedächtnis, und die gleiche Menge verbleibt nach einem Monat im Gedächtnis.

Und das Fazit von hier

Aus dieser Kurve lassen sich die Schlussfolgerungen ziehen, dass es für ein effektives Auswendiglernen notwendig ist, das auswendig gelernte Material zu wiederholen.

Also kamen wir auf eine Idee räumliche Wiederholung.

АNKI ist ein völlig kostenloses Open-Source-Programm, das die Idee der räumlichen Wiederholung umsetzt. Einfach ausgedrückt haben computergestützte Lernkarten auf der einen Seite eine Frage und auf der anderen eine Antwort. Da Sie Fragen/Antworten regelmäßig beantworten können html/css/javascript, dann können wir sagen, dass es wirklich unbegrenzte Möglichkeiten hat. Darüber hinaus ist es mit Spezial erweiterbar Plugins, und einer davon wird uns in Zukunft sehr nützlich sein.

Das manuelle Erstellen von Karten ist langwierig, mühsam und mit hoher Wahrscheinlichkeit wird man diese Aufgabe nach einer Weile vergessen, und so habe ich mir irgendwann die Frage gestellt, ob es möglich ist, diese Aufgabe zu automatisieren. Die Antwort lautet: Ja, das können Sie. Und ich habe es geschafft. Ich sage gleich, es ist mehr POC (Proof of Concept), die aber verwendet werden können. Wenn das Interesse der Nutzer besteht und sich weitere Entwickler engagieren, dann kann daraus ein fertiges Produkt entstehen, das auch technisch nicht versierte Nutzer nutzen können. Nun erfordert die Verwendung meines Dienstprogramms einige Programmierkenntnisse.

Ich lese Bücher mit dem Programm KI-Leser. Es bietet die Möglichkeit, externe Wörterbücher zu verbinden, und wenn Sie ein Wort übersetzen, speichert es das Wort, das Sie zur Übersetzung aufgerufen haben, in einer Textdatei. Es bleibt nur noch, diese Wörter zu übersetzen und ANKI-Karten zu erstellen.

Zuerst habe ich versucht, es für die Übersetzung zu verwenden Google Translate, Lingvo-API usw. Doch mit kostenlosen Diensten klappte es nicht. Ich habe das kostenlose Limit während des Entwicklungsprozesses ausgeschöpft, außerdem hatte ich gemäß den Lizenzbedingungen nicht das Recht, Wörter zwischenzuspeichern. Irgendwann wurde mir klar, dass ich die Worte selbst übersetzen musste. Als Ergebnis wurde ein Modul geschrieben dsl2html mit dem Sie sich verbinden können DSL-Wörterbücher und wer weiß, wie man sie umwandelt HTML Format.

So sieht ein Wörterbucheintrag in * aus. Html, meine Option im Vergleich zur Option Goldenes Diktat

Zwei Geschichten darüber, wie ANKI Ihnen beim Erlernen einer Fremdsprache und bei der Vorbereitung auf Vorstellungsgespräche helfen kann

Bevor ich in verbundenen Wörterbüchern nach einem Wort suche, bringe ich es dazu Wörterbuchform (Lemma) Nutzung der Bibliothek Stanford CoreNLP. Tatsächlich habe ich aufgrund dieser Bibliothek angefangen, in Java zu schreiben, und der ursprüngliche Plan bestand darin, alles in Java zu schreiben, aber dabei habe ich die Bibliothek gefunden Knoten-Java mit dem man relativ einfach Java-Code aus NodeJS ausführen kann und ein Teil des Codes in JavaScript geschrieben ist. Hätte ich diese Bibliothek früher gefunden, wäre keine einzige Zeile in Java geschrieben worden. Ein weiteres Nebenprojekt, das dabei entstand, ist die Kreation Repository mit DSL-Dokumentation welches im Netzwerk im Format * gefunden wurde.chm, umgewandelt und in göttliche Form gebracht. Wenn der Autor der Originaldatei ein Benutzer mit Spitznamen ist yozhisch Wenn er diesen Artikel sieht, danke ich ihm sehr für die geleistete Arbeit; ohne seine Dokumentation wäre es mir höchstwahrscheinlich nicht gelungen.

Ich habe also ein Wort auf Englisch, dessen Wörterbucheintrag im Format *. Html, müssen Sie nur noch alles zusammenfügen, aus der Wortliste ANKI-Artikel erstellen und diese in die ANKI-Datenbank eingeben. Zu diesem Zweck wurde das folgende Projekt erstellt data2anki. Es kann eine Liste von Wörtern als Eingabe übernehmen, übersetzen und ANKI erstellen *. Html Artikel und erfassen sie in der ANKI-Datenbank. Am Ende des Artikels finden Sie Anweisungen zur Verwendung. In der zweiten Geschichte können räumliche Wiederholungen in der Zwischenzeit nützlich sein.

Die zweite Geschichte.

Alle Menschen, die auf der Suche nach einer mehr oder weniger qualifizierten Fachrichtung sind, darunter auch Programmierer, stehen vor der Notwendigkeit, sich auf ein Vorstellungsgespräch vorzubereiten. Viele der Konzepte, die in Vorstellungsgesprächen abgefragt werden, werden in der alltäglichen Praxis nicht angewendet und geraten in Vergessenheit. Als ich mich auf ein Vorstellungsgespräch vorbereitete, Notizen, ein Buch oder ein Nachschlagewerk durchblätterte, wurde ich mit der Tatsache konfrontiert, dass es viel Zeit und Aufmerksamkeit erfordert, Informationen herauszufiltern, die man bereits kennt, weil sie nicht immer offensichtlich sind und man es tun muss Lesen Sie es sorgfältig durch, um zu verstehen, was es ist. irrelevant. Wenn Sie zu einem Thema kommen, das unbedingt wiederholt werden muss, kommt es oft vor, dass Sie bereits müde sind und die Qualität Ihrer Vorbereitung leidet. Irgendwann dachte ich, warum nicht auch hierfür ANKI-Karten verwenden? Wenn Sie beispielsweise Notizen zu einem Thema machen, erstellen Sie sofort eine Notiz in Form einer Frage und einer Antwort. Wenn Sie sie dann wiederholen, wissen Sie sofort, ob Sie die Antwort auf diese Frage kennen oder nicht.

Das einzige Problem bestand darin, dass das Abtippen der Fragen sehr langwierig und mühsam war. Um den Prozess zu vereinfachen, data2anki Projekt habe ich die Konvertierungsfunktion hinzugefügt Abschlag Text in ANKI-Karten. Sie müssen lediglich eine große Datei schreiben, in der Fragen und Antworten mit einer vorgegebenen Zeichenfolge markiert werden, anhand derer der Parser erkennt, wo sich die Frage und wo die Antwort befindet.

Sobald diese Datei erstellt ist, führen Sie data2anki aus und es werden ANKI-Karten erstellt. Die Originaldatei lässt sich leicht bearbeiten und weitergeben. Sie müssen lediglich die entsprechende(n) Karte(n) löschen und das Programm erneut ausführen, und schon wird eine neue Version erstellt.

Installation und Verwendung

  1. ANKI + AnkiConnect installieren

    1. Laden Sie ANKI hier herunter: https://apps.ankiweb.net/
    2. Installieren Sie das AnkiConnect-Plugin: https://ankiweb.net/shared/info/2055492159

  2. Einstellung data2anki

    1. wird heruntergeladen data2anki aus dem Github-Repository
      git clone https://github.com/anatoly314/data2anki
    2. Abhängigkeiten installieren
      cd data2anki && npm install
    3. Laden Sie Java-Abhängigkeiten herunter https://github.com/anatoly314/data2anki/releases/download/0.1.0/jar-dependencies.zip
    4. Auspacken jar-dependencies.zip und legen Sie den Inhalt hinein data2anki/java/jars

  3. Zum Übersetzen von Wörtern verwenden:

    1. Im Ordner data2anki/config.json:

      • im Schlüssel Modus Geben Sie den Wert ein dsl2anki

      • im Schlüssel module.dsl.anki.deckName и module.dsl.anki.modelName schreibe entsprechend Deckname и Modell (muss bereits vor dem Erstellen von Karten erstellt werden). Derzeit wird nur der Modelltyp unterstützt Basic:

        Verfügt über Felder für die Vorder- und Rückseite und erstellt eine Karte. Der Text, den Sie unter „Vorn“ eingeben, wird auf der Vorderseite der Karte angezeigt, und der Text, den Sie unter „Rückseite“ eingeben, wird auf der Rückseite der Karte angezeigt.

        Wo ist das ursprüngliche Wort? Vorderes Feld, und die Übersetzung wird in sein Hinteres Feld.

        Es ist kein Problem, Unterstützung hinzuzufügen Basic (und umgekehrte Karte), wo eine umgekehrte Karte für das Wort und die Übersetzung erstellt wird, wobei Sie sich basierend auf der Übersetzung das ursprüngliche Wort merken müssen. Alles, was Sie brauchen, ist Zeit und Lust.

      • im Schlüssel module.dsl.dictionariesPath Registrieren Sie ein Array mit verbundenen *.dsl Wörterbücher. Jedes angeschlossene Wörterbuch ist ein Verzeichnis, in dem sich die Wörterbuchdateien gemäß dem Format befinden: DSL-Wörterbuchstruktur

      • im Schlüssel module.dsl.wordToTranslatePath Geben Sie den Pfad zur Liste der Wörter ein, die Sie übersetzen möchten.

    2. Starten Sie mit laufender ANKI-Anwendung
      node data2ankiindex.js
    3. PROFITIEREN!!!

  4. Wird zum Erstellen von Karten aus Markdown verwendet

    1. Im Ordner data2anki/config.json:

      • im Schlüssel Modus Geben Sie den Wert ein markdown2anki
      • im Schlüssel module.markdown.anki.deckName и module.dsl.anki.modelName schreibe entsprechend Deckname и Modell (muss bereits vor dem Erstellen von Karten erstellt werden). Für markdown2anki Modus wird nur der Modelltyp unterstützt Basic.
      • im Schlüssel module.markdown.selectors.startQuestionSelectors и module.markdown.selectors.startAnswerSelectors Sie schreiben Selektoren, mit denen Sie den Anfang der Frage bzw. Antwort markieren. Die Zeile mit dem Selektor selbst wird nicht geparst und landet nicht auf der Karte; der Parser beginnt ab der nächsten Zeile zu arbeiten.

        Zum Beispiel diese Frage-/Antwortkarte:

        Zwei Geschichten darüber, wie ANKI Ihnen beim Erlernen einer Fremdsprache und bei der Vorbereitung auf Vorstellungsgespräche helfen kann

        Im Markdown sieht es so aus:
        #FRAGE# ## Frage 5. Schreiben Sie eine Mul-Funktion, die ordnungsgemäß funktioniert, wenn sie mit der folgenden Syntax aufgerufen wird. ```javascript console.log(mul(2)(3)(4)); // Ausgabe: 24 console.log(mul(4)(3)(4)); // Ausgabe: 48 „#ANSWER# Unten ist der Code, gefolgt von einer Erklärung seiner Funktionsweise: „javascript function mul (x) { return function (y) { // anonyme Funktion return function (z) { // anonyme Funktion return x * y * z; }; }; } ``` Hier akzeptiert die Funktion „mul“ das erste Argument und gibt die anonyme Funktion zurück, die den zweiten Parameter übernimmt, und gibt die anonyme Funktion zurück, die den dritten Parameter übernimmt und die Multiplikation von Argumenten zurückgibt, die in aufeinanderfolgenden Schritten übergeben werden. In der Javascript-Funktion definiert inside hat Zugriff auf die äußere Funktionsvariable und function ist das Objekt der ersten Klasse, sodass es auch von der Funktion zurückgegeben und als Argument in einer anderen Funktion übergeben werden kann. - Eine Funktion ist eine Instanz des Objekttyps. - Eine Funktion kann Eigenschaften haben und hat einen Link zurück zu ihrer Konstruktormethode. - Eine Funktion kann als Variable gespeichert werden. - Eine Funktion kann als Parameter an eine andere Funktion übergeben werden. - Eine Funktion kann sein von einer anderen Funktion zurückgegeben
        

        Beispiel von hier: 123-JavaScript-Interview-Fragen

        Es gibt auch eine Datei mit Beispielen im Projektordner examples/markdown2anki-example.md

      • im Schlüssel module.markdown.pathToFile
        Notieren Sie sich den Pfad zu der Datei, in der *.md Frage/Antwort-Datei

    2. Starten Sie mit laufender ANKI-Anwendung
      node data2ankiindex.js
    3. PROFITIEREN!!!

So sieht es auf einem Mobiltelefon aus:

Erlebe die Kraft effektiver Ergebnisse

Auf der Desktop-Version von ANKI empfangene Karten werden problemlos mit der ANKI-Cloud synchronisiert (kostenlos bis 100 MB) und können dann überall verwendet werden. Es gibt Clients für Android und iPhone und Sie können es auch in einem Browser verwenden. Wenn Sie also Zeit haben, für die Sie nichts ausgeben können, können Sie, anstatt ziellos durch Facebook oder Katzen auf Instagram zu scrollen, etwas Neues lernen.

Letzter Akt

Wie ich bereits erwähnt habe, handelt es sich hierbei eher um einen funktionierenden POC, den Sie verwenden können, als um ein fertiges Produkt. Etwa 30 % des DSL-Parser-Standards sind nicht implementiert und daher Beispielsweise können nicht alle Wörterbucheinträge gefunden werden, die in Wörterbüchern vorhanden sind, es gibt auch eine Idee, es umzuschreiben JavaScript, weil ich „Konsistenz“ möchte und außerdem ist es jetzt nicht sehr optimal geschrieben. Jetzt erstellt der Parser einen Baum, aber meiner Meinung nach ist dies unnötig und muss den Code nicht komplizieren. IN markdown2anki Im Modus werden die Bilder nicht analysiert. Ich werde versuchen, nach und nach zu schneiden, aber da ich für mich selbst schreibe, werde ich zunächst einmal die Probleme lösen, auf die ich selbst trete, aber wenn jemand helfen möchte, dann sind Sie herzlich willkommen. Wenn Sie Fragen zum Programm haben, helfe ich gerne bei offenen Fragen in den entsprechenden Projekten. Schreiben Sie hier weitere Kritik und Anregungen. Ich hoffe, dass dieses Projekt jemandem nützlich sein wird.

PS: Wenn Ihnen Fehler auffallen (und leider gibt es welche), schreiben Sie mir eine persönliche Nachricht, ich werde alles korrigieren.

Source: habr.com

Kommentar hinzufügen