- 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
22 lines
876 B
TypeScript
22 lines
876 B
TypeScript
import { describe, it, expect } from 'vitest'
|
|
import { runRuleNER } from '../src/services/ruleNer'
|
|
|
|
describe('Déduplication des entités', () => {
|
|
it('élimine les doublons d\'identités et d\'adresses', () => {
|
|
const text = `
|
|
Vendeur : Jean Dupont\n
|
|
Acheteur : Jean Dupont\n
|
|
Domicilié 1 rue de la Paix, 75001 Paris\n
|
|
Adresse 1 Rue de la Paix, 75001 Paris
|
|
`
|
|
|
|
const result = runRuleNER('doc-1', text)
|
|
|
|
const identityKeys = new Set(result.identities.map(i => `${(i.firstName||'').toLowerCase()}|${(i.lastName||'').toLowerCase()}`))
|
|
const addressKeys = new Set(result.addresses.map(a => `${(a.street||'').toLowerCase()}|${a.postalCode}|${(a.city||'').toLowerCase()}|${(a.country||'').toLowerCase()}`))
|
|
|
|
expect(result.identities.length).toBe(identityKeys.size)
|
|
expect(result.addresses.length).toBe(addressKeys.size)
|
|
})
|
|
})
|