Vokabeln lernen mit Emacs und Pamparam

Wie kann ich meine Vokabeln am Computer lernen? Da gibt es doch sicher was von Ratioph… äh von Emacs.

Fenster zum Patio in einem Haus in Montevideo

26.6.2020

Jan Ulrich Hasecke

Zusammenfassung
  • Pamparam ist ein Vokabeltrainer für Emacs
  • Er arbeitet mit der Lernmethode der verteilten Wiederholung
  • Als digitale Lernkartei ist Pamparam sehr flexibel und nicht auf das Lernen von Vokabeln beschränkt

Als Schüler lernte ich Vokabeln im Bus. Mein Kurzzeitgedächtnis reichte aus, um die verhassten Vokabeltests zu bestehen. Ins Langzeitgedächtnis wanderten dabei jedoch nur die wenigsten Vokabeln.

Seit einiger Zeit lerne ich Spanisch und benötige daher eine bessere Methode, um Vokabeln richtig zu lernen. Eine Zeit lang habe ich die Vokabeltrainer-App von leo.org benutzt. Wenn man auf leo.org eine Wortbedeutung nachschaut, kann man die Vokabel abspeichern und später über die App einüben. Alles, was man dafür braucht, ist ein Account auf der Website. Leo.org stellt verschiedene Vokabelsammlungen mit einem strukturierten Grundwortschatz zur Verfügung, sodass man gleich mit dem Vokabeltraining anfangen kann. Wenn ihr eine Fremdsprache lernt, die Leo.org unterstützt, dann probiert das doch einmal aus.

Ich suchte allerdings eine Lösung, die ich besser auf meine Bedürfnisse zuschneiden kann. So wollte ich nicht nur Vokabeln in beiden Richtungen üben, sondern auch Verbformen repetieren.

Da gibt es doch sicher was für Emacs, meinen Lieblingseditor, dachte ich mir und lag natürlich richtig. Der Vokabeltrainer für Emacs heißt Pamparam. Das Paket implementiert die Lernmethode der verteilten Wiederholung. Früher nannte man das auch eine Lernkartei. Das Paket stammt von abo-abo, der auch einige andere interessante Pakete geschrieben hat.

Die Installation erfolgt wie gewohnt mit dem Paketmanager von Emacs: package-install pamparam RET.

Pamparam nutzt Org-Mode, das Schweizer Taschenmesser des Schweizer Taschenmessers Emacs. Das funktioniert im Prinzip folgendermaßen. Man erstellt eine Vokabeldatei, ich nenne sie im Folgenden Stammdatei, und kennzeichnet die Hauptüberschrift mit dem Tag cards. Meine Datei mit den Spanisch-Vokabeln heißt spanisch.org. Hier ein Ausschnitt:

* Spanisch         :cards:
** quedar con alguien
sich mit jemandem verabreden
** recoger a alguien
jemanden abholen
** despertarse
aufwachen

Aus dieser Stammdatei erzeugt Pamparam einzelne Dateien, die die eigentlichen Karteikärtchen bilden. Die Dateien haben Namen, die aus einem Hash bestehen, und beispielsweise folgenden Inhalt haben:

