docs(regles-metier): préciser formule algorithme recommandation
Ajout section détaillée "Calcul score_interets" dans Règle 04: - Domaine jauges : [0-100] (stockage en pourcentage) - score_interets : [0.0-1.0] (normalisé pour pondération) - Formule exacte : (SUM(gauges) / NB_TAGS) / 100 Exemple concret avec nombres : - Tags ["Musique", "Tourisme"] - Jauges utilisateur 75% et 60% - score_interets = 0.675 - Impact dans score_final démontré Cas limites documentés : - Aucune jauge → valeur neutre 0.5 - 1 seul tag → gauge_value / 100 - Moyenne arithmétique simple (pas de pondération par tag) Résout incohérence #1 (INCONSISTENCIES.md P0 item 4). Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -39,6 +39,50 @@ où :
|
|||||||
- bonus_aleatoire = 10% des recommandations tirées aléatoirement
|
- bonus_aleatoire = 10% des recommandations tirées aléatoirement
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### Calcul détaillé du score_interets
|
||||||
|
|
||||||
|
**Domaine des données** :
|
||||||
|
- Jauges utilisateur : stockées en pourcentage [0-100]
|
||||||
|
- score_interets : normalisé dans l'intervalle [0.0-1.0] pour pondération
|
||||||
|
|
||||||
|
**Formule exacte** :
|
||||||
|
```
|
||||||
|
score_interets = (SUM(gauge_values_for_tags) / NB_TAGS) / 100
|
||||||
|
|
||||||
|
où :
|
||||||
|
- gauge_values_for_tags = valeurs des jauges correspondant aux tags du contenu
|
||||||
|
- NB_TAGS = nombre de tags du contenu (minimum 1, maximum 3)
|
||||||
|
- Division par 100 pour normaliser [0-100] → [0.0-1.0]
|
||||||
|
```
|
||||||
|
|
||||||
|
**Exemple concret** :
|
||||||
|
```
|
||||||
|
Contenu : "Visite du Louvre"
|
||||||
|
Tags : ["Musique", "Tourisme"]
|
||||||
|
|
||||||
|
Utilisateur :
|
||||||
|
- Jauge "Musique" = 75%
|
||||||
|
- Jauge "Tourisme" = 60%
|
||||||
|
- Jauge "Automobile" = 40% (non pertinente, ignorée)
|
||||||
|
|
||||||
|
Calcul :
|
||||||
|
score_interets = ((75 + 60) / 2) / 100
|
||||||
|
= (135 / 2) / 100
|
||||||
|
= 67.5 / 100
|
||||||
|
= 0.675
|
||||||
|
|
||||||
|
Impact dans le scoring final (type géo-contextuel) :
|
||||||
|
score_final = (score_geo * 0.5) + (score_interets * 0.3) + (score_engagement * 0.2) + bonus_aleatoire
|
||||||
|
= (0.8 * 0.5) + (0.675 * 0.3) + (0.5 * 0.2) + 0
|
||||||
|
= 0.4 + 0.2025 + 0.1
|
||||||
|
= 0.7025 / 1.0
|
||||||
|
```
|
||||||
|
|
||||||
|
**Cas limites** :
|
||||||
|
- Utilisateur n'a aucune jauge pour les tags du contenu → score_interets = 0.5 (valeur neutre par défaut)
|
||||||
|
- Contenu avec 1 seul tag → score_interets = gauge_value / 100
|
||||||
|
- Jauges multiples → moyenne arithmétique simple (pas de pondération différente par tag)
|
||||||
|
|
||||||
**Pondérations par type** :
|
**Pondérations par type** :
|
||||||
|
|
||||||
| Type | Poids géo | Poids intérêts |
|
| Type | Poids géo | Poids intérêts |
|
||||||
|
|||||||
Reference in New Issue
Block a user