> ## Documentation Index
> Fetch the complete documentation index at: https://docs.creditbenchmark.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Correspondance des noms et mappage CBID

> Credit Benchmark résout les dénominations d’entreprises saisies en texte libre en identifiants CBID au moyen d’une chaîne de traitement en trois étapes : recherche de candidats, ingénierie des caractéristiques et notation des correspondances basée sur l’apprentissage automatique.

Chaque entrée renvoie des correspondances classées avec un score de confiance compris entre 0 et 1.

<div style={{display: 'flex', alignItems: 'stretch', padding: '32px 24px', background: 'transparent', gap: '0', fontFamily: 'inherit', fontSize: '12px'}}>
  <div style={{flexShrink: 0, display: 'flex', flexDirection: 'column', justifyContent: 'center', minWidth: '130px'}}>
    <div style={{position: 'relative', marginLeft: '24px', marginBottom: '24px'}}>
      <div style={{position: 'absolute', inset: 0, transform: 'translate(-24px, 24px)', border: '1px solid rgba(51,65,85,0.22)', background: 'transparent'}} />

      <div style={{position: 'absolute', inset: 0, transform: 'translate(-12px, 12px)', border: '1px solid rgba(51,65,85,0.3)', background: 'transparent'}} />

      <div style={{position: 'relative', zIndex: 1, border: '1.5px solid #334155', background: '#1e293b', color: '#f8fafc', padding: '12px 14px'}}>
        <div style={{fontWeight: 700, fontSize: '11px', letterSpacing: '0.04em', textTransform: 'uppercase', marginBottom: '8px', borderBottom: '1px solid rgba(255,255,255,0.1)', paddingBottom: '6px'}}>Entité</div>

        <div style={{fontSize: '10px', lineHeight: '1.9', color: '#94a3b8', fontFamily: 'monospace'}}>
          <div><span style={{color: '#7dd3fc'}}>entity\_name</span></div>
          <div><span style={{color: '#86efac'}}>pays</span> <span style={{color: '#94a3b8'}}>(optionnel)</span></div>
          <div><span style={{color: '#86efac'}}>secteur</span> <span style={{color: '#94a3b8'}}>(optionnel)</span></div>
          <div><span style={{color: '#86efac'}}>LEI</span> <span style={{color: '#94a3b8'}}>(optionnel)</span></div>
        </div>
      </div>
    </div>
  </div>

  <div style={{flexShrink: 0, display: 'flex', alignItems: 'center', padding: '0 10px'}}>
    <div style={{width: '20px', height: '1.5px', background: '#94a3b8'}} />

    <div style={{width: 0, height: 0, borderTop: '4px solid transparent', borderBottom: '4px solid transparent', borderLeft: '6px solid #94a3b8'}} />
  </div>

  <div style={{flex: 1, display: 'flex', flexDirection: 'column', gap: '16px'}}>
    {/* Étape 1 : Récupération des candidats */}

    <div style={{border: '1px solid #e2e8f0'}}>
      <div style={{background: '#1e3a8a', color: '#f8fafc', padding: '10px 14px'}}>
        <div style={{fontWeight: 700, fontSize: '11px', letterSpacing: '0.04em', textTransform: 'uppercase'}}>1 — Récupération des entités candidates</div>
      </div>

      <div style={{padding: '8px 14px', background: 'transparent', fontSize: '11px', lineHeight: '1.6'}}>
        <div>Recherche les candidats potentiels dans la base de données d’entités CB.</div>
      </div>
    </div>

    {/* Étape 2 : Ingénierie des caractéristiques */}

    <div style={{border: '1px solid #e2e8f0'}}>
      <div style={{background: '#1e40af', color: '#f8fafc', padding: '10px 14px'}}>
        <div style={{fontWeight: 700, fontSize: '11px', letterSpacing: '0.04em', textTransform: 'uppercase'}}>2 — Ingénierie des caractéristiques</div>
      </div>

      <div style={{padding: '8px 14px', background: 'transparent', fontSize: '11px', lineHeight: '1.6'}}>
        <div>La similarité des noms et l’alignement des métadonnées sont évalués pour chaque candidat.</div>
      </div>
    </div>

    {/* Étape 3 : Notation ML */}

    <div style={{border: '1px solid #e2e8f0'}}>
      <div style={{background: '#4c1d95', color: '#f8fafc', padding: '10px 14px'}}>
        <div style={{fontWeight: 700, fontSize: '11px', letterSpacing: '0.04em', textTransform: 'uppercase'}}>3 — Notation ML</div>
      </div>

      <div style={{padding: '8px 14px', background: 'transparent', fontSize: '11px', lineHeight: '1.6'}}>
        <div>Note : chaque candidat est classé selon sa probabilité de correspondance.</div>
      </div>
    </div>
  </div>

  <div style={{flexShrink: 0, display: 'flex', alignItems: 'center', padding: '0 10px'}}>
    <div style={{width: '20px', height: '1.5px', background: '#94a3b8'}} />

    <div style={{width: 0, height: 0, borderTop: '4px solid transparent', borderBottom: '4px solid transparent', borderLeft: '6px solid #94a3b8'}} />
  </div>

  <div style={{flexShrink: 0, display: 'flex', flexDirection: 'column', justifyContent: 'center', minWidth: '130px'}}>
    <div style={{position: 'relative', marginLeft: '24px', marginBottom: '24px'}}>
      <div style={{position: 'absolute', inset: 0, transform: 'translate(-24px, 24px)', border: '1px solid rgba(51,65,85,0.22)', background: 'transparent'}} />

      <div style={{position: 'absolute', inset: 0, transform: 'translate(-12px, 12px)', border: '1px solid rgba(51,65,85,0.3)', background: 'transparent'}} />

      <div style={{position: 'relative', zIndex: 1, border: '1.5px solid #334155', background: '#1e293b', color: '#f8fafc', padding: '12px 14px'}}>
        <div style={{fontWeight: 700, fontSize: '11px', letterSpacing: '0.04em', textTransform: 'uppercase', marginBottom: '8px', borderBottom: '1px solid rgba(255,255,255,0.1)', paddingBottom: '6px'}}>Résultat principal</div>

        <div style={{fontSize: '10px', lineHeight: '1.9', color: '#94a3b8', fontFamily: 'monospace'}}>
          <div><span style={{color: '#7dd3fc'}}>CBId</span></div>
          <div><span style={{color: '#7dd3fc'}}>CBEntityName</span></div>
          <div><span style={{color: '#fbbf24'}}>confiance</span></div>
          <div><span style={{color: '#94a3b8'}}>classement</span></div>
        </div>
      </div>
    </div>
  </div>
