Journal chronocram : mémorisation espacée rapide d'associations

Posté par  . Licence CC By‑SA.
Étiquettes :
26
19
oct.
2019

Sommaire

Bonjour Nal,

Je voudrais partager à propos de chronocram, un petit programme graphique que j'ai écrit pour essayer de mémoriser initialement des associations question/réponse rapidement. Dans une première partie, j'explique comment j'en suis arrivé là, avec un petit rappel sur la répétition espacée, puis une courte présentation de l'apprentissage espacé, concept différent mais lié. Il est possible de lire directement la deuxième partie consacrée à chronocram.

Répétition espacée et apprentissage espacé

Tu sais peut-être déjà ce qu'est la répétition espacée. J'avais écrit un journal sur le sujet il y a quelques années, qui introduisait morji, un logiciel de répétition espacée. C'est une notion complémentaire à ce qui va nous occuper ici.

Pour rappel, la répétition espacée est une méthode qui demande de retrouver, de façon active, des faits selon des intervalles de temps croissants de façon globalement exponentielle. Divers logiciels existent pour faciliter cela : mnemosyne, anki, etc. En général, les faits sont du type question/réponse, avec des variantes un peu plus compliquées.

Une autre notion complémentaire est celle de l'apprentissage espacé. Alors que la répétition espacée est un outil à long terme pour ne pas oublier ce que l'on a déjà mémorisé en optimisant le temps de révision, l'apprentissage espacé vise à optimiser la mémorisation initiale. Les intervalles de temps ne sont plus des jours, mais des secondes et minutes. C'est une approche complémentaire, l'une ne remplace pas l'autre.

L'expérience à l'origine du concept étudie les effets de présenter un cours condensé lors de trois répétitions d'affilée séparées par deux pauses de 10 minutes. Les résultats montrent que c'est plus efficace que sans pauses, mais aussi plus efficace qu'un cours de la même durée mais organisé sans répétitions. La raison se cache a priori dans la façon dont se construisent les mémoires long terme dans notre cerveau.

Je vais pas rentrer dans les détails.

D'abord, parce que le cadre est plutôt celui d'un cours, donc différent de mon objectif de retenir de simples associations rapidement. Le programme chronocram n'est pas une application directe d'un article particulier. Ça reprend des idées de base du domaine, mais les choix exacts sont ad hoc en fonction de ce qui m'avait l'air de marcher pour moi.

Et puis, aussi, parce que je ne me souviens plus très bien des articles que j'ai lus, ça fait déjà un moment et j'ai pas envie de dire de bêtises :-) C'est facile de trouver des articles sur le sujet : Wikipédia donne quelques pointeurs, et sinon chercher Spaced learning, Spacing effect, etc. donne des résultats intéressants.

Approche logicielle

Introduction

Les logiciels de répétition espacée permettent de réviser un ensemble de cartes question/réponse à des intervalles optimaux, calculés par le logiciel (souvent 1-2 jours, une semaine, presque un mois, deux-trois mois, etc.). Certains programmes de répétition espacée, comme anki (mais pas mnemosyne), proposent éventuellement plus d'une répétition lors de la mémorisation initiale, combinant donc un peu les deux concepts présentés plus haut : optimisation de l'effort dans la mémorisation initiale et la rétention à long terme.

Dans anki, sauf erreur, par défaut il y a une répétition au bout de dix minutes. Ceci dit, tant le nombre de répétitions que les intervalles sont configurables dans une certaine mesure. En théorie, une seule répétition est suffisante pour lancer le processus consolidant une mémoire long terme. En pratique, faire des répétitions espacées additionnelles permet d'obtenir plus tôt une mémoire plus solide, à un coût faible : les répétitions suivantes nous prennent généralement beaucoup moins de temps que la première ; même si on trouve ça potentiellement répétitif, globalement on perd pas vraiment de temps.

Un point a priori bonus par rapport à l'apprentissage espacé de l'expérience d'origine, c'est qu'en plus la répétition est facile à rendre totalement active : on doit retrouver soi-même la réponse, ce qui a tendance à mieux consolider les mémoires (l'effet test).

chronocram

chronocram est script écrit en Tcl/Tk, qui lit des fichiers tabulés de la forme :

France  Paris
Espagne Madrid
...

Une fois lancé sur un tel fichier, une fenêtre graphique s'ouvre et nous pose les questions de façon espacée jusqu'à ce qu'on ait mémorisé toutes les associations. Le logiciel est très simple d'utilisation :

  • Flèche vers le bas pour montrer la réponse.
  • Flèche vers la gauche si on a oublié.
  • Flèche vers la droite si on s'en souvient.

