বহুভাষিক NER: PII শনাক্তকরণে চ্যালেঞ্জ
২০২৬ সালের জন্য আপডেট করা হয়েছে
নির্ভুলতার ব্যবধান
ইংরেজিতে প্রশিক্ষিত NER মডেল স্ট্যান্ডার্ড পরীক্ষায় ৮৫–৯২% F1 পায়। সেই মডেলগুলোই আরবি বা চীনা টেক্সটে প্রয়োগ করুন। নির্ভুলতা ৫০–৭০%-এ নেমে আসে।
PII কাজের জন্য এই ব্যবধান সমস্যা। ৭০% হিট রেট মানে ৩০% সংবেদনশীল ডেটা অদেখা থেকে যাচ্ছে।
কারণগুলো বাগ নয়। এগুলো আসে লিখন পদ্ধতির পার্থক্য থেকে।
চারটি মূল কারণ
১. শব্দের সীমানা
ইংরেজি শব্দগুলো স্পেস দিয়ে ভাগ হয়। টোকেনাইজেশন সহজ।
চীনা ভাষায় কোনো স্পেস নেই।
"张伟住在北京"
→ প্রথমে ভাগ করুন: ["张伟", "住在", "北京"]
মডেল যা খুঁজে পায় না তা ট্যাগ করতে পারে না। NER-এর আগে বিভাজন আসতে হবে।
আরবি ভাষায় একটি শব্দের মধ্যে অক্ষর যুক্ত থাকে। সংক্ষিপ্ত স্বরবর্ণ বাদ দেওয়া হয়। টেক্সট ডান থেকে বামে চলে।
"محمد يعيش في دبي"
→ সংক্ষিপ্ত স্বরবর্ণ নেই, ডান থেকে বামে, যুক্ত অক্ষর
২. রূপতত্ত্ব
ইংরেজি ক্রিয়া কয়েকভাবে পরিবর্তিত হয়। আরবি একটি মূল পদ্ধতি ব্যবহার করে। একটি মূল থেকে ডজন ডজন শব্দ তৈরি হয়।
كتب (k-t-b, "লেখা")
→ كاتب (লেখক), كتاب (বই), مكتبة (গ্রন্থাগার)
NER-কে উদ্ভূত শব্দ রূপে নাম খুঁজতে মূল বিশ্লেষণ করতে হবে।
৩. নামের রীতি
ল্যাটিন নাম প্রথম নাম তারপর পদবি হয়। RTL ভাষায় নাম পারিবারিক সংযোগ তৈরি করে।
محمد بن عبد الله
(মুহাম্মাদ পুত্র আব্দুল্লাহ)
চীনা নামে পরিবারের নাম আগে আসে। বেশিরভাগ নাম দুই বা তিনটি অক্ষরের।
张伟 (Zhang Wei) — ২টি অক্ষর
欧阳修 (Ouyang Xiu) — ৩টি অক্ষর
পশ্চিমা নামের ধাঁচে তৈরি মডেল এই কাঠামো মিস করবে।
৪. টেক্সটের দিক
কিছু ভাষা ডান থেকে বামে চলে। RTL টেক্সটে ইংরেজি নাম থাকলে দৃশ্যমান ক্রম এবং যৌক্তিক ক্রম আলাদা হয়ে যায়। এটাকে BiDi টেক্সট বলে। এটি যত্নসহকারে পার্সিং দরকার করে।
লিখন পদ্ধতি অনুযায়ী F1 স্কোর
| ভাষা | লিখন পদ্ধতি | F1 পরিসীমা | স্তর |
|---|---|---|---|
| ইংরেজি | ল্যাটিন | ৮৫–৯২% | কম |
| জার্মান | ল্যাটিন | ৮২–৮৮% | কম |
| ফরাসি | ল্যাটিন | ৮০–৮৭% | কম |
| স্প্যানিশ | ল্যাটিন | ৮১–৮৬% | কম |
| রাশিয়ান | সিরিলিক | ৭৫–৮৩% | মাঝারি |
| আরবি | আবজাদ | ৫৫–৭৫% | উচ্চ |
| চীনা | হানজি | ৬০–৭৮% | উচ্চ |
| জাপানি | মিশ্র | ৬৫–৮০% | উচ্চ |
| থাই | থাই | ৫০–৭০% | অত্যন্ত উচ্চ |
| হিন্দি | দেবনাগরী | ৬০–৭৫% | উচ্চ |
অ-ল্যাটিন পদ্ধতি এবং শব্দের ব্যবধানের অনুপস্থিতি সব জায়গায় স্কোর কমিয়ে দেয়।
তিন-স্তরের সমাধান
আমরা ৪৮টি ভাষা এবং লিখন পদ্ধতি কভার করতে তিনটি স্তর ব্যবহার করি।
স্তর ১: spaCy — ২৫টি ভাষা
শক্তিশালী, পরীক্ষিত মডেল সহ ভাষার জন্য। ইংরেজি, জার্মান, ফরাসি, স্প্যানিশ, ইতালিয়ান, পর্তুগিজ, ডাচ, পোলিশ, রাশিয়ান এবং গ্রিক কভার করে।
স্তর ২: Stanza — জটিল ভাষা
Stanford Stanza আরবি, চীনা, জাপানি এবং কোরিয়ান সামলায়। NER-এর আগে শব্দ বিভাজন এবং মূল বিশ্লেষণ চালায়।
স্তর ৩: XLM-RoBERTa — কম-সম্পদের ভাষা
নিবেদিত মডেল নেই এমন ভাষার জন্য। থাই, ভিয়েতনামী, হিন্দি, বাংলা, হিব্রু, তুর্কি এবং ফার্সি এখানে যায়। কোনো স্পষ্ট ফ্ল্যাগ ছাড়াই মিশ্র-ভাষার টেক্সট সামলায়।
RTL এবং BiDi
ডান থেকে বামে লেখা টেক্সটে বিভাজনের বাইরে অতিরিক্ত ধাপ দরকার।
আমাদের পাইপলাইন:
- টেক্সটকে যৌক্তিক ক্রমে নর্মালাইজ করে।
- সেই ক্রমে NER চালায়।
- সত্তার অবস্থান দৃশ্যমান ক্রমে ফিরিয়ে দেয়।
NER-এর আগে সংযুক্ত উপসর্গ সরিয়ে দেয় এবং পরে যোগ করে দেয়।
"محمد" — শুধু নাম
"لمحمد" — "মুহাম্মাদের কাছে" (উপসর্গ আছে)
কোড-সুইচিং
বাস্তব ডকুমেন্টে প্রায়ই এক লাইনে একাধিক ভাষা মিশ্রিত থাকে।
"El meeting con John es at 3pm"
"我今天跟John去shopping"
আমাদের পাইপলাইন ভাষা অনুযায়ী ভাগ করে। প্রতিটি অংশে সঠিক মডেল চালায়। তারপর অবস্থান ম্যাপিং সহ ফলাফল যোগ করে।
অভ্যন্তরীণ বেঞ্চমার্ক
মিশ্র-ভাষার ডেটায় অভ্যন্তরীণ পরীক্ষার ফলাফল:
| পরিস্থিতি | F1 | |----------|----|| | শুধু ইংরেজি | ৯১% | | শুধু জার্মান | ৮৮% | | শুধু আরবি | ৭৯% | | শুধু চীনা | ৮১% | | ইংরেজি-আরবি মিশ্র | ৮৩% | | ইংরেজি-চীনা মিশ্র | ৮৪% | | ইংরেজি-জার্মান মিশ্র | ৮৯% |
সেটআপ নোট
Desktop App প্রতিটি ডকুমেন্টে স্বয়ংক্রিয়ভাবে ভাষা শনাক্ত করে। মিশ্র-ভাষার ফাইলের জন্য, প্রতিটি অংশ সঠিক মডেল দিয়ে প্রক্রিয়া করা হয়। কোনো ম্যানুয়াল ধাপ দরকার নেই।
জানা থাকলে API-এ ভাষা সেট করুন:
{
"text": "محمد بن عبد الله",
"language": "ar"
}
অজানা থাকলে অটো-ডিটেক্ট ব্যবহার করুন:
{
"text": "محمد بن عبد الله",
"language": "auto"
}
কাস্টম প্যাটার্নে লোকেল-নির্দিষ্ট সংখ্যা কভার করা উচিত:
# ল্যাটিন কর্মচারী আইডি
EMP-[0-9]{6}
# আরবি কর্মচারী আইডি (আরবি-ইন্দিক সংখ্যা সহ)
موظف-[٠-٩0-9]{6}
সম্পূর্ণ সত্তার তালিকা দেখুন। API সেটআপের জন্য API ফিচার পেজ দেখুন। আমাদের GDPR সম্মতি গাইড কভার করে কীভাবে শনাক্তকরণের ব্যবধান ডেটা সুরক্ষা আইনকে প্রভাবিত করে।
anonym.legal ৪৮টি ভাষায় সামঞ্জস্যপূর্ণ PII শনাক্তকরণের জন্য তিন-স্তরের NER স্ট্যাক — spaCy, Stanza, এবং XLM-RoBERTa — ব্যবহার করে।