- Déduplication déterministe des identités, adresses, dates, entreprises, signatures et références - Implémentation dans src/services/ruleNer.ts et src/services/backendApi.ts - Clés de normalisation: prénom+nom, rue+CP+ville, nom+SIRET, type+valeur - Test ciblé tests/deduplication.test.ts pour valider la fonctionnalité - Documentation complète dans docs/deduplication_entites.md - Correction des tests existants (supertest, extractEntitiesFromText) - Compilation validée et services opérationnels
1.4 KiB
1.4 KiB
| title | description |
|---|---|
| Déduplication des entités extraites | Règles et clés de normalisation pour éliminer les doublons d'entités |
Contexte
Afin d'éviter l'affichage et le traitement multiple de la même information, une déduplication déterministe a été ajoutée côté frontend après l'extraction des entités.
Périmètre
- Identités (personnes)
- Adresses
- Dates
- Entreprises (nom, SIREN, SIRET)
- Signatures
- Références (type, valeur)
Règles de déduplication
- Identités: clé =
lower(trim(firstName))|lower(trim(lastName)) - Adresses: clé =
lower(trim(street))|trim(postalCode)|lower(trim(city))|lower(trim(country)) - Dates: utilisation d'un
Set(unicité par valeur exacte) - Entreprises: clé =
lower(trim(name))|trim(siren)|trim(siret) - Signatures: utilisation d'un
Set(unicité par valeur exacte) - Références: clé =
lower(trim(type))|lower(trim(value))
Points d'intégration
src/services/ruleNer.ts: déduplication appliquée au résultat du NER par règles.src/services/backendApi.ts: déduplication appliquée après le mapping de la réponse backend standard.
Effets de bord
- L'ordre des entités est conservé (première occurrence préservée).
- Les entrées vides sont normalisées avant comparaison (trim/lowercase) pour limiter les faux doublons.
Validation
Un test ciblé tests/deduplication.test.ts vérifie que des doublons simples (noms/adresses répétés) sont éliminés.