ترجمة الكل: أتمتة الترجمة الدفعية لأنواع الملفات المتعددة باستخدام AWS CloudFormation

عقدة المصدر: 834942

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

في 29 يوليو 2020 ، أعلنت AWS عن ذلك ترجمة أمازون الآن يدعم مستندات Microsoft Office، بما في ذلك docx. و xlsx. و pptx.

العالم مليء بالدول والمدن ثنائية اللغة مثل هونغ كونغ. أجد نفسي دائمًا بحاجة إلى إعداد مستندات Office وشرائح العروض التقديمية باللغتين الإنجليزية والصينية. في السابق ، كان إعداد المستندات المترجمة يدويًا يستغرق وقتًا طويلاً ، ويمكن أن يؤدي هذا الأسلوب أيضًا إلى المزيد من الأخطاء. إذا حاولت تحديد الكل ونسخه ولصقه في أداة الترجمة ، ثم نسخ النتيجة ولصقها في ملف جديد ، أفقد كل التنسيقات والصور! كانت طريقي القديم هو نسخ المحتوى قطعة قطعة ، وترجمته ، ثم نسخه ولصقه في المستند الأصلي ، مرارًا وتكرارًا. يعد الدعم الجديد لمستندات Office في Amazon Translate خبرًا رائعًا للمعلمين مثلي. إنه يوفر عليك الكثير من الوقت!

ومع ذلك ، يتعين علينا فرز المستندات حسب أنواع الملفات الخاصة بها واستدعاء Amazon Translate بشكل منفصل لأنواع الملفات المختلفة. على سبيل المثال ، إذا كانت لدي ملاحظات في ملفات .docx ، وعروض تقديمية في ملفات .pptx ، وبيانات في ملفات .xlsx ، فلا يزال يتعين علي فرزها حسب نوع ملفها وإرسال استدعاءات TextTranslation مختلفة. في هذا المنشور ، أعرض كيفية فرز المحتوى حسب نوع المستند وإجراء مكالمات ترجمة مجمعة. يعمل هذا الحل على أتمتة المهمة غير المتمايزة لفرز الملفات.

بالنسبة لسير العمل الخاص بي ، أحتاج إلى تحميل جميع مواد الدورة التدريبية الخاصة بي في ملف واحد خدمة تخزين أمازون البسيطة (Amazon S3) دلو. غالبًا ما تتضمن هذه الحاوية أنواعًا مختلفة من الملفات في مجلد واحد ومجلدات فرعية.

ومع ذلك ، عندما أبدأ وظيفة Amazon Translate على وحدة التحكم ، يجب أن أختار نوع محتوى الملف. تنشأ المشكلة عندما تكون أنواع الملفات المختلفة في مجلد واحد بدون مجلدات فرعية.

لذلك ، طور فريقنا حلاً أطلقنا عليه اسم Translate All - وهو تطبيق بسيط بدون خادم AWS لحل هذه التحديات وتسهيل التكامل مع المشاريع الأخرى. البنية التي لا تحتوي على خادم هي طريقة لإنشاء التطبيقات والخدمات وتشغيلها دون الحاجة إلى إدارة البنية التحتية. لا يزال تطبيقك يعمل على الخوادم ، ولكن تتم إدارة الخادم بالكامل بواسطة AWS. لم تعد مضطرًا إلى توفير الخوادم وتوسيع نطاقها وصيانتها لتشغيل التطبيقات وقواعد البيانات وأنظمة التخزين. لمزيد من المعلومات حول الحوسبة بدون خادم ، راجع بدون خادم على AWS.

حل نظرة عامة

