سلسلة الترجمة الآلية – أولا: الترجمة الآلية الإحصائية Statistical Machine Translation

ماهي الترجمة الآلية؟

الترجمة الآلية هي بناء برنامج حاسوبي قادر بشكل آلي على ترجمة كلمة او نص من اللغة المصدر source language إلى اللغة الهدف target language. وهي من أشهر المهام التي يتم العمل عليه في معالجة اللغات الطبيعية الحاسوبية Computational Natural Language Processing. 

الترجمة الآلية الإحصائية Statistical Machine Translation

ماذا تعني النصوص المتوازية؟

النصوص المتوازية Parallel text تعتبر عنصراً هاماً في بناء أي مترجم ألي، وتعني جمع قدر كبير من النصوص في اللغة المصدر واللغة الهدف بحيث يكون كل سطر N في الملف الأول هو الترجمة الصحيحة للسطر N في الملف الثاني.

لبناء مترجم ألي فعّال، نحتاج إلى ملايين الأسطر المتوازية، لذلك يعتبر جمع هذه النصوص بجودة عالية من أكبر التحديات التي تواجه المطورين في هذا المجال.

يتم جمع هذه النصوص من مصادر عديدة، مثلا عناوين مقالات ويكيبيديا، او ترجمة الأفلام التي تكون متوفرة في عدة لغات، او ترجمة واجهات البرمجيات مفتوحة المصدر، وتعتبر فيديوهات Ted Talks من أكثر المصادر أهمية لجمع هذه النصوص، في الصورة التالية مثال لنص قمت بجمعه بشكل أليا من موقع Ted Talk لتطوير مترجم عربي أنكليزي للفديو التالي.

ماهي طرق الترجمة الآلية؟

يوجد عدة طرق للترجمة الآلية، الأكثر شهرة هي الإحصائية والعصبونية، سنتحدث في هذه التدوينة عن الترجمة الإحصائية.

١- الترجمة الإحصائية Statistical Machine Translation

اعتبرت الترجمة الإحصائية Statistical Machine Translation  من أشهر الطرق وأكثرها فعالية في الترجمة الآلية لمدة سنين حتى ظهور ثورة التعلم العميق  [1].

تعتمد الترجمة الآلية الإحصائية على ترجمة العبارات Phrase-based حيث يتم تقسيم الدخل (جملة او نص) إلى مجموعة من العبارات، ومن ثم يتم ترجمة كل عبارة إلى اللغة الهدف، في الغالب يتم إعادة ترتيب العبارات من الدخل إلى الخرج لكي يصبح الخرج أكثر دقة من وجهة نظر لغوية.

ترجمة إحصائية من اللغة الألمانية إلى اللغة الأنكليزية

يظهر المثال في الأعلى كيف تتم الترجمة الاحصائية من الالمانية الى الانكليزية عبر تقسيم الدخل إلى عبارات phrases ومن ثم ترجمة كل عبارة وإعادة ترتيب الخرج ليراعي قواعد اللغة الانكليزية.

يتألف المترجم الإحصائي من مكونين أساسين:

نموذج الترجمة (جدول العبارات) Phrase-Table

 يتم إنشاءه عند تدريب الخوارزمية على بيانات نصية متوازية ، يحوي الجدول جميع العبارات التي تم استخلاصها من بيانات التدريب، يقابل كل عبارة في اللغة المصدر، ترجمتها في اللغة الوجهة، مع قيمة احتمال أن تكون هذه الترجمة صحيحة (log probability) أو بمعنى مجازي، درجة الثقة لدى النموذج بأن ترجمة العبارتين صحيحة. يشار إلى هذا الاحتمال بالترجمة الألية بالاحتمال الشرطي التالي:

Probability(Translation | Source) 

يتكون جدول العبارات من ٥ مكونات اساسية مفصولة ب “|||”, وهي

  1. العبارة باللغة المصدر
  2. العبارة باللغة الهدف
  3. قيمة ال features لترجمة العبارتين: مثلا من هذه القيم, قيمة الاحتمال ان تكون الجملة المصدر هيي الترجمة عندما نعلم الجملة الهدف P(s|f) ، قيمة احتمال ان تكون الجملة الهدف هي الترجمة عندما نعلم الجملة المصدر P(f|s). 
  4. العبارة يمكن ان تحوي كلمة أو أكثر، لذلك الجزء الرابع في جدول الترجمة هي انشاء روابط بين الكلمات في العبارة المصدر والهدف word-alignment بالتنسيق التالي 1-1 أي ان الكلمة الاولى في العبارة الأولى هي ترجمة للكلمة الأولى في العبارة الثانية.