</div>

Le schéma ci-dessous présente le flux de travail de résolution de bout en bout, depuis les champs d’entité d’entrée jusqu’aux résultats classés par ordre de pertinence.

## Pipeline

### Récupération des entités candidates

La base de données d’entités CB prend en charge la recherche textuelle approximative et renvoie une liste restreinte de candidats plausibles. La recherche utilise l’[Classement BM25](https://en.wikipedia.org/wiki/Okapi_BM25) — qui note les candidats en fonction de la fréquence des termes et de la fréquence inverse des documents — et normalise le texte saisi afin de gérer la ponctuation, les accents, les suffixes légaux et les variantes courantes des noms.

En moyenne, une vingtaine de candidats sont renvoyés par nom. Cette étape donne la priorité à l’[Rappel par rapport à la précision](https://en.wikipedia.org/wiki/Precision_and_recall) : la correspondance réelle doit apparaître dans l’ensemble de candidats avant que la notation puisse commencer.

### Ingénierie des caractéristiques

Pour chaque candidat, un vecteur de caractéristiques $\mathbf{x}$ est construit à partir de dizaines de signaux individuels, regroupés en quatre catégories :

| Catégorie                                | Exemples                                                                                                                                                                                                                    |
| ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Similarité des chaînes de caractères** | [Jaccard](https://en.wikipedia.org/wiki/Jaccard_index) Chevauchement de tokens, distance de [Levenshtein](https://en.wikipedia.org/wiki/Levenshtein_distance), similarité de [n-gram](https://en.wikipedia.org/wiki/N-gram) |
| **Pertinence de la recherche**           | [BM25](https://en.wikipedia.org/wiki/Okapi_BM25) score et position dans le classement issus de la phase de recherche                                                                                                        |
| **Normalisation du texte**               | Comparaison après élimination de la ponctuation, des accents, des suffixes juridiques et des variantes de nom                                                                                                               |
| **Alignement des métadonnées**           | Cohérence entre les données saisies et les candidats en matière de pays, de secteur et d’identifiant (LEI).                                                                                                                 |

### Notation ML

Un classificateur d’apprentissage automatique attribue une probabilité de correspondance à chaque candidat de manière indépendante :

$$
\hat{p} = P(\text{match} \mid \mathbf{x})
$$

Les candidats sont classés par $\hat{p}$ et les principaux résultats renvoyés dans la réponse.

#### Formation

Le modèle a été entraîné sur un jeu de données interne comprenant des dizaines de milliers de correspondances d’entités étiquetées – chacune constituant une paire de correspondances vraie ou fausse. Ce jeu de données est distinct de la base de données d’entités CB elle-même, qui contient des millions d’enregistrements correspondant à des entités observées dans les soumissions des banques. Le modèle est réentraîné chaque semaine à mesure que la base de données d’entités CB et l’univers de résolution d’entités s’élargissent.

#### Test

Les performances sont évaluées au moyen d’une validation par pliage ([Validation croisée k-fold](https://en.wikipedia.org/wiki/Cross-validation_\(statistics\)), afin que les métriques reflètent la capacité de généralisation sur l’ensemble des données étiquetées plutôt que sur un unique découpage apprentissage/test. À mesure que le modèle est réentraîné sur de nouvelles données, les performances sont réévaluées à chaque cycle. Les métriques de classification sont présentées sur la page « [Précision et couverture](/api-reference/matching/performance) ».

## Score de confiance

Chaque candidat est renvoyé avec un score $\hat{p} \in [0, 1]$ reflétant la certitude du modèle quant à la justesse de la correspondance.

En interne, nous utilisons les fourchettes suivantes à titre indicatif, sur la base des performances mesurées sur nos **données de test** :

| Plage                | Signal                  | Taux de notation | Justification                                                                                                                                                         |
| -------------------- | ----------------------- | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| *p > 0,6*            | Correspondance forte    | **94.4%**        | Confiance suffisante pour considérer qu'il s'agit d'une correspondance sans examen manuel                                                                             |
| *p dans \[0.3, 0.6]* | Correspondance probable | **\~65 %**       | Le modèle estime qu’il s’agit d’une correspondance plausible mais non certaine ; les scores compris dans cette fourchette doivent être vérifiés avant d’être validés. |
| *p \< 0,3*           | Faible                  | **\~35 %**       | La probabilité de correspondance exacte est faible — l’affichage sert principalement à confirmer l’absence de correspondance.                                         |

Ces chiffres reflètent les taux de correspondance **par candidat**. Lorsque plusieurs candidats sont renvoyés (`limit > 1`) avec des scores plus faibles, l’entité réelle peut tout de même se trouver quelque part dans l’ensemble de résultats — l’examen collectif des meilleurs candidats améliore les chances d’une résolution correcte, même lorsqu’aucun score n’est particulièrement élevé.

Consultez « [Résolution d'entités : Précision et couverture](/api-reference/matching/performance) » pour une analyse complète du compromis entre seuils.
