Le Défi du NER Multilingue
Les modèles de Reconnaissance d'Entités Nommées (NER) entraînés sur l'anglais obtiennent des résultats impressionnants—85-92 % de scores F1 sur des benchmarks standards. Appliquer ces mêmes modèles à l'arabe ou au chinois ? La précision tombe souvent à 50-70 %.
Pour la détection de PII, cet écart est critique. Un taux de détection de 70 % signifie que 30 % des données sensibles ne sont pas protégées.
Pourquoi les Modèles Anglais Échouent
1. Limites des Mots
Anglais : Les mots sont séparés par des espaces.
"John Smith lives in New York"
→ ["John", "Smith", "lives", "in", "New", "York"]
Chinois : Pas de limites de mots du tout.
"张伟住在北京"
→ Nécessite une segmentation d'abord : ["张伟", "住在", "北京"]
Arabe : Les mots se connectent, et les voyelles courtes ne sont pas écrites.
"محمد يعيش في دبي"
→ Script connecté, de droite à gauche, voyelles omises
Les règles de tokenisation anglaises ne s'appliquent tout simplement pas.
2. Complexité Morphologique
Morphologie anglaise : Relativement simple
run → runs, running, ran
Morphologie arabe : Extrêmement complexe (système racine-modèle)
كتب (k-t-b, "racine écrire")
→ كاتب (écrivain), كتاب (livre), مكتبة (bibliothèque), يكتب (il écrit)
Une seule racine arabe génère des dizaines de mots liés. Les modèles NER doivent comprendre ce système de dérivation.
3. Conventions de Noms
Noms anglais : Prénom Nom
John Smith, Mary Johnson
Noms arabes : Composants multiples
محمد بن عبد الله بن عبد المطلب
(Muhammad fils d'Abdullah fils d'Abdul-Muttalib)
Noms chinois : Nom de famille en premier, souvent 2-3 caractères au total
张伟 (Zhang Wei) - 2 caractères
欧阳修 (Ouyang Xiu) - 3 caractères
4. Direction du Script
Anglais : De gauche à droite (LTR) Arabe/Hébreu : De droite à gauche (RTL) Texte mixte : Bidirectionnel (BiDi) - extrêmement complexe
Quand un nom anglais apparaît dans un texte arabe :
التقيت بـ John Smith في المؤتمر
(J'ai rencontré John Smith à la conférence)
L'ordre de rendu, l'ordre logique et l'ordre d'affichage diffèrent tous.
Précision par Langue
La performance NER dans le monde réel varie considérablement :
| Langue | Script | Plage de Score F1 | Niveau de Défi |
|---|---|---|---|
| Anglais | Latin | 85-92 % | Faible |
| Allemand | Latin | 82-88 % | Faible |
| Français | Latin | 80-87 % | Faible |
| Espagnol | Latin | 81-86 % | Faible |
| Russe | Cyrillique | 75-83 % | Moyen |
| Arabe | Arabe | 55-75 % | Élevé |
| Chinois | Hanzi | 60-78 % | Élevé |
| Japonais | Mixte | 65-80 % | Élevé |
| Thaï | Thaï | 50-70 % | Très Élevé |
| Hindi | Devanagari | 60-75 % | Élevé |
Les langues avec une morphologie complexe, des scripts non latins ou sans limites de mots sous-performent systématiquement.
L'Approche à Trois Niveaux d'anonym.legal
Nous résolvons le NER multilingue grâce à trois niveaux spécialisés :
Niveau 1 : spaCy (25 langues)
Pour les langues à ressources élevées avec de bons modèles :
- Anglais, Allemand, Français, Espagnol, Italien, Portugais
- Néerlandais, Polonais, Russe, Grec
- Et 15 autres avec une précision fiable
Niveau 2 : Stanza (7 langues)
Pour les langues avec une morphologie complexe :
- Arabe (morphologie racine-modèle)
- Chinois (segmentation de mots requise)
- Japonais (scripts multiples)
- Coréen (agglutinatif)
- Et 3 autres
Niveau 3 : XLM-RoBERTa (16 langues)
Pour les langues à faibles ressources sans modèles dédiés :
- Thaï, Vietnamien, Indonésien
- Hindi, Bengali, Tamoul
- Hébreu, Turc, Farsi
- Et plus
Comment Ça Fonctionne
Texte d'entrée avec détection de langue
↓
[Routeur de Langue]
↓
┌───────┴───────┐
↓ ↓
Ressources élevées Complexe/Faibles ressources
(spaCy) (Stanza/XLM-RoBERTa)
↓ ↓
└───────┬───────┘
↓
[Superposition Regex pour données structurées]
↓
[Fusion de confiance]
↓
Entités finales
Superposition Regex
Certains motifs sont indépendants de la langue :
- Adresses e-mail :
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} - Cartes de crédit :
\d{4}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{4} - Numéros de téléphone : Divers motifs par pays
Nous appliquons d'abord regex pour les données structurées, quelle que soit la langue.
Gestion des Scripts RTL
Les langues de droite à gauche nécessitent un traitement spécial :
Algorithme de Texte Bidirectionnel
Quand l'arabe contient de l'anglais :
Visuel : المؤتمر في John Smith بـ التقيت
Logique : التقيت بـ John Smith في المؤتمر
Notre traitement :
- Normaliser à l'ordre logique
- Exécuter NER sur l'ordre logique
- Mapper les positions des entités à l'ordre visuel
- Retourner des positions cohérentes pour tout rendu
Détection des Limites d'Entités
Les limites d'entités arabes sont complexes :
"محمد" - juste le nom
"لمحمد" - "à Muhammad" (préposition attachée)
"ومحمد" - "et Muhammad" (conjonction attachée)
Nous supprimons les affixes avant NER et les réattachons ensuite.
Changement de Code
Le texte réel mélange souvent les langues :
"El meeting con John es at 3pm"
(mélange espagnol-anglais)
"我今天跟John去shopping"
(mélange chinois-anglais)
Notre approche :
- Segmenter le texte par langue
- Traiter chaque segment avec le modèle approprié
- Fusionner les résultats avec un mappage de position
Références de Performance
Tests internes sur des ensembles de données multilingues :
| Scénario | Score F1 |
|---|---|
| Anglais uniquement | 91 % |
| Allemand uniquement | 88 % |
| Arabe uniquement | 79 % |
| Chinois uniquement | 81 % |
| Mélange anglais-arabe | 83 % |
| Mélange anglais-chinois | 84 % |
| Mélange anglais-allemand | 89 % |
Notre approche hybride maintient une haute précision même sur des langues difficiles.
Conseils de Mise en Œuvre
Pour les Utilisateurs de l'API
Spécifiez la langue quand elle est connue :
{
"text": "محمد بن عبد الله",
"language": "ar"
}
Laissez-nous détecter automatiquement quand elle est inconnue :
{
"text": "محمد بن عبد الله",
"language": "auto"
}
Pour les Utilisateurs de l'Application de Bureau
L'application détecte automatiquement la langue par document. Pour les fichiers multilingues, elle traite chaque segment de manière appropriée.
Pour les Types d'Entités Personnalisées
Les motifs personnalisés doivent tenir compte des scripts :
# ID d'employé anglais
EMP-[0-9]{6}
# ID d'employé arabe (comprend des chiffres arabes)
موظف-[٠-٩0-9]{6}
Conclusion
Les modèles NER entraînés en anglais échouent sur le texte non anglais parce que les langues diffèrent fondamentalement en :
- Limites des mots (ou absence de celles-ci)
- Complexité morphologique
- Direction du script
- Conventions de noms
Une détection PII multilingue efficace nécessite :
- Modèles spécifiques à la langue pour des scripts complexes
- Motifs regex pour des données structurées
- Traitement approprié RTL/BiDi
- Support du changement de code
anonym.legal prend en charge 48 langues grâce à notre approche à trois niveaux, atteignant une précision cohérente dans toutes.
Essayez-le vous-même :
Sources :