La structure de données derrière les 30 questions

L'interface du test SBTI a l'air simple -- 30 questions, 3 choix par question, tu cliques et c'est réglé. Mais pendant les secondes où tu passes à la question suivante, le backend est déjà en train de construire un modèle psychologique de toi.

Point clé : ces 30 questions ne sont pas dans un ordre aléatoire. Elles sont réparties avec précision sur 15 dimensions psychologiques, 2 questions par dimension. Les dimensions vont de S1 à So3, organisées par modèle : Soi (S1-S3), Émotion (E1-E3), Attitude (A1-A3), Action (Ac1-Ac3), Social (So1-So3). Les questions 1-2 correspondent à S1 (stabilité de l'estime), les questions 3-4 à S2 (clarté du soi), et ainsi de suite.

Chaque question a trois options qui valent respectivement 1, 2 et 3 points. Mais attention, détail subtil : certaines questions ont les valeurs inversées. Quelques items ont le 3 en première option et le 1 en dernière. Ce mécanisme de retournement empêche de "gamer" le test en sélectionnant mécaniquement toujours le premier ou le dernier choix.

Les 30 questions terminées, le système a 30 scores. Étape suivante : les additionner par dimension -- les 2 scores de chaque dimension sont sommés pour obtenir un score brut. Chaque question valant 1 à 3, la fourchette par dimension est 2 à 6 points. Ces 15 scores bruts constituent la base de tout le calcul qui suit.


Du score au niveau : le tri en trois classes

Scores bruts en poche, étape suivante : les classifier. La logique est d'une simplicité désarmante :

  • 2-3 points -> L (Low, bas)
  • 4 points -> M (Medium, moyen)
  • 5-6 points -> H (High, haut)

Regarde bien la distribution : L couvre 2 valeurs (2 et 3), H couvre 2 valeurs (5 et 6), mais M ne correspond qu'à une seule valeur : 4. Obtenir M est donc le cas le moins probable -- tes deux questions doivent tomber exactement sur une combinaison 1+3 ou 2+2. Statistiquement, si tu réponds au hasard, L et H sont plus fréquents que M.

Ce choix de design est révélateur. Le SBTI évite volontairement le "piège du milieu" -- il ne laisse pas la majorité des gens se retrouver dans une zone neutre, il te pousse vers les extrêmes. Tu as plus de chances d'être nettement haut ou nettement bas sur chaque dimension que de rester au centre. Ça rend le portrait final plus tranché, plus "caractère", et surtout plus screenshot-friendly.

Suppose que ta dimension S1 (stabilité de l'estime) donne 2+3=5, classée H. Ta dimension E2 (investissement émotionnel) donne 1+2=3, classée L. Les 15 dimensions classifiées, tu obtiens une chaîne de 15 lettres. Séparées par groupes de 5 modèles avec des tirets, ça ressemble à ceci : HMH-LML-HHM-LMH-HML. Cette chaîne, c'est ton "ADN de personnalité" -- la matière première de tout ce qui suit.


Pattern matching : ton ADN contre 25 modèles standards

ADN en main, le système doit maintenant le comparer aux 25 types réguliers standards pour trouver celui qui te ressemble le plus.

Chaque type a un pattern de 15 lettres prédéfini. Par exemple, CTRL (Le Maître du Contrôle) a pour pattern standard HHH-HMH-MHH-HHH-MHM, et DEAD (Le Mort) a LLL-LLM-LML-LLL-LHM. La différence est visuelle : CTRL c'est quasiment que du H (tout poussé au max), DEAD c'est quasiment que du L (tout au plancher).

La méthode de comparaison utilise la distance de Manhattan. D'abord, on convertit L/M/H en chiffres : L=1, M=2, H=3. Ensuite, on compare tes 15 chiffres avec ceux du type standard, dimension par dimension : on prend la valeur absolue de la différence et on additionne le tout.

Exemple concret. Ton pattern est HHL-MHH-MLH-HHM-HLH, en chiffres 3,3,1-2,3,3-2,1,3-3,3,2-3,1,3. Comparé avec CTRL 3,3,3-3,2,3-2,3,3-3,3,3-2,3,2 :

Écarts : |3-3|=0, |3-3|=0, |1-3|=2, |2-3|=1, |3-2|=1, |3-3|=0, |2-2|=0, |1-3|=2, |3-3|=0, |3-3|=0, |3-3|=0, |2-3|=1, |3-2|=1, |1-3|=2, |3-2|=1

Distance totale = 0+0+2+1+1+0+0+2+0+0+0+1+1+2+1 = 11

Conversion en similarité : max(0, round((1 - 11/30) x 100))% = 63%. Plus la distance est petite, plus la similarité est haute. La distance maximale théorique est 30 (15 dimensions, écart max de 2 chacune), d'où la normalisation par 30.


Classement, filet de sécurité et cette fameuse bouteille

Le système fait le calcul pour les 25 types réguliers, puis les classe par distance croissante -- le type avec la plus petite distance est ton meilleur match. En cas d'égalité, il compare le nombre de dimensions parfaitement identiques : plus il y en a, mieux c'est.

Mais avant d'annoncer le résultat, il y a deux verrous :

Premier verrou : le seuil de similarité. Si ton meilleur match est en dessous de 60 % -- autrement dit, même le type qui te ressemble le plus ne te ressemble qu'à moins de six dixièmes -- le système décide que "les modèles existants ne te contiennent pas" et te classe HHHH (Le Rigolo). C'est un filet de sécurité ingénieur : peu importe à quel point tes réponses sont atypiques, tu reçois un résultat, pas une page d'erreur.

Deuxième verrou, qui chronologiquement arrive en premier : la vérification DRUNK. Après les 30 questions officielles, le système pose une question bonus sur l'alcool. Si tu déclenches le "chemin de l'ivrogne" -- concrètement, tu passes une question à 4 choix puis une question de confirmation à 2 choix -- le système court-circuite complètement le matching et te donne DRUNK. Tes 30 réponses sérieuses ? À la poubelle. C'est l'easter egg originel du SBTI en tant que "outil anti-picole".

Le flux complet : vérifier DRUNK d'abord -> si pas déclenché, faire le matching -> meilleur match >= 60 %, on le prend -> en dessous de 60 %, HHHH. Le tout tient en quelques dizaines de lignes de code, mais a généré les labels de personnalité de dizaines de millions d'utilisateurs.


Encodage du résultat : 16 chiffres pour tout partager

Résultat obtenu, dernière étape : le compresser en format partageable.

Le lien de partage SBTI contient une chaîne de 16 chiffres. Les 15 premiers sont tes scores bruts sur les 15 dimensions (un chiffre par dimension, de 2 à 6), le 16e est le marqueur DRUNK (0 ou 1). Par exemple 5342364553423420 signifie : S1=5, S2=3, S3=4, E1=2, E2=3, E3=6, A1=4, A2=5, A3=5, Ac1=3, Ac2=4, Ac3=2, So1=3, So2=4, So3=2, DRUNK=0.

Ce code est embarqué dans le paramètre ?result= du lien de partage. Quand ton pote ouvre le lien, le système reconstruit tes scores complets et ton résultat à partir de ces 16 chiffres -- pas besoin de refaire le test pour voir tes résultats. C'est pour ça que le partage SBTI est aussi fluide : tu cliques, tu vois, et tu peux enchaîner direct sur un match CP.

Ça veut aussi dire un truc : ton lien de partage contient tous tes scores bruts sur les 15 dimensions. Quelqu'un de technique peut lire ton profil psychologique complet directement depuis l'URL, et même recalculer manuellement ta compatibilité avec d'autres types. D'une certaine façon, ces 16 chiffres portent plus d'information que ton nom de type -- c'est un instantané psychologique complet, compressé en une chaîne de chiffres anodine.


Pourquoi c'est utile de comprendre l'algo

Tu te demandes peut-être : à quoi ça sert de connaître ces détails techniques ? Je veux juste un type et un screenshot à poster.

Comprendre l'algo ne sert pas à "mieux jouer" mais à bien interpréter le résultat et ses limites.

Savoir que chaque dimension n'a que 2 questions, tu comprends pourquoi le résultat change au retest -- une question différente et la dimension passe de H à M voire L, et tout le matching bascule. Savoir comment la distance de Manhattan est calculée, tu comprends la différence entre "73 % de match" et "95 % de match" -- le premier signifie que plusieurs dimensions sont en écart avec le modèle, le second c'est quasi parfait.

Savoir qu'il y a un seuil à 60 % pour HHHH, tu comprends aussi pourquoi ce type est si rare -- les 25 modèles standards couvrent déjà une énorme partie de l'espace des combinaisons possibles, il faut être sacrément atypique pour tomber dans l'angle mort de tous les modèles.

L'algo du SBTI n'est pas compliqué, mais il est élégant. Avec un minimum de données (30 choix), il construit un portrait psychologique à 15 dimensions, puis le matche à un label qui a du punch, qui donne envie de screenshoter, et qui est fait pour être partagé. Du début à la fin, tout le système est optimisé pour un seul objectif : te donner quelque chose à partager.