retour
Lyon, le 01/02/2025

QCM et distance de Levenshtein









J'ai une intuition.
Je pense qu'il existe un biais cognitif
chez les concepteurs de QCM.

Je dirais que généralement,
le concepteur va partir de la bonne réponse
pour générer les "distracteurs"
(les mauvaises réponses).
Ça n'a l'air de rien,
mais en procédant ainsi,
il a tendance à révéler la bonne réponse.

En effet,
si on est capable d'identifier
la réponse "médiane",
alors il y a toutes les chances
que ça soit la bonne.

Voyons comment calculer une telle médiane.
Dotons l'espace des chaînes de caractères
d'une distance :
la distance de Levenshtein.

Pour un ensemble de réponses à évaluer,
la réponse médiane sera simplement
celle qui minimise la somme
des distances avec les autres.

Dans le tableau plus haut,
vous pouvez bien sûr
essayer avec d'autres chaînes de caractères,
et vous pourrez constater
que ça marche plutôt bien.

Un moyen de tester cette hypothèse
serait de faire tourner cet algorithme
sur un grand nombre de QCM.
Pour que ça soit réalisable,
il faudrait qu'il existe des bases,
permettant d'avoir les choix possibles
et la bonne réponse
sous forme structurée
afin de faire tourner l'algorithme
sans opération manuelle.

Problème :
à l'heure actuelle,
je ne sais pas où trouver une telle base.

J'affirme que pour des QCM à 4 réponses possibles,
le taux de succès serait en moyenne
supérieur à 35%,
alors qu'il devrait naturellement tourner autour de 25%
si mon intuition était érronée.



Pour l'anecdote, je précise que je n'ai écrit aucune ligne de code. Nous sommes début février 2025. Une guerre fait rage et elle est assez intéressante à observer. Jusqu'à début janvier 2025, la Silicon Valley a dominé le marché des intelligences artificielles génératives avec en particulier OpenAI et Anthropic. Et la Chine vient de répliquer avec DeepSeek, puis quelques jours après Qwen. Ça s'est passé il y a 2 jours. C'est ce dernier que j'ai utilisé. Je me rends compte que ce qui me plait, dans le fond, c'est d'avoir une idée et de la voir réalisée. J'aurais pu passer de longues heures à mettre au point une implémentation de mon cru, mais est-ce si intéressant ? Implémenter "à la main" a-t-il encore de la valeur ? De manière analogue, depuis l'apparition des compilateurs, qui code encore en langage machine ?
retour