多言語NER:個人情報検出における課題
2026年版に更新済み
精度のギャップ
英語で訓練されたNERモデルは、標準テストでF1スコア85〜92%を達成します。同じモデルをアラビア語や中国語のテキストに適用すると、精度は50〜70%に低下します。
個人情報検出において、このギャップは致命的です。検出率70%は、機密データの30%が保護されないことを意味します。
原因はバグではありません。書記システムの構造的な違いから生じています。
4つの根本的な原因
1. 単語の区切り
英語はスペースで単語を区切ります。トークン化は簡単です。
中国語にはスペースが一切ありません。
"张伟住在北京"
→ まず分割: ["张伟", "住在", "北京"]
モデルは見つけられないものにラベルを付けられません。分割はNERの前に行う必要があります。
アラビア語は単語内の文字をつなげます。短い母音は省略されます。テキストは右から左に読みます。
"محمد يعيش في دبي"
→ 短母音なし、右から左、連結した文字
2. 形態論
英語の動詞はわずかな変化しかしません。アラビア語は語根システムを使います。一つの語根から数十の単語が生まれます。
كتب (k-t-b、「書く」)
→ كاتب(作家)、كتاب(本)、مكتبة(図書館)
NERは派生語形の中に名前を見つけるために語根を解析する必要があります。
3. 名前の慣習
ラテン文字の名前は名→姓の順です。RTL言語の名前は家族関係を連鎖させます。
محمد بن عبد الله
(ムハンマド・イブン・アブドゥッラー)
中国語の名前は姓が先に来ます。ほとんどの名前は2〜3文字です。
张伟(张 Wei)— 2文字
欧阳修(Ouyang 修)— 3文字
西洋の名前パターンで構築されたモデルは、これらの構造を見逃します。
4. テキストの方向
一部の言語は右から左に書きます。RTLテキストに英語の名前が含まれる場合、視覚的な順序と論理的な順序が異なります。これをBiDiテキストと呼びます。正確な解析が必要です。
書記システム別F1スコア
| 言語 | 書記システム | F1範囲 | 難易度 |
|---|---|---|---|
| 英語 | ラテン文字 | 85〜92% | 低 |
| ドイツ語 | ラテン文字 | 82〜88% | 低 |
| フランス語 | ラテン文字 | 80〜87% | 低 |
| スペイン語 | ラテン文字 | 81〜86% | 低 |
| ロシア語 | キリル文字 | 75〜83% | 中 |
| アラビア語 | アブジャド | 55〜75% | 高 |
| 中国語 | 漢字 | 60〜78% | 高 |
| 日本語 | 混合 | 65〜80% | 高 |
| タイ語 | タイ文字 | 50〜70% | 非常に高 |
| ヒンディー語 | デーヴァナーガリー | 60〜75% | 高 |
ラテン文字以外の書記システムと単語の区切りの欠如は、一貫してスコアを下げます。
3層ソリューション
48の言語と書記システムをカバーするために3層を使用しています。
第1層:spaCy — 25言語
強力なモデルを持つ言語向け。英語、ドイツ語、フランス語、スペイン語、イタリア語、ポルトガル語、オランダ語、ポーランド語、ロシア語、ギリシャ語をカバーします。
第2層:Stanza — 複雑な言語
Stanford Stanzaはアラビア語、中国語、日本語、韓国語を処理します。NERの前に単語分割と語根分析を実行します。
第3層:XLM-RoBERTa — 低リソース言語
専用モデルがない言語向け。タイ語、ベトナム語、ヒンディー語、ベンガル語、ヘブライ語、トルコ語、ファルシー語が対象です。明示的な言語フラグなしで混合テキストを処理します。
RTLとBiDi
右から左へのテキストには、分割を超えた追加ステップが必要です。
パイプラインの処理:
- テキストを論理順序に正規化する。
- その順序でNERを実行する。
- エンティティの位置を視覚的な順序にマッピングする。
NERの前に付属する接頭辞を取り除き、後で再び付け加えます。
"محمد" — 名前のみ
"لمحمد" — 「ムハンマドへ」(接頭辞あり)
コードスイッチング
実際の文書では、1行の中で言語が混在することがよくあります。
"El meeting con John es at 3pm"
"我今天跟John去shopping"
パイプラインは言語ごとに分割します。各部分に適したモデルを実行します。その後、位置マッピングで結果を結合します。
内部ベンチマーク
混合言語データの内部テスト結果:
| シナリオ | F1 |
|---|---|
| 英語のみ | 91% |
| ドイツ語のみ | 88% |
| アラビア語のみ | 79% |
| 中国語のみ | 81% |
| 英語・アラビア語混合 | 83% |
| 英語・中国語混合 | 84% |
| 英語・ドイツ語混合 | 89% |
設定メモ
デスクトップアプリはドキュメントごとに言語を自動検出します。混合ファイルの場合、各セグメントを適切なモデルで処理します。手動の操作は不要です。
言語がわかっている場合はAPIで指定します:
{
"text": "محمد بن عبد الله",
"language": "ar"
}
不明な場合は自動検出を使用します:
{
"text": "محمد بن عبد الله",
"language": "auto"
}
カスタムパターンはロケール固有の数字に対応する必要があります:
# ラテン文字の従業員ID
EMP-[0-9]{6}
# アラビア語の従業員ID(アラビア・インド数字を含む)
موظف-[٠-٩0-9]{6}
エンティティの完全なリストをご覧ください。APIの設定については、API機能ページをご覧ください。GDPRコンプライアンスガイドでは、検出ギャップがデータ保護法に与える影響を説明しています。
anonym.legalは、spaCy、Stanza、XLM-RoBERTaの3層NERスタックを使用して、48言語で一貫した個人情報検出を実現しています。