El Desafío del NER Multilingüe
Los modelos de Reconocimiento de Entidades Nombradas (NER) entrenados en inglés logran resultados impresionantes: 85-92% de puntuaciones F1 en benchmarks estándar. ¿Aplicar esos mismos modelos al árabe o al chino? La precisión a menudo cae al 50-70%.
Para la detección de PII, esta brecha es crítica. Una tasa de detección del 70% significa que el 30% de los datos sensibles queda desprotegido.
Por Qué Fails Modelos en Inglés
1. Límites de Palabras
Inglés: Las palabras están separadas por espacios.
"John Smith vive en Nueva York"
→ ["John", "Smith", "vive", "en", "Nueva", "York"]
Chino: No hay límites de palabras en absoluto.
"张伟住在北京"
→ Necesita segmentación primero: ["张伟", "住在", "北京"]
Árabe: Las palabras se conectan, y las vocales cortas no se escriben.
"محمد يعيش في دبي"
→ Escritura conectada, de derecha a izquierda, vocales omitidas
Las reglas de tokenización en inglés simplemente no se aplican.
2. Complejidad Morfológica
Morfológica en inglés: Relativamente simple
run → runs, running, ran
Morfológica en árabe: Extremadamente compleja (sistema de raíz-patrón)
كتب (k-t-b, "raíz de escribir")
→ كاتب (escritor), كتاب (libro), مكتبة (biblioteca), يكتب (él escribe)
Una sola raíz árabe genera docenas de palabras relacionadas. Los modelos de NER deben entender este sistema de derivación.
3. Convenciones de Nombres
Nombres en inglés: Primero Apellido
John Smith, Mary Johnson
Nombres en árabe: Múltiples componentes
محمد بن عبد الله بن عبد المطلب
(Muhammad hijo de Abdullah hijo de Abdul-Muttalib)
Nombres en chino: Apellido primero, a menudo 2-3 caracteres en total
张伟 (Zhang Wei) - 2 caracteres
欧阳修 (Ouyang Xiu) - 3 caracteres
4. Dirección del Guion
Inglés: De izquierda a derecha (LTR) Árabe/Hebreo: De derecha a izquierda (RTL) Texto mixto: Bidireccional (BiDi) - extremadamente complejo
Cuando un nombre en inglés aparece en texto árabe:
التقيت بـ John Smith في المؤتمر
(Me encontré con John Smith en la conferencia)
El orden de renderizado, el orden lógico y el orden de visualización son diferentes.
Precisión por Idioma
El rendimiento real de NER varía drásticamente:
| Idioma | Guion | Rango de F1-Score | Nivel de Desafío |
|---|---|---|---|
| Inglés | Latino | 85-92% | Bajo |
| Alemán | Latino | 82-88% | Bajo |
| Francés | Latino | 80-87% | Bajo |
| Español | Latino | 81-86% | Bajo |
| Ruso | Cirílico | 75-83% | Medio |
| Árabe | Árabe | 55-75% | Alto |
| Chino | Hanzi | 60-78% | Alto |
| Japonés | Mixto | 65-80% | Alto |
| Tailandés | Tailandés | 50-70% | Muy Alto |
| Hindi | Devanagari | 60-75% | Alto |
Los idiomas con morfología compleja, guiones no latinos o sin límites de palabras consistentemente tienen un rendimiento inferior.
Enfoque de Tres Niveles de anonym.legal
Resolvemos el NER multilingüe a través de tres niveles especializados:
Nivel 1: spaCy (25 idiomas)
Para idiomas de alto recurso con buenos modelos:
- Inglés, Alemán, Francés, Español, Italiano, Portugués
- Neerlandés, Polaco, Ruso, Griego
- Y 15 más con precisión confiable
Nivel 2: Stanza (7 idiomas)
Para idiomas con morfología compleja:
- Árabe (morfológica de raíz-patrón)
- Chino (se requiere segmentación de palabras)
- Japonés (múltiples guiones)
- Coreano (aglutinativo)
- Y 3 más
Nivel 3: XLM-RoBERTa (16 idiomas)
Para idiomas de bajo recurso sin modelos dedicados:
- Tailandés, Vietnamita, Indonesio
- Hindi, Bengalí, Tamil
- Hebreo, Turco, Persa
- Y más
Cómo Funciona
Texto de entrada con detección de idioma
↓
[Ruteador de Idioma]
↓
┌───────┴───────┐
↓ ↓
Alto-recurso Complejo/Bajo-recurso
(spaCy) (Stanza/XLM-RoBERTa)
↓ ↓
└───────┬───────┘
↓
[Superposición de Regex para datos estructurados]
↓
[Fusión de confianza]
↓
Entidades finales
Superposición de Regex
Algunos patrones son independientes del idioma:
- Direcciones de correo electrónico:
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} - Tarjetas de crédito:
\d{4}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{4} - Números de teléfono: Varios patrones por país
Aplicamos regex primero para datos estructurados, independientemente del idioma.
Manejo de Guiones RTL
Los idiomas de derecha a izquierda requieren un manejo especial:
Algoritmo de Texto Bidireccional
Cuando el árabe contiene inglés:
Visual: المؤتمر في John Smith بـ التقيت
Lógico: التقيت بـ John Smith في المؤتمر
Nuestro procesamiento:
- Normalizar al orden lógico
- Ejecutar NER en orden lógico
- Mapear posiciones de entidades de vuelta al orden visual
- Devolver posiciones consistentes para cualquier renderizado
Detección de Límites de Entidades
Los límites de entidades árabes son complejos:
"محمد" - solo el nombre
"لمحمد" - "a Muhammad" (preposición adjunta)
"ومحمد" - "y Muhammad" (conjunción adjunta)
Eliminamos afijos antes de NER y los volvemos a adjuntar después.
Cambio de Código
El texto real a menudo mezcla idiomas:
"El meeting con John es at 3pm"
(mezcla de español-inglés)
"我今天跟John去shopping"
(mezcla de chino-inglés)
Nuestro enfoque:
- Segmentar el texto por idioma
- Procesar cada segmento con el modelo apropiado
- Fusionar resultados con mapeo de posiciones
Referencias de Rendimiento
Pruebas internas en conjuntos de datos de idiomas mixtos:
| Escenario | F1-Score |
|---|---|
| Solo inglés | 91% |
| Solo alemán | 88% |
| Solo árabe | 79% |
| Solo chino | 81% |
| Mezcla inglés-árabe | 83% |
| Mezcla inglés-chino | 84% |
| Mezcla inglés-alemán | 89% |
Nuestro enfoque híbrido mantiene alta precisión incluso en idiomas desafiantes.
Consejos de Implementación
Para Usuarios de API
Especifica el idioma cuando se conozca:
{
"text": "محمد بن عبد الله",
"language": "ar"
}
Déjanos detectar automáticamente cuando sea desconocido:
{
"text": "محمد بن عبد الله",
"language": "auto"
}
Para Usuarios de Aplicaciones de Escritorio
La aplicación detecta automáticamente el idioma por documento. Para archivos de idiomas mixtos, procesa cada segmento apropiadamente.
Para Tipos de Entidades Personalizadas
Los patrones personalizados deben tener en cuenta los guiones:
# ID de empleado en inglés
EMP-[0-9]{6}
# ID de empleado en árabe (incluye números árabes)
موظف-[٠-٩0-9]{6}
Conclusión
Los modelos de NER entrenados en inglés fallan en texto no inglés porque los idiomas difieren fundamentalmente en:
- Límites de palabras (o la falta de ellos)
- Complejidad morfológica
- Dirección del guion
- Convenciones de nombres
La detección efectiva de PII multilingüe requiere:
- Modelos específicos de idioma para guiones complejos
- Patrones de regex para datos estructurados
- Manejo adecuado de RTL/BiDi
- Soporte para cambio de código
anonym.legal soporta 48 idiomas a través de nuestro enfoque de tres niveles, logrando una precisión consistente en todos.
Pruébalo tú mismo:
Fuentes: