블로그로 돌아가기기술

다국어 NER: 영어로 훈련된 모델이 아랍어에서 실패하는 이유

영어 NER 모델은 85-92%의 정확도를 달성합니다. 아랍어와 중국어는? 종종 50-70%입니다. 기술적 도전 과제와 진정한 다국어 PII 탐지를 구축하는 방법에 대해 알아보세요.

February 26, 20268 분 읽기
NERmultilingualArabic NLPChinese NLPPII detection

다국어 NER 도전 과제

영어로 훈련된 명명된 개체 인식(NER) 모델은 인상적인 결과를 달성합니다—표준 벤치마크에서 85-92%의 F1 점수. 동일한 모델을 아랍어 또는 중국어에 적용하면? 정확도가 종종 50-70%로 떨어집니다.

PII 탐지의 경우, 이 격차는 중요합니다. 70%의 탐지율은 30%의 민감한 데이터가 보호되지 않는다는 것을 의미합니다.

영어 모델이 실패하는 이유

1. 단어 경계

영어: 단어는 공백으로 구분됩니다.

"John Smith lives in New York"
→ ["John", "Smith", "lives", "in", "New", "York"]

중국어: 단어 경계가 전혀 없습니다.

"张伟住在北京"
→ 먼저 분할 필요: ["张伟", "住在", "北京"]

아랍어: 단어가 연결되고 짧은 모음이 쓰이지 않습니다.

"محمد يعيش في دبي"
→ 연결된 스크립트, 오른쪽에서 왼쪽으로, 모음 생략

영어 토큰화 규칙은 전혀 적용되지 않습니다.

2. 형태론적 복잡성

영어 형태론: 상대적으로 간단합니다.

run → runs, running, ran

아랍어 형태론: 극도로 복잡합니다 (어근-패턴 시스템)

كتب (k-t-b, "write" 어근)
→ كاتب (작가), كتاب (책), مكتبة (도서관), يكتب (그는 쓴다)

하나의 아랍어 어근은 수십 개의 관련 단어를 생성합니다. NER 모델은 이 파생 시스템을 이해해야 합니다.

3. 이름 규칙

영어 이름: 이름 성

John Smith, Mary Johnson

아랍어 이름: 여러 구성 요소

محمد بن عبد الله بن عبد المطلب
(Muhammad son-of Abdullah son-of Abdul-Muttalib)

중국어 이름: 성이 먼저 나오며, 보통 2-3자입니다.

张伟 (Zhang Wei) - 2자
欧阳修 (Ouyang Xiu) - 3자

4. 스크립트 방향

영어: 왼쪽에서 오른쪽으로 (LTR) 아랍어/히브리어: 오른쪽에서 왼쪽으로 (RTL) 혼합 텍스트: 양방향 (BiDi) - 극도로 복잡합니다.

영어 이름이 아랍어 텍스트에 나타날 때:

التقيت بـ John Smith في المؤتمر
(I met John Smith at the conference)

렌더링 순서, 논리적 순서 및 표시 순서가 모두 다릅니다.

언어별 정확도

실제 NER 성능은 극적으로 다릅니다:

언어스크립트F1-점수 범위도전 수준
영어라틴85-92%낮음
독일어라틴82-88%낮음
프랑스어라틴80-87%낮음
스페인어라틴81-86%낮음
러시아어키릴75-83%중간
아랍어아랍어55-75%높음
중국어한자60-78%높음
일본어혼합65-80%높음
태국어태국어50-70%매우 높음
힌디어데바나가리60-75%높음

복잡한 형태론, 비라틴 스크립트 또는 단어 경계가 없는 언어는 지속적으로 저조한 성과를 보입니다.

anonym.legal의 3단계 접근법

우리는 세 가지 전문화된 단계로 다국어 NER을 해결합니다:

1단계: spaCy (25개 언어)

고급 리소스 언어에 대한 좋은 모델:

  • 영어, 독일어, 프랑스어, 스페인어, 이탈리아어, 포르투갈어
  • 네덜란드어, 폴란드어, 러시아어, 그리스어
  • 그리고 신뢰할 수 있는 정확도를 가진 15개 언어

2단계: Stanza (7개 언어)

복잡한 형태론을 가진 언어:

  • 아랍어 (어근-패턴 형태론)
  • 중국어 (단어 분할 필요)
  • 일본어 (여러 스크립트)
  • 한국어 (교착어)
  • 그리고 3개 언어

