4NK_IA_front/docs/deduplication_entites.md
4NK IA 78d4310137 feat: ajout déduplication des entités extraites
- 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
2025-09-19 13:29:39 +00:00

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.