From 205a4d70117febaeafa6a030bafb851cf8821c2b Mon Sep 17 00:00:00 2001 From: BartM82 <105561997+BartM82@users.noreply.github.com> Date: Sat, 5 Jul 2025 19:43:01 +0200 Subject: [PATCH] Create Documentation_technique.md --- .../plugin_chrome/Documentation_technique.md | 494 ++++++++++++++++++ 1 file changed, 494 insertions(+) create mode 100644 plugin/plugin_chrome/Documentation_technique.md diff --git a/plugin/plugin_chrome/Documentation_technique.md b/plugin/plugin_chrome/Documentation_technique.md new file mode 100644 index 0000000..5b98849 --- /dev/null +++ b/plugin/plugin_chrome/Documentation_technique.md @@ -0,0 +1,494 @@ +# Méthode d'analyse DIMA - Documentation technique + +## **1. Processus d'analyse d'une page web** + +### **Phase 1 : Extraction du contenu** 🔍 + +#### **A. Extraction du titre** +```javascript +// Sources prioritaires pour le titre +1. document.title (titre de la page) +2. meta[property="og:title"] (Open Graph) +3. meta[name="twitter:title"] (Twitter Cards) +4. Premier

de la page +5. Éléments avec classes .title, .headline +``` + +#### **B. Extraction du contenu textuel** +```javascript +// Sélecteurs prioritaires (dans l'ordre) +1.
- Contenu éditorial principal +2. [role="main"],
- Zone principale +3. .article-content, .post-content, .entry-content +4. .content, .story-body, .article-body +5. #article-body, .post-body, .text-content + +// Fallbacks si contenu insuffisant +-

, - Paragraphes et titres +- .text, .description, .summary +- [class*="content"], [class*="text"] +-

