ترجمة المحتوى/الترجمة الآلية/عملاء الترجمة الآلية

From mediawiki.org
This page is a translated version of the page Content translation/Machine Translation/MT Clients and the translation is 85% complete.

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

متطلبات تقنية

مخطط بياني للاتصالات في حالة عميل ترجمة آلية

يمكن استضافة عميل ترجمة آلية جديد إما في صفة نظام ترجمة آلية محلي أو الوصول إلى نظام ترجمة آلية بعيد باستخدام واجهة برمجة تطبيقات. نحبّذ باستخدام الخدمات التي تستند إلى واجهات برمجة التطبيقات منذ أنها تسمح بعزلها في صفة حدمة. لو كان العميل مرخص بموجب ترخيص حر مجاني أو محزوم لأغراض توزيعات لينوكس، يمكننا التفكير جديًا في استضافته في عنقود ويكيميديا. على سبيل المثال، نستضيف Apertium في wmflabs. من ناحية أخرى، Yandex لا تستضيفه ويكيميديا. كلا من Apertium وYandex يمكن الوصول إليهما باستخدام واجهات برمجة تطبيقات عن طريق الوب.

واجهة برمجة التطبيقات للترجمة

تأخذ واجهة برمجة تطبيقات الترجمة الآلية اللغة المصدر واللغة الهدف ومحتوى المصدر وتخرج محتوى مترجم.

  • لو كانت واجهة برمجة التطبيقات غير عمومية، يمكنها قبول رموز التصديق، التي تكون في الغالب مفتاح.
  • يمكن أن تكون صيغة الخرج هي جسون لتيسير الأمور.
  • يجب أن تقبل واجهة برمجة التطبيقات أوامر POST.
  • يجب ألا تطلب واجهة برمجة التطبيقات معلومات تحدد هوية المستخدم مثل اسم المستخدم. لا يقدم CXServer تلك المعلومات إلى عميل الترجمة الآلية.
  • يجب أن تكون واجهة برمجة التطبيقات قادرة على قبول عدد معقول من الطلبات في الدقيقة.
  • يجب أن تقبل واجهة برمجة التطبيقات مقدار معقول من المحتوى لكل طلب.
  • نحبّذ وجود لوحة تحكم لتحليل استخدام واجهة برمجة التطبيقات التي تشمل عدد الطلبات لكل يوم/أسبوع/شهر وعدد المحارف المترجمة يوميًا/أسبوعيًا/شهريًا.

يجب أن تكون واجهة برمجة التطبيقات موثقة على العامة ويشمل ذلك أكواد الخطأ.

إرشادات الأداء

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

  • 10,000 طلب على الأقل يوميًا
  • 10 مليون محرف على الأقل يوميًا
  • 5000 محرف على الأقل لكل طلب

صيغة المدخلات

يكون المحتوى المطلوب الترجمة منه في CX بصيغة إتش تي إم إل. تعد ترجمة إتش تي إم إل وفي ذات الوقت الحفاظ على الوسم البرمجي تحديًا، إلا أن بعض محركات الترجمة الآلية قادرة على هذا الأمر (مثال: Yandex). لا يتعامل Apertium مع وسم إتش تي إم إل البرمجي. استنادًا إلى الإمكانات، يمكن لخادم CX إرسال نسخة نص خام أو إتش تي إم إل من المحتوى.

جودة الترجمة

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

تصميم وحدة برمجية عميلة جديدة للترجمة الآلية

أفضل طريقة لمعرفة هذا هي الرجوع إلى وحدة عميلة برمجية قائمة مثل Yandex أو Apertium. الوحدات البرمجية العميلة موجودة في مجلد lib/mt الخاص بخادم cxserver. لما لا نطلق على عميلنا اسم BabelFish MT Client. أنشئ ملف باسم BabelFish.js في مجلد lib/mt.

const MTClient  = require( './MTClient.js' );

<!--T:33-->
// Class constructor
class BabelFish extends MTClient {
    /**
     * Translate content with BabelFish
     *
     * @param {string} sourceLang Source language code
     * @param {string} targetLang Target language code
     * @param {string} content Source language content
     * @return {Promise} Translated text
     */
    translate( sourceLang, targetLang, content ) {
        // Add your API request to the service. return a Promise object.
    }
}
module.exports = BabelFish;

لو كانت خدمة BabelFish لديك غير قادرة على ترجمة إتش تي إم إل عن طريق إبقاء كافة الوسم البرمجية في مكانها الملائم في الترجمة، بدلا من translate، سوف يتعين عليك كتابة طريقة translateText في الكود سالف الذكر. ارجع إلى Apertium.js لهذا المثال. إن Yandex.js مثال على عميل ترجمة آلية قادر على التعامل مع المحتوى بكلا من إتش تي إم إل ونص صرف.

يجب عليك إضافة مدخلة في lib/mt/index.js لعميلك الجديد.

كي تربط زوج لغوي كي يستخدم هذا العميل، أنشئ ملف ضبط في مجلد الضبط. يجوز لط الرجوع إلى ملفات الضبط القائمة مثالًا على ذلك. مكّن بعد ذلك محرك الترجمة الآلية في cxserver وconfig.yaml. اتبع هنا أيضًا المدخلات القائمة مثالًا على ذلك.

أعد تشغيل #1 واختبر عميلك. ربما ترغب في الاطلاع على بعض اختبارات الوحدات القائمة لعميل Apertium كي تكتب اختباراتك الخاصة.

عملاء الترجمة الآلية

القائمة التالية هي عملاء ترجمة آلية تساند ترجمة المحتوى بلغات مختلفة: