كيف تكتب مترجمك الخاص

تتحدث داريا روديونوفا ، خريجة مركز CS في عام 2018 ، عن حرفي: ما هو ، وما هي أساليب الترجمة الحرفية ، وكيفية إنشاء مترجم خاص بك وكيفية تحسين النموذج.

الحرفي عبارة عن ترجمة بيانية لكلمة من أبجدية إلى أخرى ، بشرط أن يكون لدينا جدول مراسلات لعلامات نظام إلى آخر. في الواقع ، ما الذي لا تذكره حروف اللغة بمترجم مبسط؟ اللغات هنا هي أبجديات ويتم تبسيط العدد المحتمل لقواعد الترجمة إلى أربعة قواعد مهمة:

  • واحد لواحد: B → B ، R → P ، P → P
  • واحد لكثير: Y → FIRST
  • متعدد إلى واحد: SCH → U ، CH → H ، YU → U
  • كثير إلى كثير: يعتمد على السياق ، على سبيل المثال IE -> IE

حتى وقت قريب ، تم كتابة جميع Runet باللغة اللاتينية. بعد ذلك ، لم يكن لدى جميع الأجهزة تخطيط سيريلي متاح ، لكن ASCII كانت في المقدمة - في حين أن الترميزات لم تستطع معالجة السيريلية. نتيجة لذلك ، بدلاً من رسالة باللغة الروسية ، تلقى المستلم abracadabra.

منذ 15 عامًا ، عندما أصبحت الأبجدية السيريلية متوفرة على الهواتف المحمولة ، استمر تلقي رسائل SMS باللغة اللاتينية من مشغلي شبكات الهاتف النقال. لن أخفي أنني قمت بفك تشفير هذه الرسائل بسرور :) والآن غالبًا ما يتطابق الناس مع الحروف اللاتينية في المنتديات أو في غرف الدردشة ، لأنه لا توجد لوحة مفاتيح روسية في متناول اليد.

لماذا هناك حاجة إلى الحروف التلقائي


عادة ما يتحدثون عن النقل المباشر للكلمات الروسية إلى الأبجدية اللاتينية. عندما تحتاج إلى ترجمة الأسماء الجغرافية أو أسماء المستندات الأجنبية والمقالات العلمية.

عكس الحروف هي تحويل كلمة في اللاتينية إلى كلمة في السيريلية. هناك حاجة في العديد من المجالات ، لذلك في كل منها ، مع مرور الوقت ، ظهر معيار. والآن ، هناك العديد من المعايير في آن واحد ، والتي يتم بها ترجمة الكلمات بشكل غامض.

كثيرا ما نسمع في الأخبار عن الترجمات السخيفة وترجمات الأسماء الجغرافية. على سبيل المثال ، قد يكون الجمع بين الأحرف "sch" هو التسلسل "MF" أو الحرف "" ، كما في كلمة Schyot. حتى في المنتديات ، هناك وجهات نظر مختلفة حول كيفية كتابة الحرف "" بالأحرف اللاتينية. هناك يمكنك أيضًا العثور على غموض المجموعة "ch". يبدو أن هذا هو دائما "H"! لا ، إنها أيضًا علامة "X" في نهاية الكلمات: عادةً ما تكون الأحرف "I / S" تسبقها. وكيف ستترجم كلمة "نعم" من اللاتينية؟ في "E" أو في "S"؟ يمكن الاطلاع على مزيد من التفاصيل في مقالة "Translit بدون قواعد" .

الوصف النظري للمترجم


هذا محول طاقة ذو حالة محددة ، يتكون من عقد ، يمكن لكل منها معالجة رمز الإدخال وإنتاج مخرجات. إذا قدمنا ​​تعريفًا رسميًا ، فإن محول الطاقة يتكون من 6 مكونات (Q ، Σ ، Γ ، I ، F ، δ) ، حيث:

س - العديد من الدول
Σ - إدخال الأبجدية
output - إخراج الأبجدية
أنا مجموعة فرعية من الحالات الأولية من Q
F هي مجموعة فرعية من الحالات النهائية من Q
the هو الانتقال من Q ⨉ (Σ ⋃ {e}) إلى Q ⨉ (Γ ⋃ {e})

في الحالة العامة ، تمثل المجموعة Q عدة حالات. نكتب بعضها في واحد بسبب عدد الحروف في الأبجدية:

  • البدء ، والدولة 1 أو استبدال حرف مع شخص آخر ،
  • الدولة 2 أو استبدال أحرف متعددة مع واحد ،
  • الدولة 3 أو استبدال حرف واحد مع عدة ،
  • الدولة 4 أو استبدال مجموعة أحرف بمجموعة أحرف أخرى ، النهاية.

هل تذكر عدد قواعد الترجمة التي حددناها في بداية المقال؟ :) باسم Σ ، يتم استخدام الأبجدية اللاتينية والاقتباس الفردي للدلالة على علامة ناعمة ، وتحتوي المجموعة the على الأبجدية المستهدفة - الأبجدية السيريلية. تتكون العديد من الحالات الأولية والنهائية من أحرف أبجدية أو مجموعات من الأحرف الأبجدية ، حيث قد يحدث هذا عند تشفير الحروف H و W و U و Y و Y.

