By · Last updated 2026-02-26

Torna al BlogTecnico

NER multilingue: l'inglese fallisce con l'arabo

I modelli NER addestrati in inglese raggiungono una precisione dell'85-92%. In arabo e cinese? Spesso solo il 50-70%. Scopri le sfide tecniche e come costruire sistemi veramente multilingue.

February 26, 20268 min di lettura
NERmultilingualArabic NLPChinese NLPPII detection

NER multilingue: sfide nel rilevamento delle PII

Aggiornato per il 2026

Il divario di precisione

I modelli NER addestrati in inglese raggiungono F1 dell'85–92% nei test standard. Applica gli stessi modelli a testi in arabo o cinese. La precisione crolla al 50–70%.

Per il rilevamento delle PII, questo divario è un problema critico. Un tasso di rilevamento del 70% significa che il 30% dei dati sensibili rimane invisibile.

Le cause non sono bug software. Derivano da come i sistemi di scrittura differiscono tra loro.

Quattro cause profonde

1. Confini delle parole

L'inglese separa le parole con spazi. La tokenizzazione è semplice.

Il cinese non usa spazi.

"张伟住在北京"
→ Segmentazione prima: ["张伟", "住在", "北京"]

Un modello non può classificare ciò che non riesce a individuare. La segmentazione deve precedere il NER.

L'arabo unisce le lettere all'interno delle parole. Le vocali brevi sono omesse. Il testo scorre da destra a sinistra.

"محمد يعيش في دبي"
→ Nessuna vocale breve, da destra a sinistra, lettere congiunte

2. Morfologia

I verbi inglesi hanno poche varianti. L'arabo utilizza un sistema di radici. Una singola radice genera decine di parole.

كتب (k-t-b, "scrivere")
→ كاتب (scrittore), كتاب (libro), مكتبة (biblioteca)

Il NER deve analizzare le radici per trovare i nomi nelle forme derivate.

3. Convenzioni per i nomi propri

I nomi latini seguono l'ordine Nome-Cognome. I nomi nelle lingue RTL concatenano legami familiari.

محمد بن عبد الله
(Muhammad figlio-di Abdullah)

I nomi cinesi mettono il cognome per primo. La maggior parte dei nomi è composta da due o tre caratteri.

张伟 (Zhang Wei) — 2 caratteri
欧阳修 (Ouyang Xiu) — 3 caratteri

Un modello costruito su pattern di nomi occidentali mancerà queste strutture.

4. Direzione del testo

Alcune lingue scorrono da destra a sinistra. Quando un testo RTL contiene un nome inglese, l'ordine visivo e l'ordine logico divergono. Si chiama testo BiDi e richiede un'analisi attenta.

Punteggi F1 per sistema di scrittura

LinguaSistema di scritturaIntervallo F1Difficoltà
IngleseLatino85–92%Bassa
TedescoLatino82–88%Bassa
FranceseLatino80–87%Bassa
SpagnoloLatino81–86%Bassa
RussoCirillico75–83%Media
AraboAbjad55–75%Alta
CineseHanzi60–78%Alta
GiapponeseMisto65–80%Alta
TailandeseThai50–70%Molto alta
HindiDevanagari60–75%Alta

I sistemi non latini e l'assenza di spazi tra le parole abbassano i punteggi in modo generalizzato.

Soluzione a tre livelli

Utilizziamo tre livelli per coprire 48 lingue e sistemi di scrittura.

Livello 1: spaCy — 25 lingue

Per le lingue con modelli robusti e consolidati. Include inglese, tedesco, francese, spagnolo, italiano, portoghese, olandese, polacco, russo e greco.

Livello 2: Stanza — lingue complesse

Stanford Stanza gestisce arabo, cinese, giapponese e coreano. Esegue la segmentazione delle parole e l'analisi morfologica prima del NER.

Livello 3: XLM-RoBERTa — lingue a basse risorse

Per le lingue prive di modelli dedicati. Tailandese, vietnamita, hindi, bengali, ebraico, turco e farsi rientrano qui. Gestisce testi in più lingue senza necessità di indicatori espliciti.

RTL e BiDi

I testi da destra a sinistra richiedono passaggi aggiuntivi rispetto alla semplice segmentazione.

La nostra pipeline:

  1. Normalizza il testo nell'ordine logico.
  2. Esegue il NER su quell'ordine.
  3. Rimappa le posizioni delle entità all'ordine visivo.

Rimoviamo i prefissi prima del NER e li ripristiniamo dopo.