نستخدم خدمات AWS التالية لتشغيل هذا الحل:

  • AWS لامدا - تتيح لك خدمة الحوسبة بدون خادم هذه تشغيل التعليمات البرمجية دون توفير أو إدارة الخوادم ، أو إنشاء منطق مجموعة مدرك لأحمال العمل ، أو الحفاظ على تكامل الأحداث ، أو إدارة أوقات التشغيل. باستخدام Lambda ، يمكنك تشغيل التعليمات البرمجية لأي نوع من التطبيقات أو الخدمات الخلفية تقريبًا - وكل ذلك بدون إدارة.
  • خدمة إعلام أمازون البسيطة - Amazon SNS هي خدمة مراسلة مُدارة بالكامل لكل من الاتصالات من تطبيق إلى تطبيق (A2A) والتواصل من تطبيق إلى شخص (A2P). توفر وظيفة النشر / الفرعية A2A موضوعات للمراسلة عالية الإنتاجية ، والمستندة إلى الدفع ، والمراسلة من أطراف إلى عدة بين الأنظمة الموزعة ، والخدمات المصغرة ، والتطبيقات التي لا تعتمد على خادم.
  • خدمة Amazon Simple Queue Service - Amazon SQS هي خدمة ترتيب رسائل مُدارة بالكامل تتيح لك فصل الخدمات المصغرة والأنظمة الموزعة والتطبيقات التي لا تحتوي على خادم وتوسيع نطاقها. تقضي Amazon SQS على التعقيد والنفقات العامة المرتبطة بإدارة وتشغيل البرامج الوسيطة الموجهة للرسائل ، وتمكن المطورين من التركيز على تمييز العمل.
  • وظائف خطوة AWS - يسهّل منظم الوظائف بدون خادم هذا تسلسل وظائف Lambda وخدمات AWS المتعددة في تطبيقات الأعمال المهمة. من خلال واجهته المرئية ، يمكنك إنشاء وتشغيل سلسلة من تدفقات العمل المحكومة بالأحداث والموجودة في نقاط التحقق والتي تحافظ على حالة التطبيق. يعمل ناتج خطوة واحدة كمدخل للخطوة التالية. يتم تشغيل كل خطوة في التطبيق الخاص بك بالترتيب ، كما هو محدد بواسطة منطق عملك.

في حلنا ، إذا تم إرسال رسالة JSON إلى قائمة انتظار SQS ، فإنها تقوم بتشغيل وظيفة Lambda لبدء جهاز حالة Step Functions (انظر الرسم البياني التالي).

تتضمن آلة الحالة الخطوات عالية المستوى التالية:

  1. في مرحلة Copy to Type Folder ، تحصل آلة الحالة على جميع المفاتيح تحتها InputS3Uri ونسخ كل نوع من أنواع الملفات في مجلد فردي خاص بنوع معين. في حالة وجود المجلدات الفرعية ، يتم استبدال / بـ _ForwardSlash_.

تُظهر لقطة الشاشة التالية رمز هذه الخطوة.

تُظهر لقطة الشاشة التالية ملفات الإخراج.

  1. تقوم مرحلة الخريطة المتوازية بترتيب البيانات وفقًا لـ contentTypes ويبدأ سير عمل الترجمة بالتوازي.

  1. حلقات سير عمل بدء مهمة الترجمة لحالة الإكمال حتى تكتمل جميع مهام الترجمة.
  2. في مرحلة Copy to Parent Folder ، تعيد آلة الخطوة بناء بنية مجلد الإدخال الأصلي وتقوم بإنشاء عنوان URL موقّع يظل صالحًا لمدة 7 أيام.
  3. تنشر المرحلة النهائية النتائج على Amazon SNS.

اعتبارات إضافية

عند تنفيذ هذا الحل ، ضع في اعتبارك ما يلي:

  • حتى كتابة هذه السطور ، نتعامل فقط مع المسار السعيد ونفترض أن جميع الوظائف في حالة مكتملة في النهاية
  • المدة القصوى الافتراضية لإكمال العمل هي 180 دقيقة ؛ يمكنك تغيير NumberOfIteration متغير لتمديده حسب الحاجة
  • لا يمكنك استخدام الكلمات المحجوزة لاسم الملف أو اسم المجلد: !!plain!!, !!html!!, !!document!!, !!presentation!!, !!sheet!!, !!document!!الطرق أو -_ForwardSlash_-