,
+``` + +#### **C. Filtrage intelligent** +```javascript +// Éléments ignorés +- Navigation (nav, menu) +- En-têtes et pieds de page (header, footer) +- Barres latérales (sidebar) +- Publicités (ad, advertisement) +- Boutons sociaux (social, share) +- Commentaires (comments) +- Éléments cachés (display: none) +``` + +#### **D. Nettoyage du texte** +```javascript +// Normalisation +- Suppression des caractères spéciaux +- Normalisation des espaces +- Conversion en minuscules +- Limitation à 5000 caractères max +``` + +### **Phase 2 : Analyse des techniques** 🎯 + +#### **A. Sélection des techniques** +```javascript +// Filtrage : uniquement les techniques (TE), pas les tactiques (TA) +const techniques = DIMA_TECHNIQUES.filter(item => item.type === 'technique'); +// Résultat : 20 techniques analysées +``` + +#### **B. Analyse basique vs améliorée** + +**Mode basique** (mots-clés simples) : +```javascript +// Recherche directe dans le texte +for (keyword in technique.mots_cles) { + if (text.includes(keyword)) { + score += 1; + } +} +``` + +**Mode amélioré** (système avancé) : +```javascript +// 1. Mots-clés de base (core) +score += analyzeCore(enhancedData.core); + +// 2. Variantes avec pondération +score += analyzeVariants(enhancedData.variants); + +// 3. Patterns regex complexes +score += analyzePatterns(enhancedData.patterns); + +// 4. Analyse contextuelle +boosts = analyzeContext(text, techniqueId); +``` + +## **2. Méthode de calcul de l'index DIMA** + +### **Étape 1 : Score brut par technique** 📈 + +```javascript +// Pour chaque technique détectée +rawScore = nombreOccurrences * multiplicateurVariante + +// Exemple : TE0500 (Clickbait) +// - "vous ne croirez pas" (core) : +1.0 +// - "révélation choc" (clickbait_formula) : +1.6 +// - Pattern "X choses que..." : +1.5 +// Score brut = 4.1 +``` + +### **Étape 2 : Pondération contextuelle** 🎯 + +```javascript +// Adaptation selon le type de page +switch(pageType) { + case 'news': + if (TE0500) contextWeight = 1.4; // Clickbait plus grave + if (TE0132) contextWeight = 1.3; // Négativité suspecte + break; + case 'commerce': + if (TE0501) contextWeight = 0.9; // FOMO plus normale + if (TE0143) contextWeight = 0.7; // Comparaisons normales + break; +} +``` + +### **Étape 3 : Pondération dynamique** + +```javascript +// Selon la fréquence d'apparition +if (occurrences >= 10) dynamicWeight = 1.4; // Très suspect +else if (occurrences >= 7) dynamicWeight = 1.3; // Suspect +else if (occurrences >= 5) dynamicWeight = 1.2; // Légèrement suspect +else if (occurrences >= 3) dynamicWeight = 1.1; // Un peu suspect +else dynamicWeight = 1.0; // Normal + +// Bonus pour techniques critiques +if (isCritical && occurrences >= 2) dynamicWeight *= 1.1; +``` + +### **Étape 4 : Boosts contextuels** + +```javascript +// Multiplicateurs selon le contexte détecté +const contextBoosts = { + urgency: 1.3, // Mots d'urgence détectés + authority: 1.4, // Références d'autorité + social_proof: 1.2 // Preuve sociale +}; + +// Application des boosts +for (boost of contextBoosts) { + finalScore *= boost.value; +} +``` + +### **Étape 5 : Score pondéré final** + +```javascript +// Calcul complet pour une technique +const baseWeight = technique.weight || 1.0; // Poids de base (ex: 1.5 pour clickbait) +const totalWeight = baseWeight * contextualWeight * dynamicWeight; +const weightedScore = finalScore * totalWeight; + +// Exemple concret : +// TE0500 sur site d'actualités avec 6 occurrences +// baseWeight = 1.5 (clickbait) +// contextualWeight = 1.4 (site news) +// dynamicWeight = 1.2 (6 occurrences) +// totalWeight = 1.5 × 1.4 × 1.2 = 2.52 +// weightedScore = 4.1 × 2.52 = 10.3 +``` + +### **Étape 6 : Score global de la page** + +```javascript +// Agrégation de toutes les techniques détectées +let totalScore = 0; +for (technique of detectedTechniques) { + totalScore += technique.weightedScore; +} + +// Normalisation finale +const globalScore = Math.min(Math.round(totalScore * 3), 100); +``` + +## **3. Exemple de calcul complet** + +### **Page analysée** : Article clickbait sur site d'actualités + +```javascript +// Techniques détectées : +TE0500 (Clickbait): +- Score brut: 4.1 +- Poids: 1.5 × 1.4 × 1.2 = 2.52 +- Score pondéré: 10.3 + +TE0132 (Biais négativité): +- Score brut: 2.0 +- Poids: 1.4 × 1.3 × 1.0 = 1.82 +- Score pondéré: 3.6 + +TE0212 (Preuve anecdotique): +- Score brut: 1.0 +- Poids: 1.4 × 1.3 × 1.0 = 1.82 +- Score pondéré: 1.8 + +// Total : 10.3 + 3.6 + 1.8 = 15.7 +// Score global : min(15.7 × 3, 100) = 47 +// Niveau de risque : "Élevé" +``` + + +------------------------------------------------------------------------------------------------------------ + +# ⚖️ Système de pondération DIMA - Guide complet +------------------------------------------------------------------------------------------------------------- + +## **1. Architecture du système de poids** + +### **Hiérarchie des pondérations** 🏗️ + +```javascript +Score Final = Score Brut × Poids Base × Poids Contextuel × Poids Dynamique × Boosts +``` + +``` +┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐ ┌──────────────┐ +│ Score Brut │ × │ Poids Base │ × │ Poids Contextuel│ × │Poids Dynamique│ +│ (occurrences) │ │ (par technique) │ │ (type de page) │ │ (fréquence) │ +└─────────────────┘ └──────────────────┘ └─────────────────┘ └──────────────┘ + ↓ + ┌──────────────┐ + │ Boosts │ + │ (contextuels)│ + └──────────────┘ +``` + +## **2. Poids de base par technique** + +### **Classification par gravité** 📊 + +#### **🔴 Très élevé (1.4-1.6)** +```javascript +TE0132: 1.4, // Biais de négativité - Joue sur la peur +TE0501: 1.4, // FOMO - Manipulation pure +TE0500: 1.5, // Clickbait - Tromperie délibérée +TE0221: 1.6 // Stéréotypes - Impact social grave +``` + +#### **🟠 Élevé (1.1-1.3)** +```javascript +TE0131: 1.3, // Effet de bizarrerie - Sensationnalisme +TE0212: 1.4, // Preuve anecdotique - Fausse généralisation +TE0251: 1.4, // Faux consensus - Illusion d'accord +TE0321: 1.5 // Biais de confirmation - Renforce les préjugés +``` + +#### **🟡 Modéré (1.0-1.1)** +```javascript +TE0111: 1.0, // Heuristique disponibilité - Biais naturel +TE0112: 1.2, // Simple exposition - Répétition +TE0121: 1.1, // Illusion fréquence - Perception biaisée +``` + +#### **🟢 Faible (0.8-0.9)** +```javascript +TE0143: 0.8, // Effet de contraste - Comparaison normale +TE0232: 0.9 // Route connue - Préférence naturelle +``` + +### **Justification des poids** 🧠 + +| Technique | Poids | Justification | +|-----------|-------|---------------| +| **TE0221 (Stéréotypes)** | **1.6** | Impact social majeur, discrimination, propagation de préjugés | +| **TE0500 (Clickbait)** | **1.5** | Manipulation pure pour générer des clics, tromperie délibérée | +| **TE0132 (Négativité)** | **1.4** | Exploitation de la peur, impact émotionnel fort | +| **TE0501 (FOMO)** | **1.4** | Création d'urgence artificielle, pression psychologique | +| **TE0143 (Contraste)** | **0.8** | Technique normale de comparaison, usage légitime | + +## **3. Pondération contextuelle** + +### **Adaptation selon le type de page** 🎯 + +#### **Sites d'actualités (news)** +```javascript +case 'news': + TE0500 → ×1.4 // Clickbait inacceptable dans l'info + TE0132 → ×1.3 // Négativité suspecte + TE0221 → ×1.5 // Stéréotypes graves + TE0212 → ×1.3 // Preuves anecdotiques problématiques + TE0261 → ×0.8 // Biais rétrospectif plus normal +``` + +#### **Réseaux sociaux (social)** +```javascript +case 'social': + TE0132 → ×0.9 // Négativité plus courante + TE0131 → ×0.8 // Bizarrerie normale + TE0501 → ×1.3 // FOMO plus manipulatoire + TE0221 → ×1.6 // Stéréotypes très graves + TE0251 → ×1.2 // Faux consensus suspect +``` + +#### **Sites commerciaux (commerce)** +```javascript +case 'commerce': + TE0501 → ×0.9 // FOMO plus normale en marketing + TE0141 → ×0.8 // Unicité = argument de vente normal + TE0143 → ×0.7 // Comparaisons légitimes + TE0422 → ×1.2 // Fausse autorité problématique + TE0411 → ×1.1 // Excès confiance suspect +``` + +#### **Blogs personnels (blog)** +```javascript +case 'blog': + TE0212 → ×0.8 // Anecdotes plus normales + TE0314 → ×0.9 // Suggestions plus acceptables + TE0261 → ×0.7 // Biais rétrospectif courant + TE0321 → ×1.1 // Biais confirmation suspect +``` + +### **Exemple concret** 📝 + +```javascript +// TE0500 (Clickbait) détecté +// Site d'actualités vs Site commercial + +// Site d'actualités : +baseWeight = 1.5 +contextualWeight = 1.4 // Très grave dans l'info +finalWeight = 1.5 × 1.4 = 2.1 + +// Site commercial : +baseWeight = 1.5 +contextualWeight = 1.0 // Normal en marketing +finalWeight = 1.5 × 1.0 = 1.5 + +// Impact : 40% plus sévère sur site d'actualités +``` + +## **4. Pondération dynamique** + +### **Selon la fréquence d'apparition** 📈 + +```javascript +calculateDynamicWeight(technique, occurrences) { + if (occurrences >= 10) return 1.4; // 🔴 Très suspect + if (occurrences >= 7) return 1.3; // 🟠 Suspect + if (occurrences >= 5) return 1.2; // 🟡 Légèrement suspect + if (occurrences >= 3) return 1.1; // 🟢 Un peu suspect + return 1.0; // ⚪ Normal +} +``` + +### **Règles spéciales** ⚡ + +#### **Techniques critiques** 🚨 +```javascript +const criticalTechniques = ['TE0221', 'TE0500', 'TE0132', 'TE0501']; + +// Bonus si ≥2 occurrences d'une technique critique +if (isCritical && occurrences >= 2) { + dynamicWeight *= 1.1; // +10% supplémentaire +} +``` + +#### **Techniques bénignes** 🟢 +```javascript +const benignTechniques = ['TE0143', 'TE0232', 'TE0333']; + +// Réduction si technique bénigne très fréquente +if (isBenign && occurrences >= 5) { + dynamicWeight *= 0.9; // -10% +} +``` + +### **Courbe de pondération dynamique** 📊 + +``` +Poids dynamique + ↑ +1.4 | ●──────────── (≥10 occurrences) +1.3 | ●─┘ (7-9 occurrences) +1.2 | ●─┘ (5-6 occurrences) +1.1 |●┘ (3-4 occurrences) +1.0 ●────────────────── → Occurrences + 0 1 2 3 4 5 6 7 8 9 10+ +``` + +## **5. Boosts contextuels** + +### **Multiplicateurs selon le contexte détecté** 🚀 + +```javascript +const CONTEXT_PATTERNS = { + urgency: { + boost: 1.3, // +30% + patterns: [ + /urgent|rapidement|vite|immédiatement/i, + /dernière\s+chance|temps\s+limité/i + ], + techniques: ['TE0501', 'TE0500'] + }, + + authority: { + boost: 1.4, // +40% + patterns: [ + /selon\s+(?:les\s+)?(?:experts?|docteurs?)/i, + /étude\s+(?:révèle|montre|démontre)/i + ], + techniques: ['TE0422', 'TE0212'] + }, + + social_proof: { + boost: 1.2, // +20% + patterns: [ + /\d+(?:\.\d+)?[km]?\s+personnes?\s+(?:utilisent|pensent)/i, + /tout\s+le\s+monde|viral|tendance/i + ], + techniques: ['TE0251', 'TE0221'] + } +}; +``` + +### **Application des boosts** ⚡ + +```javascript +// Exemple : TE0501 (FOMO) avec contexte d'urgence +score = 3.0 // Score de base +contextualWeight = 1.0 +dynamicWeight = 1.1 // 3 occurrences + +// Détection du contexte "urgency" +urgencyBoost = 1.3 + +// Calcul final +finalScore = 3.0 × 1.3 = 3.9 // Application du boost +weightedScore = 3.9 × 1.4 × 1.0 × 1.1 = 6.0 +``` + +## **6. Calcul final complet** + +### **Exemple détaillé** 📊 + +```javascript +// Page d'actualités avec article clickbait + +// TE0500 (Clickbait) détecté +rawScore = 4.1 // 2 core + 1 variant + 1 pattern +baseWeight = 1.5 // Poids élevé du clickbait +contextualWeight = 1.4 // Site d'actualités +dynamicWeight = 1.2 // 6 occurrences +urgencyBoost = 1.3 // Mots d'urgence détectés + +// Étapes de calcul : +1. Score avec boost: 4.1 × 1.3 = 5.33 +2. Poids total: 1.5 × 1.4 × 1.2 = 2.52 +3. Score pondéré: 5.33 × 2.52 = 13.4 + +// Résultat : Cette technique contribue 13.4 points au score global +``` + +### **Impact des pondérations** 📈 + +```javascript +// Comparaison avec/sans pondération + +// Sans pondération : +simpleScore = 4.1 points + +// Avec pondération complète : +weightedScore = 13.4 points + +// Facteur multiplicateur : ×3.27 +// → Le système de pondération amplifie significativement +// les techniques problématiques dans des contextes suspects +``` + +## **7. Avantages du système** + +### **Précision** 🎯 +- **Réduction des faux positifs** : Techniques marketing normales moins pénalisées +- **Amplification des vrais positifs** : Manipulation grave détectée avec précision + +### **Contextualisation** 🌍 +- **Adaptation intelligente** : Même technique jugée différemment selon le contexte +- **Réalisme** : Prise en compte des usages légitimes + +### **Granularité** ⚖️ +- **Nuances fines** : 16 niveaux de poids différents +- **Évolutivité** : Facile d'ajuster les seuils selon l'expérience + +### **Transparence** 🔍 +- **Traçabilité complète** : Chaque coefficient est visible et justifié +- **Debug facilité** : Possibilité de suivre chaque étape du calcul + +Ce système de pondération transforme un simple compteur de mots-clés en un analyseur sophistiqué capable de distinguer manipulation intentionnelle et usage légitime des techniques de persuasion.