3단계: XLM-RoBERTa (16개 언어)

전용 모델이 없는 저급 리소스 언어:

  • 태국어, 베트남어, 인도네시아어
  • 힌디어, 벵골어, 타밀어
  • 히브리어, 터키어, 페르시아어
  • 그리고 더 많은 언어

작동 방식

언어 감지가 있는 입력 텍스트
        ↓
[언어 라우터]
        ↓
┌───────┴───────┐
↓               ↓
고급 리소스   복잡/저급 리소스
(spaCy)         (Stanza/XLM-RoBERTa)
↓               ↓
└───────┬───────┘
        ↓
[구조화된 데이터에 대한 정규 표현식 오버레이]
        ↓
[신뢰도 병합]
        ↓
최종 개체

정규 표현식 오버레이

일부 패턴은 언어에 독립적입니다:

  • 이메일 주소: [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
  • 신용 카드: \d{4}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{4}
  • 전화번호: 국가별 다양한 패턴

우리는 언어에 관계없이 구조화된 데이터에 대해 먼저 정규 표현식을 적용합니다.

RTL 스크립트 처리

오른쪽에서 왼쪽으로 읽는 언어는 특별한 처리가 필요합니다:

양방향 텍스트 알고리즘

아랍어에 영어가 포함될 때:

비주얼: المؤتمر في John Smith بـ التقيت
논리적: التقيت بـ John Smith في المؤتمر

우리의 처리:

  1. 논리적 순서로 정규화
  2. 논리적 순서에서 NER 실행
  3. 개체 위치를 시각적 순서로 다시 매핑
  4. 모든 렌더링에 대해 일관된 위치 반환

개체 경계 감지

아랍어 개체 경계는 복잡합니다:

"محمد" - 단지 이름
"لمحمد" - "to Muhammad" (부착된 전치사)
"ومحمد" - "and Muhammad" (부착된 접속사)

우리는 NER 전에 접두사를 제거하고 이후에 다시 부착합니다.

코드 스위칭

실제 텍스트는 종종 언어를 혼합합니다:

"El meeting con John es at 3pm"
(스페인어-영어 혼합)

"我今天跟John去shopping"
(중국어-영어 혼합)

우리의 접근법:

  1. 언어별로 텍스트 분할
  2. 각 세그먼트를 적절한 모델로 처리
  3. 위치 매핑으로 결과 병합

성능 벤치마크

혼합 언어 데이터 세트에 대한 내부 테스트:

시나리오F1-점수
영어만91%
독일어만88%
아랍어만79%
중국어만81%
영어-아랍어 혼합83%
영어-중국어 혼합84%
영어-독일어 혼합89%

우리의 하이브리드 접근법은 도전적인 언어에서도 높은 정확도를 유지합니다.

구현 팁

API 사용자에게

알려진 경우 언어를 지정하세요:

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

알 수 없는 경우 자동 감지를 허용하세요:

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

데스크탑 앱 사용자에게

앱은 문서별로 언어를 자동 감지합니다. 혼합 언어 파일의 경우 각 세그먼트를 적절하게 처리합니다.

사용자 정의 개체 유형에 대해

사용자 정의 패턴은 스크립트를 고려해야 합니다:

# 영어 직원 ID
EMP-[0-9]{6}

# 아랍어 직원 ID (아랍 숫자 포함)
موظف-[٠-٩0-9]{6}

결론

영어로 훈련된 NER 모델은 비영어 텍스트에서 실패하는 이유는 언어가 근본적으로 다르기 때문입니다:

  • 단어 경계 (또는 그 부족)
  • 형태론적 복잡성
  • 스크립트 방향
  • 이름 규칙

효과적인 다국어 PII 탐지를 위해서는:

  1. 복잡한 스크립트에 대한 언어별 모델
  2. 구조화된 데이터에 대한 정규 표현식 패턴
  3. 적절한 RTL/BiDi 처리
  4. 코드 스위칭 지원

anonym.legal은 48개 언어를 지원하며, 우리의 3단계 접근법을 통해 모든 언어에서 일관된 정확도를 달성합니다.

직접 시도해 보세요:


출처:

데이터 보호를 시작할 준비가 되셨나요?

48개 언어로 285개 이상의 엔티티 유형으로 PII 익명화를 시작하세요.