ReviewScope traque les anomalies dans les avis via embeddings et graphes sur 21 000 textes
Après un déménagement, cet habraïste s'est mis à chercher une boulangerie à partir des avis en ligne et a remarqué des textes suspects — apparemment écrits par une IA ou copiés-collés. Il a donc décidé de créer un outil capable de repérer les anomalies dans les avis : pics d'activité inhabituels, glissements brusques de notation, textes répétitifs, manipulations de la note moyenne. ReviewScope fonctionne en local, stocke les données dans DuckDB et analyse des fichiers CSV et JSON. Le code est en accès libre. • **Quatre niveaux de recherche d'avis similaires** : Exact (correspondances exactes), Fuzzy (proximité lexicale via RapidFuzz), Near (forte similarité lexicale via MinHash/LSH), Semantic (similarité de sens via embeddings) • **Détection de pics** : médiane glissante + MAD (écart absolu médian) à la place de la moyenne et de l'écart-type • **Analyse des glissements de notation** : divergence de Jensen-Shannon pour mesurer l'évolution de la structure des notes de 1 à 5 étoiles
Traité par IA depuis Хабр: Машинное обучение ; édité par Hamidun News
Après un déménagement, Ziverpup s'est mis, comme d'habitude, à chercher sur les cartes où manger et où aller. Une note supérieure à quatre, on en trouve presque partout, alors il filtre par avis négatifs — et là, le tableau change. Dans une boulangerie, il a repéré un avis étrange : au lieu de raconter une expérience, le texte ressemblait à une réponse toute faite générée par une IA.
Il s'est mis à chercher des cas similaires et en a trouvé plus d'un. Par exemple, un avis sur une échoppe de shawarma commençait par le classique « C'est juste une bombe ! », suivi d'une énumération type : galette, viande, sauce, légumes, taille de la portion, promesse de devenir client régulier.
Un seul exemple ne prouve rien, mais l'idée l'a accroché : créer un outil pour détecter les anomalies dans les avis. Ziverpup avait déjà été confronté à ce problème, quand il était manager : il épluchait les avis négatifs et les reliait parfois à des concurrents. Ce qui l'intéressait davantage, c'étaient les auteurs des avis : une personne ayant rédigé cinq avis sur différents bars semble une source plus utile qu'une autre dont l'historique se limite à un garage de pneus près de Togliatti et une librairie à Voronej.
Mais la logique d'un score de confiance pour les auteurs s'est révélée moins simple : le nombre d'avis en soi ne rend pas quelqu'un compétent. Un changement de ville peut n'être qu'un voyage, et un seul avis détaillé peut en dire plus que cent formules générales.
Architecture et données
Le résultat s'appelle ReviewScope — un outil open source pour analyser les avis, repérer les anomalies et les textes répétitifs, et explorer l'historique des auteurs. GitHub : https://github.com/zinverno/reviewscope, démo : https://reviewscope-demo.streamlit.app/.
L'outil ne récupère pas lui-même les avis depuis Yandex Maps. L'analyse nécessite un export préparé en CSV ou JSON. L'application normalise les données et les stocke dans DuckDB — tout tourne en local, sans serveur dédié. Un avis contient les champs suivants : review_id, place_id, place_name, place_category, reviewer_id, reviewer_name, rating, text, published_at, city, region, country, latitude, longitude. Tous les champs ne sont pas obligatoires. L'interface Streamlit affiche N/A quand une donnée manque.
Le pipeline est le suivant : CSV/JSON → Normalisation → DuckDB → AnalysisEngine → Interface Streamlit. L'AnalysisEngine comprend quatre modules.
Quatre couches d'analyse des anomalies
Détection de pics d'activité (burst detection). Une boulangerie reçoit en général un ou deux avis par semaine. Si trente arrivent en une journée, presque tous cinq étoiles, c'est suspect. Mais pour un restaurant qui reçoit déjà cinquante avis par jour, ces mêmes trente avis ne signifient rien. La solution : médiane glissante + MAD (écart absolu médian). Le MAD mesure à quel point les valeurs habituelles s'écartent d'une valeur typique. Une seule journée extrême a peu d'effet sur cette mesure, contrairement à la moyenne et à l'écart-type, qui se déplacent sous l'effet d'une valeur aberrante. Le seuil du z-score modifié est fixé à 3,5, sur une fenêtre historique de 30 jours.
Anomalies de glissement de notation (rating shift). On a repéré un jour avec un nombre d'avis anormalement élevé. Sont-ils tous à cinq étoiles ? Ou au contraire à une étoile ? Pour répondre, l'outil utilise la divergence de Jensen-Shannon, une méthode pour mesurer l'écart entre deux distributions de probabilité. Elle compare la répartition des notes d'une à cinq étoiles sur la période historique et autour de l'événement. L'algorithme détecte aussi bien les pics positifs que négatifs.
Détection de doublons — quatre niveaux de correspondance : Exact (textes normalisés identiques), Fuzzy (proximité lexicale via RapidFuzz), Near (forte similarité lexicale via MinHash/LSH), Semantic (similarité de sens via embeddings). Les trois premiers niveaux semblaient suffisants, mais si l'auteur reformule entièrement une phrase, les méthodes lexicales échouent. Les embeddings ont permis de résoudre ce problème.
Métriques sur les auteurs, scoring des textes et clustering thématique complètent le tableau. L'auteur a ajouté des indicateurs distincts : activité de l'auteur, expérience dans la catégorie, caractère informatif des textes et schémas inhabituels dans son historique.
Les tests ont été menés sur 21 000 avis réels. Certaines hypothèses n'ont pas résisté à la vérification, et un résultat qui semblait convaincant s'est révélé être une erreur de calcul du taux de croissance avec une base de référence nulle. Désormais, dans ces cas-là, l'application affiche le nombre réel d'avis et indique que le taux de croissance n'a pas de sens ici.
- 27 oct. 2026Hob, l'app open source qui apporte le mode Claude Cowork sur votre portable, sans cloud
- 27 oct. 2026DingTalk ouvre le code de DWS et porte sur HarmonyOS PC plus de 1000 commandes pour agents IA
- 27 oct. 2026Qwen3.8 a tenté de charger un fichier vers le cloud d'Alibaba à Pékin depuis le bac à sable de Cohere
- 26 oct. 2026Claude Opus 5.5 remporte Code2Video-AA avec 1536 Elo, devant GPT-6 Astra de 109 points
Questions clés sur cet article
Que sait-on sur Architecture et données ?
Le résultat s'appelle ReviewScope — un outil open source pour analyser les avis, repérer les anomalies et les textes répétitifs, et explorer l'historique des auteurs. GitHub : https://github.com/zinverno/reviewscope, démo : https://reviewscope-demo.streamlit.app/. L'outil ne récupère pas lui-même les avis depuis Yandex Maps. L'analyse nécessite un export préparé en CSV ou JSON. L'application normalise les données et les stocke dans DuckDB — tout tourne en local, sans serveur dédié. Un avis contient les champs suivants : review_id, place_id, place_name, place_category, revie
Que sait-on sur Quatre couches d'analyse des anomalies ?
Détection de pics d'activité (burst detection). Une boulangerie reçoit en général un ou deux avis par semaine. Si trente arrivent en une journée, presque tous cinq étoiles, c'est suspect. Mais pour un restaurant qui reçoit déjà cinquante avis par jour, ces mêmes trente avis ne signifient rien. La solution : médiane glissante + MAD (écart absolu médian). Le MAD mesure à quel point les valeurs habituelles s'écartent d'une valeur typique. Une seule journée extrême a peu d'effet sur cette mesure, contrairement à la moyenne et à l'écart-type, qui se déplacent sous l'effet d'une
Build & Ship Production AI Agents Without Boilerplate Code
Start your free 72-hour trial at Hamidun Academy (academy.hamidun.com) — interactive lessons on Claude Code & Cursor, live Tech Radar, and production agent templates.
L'essentiel de l'IA — une fois par semaine
Sept actus qui ont vraiment compté, choisies à la main. Sans bruit ni communiqués.
C'est fait ! Vérifiez votre boîte mail pour la confirmation.