Greboca  

LinuxFr.org : les journaux  -  chronocram : mémorisation espacée rapide d'associations

 -  19 octobre - 

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 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).

Commentaires : voir le flux atom ouvrir dans le navigateur

par anaseto

LinuxFr.org : les journaux

LinuxFr.org : Journaux

Conception d’un circuit intégré avec Qflow

 -  17 novembre - 

Sommaire Partie relou Cours magistral RTLVerilog VHDL SystemC Chisel MyHDL ImplémentationFPGA ASIC Implémentation custom Implémentation basée sur (...)


Le bloboscope

 -  16 novembre - 

Cher Nal', Si tu t'intéresses à l'actualité scientifique, tu as sans doute déjà entendu parlé du blob. Pourvu de 720 sexes et dépourvu de système (...)


Openclipart est en mode maintenance, vive FreeSVG !

 -  16 novembre - 

Dire qu'Openclipart est mort serait un peu exagéré mais on peut dire que l'accès aux fichiers SVG n'est plus disponible depuis plusieurs mois (voir (...)


k1g1 : le premier FPGA Libre…

 -  4 novembre - 

Sommaire Un FPGA, c'est qu'est-ce quoi ?ASIC Processeur FPGA Mais pourquoi me suis-je lancé dans cette aventure ? Open FPGA Platform, kFPGA et (...)


Atlantic

 -  20 octobre - 

Atlantic est une application sous licence MIT que j'ai développé permettant de suivre en temps réel l'état d'un système industriel. Cette application (...)