انشر الحل

لنشر هذا الحل ، أكمل الخطوات التالية:

  1. فتح رابط مستودع التطبيقات بدون خادم.
  2. أختار أقر بأن هذا التطبيق ينشئ أدوارًا مخصصة لـ IAM.
  3. اختار نشر.

  1. عندما تظهر وحدة تحكم AWS CloudFormation ، لاحظ معلمات الإدخال والإخراج في ملف النواتج

اختبر المحلول

في هذا القسم ، نوجهك خلال استخدام التطبيق.

  1. على وحدة تحكم Amazon SQS ، اشترك في بريدك الإلكتروني في TranslateCompletionSNSTopic .
  2. تحميل جميع الملفات في المجلد InputBucket.
  3. إرسال رسالة إلى TranlateQueue. انظر رمز المثال التالي:
{ "JobName": "testing", "InputBucket": "//enter your InputBucket from the CloudFormation console//", "InputS3Uri": "test", "OutputBucket": "//enter your OutputBucket from the CloudFormation console//", "SourceLanguageCode": "en", "TargetLanguageCodes": [ "zh-TW" ] } 

تتلقى نتيجة وظيفة الترجمة على شكل بريد إلكتروني.

يحتوي البريد الإلكتروني على عنوان URL محدد مسبقًا مع فترة صالحة لمدة 7 أيام. يمكنك مشاركة الملف المترجم دون الحاجة إلى تسجيل الدخول إلى ملف وحدة تحكم إدارة AWS.

وفي الختام

باستخدام هذا الحل ، تمكنت أنا وزملائي من حل مشكلة ترجمة مواد الدورة التدريبية بسهولة. لقد وفرنا الكثير من الوقت مقارنة بفتح الملفات واحدًا تلو الآخر والنسخ واللصق بشكل متكرر. جودة الترجمة جيدة وتقضي على احتمال حدوث أخطاء قد تأتي غالبًا مع تدفقات عمل يدوية غير متمايزة. الآن يمكننا فقط استخدام واجهة سطر الأوامر AWS (AWS CLI) لتشغيل أمر مزامنة Amazon S3 لتحميل ملفاتنا في حاوية S3 وترجمة جميع مواد الدورة التدريبية مرة واحدة. لقد أدى استخدام هذه الأداة للاستفادة من مجموعة من خدمات AWS القوية إلى تمكين فريقي من قضاء وقت أقل في معالجة مواد الدورة التدريبية والمزيد من الوقت في تعليم الجيل التالي من محترفي تكنولوجيا السحابة!

يشمل المتعاونون في المشروع مايك نج، Technical Program Intern في AWS، براين تشيونج, سام لامو قانون لؤلؤي من IT114115 الدبلوم العالي في إدارة السحابة ومركز البيانات. تم تحرير هذا المنشور مع جريج راشنغمساهمة.

المحتوى والآراء الواردة في هذا المنشور تخص مؤلف الطرف الثالث ولا تتحمل AWS مسؤولية محتوى هذا المنشور أو دقته.


عن المؤلف

سايروس وونغ هي عالمة بيانات في مركز الابتكار السحابي في قسم تكنولوجيا المعلومات في معهد هونغ كونغ للتعليم المهني (لي واي لي). لقد حصل على جميع شهادات AWS الـ 13 ويعمل بنشاط على الترويج لاستخدام AWS في مختلف وسائل الإعلام والأحداث. حصلت مشاريعه على أربع جوائز من هونغ كونغ لتكنولوجيا المعلومات والاتصالات في 2014 و 2015 و 2016 ، وجميع المشاريع الفائزة تعمل فقط على AWS مع علوم البيانات والتعلم الآلي.

المصدر: https://aws.amazon.com/blogs/machine-learning/translate-all-automating-multiple-file-type-batch-translation-with-aws-cloudformation/

الطابع الزمني:

اكثر من AWS مدونة التعلم الآلي