O Desafio do NER Multilíngue
Modelos de Reconhecimento de Entidades Nomeadas (NER) treinados em inglês alcançam resultados impressionantes—85-92% de pontuação F1 em benchmarks padrão. Aplicar esses mesmos modelos ao árabe ou chinês? A precisão frequentemente cai para 50-70%.
Para a detecção de PII, essa lacuna é crítica. Uma taxa de detecção de 70% significa que 30% dos dados sensíveis ficam desprotegidos.
Por que os Modelos em Inglês Falham
1. Limites de Palavras
Inglês: As palavras são separadas por espaços.
"John Smith lives in New York"
→ ["John", "Smith", "lives", "in", "New", "York"]
Chinês: Sem limites de palavras.
"张伟住在北京"
→ Necessita de segmentação primeiro: ["张伟", "住在", "北京"]
Árabe: As palavras se conectam, e as vogais curtas não são escritas.
"محمد يعيش في دبي"
→ Script conectado, da direita para a esquerda, vogais omitidas
As regras de tokenização em inglês simplesmente não se aplicam.
2. Complexidade Morfológica
Morfológica do inglês: Relativamente simples
run → runs, running, ran
Morfológica do árabe: Extremamente complexa (sistema de raiz-padrão)
كتب (k-t-b, "raiz de escrever")
→ كاتب (escritor), كتاب (livro), مكتبة (biblioteca), يكتب (ele escreve)
Uma única raiz árabe gera dezenas de palavras relacionadas. Os modelos NER devem entender esse sistema de derivação.
3. Convenções de Nomes
Nomes em inglês: Primeiro Último
John Smith, Mary Johnson
Nomes em árabe: Múltiplos componentes
محمد بن عبد الله بن عبد المطلب
(Muhammad filho de Abdullah filho de Abdul-Muttalib)
Nomes em chinês: Sobrenome primeiro, frequentemente 2-3 caracteres no total
张伟 (Zhang Wei) - 2 caracteres
欧阳修 (Ouyang Xiu) - 3 caracteres
4. Direção do Script
Inglês: Da esquerda para a direita (LTR) Árabe/Hebraico: Da direita para a esquerda (RTL) Texto misto: Bidirecional (BiDi) - extremamente complexo
Quando um nome em inglês aparece em texto árabe:
التقيت بـ John Smith في المؤتمر
(Eu conheci John Smith na conferência)
A ordem de renderização, a ordem lógica e a ordem de exibição diferem.
Precisão por Idioma
O desempenho real do NER varia dramaticamente:
| Idioma | Script | Faixa de F1-Score | Nível de Desafio |
|---|---|---|---|
| Inglês | Latino | 85-92% | Baixo |
| Alemão | Latino | 82-88% | Baixo |
| Francês | Latino | 80-87% | Baixo |
| Espanhol | Latino | 81-86% | Baixo |
| Russo | Cirílico | 75-83% | Médio |
| Árabe | Árabe | 55-75% | Alto |
| Chinês | Hanzi | 60-78% | Alto |
| Japonês | Misto | 65-80% | Alto |
| Tailandês | Tailandês | 50-70% | Muito Alto |
| Hindi | Devanagari | 60-75% | Alto |
Idiomas com morfologia complexa, scripts não latinos ou sem limites de palavras consistentemente apresentam desempenho inferior.
A Abordagem em Três Níveis da anonym.legal
Resolvemos o NER multilíngue através de três níveis especializados:
Nível 1: spaCy (25 idiomas)
Para idiomas de alto recurso com bons modelos:
- Inglês, Alemão, Francês, Espanhol, Italiano, Português
- Holandês, Polonês, Russo, Grego
- E mais 15 com precisão confiável
Nível 2: Stanza (7 idiomas)
Para idiomas com morfologia complexa:
- Árabe (morfológica de raiz-padrão)
- Chinês (segmentação de palavras necessária)
- Japonês (múltiplos scripts)
- Coreano (aglutinação)
- E mais 3
Nível 3: XLM-RoBERTa (16 idiomas)
Para idiomas de baixo recurso sem modelos dedicados:
- Tailandês, Vietnamita, Indonésio
- Hindi, Bengali, Tamil
- Hebraico, Turco, Persa
- E mais
Como Funciona
Texto de entrada com detecção de idioma
↓
[Roteador de Idioma]
↓
┌───────┴───────┐
↓ ↓
Alto-recurso Complexo/Baixo-recurso
(spaCy) (Stanza/XLM-RoBERTa)
↓ ↓
└───────┬───────┘
↓
[Sobreposição de Regex para dados estruturados]
↓
[Fusão de confiança]
↓
Entidades finais
Sobreposição de Regex
Alguns padrões são independentes de idioma:
- Endereços de email:
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} - Cartões de crédito:
\d{4}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{4} - Números de telefone: Vários padrões por país
Aplicamos regex primeiro para dados estruturados, independentemente do idioma.
Tratamento de Script RTL
Idiomas da direita para a esquerda requerem tratamento especial:
Algoritmo de Texto Bidirecional
Quando o árabe contém inglês:
Visual: المؤتمر في John Smith بـ التقيت
Lógico: التقيت بـ John Smith في المؤتمر
Nosso processamento:
- Normalizar para a ordem lógica
- Executar NER na ordem lógica
- Mapear posições de entidades de volta para a ordem visual
- Retornar posições consistentes para qualquer renderização
Detecção de Limites de Entidade
Os limites de entidades árabes são complexos:
"محمد" - apenas o nome
"لمحمد" - "para Muhammad" (preposição anexada)
"ومحمد" - "e Muhammad" (conjunção anexada)
Removemos afixos antes do NER e reanexamos depois.
Mudança de Código
Texto real frequentemente mistura idiomas:
"El meeting con John es at 3pm"
(mistura de espanhol-inglês)
"我今天跟John去shopping"
(mistura de chinês-inglês)
Nossa abordagem:
- Segmentar texto por idioma
- Processar cada segmento com o modelo apropriado
- Mesclar resultados com mapeamento de posição
Referências de Desempenho
Testes internos em conjuntos de dados de idiomas mistos:
| Cenário | F1-Score |
|---|---|
| Apenas inglês | 91% |
| Apenas alemão | 88% |
| Apenas árabe | 79% |
| Apenas chinês | 81% |
| Mistura inglês-árabe | 83% |
| Mistura inglês-chinês | 84% |
| Mistura inglês-alemão | 89% |
Nossa abordagem híbrida mantém alta precisão mesmo em idiomas desafiadores.
Dicas de Implementação
Para Usuários da API
Especifique o idioma quando conhecido:
{
"text": "محمد بن عبد الله",
"language": "ar"
}
Deixe-nos detectar automaticamente quando desconhecido:
{
"text": "محمد بن عبد الله",
"language": "auto"
}
Para Usuários do Aplicativo de Desktop
O aplicativo detecta automaticamente o idioma por documento. Para arquivos de idiomas mistos, ele processa cada segmento adequadamente.
Para Tipos de Entidade Personalizados
Padrões personalizados devem considerar scripts:
# ID de funcionário em inglês
EMP-[0-9]{6}
# ID de funcionário em árabe (inclui números árabes)
موظف-[٠-٩0-9]{6}
Conclusão
Modelos de NER treinados em inglês falham em texto não inglês porque os idiomas diferem fundamentalmente em:
- Limites de palavras (ou a falta deles)
- Complexidade morfológica
- Direção do script
- Convenções de nomes
A detecção multilíngue eficaz de PII requer:
- Modelos específicos para idiomas com scripts complexos
- Padrões de regex para dados estruturados
- Tratamento adequado de RTL/BiDi
- Suporte à mudança de código
anonym.legal suporta 48 idiomas através de nossa abordagem em três níveis, alcançando precisão consistente em todos.
Experimente você mesmo:
Fontes: