- 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.