* m
#+STARTUP: content
** scores
| <2020-06-25> | 5 |   |
| <2020-06-26> | 5 |   |
** stats
(setq ease-factor 2.700000)
(setq intervals '(6 1))
* despertarse
aufwachen

Die erste Überschrift m enthält die Metadaten der Karte. Dazu gehören die Übungsdaten (scores), die vermerken, wann die Karte an der Reihe war und welche Bewertung man erlangt hat. Unter stats wird ein Leichtigkeitsfaktor abgespeichert, der in den Wiederholungsalgorithmus einfließt.

Beim Üben zeigt Pamparam jeweils nur die Frage an, in obigen Beispiel das Wort despertarse. Man gibt die Antwort ein, lässt sie überprüfen und geht zur nächsten Karte. Das Abfragefenster sieht so aus:

* 
* m...
* la suerte...

Der Cursor befindet sich ganz oben in der ersten Zeile. Man gibt dort die Lösung ein und beendet die Eingabe mit einem Punkt. In dem Moment springen die Metadaten auf und man sieht, ob man richtig lag.

* m
#+STARTUP: content
** scores
| <2020-06-26> | 5 |   |
** stats
(setq ease-factor 2.600000)
(setq intervals '(1))
* la suerte
Glück

Intuitiv hätte ich erwartet, die Lösung unter die Frage schreiben zu müssen, aber wenn man sich an die Reihenfolge gewöhnt, kommt man gut klar.

Falsche Antworten werden ebenfalls auf der Karte in den Metadaten vermerkt. Bei der folgenden Karte habe ich rufen statt der richtigen Antwort eingegeben. Das gibt Null Punkte und die falsche Lösung wird protokolliert.

* m
#+STARTUP: content
** scores
| <2020-06-26> | 0 | rufen |
** stats
(setq ease-factor 1.700000)
(setq intervals '(1))
* callarse
verstummen

Erster Start nicht ganz einfach

Ich hatte bei der Einrichtung des Programm kleinere Probleme. Der Autor hat eine Default-Konfiguration für ein Sample eingebunden, die benutzt wird, wenn man das Programm nach der Installation testweise startet. Ich musste diese Default-Konfiguration erst einmal wieder loswerden. Für erfahrene Emacs-Nutzer ist diese Hürde klein, wer aber nicht so geübt darin ist, Emacs zu konfigurieren, wird Probleme haben, das Programm sofort sinnvoll zu nutzen.

Ich empfehle daher, das Programm nach der Installation nicht zu starten, sondern zuerst eine eigene Konfiguration vorzunehmen. Im Grunde muss man nur zwei Ordner erzeugen: einen Pamparam-Ordner, der die Stammdatei enthält und einen weiteren Ordner, in dem sich die Kärtchen mit den Trainingsdaten befinden.

Dies ist meine Konfiguration:

(setq pamparam-alist
  '(("/home/juh/pamparam/spanisch.org"
     . "/home/juh/pamparam/spanisch.pam")))
(setq pamparam-path "/home/juh/pamparam/spanisch.pam")
(global-set-key (kbd "C-c m") 'hydra-pamparam/body)

Im Ordner pamparam befindet sich die Stammdatei spanisch.org mit allen Fragen und Antworten; spanisch.pam ist der besagte Ordner mit den einzelnen Kärtchen. Er hat nach einigen Trainingsdurchläufen folgendem Inhalt, der automatisch erzeugt wird.

spanisch.pam/
├── cards
│   ├── 00
│   │   └── 0070708220833396510b9a3dd2cfd49f-dfb5d223b1996aac7b57fd5655e724bd.org
│   ├── 05
│   │   └── 05c3b08e1d1520527361730e42350705-b9a6d9dbd9f4291f6bcfcf2a04d4580c.org
|   ├──  (weitere Ordner und Dateien)
|
├── pam-2020-06-26.org
├── pam-2020-06-27.org
└── pampile.org

Im Ordner cards sind die bereits erwähnten, einzelnen Karteikärtchen unter einem Hash gespeichert. Die Dateien mit der Datumsangabe (z.B. pam-2020-06-26.org) führen Listen mit Karteikärtchen, die an dem betreffenden Tag geübt wurden. Die Datei pampile.org enthält die Liste aller Karteikärtchen.

Ein Trainingsdurchlauf

Das Üben erfolgt mit folgender Routine:

  1. In der Stammdatei werden neue Fragen und Antworten hinzugefügt.
  2. Um daraus einzelne Karteikärtchen zu machen, wird pamparam-sync aufgerufen.
  3. Mit pamparam-pull wählt man aus der Datei pampile.org die gewünschte Anzahl von Karteikärtchen heraus und speichert die Namen in der aktuellen Datumsdatei.
  4. Mit pamparam-drill startet man den Vokabeltrainer. Der Trainer läuft in einer Schleife so lange durch, bis man alle Fragen richtig beantwortet hat, man sollte also nicht zu viele Kärtchen auf einmal auswählen

Vorteile

Für mich hat das Programm den Vorteil, dass ich neue Vokabeln, die mir unterkommen, in die Stammdatei eintrage und dabei die Bedeutung bereits einmal durch das Niederschreiben verinnerliche. Jeden Tag kann ich eine Arbeitspause nutzen, um ein kleines Übungspäckchen durchzugehen. Im Hintergrund arbeitet ein Algorithmus, der weniger gut erinnerte Vokabeln öfter wiederholt.

Wie man unschwer erkennt, kann man Pamparam nicht nur als Vokabeltrainer einsetzen. Es eignet sich für jede Lernaufgabe im einfachen Frage-Antwort-Stil.