Retour au blogTechnique

NER Multilingue : Pourquoi Votre Modèle Entraîné en...

Les modèles NER en anglais atteignent une précision de 85-92 %. Et l'arabe et le chinois ? Souvent 50-70 %.

February 26, 20268 min de lecture
NERmultilingualArabic NLPChinese NLPPII detection

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 :

LangueScriptPlage de Score F1Niveau de Défi
AnglaisLatin85-92 %Faible
AllemandLatin82-88 %Faible
FrançaisLatin80-87 %Faible
EspagnolLatin81-86 %Faible
RusseCyrillique75-83 %Moyen
ArabeArabe55-75 %Élevé
ChinoisHanzi60-78 %Élevé
JaponaisMixte65-80 %Élevé
ThaïThaï50-70 %Très Élevé
HindiDevanagari60-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 :

  1. Normaliser à l'ordre logique
  2. Exécuter NER sur l'ordre logique
  3. Mapper les positions des entités à l'ordre visuel
  4. 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 :

  1. Segmenter le texte par langue
  2. Traiter chaque segment avec le modèle approprié
  3. Fusionner les résultats avec un mappage de position

Références de Performance

Tests internes sur des ensembles de données multilingues :

ScénarioScore F1
Anglais uniquement91 %
Allemand uniquement88 %
Arabe uniquement79 %
Chinois uniquement81 %
Mélange anglais-arabe83 %
Mélange anglais-chinois84 %
Mélange anglais-allemand89 %

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 :

  1. Modèles spécifiques à la langue pour des scripts complexes
  2. Motifs regex pour des données structurées
  3. Traitement approprié RTL/BiDi
  4. 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 :

Prêt à protéger vos données ?

Commencez à anonymiser les PII avec plus de 285 types d'entités dans 48 langues.