يوضح الشكل التالي جزء من جدول عبارات من مترجم ألي بين اللغتين الانكليزية والألمانية:

various symptoms are both general ||| verschieden symptom gehören allgemein ||| 1 0.0028984 1 0.034933 ||| 0-0 1-1 2-2 3-2 4-3 ||| 1 1 1 ||| |||
transmission normally occurs through ||| die virus werden normalerweise über ||| 1 0.000388334 1 0.000450179 ||| 0-0 1-1 2-2 1-3 2-3 3-3 0-4 ||| 1 1 1 ||| |||
with men has ||| mit männern haben ||| 0.333333 0.177576 0.666667 0.149211 ||| 0-0 1-1 2-2 ||| 6 3 2 ||| |||
while ||| bei etwa ||| 0.5 0.0337221 0.5 0.0625 ||| 0-0 0-1 ||| 2 2 1 ||| |||
while ||| zwar verlaufen ||| 1 0.02 0.4 0.5 ||| 0-0 0-1 || 1 1 1 ||| |||

نموذج اللغة Language Model

يعتبر نموذج اللغة مكون اساسي في الترجمة الإحصائية، يخبرنا نموذج اللغة LM  عن درجة طلاقة Fluency الترجمة لعبارة ما في اللغة الهدف.

في الترجمة الإحصائية، يخبرنا نموذج اللغة LM  عن درجة طلاقة Fluency الترجمة لعبارة ما في اللغة الهدف.

يعتبر نموذج اللغة مكون اساسييتم جمع كمية كبيرة من النص في اللغة الهدف (يدعى monolingual text اي نص في لغة واحدة) وتدريب نموذج N-gram على النص، الأكثر شهرة ان يتم إستخدام bigram او trigram. ولكن ماذا يعني bigram و trigram؟

لنفترض ان gram هو كلمة في النص، قد تكون اي كلمة او حتى اشارة ترقيم، ال unigram في نموذج اللغة يتم حسابه عن طريق إحصاء كم مرة جاءت كل كلمة في النص مع تقسيمها على عدد كلمات النص، بينما ال bigram يتم حساب كل كلمتين متتاليتين.

لنأخذ على سبيل المثال هذا الخبر من شمرا

https://shamra.sy/news/article/d732512115003a334d34fc103cf29b81

ولنستخدم موقع Ngram Analyzer لتحليل الكلمات في نص ما، بتحليل النص وتوليد unigram مع استخدام فقط الكلمات التي وردت ثلاث مرات في النص، سيظهر لنا الجدول الثالي (لاحظ ان هذا الموقع يولد تردد وليس log prob) :

نجد أن حرف الجر “في” هو الأكثر ورودا في هذا الخبر، الأن لنقم بتحليل الكلمات الثلاثية في النص وعرض الثلاثيات التي ظهرت على الأقل مرتين في النص، سيظهر لنا الجدول التالي:

ولكن كيف يفيدنا هكذا جدول في الترجمة الإحصائية؟ لنفرض اننا نريد ترجمة العبارة copa america which، نعلم ان ترجمة which إلى اللغة العربية قد يكون “التي” او “الذي”, ولكن باستخدام نموذج اللغة المولّد اعلاه، نعلم ان “كوبا أمريكا التي” هي جملة طليقة باللغة العربية أكثر من “كوبا أميركا الذي” ببساطة لان الأخيرة لم ترد في نموذج اللغة.

تتم الترجمة باستخدام مكون يدعى Decoder، يعمل كما تظهر الصورة التالية:

تستطيع الإطلاع على الرابط التالي  http://www.statmt.org/moses/، حيث ستجد مجموعة من البرمجيات مفتوحة المصدر والخطوات التي تساعدك على بناء مترجم إحصائي  خاص بك.

لا أرغب بالتوسع في الترجمة الإحصائية أكثر من ذلك لأنها لا تعتبر اليوم أفضل طريقة لتطوير نماذج ترجمة آلية، لكن اليوم تعتمد أفضل الطرق للترجمة الآلية على بعض المفاهيم المتعلقة بالترجمة الإحصائية التي يجب الإطلاع عليها.

في مقالة لاحقة, سأكتب عن أساليب أخرى للترجمة الألية، وخصوصا العصبونية Neural Machine Translation .



[1] Statistical Phrase-Based Translation