Voilà, pas besoin de savoir plus que ça. La touche <F1> affiche l'aide complète. L'interface est volontairement épurée, pour réduire le bruitage visuel et tout ce qui pourrait interférer dans la mémoire court terme avec le fait à mémoriser.

Un exemple simple, par exemple si on veut commencer à apprendre les hiraganas japonais :

question.

Ensuite, flèche vers le bas pour afficher la réponse :

réponse.

Puis, mettons qu'on connaissait la réponse, flèche vers la droite pour afficher la question suivante :

suivant.

C'est ainsi, par exemple, que j'ai appris les hiraganas il y a quelques mois en une session de moins d'une heure. J'ai fait ensuite pareil avec un fichier contenant les katakanas, etc. Bien sûr, il faut quand même réviser après. J'ai par exemple mis les hiraganas déjà mémorisés dans un logiciel de répétition espacée. Mais j'ai trouvé ça plutôt efficace pour démarrer.

Le programme a quelques options contrôlant son comportement :

chronocram : tclsh8.6 chronocram [options] file
 -i                   Invert question/answer fields
 -l                   Long session (5 review rounds, instead of 4 rounds)
 -L                   Light background color scheme
 -r                   New cards in random order
 -s                   Smaller font
 -t                   Test session (no extra reviews, unless forgotten)
 -w                   Write forgotten cards to file ('chronocram-forgotten-cards-' as name prefix)
 -v                   Show version
 --                   Forcibly stop option processing
 -help                Print this message
 -?                   Print this message

L'option -i permet de poser les questions à l'envers, ce qui est parfois utile/complémentaire. L'option -t (test) permet de réviser un fichier contenant des associations que l'on connait déjà (répétitions supplémentaires uniquement pour les cartes oubliées). L'option -s réduit la taille de la police utilisée, pratique si les question/réponse sont des mots très longs voire des phrases. Les autres options, je les utilise pas trop. L'option -L, c'est pour quand on préfère un fond clair plutôt que sombre.

Personnellement, j'utilise essentiellement chronocram pour apprendre du vocabulaire des langues que j'apprends. Lorsque je lis, écoute ou visionne quelque chose, je note au fur et à mesure les mots nouveaux. Ensuite, je cherche leur traduction ou définition (dans le contexte en question) et crée un fichier avec les associations. Lorsque j'en ai une cinquantaine, j'apprends.

Après, s'il y a des choses particulièrement intéressantes, il est possible de faire une carte de meilleure qualité (avec une phrase d'exemple, etc.) et de l'intégrer à un logiciel de répétition espacée (pour retenir à long terme), ou bien simplement de réviser ce même fichier avec l'option -t lorsque l'on peut. Des intervalles raisonnables sont : au bout d'un ou deux jours, puis d'une semaine, puis un mois. La deuxième méthode est plus facile à mettre en place et permet de réviser des mots souvent liés à une même thématique ensemble, ce qui n'est parfois pas mal (on a un contexte, donc des cartes plus simples peuvent suffire et on fait des liens de tête entre elles). Par contre, ça demande de choisir soi-même les dates auxquelles on révise le matériel.

Installation

Pour utiliser le script, il faut les paquets tcl (8.6), tk, sqlite3-tcl, tcllib (le nom peut varier suivant les distributions). Il y a de bonnes chances que les deux premiers soient déjà installés.

Après, on peut soit le lancer avec tclsh8.6 chronocram fichier-tabulé, ou bien le rendre exécutable et le mettre quelque part dans $PATH et lancer chronocram fichier-tabulé.

La version en développement du script se trouve dans le même dépôt que morji, mon projet logiciel de répétition espacée. Une archive séparée contenant juste la version 0.1 de chronocram (sans morji) est disponible ici.

Spécificités de chronocram

Un point qui mérite d'être signalé, c'est qu'on peut obtenir des fonctionnalités approchées au script chronocram avec anki en configurant convenablement les intervalles du mode learning. Il y a des différences cependant, tant dans l'ergonomie que dans les algorithmes, car il y a des limites à la configurabilité de anki.