في الوقت الحاضر ، تم استخدام محول الطاقة في بعض مشاكل البرمجة اللغوية العصبية ، بما في ذلك في التحليل الصرفي للكلمات:
صورة

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

أكثر على محولات الطاقة

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

النهج الأساسية لنقل الحروف


هناك العديد من الطرق لبناء مترجم ، اثنان منها هما ML والقائم على القواعد.

ML - أي نموذج لاحقة seq إلى seq (ماركوف كقاعدة). يعتمد ذلك على مبدأ Viterbi ، عندما نقوم في نفس الوقت بتجزئة الكلمة اللاتينية والبحث عن التسلسل الأكثر احتمالا للحالات الكامنة أو المجموعات السيريلية.

الولايات هي عدد محدود من مجموعات السيريلية. الملاحظات أو تسلسل المدخلات - التوليفات اللاتينية ، التحولات - بين التوليفات اللاتينية والسريلية ، الانبعاثات (احتمالات الملاحظة بعد الانتقال إلى حالة جديدة) - احتمال التوليف اللاتيني في بعض التوليف السيريلي.

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

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

كيف يعمل؟


تتكون عملية أبسط الحروف من ثلاث خطوات:

  • نحن نتبع التسلسل ، الذي يجب ترجمته إلى اللغة الروسية.
  • نحن نبحث عن مجموعة من الأصوات في جدول الحروف الصوتية من الأصوات.
  • إذا تم العثور على الصوتيات ، فنحن نترجم الحروف الحالية ونصحح عدم توافق الحروف باستخدام التعبيرات العادية.

قد يكون لاحقا تفسير غامض بالأحرف الروسية. هذا هو المكان الذي يبدأ المتفرعة للقواعد. المزالق الرئيسية للخطوة الثالثة:

1. الترجمة الصوتية CH. في بداية الكلمة ، يمكن أن يكون Ch و X و K. في نهاية الكلمة ، يوجد أيضًا خياران: Ch و X. إن أبسط طريقة إرشادية تستخدم في التنفيذ الحالي هي وجود صوت I / S الصوتي قبل الصوت CH. قد تسأل ، لماذا نحن متأكدون أنه قبل الحرف O ، من الممكن تحويل CHR إلى XP ، وقبل و KR؟ الأمر كله يتعلق بالعثور على الكلمات التي تبدأ بجمهورية التشيك في القواميس الحالية للغة الروسية. حتى الآن ، لم يعثر أحد على الكلمات الروسية مع بداية ChRO / CRI.

2. تعلم التعرف على علامة الفصل الصلبة. في هذه الحالة ، نقوم بتجميع البادئات المحتملة في تعبير عادي ، والتحقق من الحرف التالي ، الذي يجب أن يكون حرفًا مشفرًا في حرفي (EYUYA). إذا كان كل شيء على ما يرام ، ثم وضعنا علامة قوية أمام حرف العلة. هناك أيضًا تحليلات خاطئة ، كما هو الحال مع كلمة "خدعة" ، والتي في الواقع يجب تفكيكها كـ "خدعة".

3. حيث نترجم الأصوات المحببة إلى E / E / Y / Y ، وحيث - نترك بضع حروف العلة. نحن نعلم أن حروف العلة المُعزَّلة تتبع البادئات بعد علامة صلبة مقسمة ، في الخطوة السابقة تعرفنا على آخرها. لذلك ، رسالتنا الحالية هي نفس حرف العلة. لقد حصلنا أيضًا على حرف علة مُعلّق في بداية الكلمة. بالطبع ، هنا لا يمكن القيام به دون تحليل خاطئ: IONY → JONES بدلاً من JONA. لكن مثل هذا التحليل يمكن تخفيضه. نستخدم القاموس مرة أخرى ، حيث نرى أنه في الكلمة التي تبدأ بـ IO ، عادة ما تتبع الحروف TAD. أضف هذه الملاحظة إلى قواعدنا.

4. أين هو ، وأين OH؟ هنا ، يتم تطبيق إرشادي بسيط أيضًا ، حيث يتم فحص الصوت المتسق قبل التسلسل المطلوب من الأحرف. إذا كان GDZHKTSCHShSCH ، فسنحصل على نهاية OI ، وإلا فإننا نأخذ المجموعة OY من جدول الترجمة.

كيفية تحسين هذا النموذج


  • النظر في كيفية التعرف على علامة لينة في الكلمات.
  • قم بتوصيل بعض القاموس الإلكتروني الإملائي الفعلي الذي تستند إليه الاستدلال. سيساعد ذلك في تتبع مدى ملاءمة قواعدنا ، وربما تقديم مفهوم مثل "وزن القاعدة". لذلك نحن ننتقل ببطء إلى نموذج ML.
  • استخدامها في سياق المدقق الإملائي. بالطبع ، لم تعد هذه مهمة الترجمة الصوتية ، لكن التهجئة ستساعد في الحصول على نتيجة أكثر جدوى :)

تفاصيل حرفي الدراسة الذاتية

سأكون سعيدًا للإجابة على الأسئلة الواردة في التعليقات والتفكير في تحسينات المترجم :)

Source: https://habr.com/ru/post/ar479542/


All Articles