Comment ça marche — Cinematrix
Aperçu
Un jeu quotidien de devinette de titres de films. Les mots du titre sont cachés, et vos propositions sont scorées par similarité sémantique avec le synopsis du film grâce à un système hybride Gemini + model2vec.
Comment ça marche
- Chaque jour, les films sont mélangés dans un ordre déterministe (Fisher-Yates avec graine SHA-256 basée sur la date). Tous les joueurs ont la même séquence.
- Les mots du titre sont classés : les mots vides (articles, prépositions) sont montrés comme indices, les mots de contenu sont cachés.
- Chaque proposition est comparée au film via une matrice de similarité pré-calculée par Gemini (embedding-2-preview). Pour les mots hors vocabulaire (~10-12k mots couverts), un fallback model2vec est utilisé.
- Si votre proposition correspond exactement à un mot du titre (après normalisation des accents), ce mot est révélé immédiatement.
- Des indices TMDB sont disponibles — classés du plus vague au plus révélateur grâce aux embeddings de tags Gemini.
- Les scores sont normalisés par rang par film avec une courbe cubique (rang³) — seuls les mots vraiment proches du synopsis obtiennent un score élevé.
Stack technique
Gemini embedding-2-preview model2vec (fallback) Snowball stemming SHA-256 (mélange quotidien) localStorage (progression)
Détails amusants
- La matrice de similarité (~10-12k mots × 200 films × 2 langues) est pré-calculée hors-ligne via l'API Gemini et stockée en ~8 Mo.
- Les embeddings des films utilisent le texte brut (synopsis + intrigue Wikipedia) — les modèles Gemini comprennent mieux le langage naturel que des mots-clés filtrés.
- Le vocabulaire est enrichi automatiquement : mots-clés TMDB, mots des synopsis, et un vocabulaire cinéma curé (genres, archétypes, lieux, créatures...).
- Le stemming Snowball permet de retrouver les mots même avec des variations : « cannibale » matche « cannibales », « dinosaure » matche « dinosaures ».
- La progression quotidienne est sauvegardée en localStorage — rafraîchir la page ne perd pas votre avancement.