Voici une liste des spécificités :

  • L'algorithme a un comportement plus subtil pensé avec des intervalles précis en tête (basés sur ceux proposés originellement par Pimsleur pour des leçons audio). Il donne priorité aux cartes dont l'intervalle est court. Lorsqu'on est en avance, Anki montre les cartes en avance dans une limite de temps fixe (20 minutes par défaut). Le script chronocram donne des limites différentes, suivant l'intervalle actuel de la carte, et largement plus serrées : il s'agit d'éviter d'avoir une répétition inutile. Lorsqu'on est en avance (ça arrive souvent à un moment ou deux à la fin d'une session), chronocram nous dit de faire une pause (écouter de la musique, aller boire quelque chose ou autre) et revenir plus tard. On peut passer outre en utilisant la flèche vers le bas, mais c'est déconseillé.
  • Coloration automatique des questions. Il y a des études qui montrent qu'utiliser des couleurs peut aider la mémoire : ici, soyons honnête, je n'ai aucune idée si elles s'appliquent. Donc, peut-être juste cosmétique : mon ressenti est que ça aide parfois un peu (par exemple pour apprendre des symboles comme les kanjis).
  • Pause d'une seconde après avoir cliqué sur suivant. Lorsqu'on a beaucoup de matériel, la tentation est grande parfois d'aller trop vite. Avec moins d'une seconde entre deux cartes, on risquerait la confusion et une révision laissant une empreinte superficielle. Une pause a un côté relaxant aussi.
  • Organisation des connaissances en fichiers individuels tabulés simples. Si on veut, on peut ensuite importer facilement le fichier dans anki, mnemosyne, morji ou autre logiciel de répétition espacée pour ne pas oublier ce qu'on a mémorisé.

Au-delà

C'est un (court) script essentiellement créé pour mes besoins personnels actuels. Ceci dit, il ne serait pas difficile d'ajouter certaines fonctionnalités supplémentaires, comme la gestion de questions sous forme d'image ou de son. En effet, Tk fournit les fonctionnalités nécessaires pour la manipulation d'images. Autrement, j'imagine qu'il ne serait pas non plus très difficile de faire un plugin pour anki avec des fonctionnalités similaires (je n'ai jamais fait de plugin anki, donc je peux me tromper).

  • # Pour le même objectif

    Posté par  (site web personnel) . Évalué à 2.

    J'ai moi aussi appris les mêmes symboles, une petite semaine pour les hiragana, une journée pour les katakana .
    J'en suis environ au niveau ce2 pour les Kanji
    Ma technique ? Une ardoise blanche et un feutre.
    Pour le reste de la langue en question, je conseille vivement la chaîne de Julien fontanier sensei
    Tu as un pack de ton projet pour les Kanji ? Je serai curieux de voir si ça me fait avancer plus vite

    Merci !

    • [^] # Re: Pour le même objectif

      Posté par  . Évalué à 3.

      J'ai moi aussi appris les mêmes symboles, une petite semaine pour les hiragana, une journée pour les katakana.

      Pour les mémoriser OK mais pour les écrire correctement ça prend un peu plus de temps.

      Ça n'est pas indispensable, chacun apprend bien ce qu'il veut d'une langue, mais pour apprendre à écrire ces caractères il vaut mieux sortir le pinceau ou la tablette graphique qu'un feutre ou un stylo à bille. En calligraphiant, il est plus aisé de comprendre les nuances des kana, l'ordre des traits des kanji, ainsi que les diverses variations d'écritures scriptes et manuscrites.

    • [^] # Re: Pour le même objectif

      Posté par  . Évalué à 3.

      Ma technique ? Une ardoise blanche et un feutre.

      C'est pas mal aussi parfois, il faut varier les méthodes :-)

      Tu as un pack de ton projet pour les Kanji ? Je serai curieux de voir si ça me fait avancer plus vite

      J'ai une liste de kanji, mais peut-être pas exactement ce que tu cherches : je l'utilise uniquement pour me familiariser avec les symboles en associant un concept (en anglais). J'apprends pas les lectures de chaque kanji de cette façon. La liste est organisée par fréquence dans un corpus, à part des radicaux et certains kanjis qui apparaissent avant d'autres plus courants, mais qui les contiennent. Pour l'utiliser avec chronocram, il faut faire un split -l 100 dessus (50 est plus raisonnable probablement, mais je suis parti avec 100), pour avoir des fichiers de taille raisonnable pour les sessions.

      Pour apprendre « pour de vrai » (avec prononciation), j'utilise des mots complets ou des phrases courtes que je rencontre et collecte au fur et à mesure. Par ailleurs, en ce moment, j'utilise plus chronocram pour perfectionner mon basque que pour le japonais, où je privilégie plus l'audio que la lecture. Je veux éviter de prendre de mauvaises habitudes de prononciation (j'ai pas vraiment atteint encore un niveau intermédiaire, je dirais, ça fait juste quelques mois). Je sais bien ce que ça a donné en anglais pour moi : beaucoup beaucoup de mal à me défaire des mauvaises habitudes que j'ai pris en apprenant surtout via lecture initialement :-)

      Je trouve chronocram plus utile une fois qu'on a un bon niveau intermédiaire, ou comme complément pour retenir des trucs qu'on a rencontré en vrai et pris en note, plutôt que pour de longues listes préfabriquées (même si ça peut être utile aussi, en fonction de comment on s'y prend).

      Pour le reste de la langue en question, je conseille vivement la chaîne de Julien fontanier sensei

      Je regarderai, merci. Personnellement, à mon niveau, j'aime bien écouter des leçons audios de type actif, comme celles-ci (anglais/japonais).

  • # Très bonne idée

    Posté par  . Évalué à 1.

    Merci beaucoup pour ce projet et ce journal, c'est vraiment très intéressant.

    J'utilise Anki depuis 2008 (et AnkiDroid depuis 2012, ce qui a pas mal changé mon utilisation), pour les langues principalement: vocabulaire, phrases à trou etc. Plusieurs choses que j'apprécie particulièrement:
    - jouer de l'audio (enregistrement des cartes à trou), ce qui fait rentrer dans mon cerveau la mélodie de la langue
    - choisir une police (par ex. une belle police nastaliq pour le persan ou très cursive pour la poésie chinoise)
    - la possibilité d'ajouter d'écrire des plug-ins (malheureusement, pas pour AnkiDroid)

    En revanche, je crée toujours mes cartes hors d'Anki: soit en créant un petit script python qui me demande les divers champs (et qui me permet de rajouter du HTML à la volée, e.g. coloration), soit en extrayant d'autres sources. Du coup, à un moment donné, mes cartes sont sous forme tabulaire, comme pour chronocram, du coup ça pourrait être utile d'essayer de s'en servir pour la phase d'apprentissage. Dans un tel cas, à quel moment faudrait-il transférer à Anki?

    Merci aussi pour l'explication de comment reproduire (peu ou prou) le comportement chez Anki. Quant à ta remarque sur le fait qu'Anki montre les cartes en avance, si j'ai bien compris ton commentaire, il me semble qu'Anki ne le faisait pas il y a des années (après la première phase d'apprentissage, la carte était enfouie pendant une période donnée, au lieu d'être disponible immédiatement), mais ils ont changé et on rendu ça impossible.

    Quand à la coloration, c'est TRÈS utile pour retenir les tons (du chinois, vietnamien et autres) ainsi que le genre des noms (la plupart des langues indo-européennes): un choix de quelques couleurs assez distinctes a un impact très important sur le long terme et il m'arrive souvent d'avoir une impression type "ce mot-là, c'est violet", même quand j'ai oublié le mot en lui-même. (j'utilise bleu/rouge/vert/violet/orange/mauve, avec une préférence pour les premières parce qu'elles sont visuellement plus marquantes, d'après moi). D'ailleurs, avec le CSS et le fait que j'utilise du python pour créer mes cartes, c'est très facile à mettre en place.

    D'ailleurs, si quelqu'un lit ça et a déjà essayé la lecture incrémentale (incremental reading, "IR") ou https://getpolarized.io/ , pourrait-il en faire un retour?

    • [^] # Re: Très bonne idée

      Posté par  . Évalué à 3.

      Dans un tel cas, à quel moment faudrait-il transférer à Anki?

      Je dirais après la première session sur un fichier. C'est cette première session qui est l'objectif principal de chronocram.

      Après, me concernant, je ne fais pas toujours ça. Par exemple, si j'ai du vocabulaire autour d'un thème précis, je préfère parfois le garder dans le fichier et réviser ça ensemble avec chronocram plus d'une fois quand j'ai un moment propice (au bout de quelques jours, une semaine ou deux). Après, suivant comment je sens la chose, je vais pas forcément mettre tout dans un logiciel de répétition espacée (voire peut-être juste une partie, mais en faisant un truc un peu mieux, par exemple avec des phrases à trous).

      Merci aussi pour l'explication de comment reproduire (peu ou prou) le comportement chez Anki.

      Essentiellement, il y a ces intervalles : 5 secondes, 25 secondes, 2 minutes, 10 minutes. Plus ou moins exponentiel comme croissance. Après, en pratique, le logiciel s'adapte pour donner priorité aux petits intervalles quand on est en retard, puis aussi prend les cartes de deux en deux et fais parfois des transpositions pour éviter deux fois la même à la suite.

      D'ailleurs, si quelqu'un lit ça et a déjà essayé la lecture incrémentale (incremental reading, "IR") ou https://getpolarized.io/ , pourrait-il en faire un retour?

      Ça m'intéresserait de savoir aussi, je me suis déjà posé la même question.

      • [^] # Re: Très bonne idée

        Posté par  . Évalué à 2.

        Je dirais après la première session sur un fichier.

        Après, je viens de penser, si ta question c'est, quand est-ce que la révision suivante dans Anki devrait se faire, je dirais, dans la semaine qui suit (le truc typique c'est dans un ou deux jours, mais si on maîtrise bien le contenu, 5-7 jours c'est ok). Je me souviens plus très bien avec Anki, mais je pense qu'il y a moyen de rentrer une carte en lui disant qu'elle est déjà mémorisée et sauter au moins la première répétition.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.