"محمد"  — solo il nome
"لمحمد" — "a Muhammad" (con prefisso)

Code-switching

I documenti reali spesso mescolano lingue in una stessa riga.

"El meeting con John es at 3pm"
"我今天跟John去shopping"

La nostra pipeline segmenta per lingua, applica il modello corretto a ciascuna parte, quindi unisce i risultati con la mappatura delle posizioni.

Benchmark interni

Risultati ottenuti da test interni su dati multilingue:

ScenarioF1
Solo inglese91%
Solo tedesco88%
Solo arabo79%
Solo cinese81%
Mix inglese-arabo83%
Mix inglese-cinese84%
Mix inglese-tedesco89%

Note di configurazione

L'app desktop rileva automaticamente la lingua per ogni documento. Per file multilingue, elabora ogni segmento con il modello appropriato. Non è richiesto alcun intervento manuale.

Specifica la lingua nell'API quando la conosci:

{
  "text": "محمد بن عبد الله",
  "language": "ar"
}

Usa il rilevamento automatico quando non la conosci:

{
  "text": "محمد بن عبد الله",
  "language": "auto"
}

I pattern personalizzati devono coprire le cifre specifiche della lingua:

# ID dipendente in caratteri latini
EMP-[0-9]{6}

# ID dipendente in caratteri arabo-indiani
موظف-[٠-٩0-9]{6}

Consulta l'elenco completo delle entità. Per la configurazione API, visita la pagina delle funzionalità API. La nostra guida alla conformità GDPR spiega come le lacune nel rilevamento influiscano sul diritto alla protezione dei dati.


anonym.legal utilizza uno stack NER a tre livelli — spaCy, Stanza e XLM-RoBERTa — per coprire 48 lingue con rilevamento coerente delle PII.

Fonti

Pronto a proteggere i tuoi dati?

Inizia ad anonimizzare i PII con oltre 285 tipi di entità in 48 lingue.

About this page

We update this page when our platform or the law changes.

Read our founder note for how we work.

Each change shows up in the timestamp at the top.

Related reading

We follow these rules

  • GDPR (EU 2016/679).
  • ISO/IEC 27001:2022.
  • NIS2 (EU 2022/2555).
  • HIPAA safe harbor under 45 CFR § 164.514(b)(2).

Our promise

We do not sell your data.

We do not train models on your text.

We store your files in Germany.

You can delete your account at any time.

You own your work.

Where we run

Our servers live in Falkenstein, Germany.

We use Hetzner. They hold ISO 27001 certification.

All data stays in the EU.

Backups run every day.

Need help?

Email support@anonym.legal.

We reply within one business day.

How we test

We run a full check suite on every release.

Each surface gets its own sweep script and report.

Human reviewers spot-check the output each week.

We track recall and precision on a labelled set.

Bad runs block the deploy.

What we never do

  • We never sell your information to third parties.
  • We never train models on what you upload.
  • We never keep your work after you delete it.
  • We never share keys with any outside firm.
  • We never run ads inside the product.

Plans in plain words

We sell credits, not seats.

One credit covers one short job.

Long jobs use a few credits each.

You can top up at any time.

Unused credits roll over each month.

Read the plans page for current rates.

Who built this

A small team of engineers and lawyers built this.

We ship from Europe and work in the open.

Our founder note spells out why we started.

Where to start

How the parts fit

A browser add-on cleans text inside Chrome.

A Word plug-in handles drafts in Office.

A small desktop tool works on whole folders.

An agent protocol link feeds large models safely.

All four share one core engine and one rule set.

Words from our team

We started this work after a lunch about cookies.

One friend kept getting odd ads on her phone.

We asked why a court file leaked through a draft.

We sketched the first build on a napkin that week.

By month three we had a tiny demo for a friend.

She used it on her first case the next day.

Common questions we hear

Can the tool read scanned PDFs? Yes, with OCR.

Does it work on long files? Yes, in small chunks.

Can I roll my own rule set? Yes, save it as a preset.

Does it run offline? The desktop build runs offline.

Do you keep my files? No, the cloud build wipes after each run.

Will it learn from my work? No, we never train on inputs.

A short tour of the workflow

Upload a file or paste a snippet of prose.

Pick the entities you want gone from the draft.

Choose a method: replace, mask, hash, encrypt, or redact.

Press run and watch the side panel show each hit.

Skim the result and tweak any rule that misfired.

Save the cleaned file or send it to a teammate.