অপের্তিউম নতুন ভাষা জোড়া তে হয় কিভাবে

From Apertium
Jump to navigation Jump to search

আপেরটিউমে নতুন ভাষার জুড়ি কি করে করতে হয়

এই ডকুমেন্টটি বর্ণনা করবে কিভাবে নতুন ভাষার জুড়ি অপের্তিউম মেশিন অনুবাদ পদ্ধতির জন্য শুরু করতে হবে এটি আপনার ভাষার বা মেশিনে অনুবাদের অভীগতা সম্বন্ধে কোন ধারণা করে না.

ভূমিকা

আপেরটিউম একটি মেশিন অনুবাদ প্লাটফোর্ম| এটি আপনাকে একটি এঞ্জিন এবং যন্ত্র দিয়ে দেবে যা দিয়ে আপনি নিজের অনুবাদ সিস্টম বানাতে পারবেন|আপনাকে শুধু নিজের ডেটা লিখতে হবে| এখানে ডেটা মৌলিক স্তরে, গঠিত হয়, তিনটি অভিধান এবং অল্প কিছু নিয়মের দ্বারা| আরও বেশি পুঙ্খানুপুঙ্খ ভূমিকার জন্য প্রকাশনা পাতায় কিছু সর্বোৎকৃষ্ট কাগজ আছে|

আপনার প্রয়োজন পড়বে

  • lttoolbox (>= 3.0.0)
  • libxml utils (xmllint ইত্যাদি)
  • apertium (>= 3.0.0)
  • একটি লেখা সম্পাদক (অথবা একটি specialised XML editor যদি আপনি পছন্দ করে)

এই প্যাকেজ ইনস্টল করতে হবে কিভাবে, এই ডকুমেন্টটি তা বর্ণনা করবে না , আরও বেশি তথ্যের জন্য দয়া করে অ্যাপারটিায়াম ওয়েবসাইটের ডকুমেনটেশন অংশ দেখুন।

অপের্তিউমএ একটি ভাষা জোড়ার গঠন

অপের্তিউম একটি অগভীর স্থানান্তর ধরন মেশিন অনুবাদ পদ্ধতি। সুতরাং, এইটি অভিধান এবং অগভীর স্থানান্তর নিয়মে প্রাথমিকভাবে কাজ করে। অপারেশনে, অগভীর স্থানান্তর সেই এইটি পূর্ণ সিন্তাচ্তিক পার্সিং টিতে গভীর স্থানান্তর থেকে আলাদা করা হয় না, নিয়ম পার্স গাছগুলি ক্রিয়াকর্মের চেয়ে লেক্সাল একক, বরংএর দলে ক্রিয়াকর্ম সাধারণভাবে আছে। একটি মৌলিক স্তরে, তিন প্রধান অভিধান আছে:

  1. ভাষা xxএর জন্য মর্ফলোগিকাল শব্দভাণ্ডার: এইটি ের নিয়ম ধারণ করে ভাষা xxতে যেমন শব্দ ইন্ফ্লেচ্ত ওয়া হয়। আমাদের উদাহরণ এইতেটি ডাক দেওয়া হবে: apertium-sh-en.sh.dix
  2. ভাষা yyএর জন্য ইন্ফ্লেচ্ত শব্দভাণ্ডার: এইটি ের নিয়ম ধারণ করে ভাষা yyতে যেমন শব্দ ইন্ফ্লেচ্ত ওয়া হয়। আমাদের উদাহরণ এইতেটি ডাক দেওয়া হবে: apertium-sh-en.en.dix
  3. দুই ভাষা শব্দভাণ্ডার: দুই ভাষাতে শব্দ এবং চিহ্নের মধ্যে যোগাযোগ ধারণ করে। আমাদের উদাহরন এইতেটি ডাক দেওয়া হবে: apertium-sh-en.sh-en.dix

একটি অনুবাদ জোড়াতে, উভয় ভাষা অনুবাদের জন্য হয় উৎ‍স অথবা লক্ষ্য, এইগুলি আপেক্ষিক শর্তাবলী আছে। স্থানান্তর নিয়মের জন্য ও দুই ফাইল আছে। এইগুলি নিয়ম আছে যে শাসন করে যেমন শব্দ বাক্য, উদাঃ chat noir -> cat black -> black cat. এইটি লিঙ্গের চুক্তি ও শাসন করে, সংখ্যা ইত্যাদি নিয়ম ভিতরে ঢোকেতে ও ব্যবহার করা যাবে অথবা লেক্সাল পদগুলো মুছে ফেলুন, হিসেবে হ বর্ণনা কর পরবর্তী কালে। এই ফাইল আছে:

  • ভাষা yy স্থানান্তর নিয়মে ভাষা xx: এই ফাইলটি ের জন্য নিয়ম ধারণ করে যেমন ভাষা xx ভাষা yyএর দিকে পরিবর্তন করা হবে। আমাদের উদাহরণ এইতেটি হবে: apertium-sh-en.sh-en.t1x
  • ভাষা স্থানান্তর নিয়ম xxতে ভাষা yy: এই ফাইলটি ের জন্য নিয়ম ধারণ করে যেমন ভাষা yy ভাষা xxএর দিকে পরিবর্তন করা হবে। আমাদের উদাহরণ এইতেটি হবে: apertium-sh-en.en-sh.t1x

ভাষা জোড়া বর্তমানে প্রাপ্তিসাধ্য আছে অন্যান্য ফাইলের অনেক, কিন্তু আমরা তাদেরকে এখানে ঢাকা দিই না। এই ফাইল একটি কাজ করছে পদ্ধতি উৎ‍পাদন করতে কেবল এক প্রয়োজন বোধ করে।

ভাষা জোড়া

ফাইল এর নাম গুলো দেখে হয়তো বুঝতে পেরেছেন যে এই ডকুমেন্টটি Serbo-Croatian থেকে English ওনুবাদ করার উদাহরণ ব্যাবহার করবে একটি মৌলিক পদ্ধতি তৈরি করতে কিভাবে বোঝানোর জন্য| ইটি একটি আদর্শ জোড়া নয়, কারণ এই সিস্টম আরও বেশি কাছাকাছি সম্পর্কিত ভাষার জন্য ভাল কাজ করে।যদিও নীচে দেওয়া উদাহরণ এর জন্য কোনো ভাবে সমস্যা হয়ে দাড়াবে না|

শর্তাবলী একটি সংক্ষিপ্ত নোট

কিছু শর্তাবলীর আছে যা আমাদের পূর্বেই বোঝার প্রয়োজন আছে| প্রথম লেমা| লেমা একটি কথার উদ্ধৃতি আকার। এইটি যেকোন ব্যাকরণগত তথ্যের কথা জানায় না| উদাহরণের জন্য, কথা বিড়ালের লেমা বিড়াল। ইংরেজী নাউন্স এ এটি সিনগুলার হেসেবে ধরা হবে | ক্রিয়াপদের জন্য, লেমা তে ইন্ফিনিটী বাদ দেওয়া হয়, উদাহরণে was এর লেমা হলো be |

দ্বিতীয় চিহ্ন। Apertium পদ্ধতির প্রসঙ্গে, চিহ্ন একটি ব্যাকরণগত লেবেলে উল্লেখ করে। কথা বিড়াল একটি plural noun, এটিতে অতএব noun চিহ্ন এবং plural চিহ্ন থাকবে। Apertium মডিউল এ ইনপুট এবং আউটপুটেগুলি কোণ বন্ধনীর মধ্যে সাধারণে দেওয়া হয়, অনুসরণ কর:

  • <n>; নাউন এর জন্য|
  • <pl>; প্লুরাল এর জন্য|

চিহ্নের অন্যান্য উদাহরণ আছে যেমন <sg>; একবচন,<p1> প্রথম ব্যক্তি,<pri> বর্তমান ইন্ডিকটিকটিব, ইত্যাদি | যখন কোণ বন্ধনীতে লেখা হয় , চিহ্ন ট্যাগ হিসেবে ও উল্লেখ করা যেতে পরে| এটা বলা যেতে পারে যে, অনেক গুলো প্রাপ্তিসাধ্য ভাষার জুরির মদ্ধে চিহ্ন সংজ্ঞা acronyms অথবা catalan শব্দের সঙ্কোচন | উদাহরণ, vb (verb) থেকে আর haver ("to have" Catalan এ)| চিহ্ন সংজ্ঞায়িত করা হয়<sdef> এ এবং তা ব্যবহার করা হয় <s> tag এ |

তৃতীয় কথা . | . সিস্টম এর প্রসঙ্গ এ, . উল্লেখ করে শব্দের একটি নির্দিষ্ট শ্রেণী কিভাবে inflect করবে| Morphological . তে, লেমা (ওপরে দেখুন) . এর সাথে যুক্ত যা আমাদের লেমার . বর্ণনা করতে সাহায্য করে পুরো না লিখা সত্তেও|

এটির উপযোগীতার একটি উদাহরণ, যদি আমরা দুই বিশেষণ Happy এবং Lazy সংরক্ষণ করতে চাই, একই জিনিসের দুই সংরক্ষণ করার পরিবর্তে:

  • happy, happ (y, ier, iest)
  • lazy, laz (y, ier, iest)

আমরা একটি সহজভাবে সংরক্ষণ করতে পারি, এবং তারপর বলতে পারি " Lazy, Happyr মত পাল্টাবে ", অথবা বাস্তবিকপক্ষে " Lazyr মত Shy পাল্টাবে ", "Happyr মত naughty পাল্টাবে ", "Happyr মত Friendly পাল্টবে ", ইত্যাদি | এই উদাহরণটিতে, Happy paradigm হবে, ও অন্যান্য দের পাল্টানোর জন্য আদর্শ হবে |

যথাযত বর্ণনা যেমন সল্প সময়ে ব্যাখ্যা করা হবে | . সংজ্ঞায়িত করা হয়<pardef> ট্যাগ এ, এবং তা ব্যবহার করা হয় <par> tag এ|

আরম্ভকৃত পাচ্ছে

মনলিন্গুয়াল অভিধান

See also: List of dictionaries and Incubator

আসুন আমাদের প্রথম উৎ‍স ভাষা শব্দভাণ্ডার তৈরি করার মধ্যে দিয়ে শুরু করি। শব্দভাণ্ডার একটি xml ফাইল। আপনার লেখা সম্পাদক চালু করূন এবং নিম্নলিখিত টেক্স্‌ট টাইপ করুন:

<?xml version="1.0" encoding="UTF-8"?>
<dictionary>

</dictionary>

সুতরাং, ফাইল এখনও পর্যন্ত সংজ্ঞায়িত করে আমরা একটি শব্দভাণ্ডার শুরু করতে চাই| এটিকে কার্যকর করার জন্য, আমাদের আরও বেশি কিছু এন্ট্রি, যোগ করার প্রয়োজন আছে, প্রথমটী একটি বর্ণমালা | এইটি letter সেট সংজ্ঞায়িত করে যে Serbo-Croatian এর জন্য শব্দভাণ্ডার,তে ব্যবহার করা যেতে পারে| নিম্নলিখিতের মত কিছু জিনিষ দেখতে পারবেন, যাতে Serbo-Croatian এর সব letter থাকবে|

<alphabet>ABCČĆDDžĐEFGHIJKLLjMNNjOPRSŠTUVZŽabcčćddžđefghijklljmnnjoprsštuvzž</alphabet>

নিচের স্থানে বর্ণমালা<ডিক্ষনরী> tag এ যোগ করূন|

পরবর্তী তে আমাদের কিছু চিহ্ন সংজ্ঞায়িত করার প্রয়োজন আছে| আসুন সহজ দিয়ে শুরু করি noun (n) singular (sg) আর plural (pl).

<sdefs>
   <sdef n="n"/>
   <sdef n="sg"/>
   <sdef n="pl"/>
</sdefs>

চিহ্ন নামগুলো অত ছোটো নাও হতে পারে , তাদেরকে পুরো লেখাও যেতে পারে , কিন্তু তাতে আপনাকে অনেক বেশি টাইপ করতে হবে যা করার দরকার নেই| দুর্ভাগ্যবশত, এইটি সম্পূর্ণভাবে সোজা নয়, .-. ভাষায় নাউন লিঙ্গ এবং কেস কেও বোঝায় | আমরা এই উদাহরনটির জন্য ধরে নেবো যে নাউনটি মাস্ক্যুলিন এবং . কেস এর|(উদাহরণ এই ডকুমেন্টটির শেষে খুঁজে পাওয়া যাবে)

পরবর্তী জিনিস paradigms এর জন্য একটি অংশ সংজ্ঞায়িত করা

<pardefs>

</pardefs>

এবং একটি শব্দভাণ্ডার অংশ:

<section id="main" type="standard">

</section>

অনুচ্ছেদের দুই ধরন আছে, প্রথম একটি মান অংশ, যে শব্দ, enclitics, ইত্যাদি ধারণ করে | দ্বিতীয় ধরন একটি inconditional অংশ যেটি বিরাম চিহ্ন ধারণ করে| আমাদের inconditional অংশ এখানে নেই|

সুতরাং, আমাদের ফাইল এ এমন কিছু জিনিষ এখন দেখানো উচিত:

<?xml version="1.0" encoding="UTF-8"?>
<dictionary>
   <sdefs>
     <sdef n="n"/>
     <sdef n="sg"/>
     <sdef n="pl"/>
   </sdefs>
   <pardefs>

   </pardefs>
   <section id="main" type="standard">

   </section>
</dictionary>

আমরা এখন স্থানে কাঠামো পেয়েছি, আমরা একটি নাউন যোগ করার মধ্যে দিয়ে শুরু করতে পারি। প্রশ্নে নাউন 'গ্রামোফোন' হবে, (যার মানে 'Gramaphone' অথবা 'Record player' অভিপ্রায় করে)।

প্রথম জিনিস আমাদের যা করার প্রয়োজন আছে, আগের কোনো paradigm নেই, একটি paradigm সংজ্ঞায়িত করার|

স্মরণ করুন, আমরা ধরে masculine লিঙ্গ এবং nominative case ধরেছি | নাউন এর একবচন আকার 'Gramaphon', এবং প্লুরল 'Gramaphone' হয়| সুতরাং:

<pardef n="gramofon__n">
   <e><p><l/><r><s n="n"/><s n="sg"/></r></p></e>
   <e><p><l>i</l><r><s n="n"/><s n="pl"/></r></p></e>
</pardef>

নোট:<l/> ( সমতুল্য<l></l>) বোঝায় যে অতিরিক্ত পদার্থ যোগ করতে হবে না সিংগ্যুলর এর স্টেমে |

এইটি বর্ণনা করার একটি verbose উপায় মনে হতে পরে কিন্তু কারণ আছে যার জন্য এটি Second nature এ তাড়াতাড়ি পরিণত হয়|

আপনি হয়তো ভাবছেন <e>, <l>, <r> কিসের জন্য দরকার

  • e, এন্ট্রি কির জন্য।
  • p, জোড়া কির জন্য।
  • l, বাম জন্য।
  • r, অধিকার কির জন্য।

কেন left এবং right? কারণ morphological অভিধান finite state মেশিনে পরবর্তী কালে সঙ্কলন করা হবে। লেফ্‌ট থেকে রাইট এ compile করলে শব্দের analysis হবে, এবং রাইট থেকে লেফ্‌ট করলে analysis থেকে শব্দ হবে| উদাহরণ:

* gramofoni (left to right) gramofon<n><pl> (analysis)
* gramofon<n><pl> (right to left) gramofoni (generation)

আমরা এখন একটি paradigm সংজ্ঞায়িত করেছি, আমরা এর lemmaতে (gramafon) এইটি সংযোগ করতে প্রয়োজন বোধ করি|

এটা আমরা আমাদের লেখা অংশতে যোগ করছি| সংযোজন এমন হবে-

<e lm="gramofon"><i>gramofon</i><par n="gramofon__n"/></e>

জলদি আমরা শব্দসংক্ষেপ দেখে নি:

  • lm, লেম্মা কির জন্য।
  • i, পরিচয় কির জন্য (বাকি আছে এবং অধিকার একই আছে)।
  • par, পারাদিগ্ম কির জন্য।

এই এন্ট্রিটি লেমার অর্থ বোঝায় gramofon, the root, gramofon এবং paradigm যা দিয়ে gramofon__n বোঝায়| lemma এবং মূলের মধ্যে পার্থক্য যে lemma কথার উদ্ধৃতি আকার, লেমাএর substring যেটিতে তাতে stems যোগ করা হয় | পরে আরও ভালো করে বুঝতে পারবেন|

আমরা এখন ডিক্ষনরী টেস্ট করার জন্য প্রস্তুত | এইটি সংরক্ষণ করুন, এবং তারপর শেলে ফেরত যান,এইটি সঙ্কলন করতে আমরা প্রথম প্রয়োজন (ltcomp), তারপর আমরা এইটি পরীক্ষা করতে পারি (lt-proc)।

$ lt-comp lr apertium-sh-en.sh.dix sh-en.automorf.bin

Output:

main@standard 12 12

আমরা ডানদিক থেকে এইটি সঙ্কলন করছি তাই আমরা একটা analyser উৎপাদন করছি| আসুন একটি উৎ‍পাদক তৈরি করি।

$ lt-comp rl apertium-sh-en.sh.dix sh-en.autogen.bin

এই দশাতেটি, কমান্ডের একই আউটপুট তৈরি করা উচিত। আমরা এইগুলি এখন পরীক্ষা করতে পারি | Run lt-proc on the analyser.

$ lt-proc sh-en.automorf.bin

টাইপ করূন gramafoni (gramophones), এবং আউটপুট দেখুন:

^gramofoni/gramofon<n><pl>$

ইংগ্লীশ ডিক্ষনরীর জন্য, একই কাজ করূন কিন্তু Gramaphone ব্যাবহার করূন Gramaphon এর জায়গায়, এবং পরে প্লুরলটা পাল্টে নেবেন|

আপনার ডিরেক্টরীতে দুই ফাইল এখন থাকা উচিত:

  • apertium-sh-en.sh.dix একটি কোন ধারণ করে (খুব) মৌলিক সের্ব-ক্রাতিয়ান মর্ফলোগিকাল শব্দভাণ্ডার, এবং
  • apertium-sh-en.en.dix একটি কোন ধারণ করে (খুব) মৌলিক ইংরেজী মর্ফলোগিকাল শব্দভাণ্ডার।

Bilingual শব্দভাণ্ডার

আমাদের সুতরাং দুই morphological অভিধান এখন রয়েছে, তৈরি করতে হবে পরবর্তী জিনিস, bilingual শব্দভাণ্ডার।এইটি শব্দের মধ্যে mappings বর্ণনা করে | সমস্ত অভিধান একই ফরম্যাট ব্যবহার করে (যেটি ডিটিডি, dix ডিটিডিতে উল্লেখ করা হয়)।

একটি নতুন ফাইল, apertium-sh-en sh-en dix তৈরি করুন এবং মৌলিক কাঠামো যোগ করুন:

<?xml version="1.0" encoding="UTF-8"?>
<dictionary>
   <alphabet/>
   <sdefs>
     <sdef n="n"/>
     <sdef n="sg"/>
     <sdef n="pl"/>
   </sdefs>

   <section id="main" type="standard">

   </section>
</dictionary>

আমরা এখন দুই শব্দের মধ্যে অনুবাদ করতে একটি এন্ট্রি যোগ করার প্রয়োজন বোধ করি। এইরকম:

<e><p><l>gramofon<s n="n"/></l><r>gramophone<s n="n"/></r></p></e>
কারণ অনেক এই এন্ট্রি আছে, তারা ফাইলের সহজতর পড়া সুবিধাজনক করতে একটি লাইনে typically লিখিত হয়|  আমরা Serbo-Croatian → ইংরেজী শব্দভাণ্ডার তৈরি করতে left থেকে এইটি সঙ্কলন করেছিলাম|  ইংরেজী → Serbo-Croatian শব্দভাণ্ডার তৈরি করতে ডানদিক থেকে শুরু করেছিলাম|
সুতরাং, এটি করা হয়ে গেলে, নিম্নলিখিত র্নিদেশাবলী চালান:
$ lt-comp lr apertium-sh-en.sh.dix sh-en.automorf.bin
$ lt-comp rl apertium-sh-en.en.dix sh-en.autogen.bin

$ lt-comp lr apertium-sh-en.en.dix en-sh.automorf.bin
$ lt-comp rl apertium-sh-en.sh.dix en-sh.autogen.bin

$ lt-comp lr apertium-sh-en.sh-en.dix sh-en.autobil.bin
$ lt-comp rl apertium-sh-en.sh-en.dix en-sh.autobil.bin

স্থানান্তর নিয়ম

সুতরাং, আমাদের এখন দুই মর্ফলোগিকাল অভিধান রয়েছে, এবং একটি দুই ভাষা শব্দভাণ্ডার। সমস্ত সেটা আমরা নৌনসএর জন্য একটি স্থানান্তর রুল এখন প্রয়োজন বোধ করে। স্থানান্তর রুল ফাইলের তাদের নিজের ডিটিডি রয়েছে (স্থানান্তর ডিটিডি) যেটি অপের্তিউম প্যাকেজে খুঁজে পা যাবে। যদি আপনি অন্যান্য ভাষা জোড়া প্রথমের রুল ফাইলে দেখতে একটি রুল এইটি একটি ভাল ধারনা বাস্তবায়ন করতে প্রায়শই প্রয়োজন বোধ করেন। অনেক নিয়ম ভাষার মধ্যে রেচ্য়্চ্লেদ/রেউসেদ যাবে। হের নিচে উদাহরণ একটি বর্ণনাকৃতের জন্য যেকোন ফাঁকা বিষয় ভাষার জন্য কার্যকর।

একটি মৌলিক কাঠামোর সঙ্গে সমস্ত অন্যান্যের মত শুরু করুন:

<?xml version="1.0" encoding="UTF-8"?>
<transfer>

</transfer>

মূহুর্তে, কারণ আমরা একটি রুল তৈরি করতে উপেক্ষা করছে খাপ, আমরা প্রয়োজন মাত্র 'reই যে ব্যাকরণগত চিহ্ন ইনপুট এবং আউটপুট তাদেরকে পুনরায় গ্রহণ করি।

শ্রেণীবিভাগ এবং বৈশিষ্ট্যাবলী সংজ্ঞায়িত করতে আমরা প্রথম প্রয়োজন। শ্রেণীবিভাগ এবং ব্যাকরণগত চিহ্ন দলবদ্ধ করতে উভয় আমাদেরকে আরোপ করে অনুমোদন করে। শ্রেণীবিভাগ মিলের উদ্দ্যেশ্যের জন্য চিহ্ন দলবদ্ধ করতে আমাদেরকে অনুমোদন করে (উদাহরণ 'n *'এর জন্য সমস্ত নৌনস)। বৈশিষ্ট্যাবলী চিহ্নের একটি সেট দলবদ্ধ করতে আমাদেরকে অনুমোদন করেন যে থেকে বেছে নে যাবে। উদাহরণের জন্য ('sg' এবং 'pl' একটি একটি বৈশিষ্ট্য 'number' দলবদ্ধ করা হয়ত যাবে)।

আসুন প্রয়োজনীয় অনুচ্ছেদ যোগ করি:

<section-def-cats>

</section-def-cats>
<section-def-attrs>

</section-def-attrs>

আমরা হিসেবে একবচন এবং প্লুরালতে ইন্ফ্লেচ্তিং, নৌনস কেবল 'reই তারপর আমরা নৌনসএর জন্য একটি শ্রেণী যোগ করতে প্রয়োজন বোধ করি, এবং সংখ্যার একটি বৈশিষ্ট্যের সঙ্গে। নিম্নলিখিতের মত কিছু জিনিষ বেশা হবে:

ের দিকে যোগ করুন section-def-cats:

<def-cat n="nom">
   <cat-item tags="n.*"/>
</def-cat>

এইটি সমস্ত নৌনস ধরে (লেম্মাস ের মধ্যে অনুসরণ করেছিল<n> তারপর যেকিছু) এবং হিসেবে তাদেরকেতে উল্লেখ করে " nom " (আমরা দেখব যেমন যে পরবর্তী কালে ব্যবহার করা হয়)।

অংশের দিকে যোগ করুন section-def-attrs:

<def-attr n="nbr">
   <attr-item tags="sg"/>
   <attr-item tags="pl"/>
</def-attr>

and then

<def-attr n="a_nom">
   <attr-item tags="n"/>
</def-attr>

প্রথম আরোপ করা nbr সংজ্ঞায়িত করে (সংখ্যা), যেটি হয় একবচন (sg) অথবা প্লুরাল (pl)।

দ্বিতীয় আরোপ করা a_nom সংজ্ঞায়িত করে (নুন আরোপ করুন)।

পরবর্তী আমরা সার্বিক চলকের জন্য একটি অনুচ্ছেদ যোগ করতে প্রয়োজন বোধ করি:

<section-def-vars>

</section-def-vars>

এই চলক নিয়মের মধ্যে অথবা স্থানান্তর বৈশিষ্ট্যাবলী সংরক্ষণ করতে ব্যবহার করা হয়। আমরা, এখনের জন্য কেবল একটি প্রয়োজন বোধ করি

<def-var n="number"/>

পরিশেষে, আমরা নুন এবংতে গ্রহণ করতে একটি রুল, যোগ করতে প্রয়োজন বোধ করি তারপর সঠিক ফর্মে বেলুতো এইটি। আমরা একটি নিয়ম অনুচ্ছেদ প্রয়োজন বোধ করব...

<section-rules>

</section-rules>

পূর্ববর্তী উদাহরণ থেকে হার পরিবর্তন করছে, আমি এই রুলটি, মাত্র সাঁটব তারপর অন্যান্য রাস্তা গোলের চেয়ে এইটি, বরংএর মধ্য দিয়ে যান।

<rule>
   <pattern>
     <pattern-item n="nom"/>
   </pattern>
   <action>
     <out>
       <lu>
         <clip pos="1" side="tl" part="lem"/>
         <clip pos="1" side="tl" part="a_nom"/>
         <clip pos="1" side="tl" part="nbr"/>
       </lu>
     </out>
   </action>
</rule>

প্রথম ট্যাগ বোধগম্য, এইটি একটি রুল সংজ্ঞায়িত করে। দ্বিতীয় ট্যাগ, নকশা প্রাথমিকভাবে বলে: " এই রুলটি প্রয়োগ করুন, যদি এই নকশাটি খুঁজে পাওয়া হয় "। এই উদাহরন নকশাতে একটি একক নুনের গঠিত হয় (শ্রেণী পদ nomএর দ্বারা সংজ্ঞায়িত করেছিল)। নোট যে নকশা একটি দীর্ঘতম মেবলে প্রথমে মেবলেওয়া হয়। যদি আপনার সুতরাং তিন নিয়ম, প্রথম ধরা রয়েছে "<prn><vblex><n> ", দ্বিতীয় ধরা "<prn><vblex> " এবং তৃতীয় ধরা "<n> ", নকশা মেবলিয়েছিল, এবং রুল প্রথম রান করেছিল।

প্রত্যেক নকশার জন্য, একটি সহযোগী কার্য আছে, যেটি একটি সহযোগী বেলুতো, বাইরে তৈরি করে। বেলুতো, একটি লেক্সাল অংশ (lu)।

ক্লিপ ট্যাগ নির্বাচন করতে একটি ব্যবহারকারী অনুমোদন করে এবং বৈশিষ্ট্যাবলী নিপুণভাবে ব্যবহার করুন এবং সূত্র ভাষার অংশ (side= " এস. এল. "), অথবা লক্ষ্য ভাষা (side= " tl ") লেক্সাল পদ।

আসুন এইটি এবং পরীক্ষা এইটি সঙ্কলন করি। ট্রান্সফার নিয়ম ের সঙ্গে সঙ্কলন করা হয়:

$ apertium-preprocess-transfer apertium-sh-en.sh-en.t1x sh-en.t1x.bin

একটি কোন উৎ‍পাদন করবে sh-en t1x bins ফাইল।

আমরা এখন আমাদের মেশিন অনুবাদ পদ্ধতি পরীক্ষা করতে তৈরি 'reই। একটি গুরুত্বপূর্ণ খন্ড লক্ষ্যভ্রষ্ট হচ্ছে, বাকের খন্ড (PoS) ট্যাগার, কিন্তু সেইটি সল্প সময়ে ব্যাখ্যা করা হবে। আমরা এখন হ হিসেবে এইটি পরীক্ষা করতে পারি:

প্রথম, একটি কথা, গ্রামফনি বিশ্লেষণ করতে দেয়:

$ echo "gramofoni" | lt-proc sh-en.automorf.bin 
^gramofon/gramofon<n><pl>$

এখন, POS ট্যাগার সাধারণভাবে এখানে বাকের খন্ডে ঠিক সংস্করণ বেছে নেবে ভিত্তি করবে, কিন্তু আমাদের একটি POS ট্যাগার এখনও নেই, সুতরাং আমরা এই ছোট gawkটি লিপি ব্যবহার করতে পারি (Sergioতে ধন্যবাদ) যে প্রথম পদ মাত্র আউটপুটব আহরন করব।

$ echo "gramofoni" | lt-proc sh-en.automorf.bin | \
  gawk 'BEGIN{RS="$"; FS="/";}{nf=split($1,COMPONENTS,"^"); for(i = 1; i<nf; i++) printf COMPONENTS[i]; if($2 != "") printf("^%s$",$2);}'
^gramofon<n><pl>$

ের পদ্ধতি এখন যে স্থানান্তর রুলের সঙ্গে:

$ echo "gramofoni" | lt-proc sh-en.automorf.bin | \
  gawk 'BEGIN{RS="$"; FS="/";}{nf=split($1,COMPONENTS,"^"); for(i = 1; i<nf; i++) printf COMPONENTS[i]; if($2 != "") printf("^%s$",$2);}' | \
  apertium-transfer apertium-sh-en.sh-en.t1x sh-en.t1x.bin sh-en.autobil.bin

এইটি আউটপুটবে:

^gramophone<n><pl>$^@
  • 'gramophone' লক্ষ্য কি ভাষা (side="tl") লেম্মা (lem) অবস্থান ১তে (pos="1")।
  • '<n>' অবস্থান ১তে লক্ষ্য কি ভাষা a_nom।
  • '<pl>' লক্ষ্য কি ভাষা সংখ্যার আরোপ করে (nbr) অবস্থান ১তে।

এই ক্লিপগুলি বক্তব্যের মন্তব্য একটি চেষ্টা করুন, পুনরায় সঙ্কলন করুন এবং দেখুন যার ঘটেন।

সুতরাং, আমাদের এখন স্থানান্তর, কেবল জিনিস থেকে আউটপুট রয়েছে যে লক্ষ্য ভাষা রূপ উৎ‍পাদন করতে থাকি ইন্ফ্লেচ্তই। এইের জন্যটি, আমরা lt-proc ব্যবহার করে, উৎ‍পাদনে কিন্তু (-g), বিশ্লেষণ মোড না।

$ echo "gramofoni" | lt-proc sh-en.automorf.bin | \
  gawk 'BEGIN{RS="$"; FS="/";}{nf=split($1,COMPONENTS,"^"); for(i = 1; i<nf; i++) printf COMPONENTS[i]; if($2 != "") printf("^%s$",$2);}' | \
  apertium-transfer apertium-sh-en.sh-en.t1x sh-en.t1x.bin sh-en.autobil.bin | \
  lt-proc -g sh-en.autogen.bin

gramophones\@

এবং ক'ইস্ট কা. আপনার একটি মেশিন অনুবাদ পদ্ধতি এখন রয়েছে যে একটি ইংরেজী নুনএর দিকে একটি সের্ব-ক্রাতিয়ান নুন অনুবাদ করেন। এই পরিষ্কার ভাবেটি খুব কার্যকর নয়, কিন্তু আমরা আরও বেশি জটিল জিনিষ শীঘ্রইের ওপর পাব। ওহ, এবং '@' চিহ্নের সম্বন্ধে উদ্ধিগ্ন হয় না, আমি ব্যাখ্যা করব যে শীঘ্রই খুব।

একটি অল্প অন্যান্য শব্দের ভাবেন যে গ্রামোফোন হিসেবে একই ইন্ফ্লেচ্তন। সেই যোগ করার সম্বন্ধে কিভাবেগুলি। আমরা যেকোন পারাদিগ্ম্স যোগ করতে প্রয়োজন বোধ করি না, একটি ভাষা এবং দুই ভাষা অভিধানের প্রধান অংশতে এন্ট্রি মাত্র।

ক্রিয়াপদে আনুন

বেশ, সুতরাং আমাদের একটি পদ্ধতি রয়েছে যে নৌনস অনুবাদ করে, কিন্তু সেইটি মনোরম অর্থহীন, আমরা ক্রিয়াপদ খুব অনুবাদ করতে চায়, এবং এমনকি পুরো বাক্য! দেখতে ক্রিয়াপদের সঙ্গে আমরার সম্বন্ধে কিভাবে শুরু করেন। এই সের্ব-ক্রাতিয়ানতে টি ভিদেটিচ্ছে। সের্ব-ক্রাতিয়ান একটি ফাঁকা বিষয় ভাষা, এইটি অভিপ্রায় করে যে এইটি ক্রিয়াপদের কন্যুগাতেদ আকারার পূর্বে ব্যক্তিগত প্রনৌনস সাধারণভাবে ব্যবহার করে না। ইংরেজী নয়। উদাহরণের জন্য সুতরাং: আমাকে সের্ব-ক্রাতিয়ানে ভিদিম হিসেবে ইংরেজীতে দেখা হয় অনুবাদ করা হয়।

  • ভিদিম
  • দেখুন<p1><sg>
  • আমি দেখি

নোট: <p1> প্রথম ব্যক্তি অভিপ্রায় করে

এইটি গুরুত্বপূর্ণ হবে যখন আমরা ক্রিয়াপদের জন্য স্থানান্তর রুল লেখতে আসয়। ফাঁকা বিষয় ভাষার অন্যান্য উদাহরণ অন্তর্ভুক্ত করে: স্পেনিয়, রোমানিয়ান এবং পোলিশ। এইটির প্রভাব ও রয়েছে যে সের্ব-ক্রাতিয়ান মর্ফলোগিকাল শব্দভাণ্ডারে ক্রিয়াপদ যোগ করতে আমরা কেবল প্রয়োজনার সময়, আমরা উভয় ক্রিয়াপদ যোগ করতে প্রয়োজন বোধ করে, ইংরেজী মর্ফলোগিকাল শব্দভাণ্ডারে এবং ব্যক্তিগত প্রনৌনস। আমরা এইের উভয়ের মধ্য দিয়েগুলি যাব।

ক্রিয়াপদ videtiএর অন্যান্য রূপ আছে: vidiš, vidi, vidimo, vidite, এবং vide; যেটি তে সঙ্গতিপূর্ণ হওয়ায়: আপনি দেখুন (একবচন), সে দেখেন, আমরা দেখেন, আপনি দেখুন (প্লুরাল), এবং তারা দেখে।

আপনার দুই রূপ দেখি, একটি এবং আনুষ্ঠানিক একবচন প্লুরালছি (vidite) এবং অন্যান্য একবচন এবং আনুষ্ঠানিক নয় (vidiš)।

আমরা চেষ্টা করব এবং বাক্য অনুবাদ করুন: " Vidim gramofoni "ের দিকে " আমি gramophones দেখেন "। স্থানের আগ্রহে, আমরা অনুবাদ করতে যথেষ্ট তথ্য মাত্র যোগ করব এবং ভরাট করা কি পারাদিগ্ম্স বাদ দেবে (ক্রিয়াপদের যোগ করা অন্যান্য কন্যুগাতীয়নস) পাঠকে একটি অনুশীলন হিসেবে।

চতুর পাঠক এই বিন্দুটির দ্বারা অনুভব করবে যে আমরা ভিদিম গ্রামফনি মাত্র অনুবাদ করতে পারি না কারণ এইটি সের্ব-ক্রাতিয়ানে একটি ব্যাকরণ সঠিক বাক্য না। সঠিক বাক্য ভিদিম গ্রামোফোনে হবে, নুন হিসেবে কর্মকারক খাপ গ্রহণ করে। আমাদেরকে এখন যদিওের জন্য খাপ তথ্য যোগ করতে সেই আকারটি, কোনও প্রয়োজন খুব যোগ করতে, আমরা প্লুরালের জন্য অন্য একটি পছন্দ হিসেবে এইটি মাত্র যোগ করি। সুতরাং, 'i'এর জন্য 'e' বনধ্ মাত্র কপি করে এবং সেখানে 'e'তে 'i' পরিবর্তন করুন।

প্রথম জিনিস আমরা কিছু আরও বেশি চিহ্ন কর হ যোগ করতে প্রয়োজন বোধ করি। আমরা 'verb'এর জন্য প্রথম একটি চিহ্ন যোগ করতে প্রয়োজন বোধ করি, যেটি আমরা ডাক দেব " vblex " (এইটি মদল ক্রিয়াপদ এবং অন্যান্য ধরনের পরিবর্তে লেক্সাল ক্রিয়াপদ, অভিপ্রায় করি)। ভের্ব্সের 'person' রয়েছে, সংখ্যার সঙ্গে বরাবর এবং 'tense', ভাল হিসেবে সেইগুলির একটি দম্পতি সুতরাং যোগ করতে দেয়। আমরা অনুবাদ করতে প্রয়োজন বোধ করি " আমি দেখি ", ব্যক্তি আমাদেরের জন্য সুতরাং যোগ করা উচিত " p১ ", অথবা 'first person', কালের জন্য এবং " pri ", অথবা 'present indicative'।

<sdef n="vblex"/>
<sdef n="p1"/>
<sdef n="pri"/>

আমরার পরে নৌনসের সঙ্গে এই, একই করেছি, আমরা ক্রিয়াপদ কন্যুগাতীয়নের জন্য একটি পারাদিগ্ম যোগ করি। প্রথম লাইন হবে:

<pardef n="vid/eti__vblex">

'/' চিহ্নিত করতে ব্যবহার করা হয় যেখানে স্তেম্স (ের মধ্যে অংশ<l></l> ট্যাগ) তে যোগ করা হয়।

তারপর প্রথম ব্যক্তি একবচনের জন্য ইন্ফ্লেচ্তীয়ন:


<e><p><l>im</l><r>eti<s n="vblex"/><s n="pri"/><s n="p1"/><s n="sg"/></r></p></e>

'im' শেষাংশ অভিপ্রায় করে ('vidim'তে হিসেবে), এইটি তে 'eti' যোগ করতে প্রয়োজনীয়<r> অংশ, এই হিসেবেটি সংজ্ঞার দ্বারা কেটে ফেল বন্ধওয়া হবে। বিশ্রাম ভালভাবে পরিষ্কার, 'vblex' ক্রিয়াপদ লেক্সালছে, 'pri' বর্তমান ইন্দিকাতিভে কাল, 'p১' প্রথম ব্যক্তি এবং 'sg' একবচন। আমরা প্লুরাল ও যোগ করতে পারি যেটি 'sg'এর পরিবর্তে 'im' এবং 'pl'এর পরিবর্তে একই, ব্যতীত 'imo' হব।

এই আমরার পরেটি প্রধান অংশতে একটি লেম্মা, পারাদিগ্ম ম্যাপ কর যোগ করতে প্রয়োজন বোধ করে:

<e lm="videti"><i>vid</i><par n="vid/eti__vblex"/></e>

নোট:ের ভিতরের উপাদান<i></i> মূল কি, লেম্মা নয়।

সেইটি এখনের জন্য সের্ব-ক্রাতিয়ান শব্দভাণ্ডারে কাজ করে। আসুন এইটি সঙ্কলন করি তারপর পরীক্ষা এইটি।

$ lt-comp lr apertium-sh-en.sh.dix sh-en.automorf.bin
main@standard 23 25
$ echo "vidim" | lt-proc sh-en.automorf.bin
^vidim/videti<vblex><pri><p1><sg>$
$ echo "vidimo" | lt-proc sh-en.automorf.bin
^vidimo/videti<vblex><pri><p1><pl>$

বেশ, আমরা সুতরাং এখন ইংরেজী শব্দভাণ্ডারের জন্য একই করে (সের্ব-ক্রাতিয়ান একটিতে আপনাকে হিসেবে একই চিহ্ন সংজ্ঞা এখানে যোগ করতে স্মরণ করেছিলেন যোগ করেছিলেন)।

পারাদিগ্ম:

<pardef n="s/ee__vblex">

কারণ শেষ কাল 'saw'চ্ছে। এখন, আমরা দুই জিনিষের একটি করতে পারি, আমরা উভয় প্রথম এবং দ্বিতীয় ব্যক্তি যোগ করতে পারি, কিন্তু তারা একই আকার আছে। ঘটনাতে, সমস্ত রূপ (ব্যতীত তৃতীয় ব্যক্তি একবচন) ক্রিয়াপদ 'to see'এর 'see' আছে। আমরা সুতরাং বদলে 'see'এর জন্য একটি এন্ট্রি তৈরি করি এবং এইটি 'pri' চিহ্ন কেবল দিন।


<e><p><l>ee</l><r>ee<s n="vblex"/><s n="pri"/></r></p></e>

প্রধান অংশতে, একটি এন্ট্রি চিরন্তন হিসেবে এবং:

<e lm="see"><i>s</i><par n="s/ee__vblex"/></e>

তারপর সংরক্ষণ করতে দেয়, এবং পরীক্ষা পুনরায় সঙ্কলন করুন:

$ lt-comp lr apertium-sh-en.en.dix en-sh.automorf.bin
main@standard 18 19

$ echo "see" | lt-proc en-sh.automorf.bin
^see/see<vblex><pri>$

দুই ভাষা শব্দভাণ্ডারে আবশ্যিক এন্ট্রির জন্য এখন:

<e><p><l>videti<s n="vblex"/></l><r>see<s n="vblex"/></r></p></e>

(পুনরায়, গোড়ার দিকে থেকে sdefs যোগ করতে ভুলে যােন না)

এবং পুনরায় সঙ্কলন করুন::

$ lt-comp lr apertium-sh-en.sh-en.dix sh-en.autobil.bin
main@standard 18 18
$ lt-comp rl apertium-sh-en.sh-en.dix en-sh.autobil.bin
main@standard 18 18

পরীক্ষা করতে এখন:

$ echo "vidim" | lt-proc sh-en.automorf.bin | \
  gawk 'BEGIN{RS="$"; FS="/";}{nf=split($1,COMPONENTS,"^"); for(i = 1; i<nf; i++) printf COMPONENTS[i]; if($2 != "") printf("^%s$",$2);}' | \
  apertium-transfer apertium-sh-en.sh-en.t1x sh-en.t1x.bin sh-en.autobil.bin

^see<vblex><pri><p1><sg>$^@

আমরা সঠিকভাবের মধ্য দিয়ে বিশ্লেষণ পাই পাশ করি, কিন্তু যখন আমরা চেষ্টা করি এবং এই থেকে একটি উপরিতল আকারটি উৎ‍পাদন করুন, আমরা ের নিচে ের মত একটি '#', পান:

$ echo "vidim" | lt-proc sh-en.automorf.bin | \
  gawk 'BEGIN{RS="$"; FS="/";}{nf=split($1,COMPONENTS,"^"); for(i = 1; i<nf; i++) printf COMPONENTS[i]; if($2 != "") printf("^%s$",$2);}' | \
  apertium-transfer apertium-sh-en.sh-en.t1x sh-en.t1x.bin sh-en.autobil.bin | \
  lt-proc -g sh-en.autogen.bin
#see\@

এই '#'টি অভিপ্রায় করে যে উৎ‍পাদক সঠিক লেক্সাল আকার উৎ‍পাদন করতে পারে না কারণ এইটি এইটি ধারণ করে না। এইটি কেন?

বিশ্লেষণ প্রাথমিকভাবে মিলে না, শব্দভাণ্ডারে 'see' দেখে<vblex><pri>, কিন্তু স্থানান্তরের দ্বারা দেখে বিলি করে দেখে<vblex><pri><p1><sg>। সের্ব-ক্রাতিয়ান পাশ ইংরেজী পাশের চেয়ে আরও বেশি তথ্য প্রয়োজন বোধ করেছে। আপনি ইংরেজী শব্দভাণ্ডারে নিরুদ্দেশ চিহ্ন যোগ করার মধ্যে এইটি পরীক্ষা করতে পারেন, এবং তারপর পুনরায় সঙ্কলন করুন, এবং পরীক্ষাকরণ পুনরায়।

উপরন্তু, এইের যত্ন গ্রহণ করার একটি আরও বেশি পারাদিগ্মাতিক রাস্তাটি একটি রুল লেখের মধ্যে। সুতরাং, আমরা মুক্ত উপর নিয়ম দাখিল করি ( apertium-sh-en sh-en t1x sh-en t1x bin sh-en autobil bin খাপ আপনিতে ভুলে গিয়েছিলেন)।

আমরা 'verb'এর জন্য একটি নতুন শ্রেণী যোগ করতে প্রয়োজন বোধ করি।

<def-cat n="vrb">
   <cat-item tags="vblex.*"/>
</def-cat>

আমরা ব্যক্তির জন্য কাল এবংএর জন্য বৈশিষ্ট্যাবলী যোগ করতে ও প্রয়োজন বোধ করি। আমরা এখনের জন্য এইটি সত্যি সহজ তৈরি করব, আপনি p২ এবং p৩ যোগ করতে পারি, কিন্তু আমি স্থান সংরক্ষণ করতে অর্ডারে না।

<def-attr n="temps">
   <attr-item tags="pri"/>
</def-attr>

<def-attr n="pers">
   <attr-item tags="p1"/>
</def-attr>

আমাদের ক্রিয়াপদের জন্য একটি বৈশিষ্ট্য ও যোগ করা উচিত।

<def-attr n="a_verb">
   <attr-item tags="vblex"/>
</def-attr>

রুলের ওপর এখন:

<rule>
   <pattern>
     <pattern-item n="vrb"/>
   </pattern>
   <action>
     <out>
       <lu>
         <clip pos="1" side="tl" part="lem"/>
         <clip pos="1" side="tl" part="a_verb"/>
         <clip pos="1" side="tl" part="temps"/>
       </lu>
     </out>
   </action>
</rule>

পূর্ববর্তী রুল উদাহরণে যখন আপনাকে 'clip' ট্যাগ স্মরণ করেছিলেন চেষ্টা করেছিলেন মন্তব্য কর বাইরিয়েছিলেন এবং তারা স্থানান্তর,, ভাল থেকে অন্তর্ধান করেছিল যে মনোরম অধিক যার আমরা এখানে 'reচ্ছে। আমরা একটি পূর্ণ বিশ্লেষণের সঙ্গে একটি ক্রিয়াপদে গ্রহণ করি, কিন্তু কেবল আউটপুট একটি আংশিক বিশ্লেষণ (লেম্মা + ক্রিয়াপদ ট্যাগ + কাল ট্যাগ)।

সুতরাং এখন, যদি আমরা সঙ্কলন করি যে পুনরায়, আমরা পাই:

$ echo "vidim" | lt-proc sh-en.automorf.bin | \
  gawk 'BEGIN{RS="$"; FS="/";}{nf=split($1,COMPONENTS,"^"); for(i = 1; i<nf; i++) printf COMPONENTS[i]; if($2 != "") printf("^%s$",$2);}' | \
  apertium-transfer apertium-sh-en.sh-en.t1x sh-en.t1x.bin sh-en.autobil.bin
^see<vblex><pri>$^@

এবং:

$ echo "vidim" | lt-proc sh-en.automorf.bin  | \
  gawk 'BEGIN{RS="$"; FS="/";}{nf=split($1,COMPONENTS,"^"); for(i = 1; i<nf; i++) printf COMPONENTS[i]; if($2 != "") printf("^%s$",$2);}' | \
  apertium-transfer apertium-sh-en.sh-en.t1x sh-en.t1x.bin sh-en.autobil.bin | \
  lt-proc -g sh-en.autogen.bin
see\@

'vidimo'এর সঙ্গে এইটি চেষ্টা করুন (আমরা দেখি) দেখতে যদি আপনি সঠিক আউটপুট পাই।

ের সঙ্গে এইটি এখন চেষ্টা করে " vidim gramofone ":

$ echo "vidim gramofoni" | lt-proc sh-en.automorf.bin | \
  gawk 'BEGIN{RS="$"; FS="/";}{nf=split($1,COMPONENTS,"^"); for(i = 1; i<nf; i++) printf COMPONENTS[i]; if($2 != "") printf("^%s$",$2);}' | \
  apertium-transfer apertium-sh-en.sh-en.t1x sh-en.t1x.bin sh-en.autobil.bin | \
  lt-proc -g sh-en.autogen.bin
see gramophones\@

ব্যক্তিগত প্রনৌনসের সম্বন্ধে কিন্তু যার?

ভাল, যে মহান, কিন্তু আমরা ব্যক্তিগত প্রনৌন এখনও 'reচ্ছি লক্ষ্যভ্রষ্ট হচ্ছি যে ইংরেজীতে প্রয়োজনীয়। ইংরেজী মর্ফলোগিকাল শব্দভাণ্ডার সম্পাদনা করতে, আমরা প্রথম প্রয়োজনে এইটি যোগ করতে অর্ডারে।

কর হতে, পূর্বে প্রথম জিনিস হিসেবে প্রয়োজনীয় চিহ্ন যোগ কর:

<sdef n="prn"/>
<sdef n="subj"/>

দুই চিহ্নের, prn প্রনৌনছে, এবং subj বিষয় (একটি বাক্যের বিষয়ে হিসেবে)।

কারণ কোনও মূল নেই, ব্যক্তিগত বিষয় প্রনৌনসের জন্য অথবা 'lemma', আমরা অনুসরণ কর হিসেবে pardef মাত্র যোগ করি:

<pardef n="prsubj__prn">
   <e><p><l>I</l><r>prpers<s n="prn"/><s n="subj"/><s n="p1"/><s n="sg"/></r></p></e>
</pardef>

'prsubj'এর সঙ্গে 'personal subject' হওয়া। তাদের বিশ্রাম (আপনি, আমরা ইত্যাদি) পাঠকে একটি অনুশীলন হিসেবে ছেড়ে চলে যাওয়া হয়।

আমরা অনুসরণ কর হিসেবে প্রধান অংশতে একটি এন্ট্রি যোগ করতে পারি:

<e lm="personal subject pronouns"><i/><par n="prsubj__prn"/></e>

সুতরাং, সংরক্ষণ করুন, এবং পরীক্ষা পুনরায় সঙ্কলন করুন, এবং আমাদের ের মত কিছু জিনিষ পাওয়া উচিত:

$ echo "I" | lt-proc en-sh.automorf.bin
^I/PRPERS<prn><subj><p1><sg>$

(নোট: এইটি রাজধানীতে 'sয় কারণ 'I' রাজধানীতে).

আমরা এখন সঠিক ক্রিয়াপদ আকারের সঙ্গে বরাবর বিষয় ব্যক্তিগত প্রনৌন আউটপুটতে 'verb' রুল মেরামত করতে প্রয়োজন বোধ করি।

প্রথম, একটি শ্রেণী যোগ করুন (এইটির এখনের মধ্যে মনোরম নিরানন্দময় পাওয়া উচিত):

<def-cat n="prpers">
   <cat-item lemma="prpers" tags="prn.*"/>
</def-cat>

বৈশিষ্ট্যাবলী হিসেবে প্রনৌনের ধরন এখন যোগ করে, আমরা এইটিতে আমরা হিসেবে 'obj' ধরন ভাল যোগ কর হিসেবে 'reতে পারি, যদিও আমরা এখনের জন্য এইটি ব্যবহার করতে প্রয়োজন বোধ করি না:

<def-attr n="tipus_prn">
   <attr-item tags="prn.subj"/>
   <attr-item tags="prn.obj"/>
</def-attr>

ইনপুট রুলে এবং এখন:

<rule>
   <pattern>
     <pattern-item n="vrb"/>
   </pattern>
   <action>
     <out>
       <lu>
         <lit v="prpers"/>
         <lit-tag v="prn"/>
         <lit-tag v="subj"/>
         <clip pos="1" side="tl" part="pers"/>
         <clip pos="1" side="tl" part="nbr"/>
       </lu>
       <b/>
       <lu>
         <clip pos="1" side="tl" part="lem"/>
         <clip pos="1" side="tl" part="a_verb"/>
         <clip pos="1" side="tl" part="temps"/>
       </lu>
     </out>
   </action>
</rule>

এইটি পূর্বে হিসেবে মনোরম অধিক একই রুল, আমরা কেবল ক্ষুদ্র পরিবর্তনের একটি দম্পতি তৈরি করেছিল।

আমরা আউটপুটতে প্রয়োজন বোধ করেছিলাম:

^prpers<prn><subj><p1><sg>$ ^see<vblex><pri>$

সুতরাং যে উৎ‍পাদক ঠিক pronoun বেছে নিতে পারে এবং ক্রিয়াপদের ঠিক আকার।

, একটি সুতরাং দ্রুত সারসংক্ষেপ:

  • <lit>, এই খাপটিতে একটি লিতেরাল পংক্তি, প্রিন্ট করে " prpers "
  • <lit-tag>, একটি লিতেরাল ট্যাগ প্রিন্ট করে, কারণ আমরা ক্রিয়াপদ থেকে ট্যাগ পেতে পারি না, আমরা এই নিজেগুলি, যোগ করি " prn " প্রনৌনের জন্য, এবং " subj " বিষয়ের জন্য।
  • , একটি ফাঁকা, একটি স্থান প্রিন্ট করে।

নোট যে আমরা ক্রিয়াপদ থেকে সংখ্যা এবং কাল সরাসরিভাবের জন্য তথ্য আহরন করেছিলাম।

সুতরাং, এখন যদি আমরা এবং পরীক্ষা সঙ্কলন করি যে পুনরায়:

$ echo "vidim gramofone" | lt-proc sh-en.automorf.bin  | \
  gawk 'BEGIN{RS="$"; FS="/";}{nf=split($1,COMPONENTS,"^"); for(i = 1; i<nf; i++) printf COMPONENTS[i]; if($2 != "") printf("^%s$",$2);}' | \
  apertium-transfer apertium-sh-en.sh-en.t1x sh-en.t1x.bin sh-en.autobil.bin | \
  lt-proc -g sh-en.autogen.bin
I see gramophones

কোন, এইটির সময় গ্রন্থন যথাযথভাবে পুরস্কারছে জয় করছে না (এই হব্তের মত অধিকটি), একটি ভালভাবে নির্ভূল অনুবাদ।

রেকর্ড চালকের সম্বন্ধে আমাকে সুতরাং বলেন (মুল্তিবর্দ্স)

গ্রামোফোনের সময় একটি ইংরেজী কথা, এইটি সর্বোত্তম অনুবাদ নয়। গ্রামোফোনে খুব পুরনো ধরনের জন্য সাধারণভাবে ব্যবহার করা হয়, আপনি স্ত্য্লুসের পরিবর্তে সূচের সঙ্গে জানেন, এবং কোনও চালিত আম্প্লিফিকাতীয়ন না। একটি ভাল অনুবাদ 'রেকর্ড প্লায়ের' হবে। যদিও এইটি একটি কথার চেয়ে আরও বেশি, আমরা হিসেবে এইটি চিকিৎসা করতে পারে যদি এইটি মুল্তিবর্দ ব্যবহার করার মধ্যে একটি কথা (মুল্তিপালাবরা) নির্মাণ।

আমরা সের্ব-ক্রাতিয়ান শব্দভাণ্ডার, ইংরেজী মাত্র একটি এবং দুই ভাষা একটি স্পর্শ করতে প্রয়োজন বোধ করি না, সুতরাং মুক্ত এইটি উপরি।

'রেকর্ড প্লায়ের'এর প্লুরাল প্লায়ের্স' 'রেকর্ডছে, সুতরাং এইটি গ্রামোফোনে হিসেবে একই পারাদিগ্ম গ্রহণ করে (gramophone__n) সেই আমরাতে —টি 's' মাত্র যোগ করে। সমস্ত আমরা প্রধান অংশতে একটি নতুন উপাদান কর হ যোগ করতে প্রয়োজন বোধ করে।

<e lm="record player"><i>record<b/>player</i><par n="gramophone__n"/></e>

এইের সম্বন্ধে কেবল জিনিস আলাদাটি ের ব্যবহার ট্যাগ, যদিও এইটি নিয়মে ব্যবহারে আমরা এইটি হিসেবে সমগ্রভাবে নতুন দেখে দাখিল করে না।

সুতরাং, গোঁড়া ফ্যাশনে এবং পরীক্ষা পুনরায় সঙ্কলন করুন:

$ echo "vidim gramofone" | lt-proc sh-en.automorf.bin | \
  gawk 'BEGIN{RS="$"; FS="/";}{nf=split($1,COMPONENTS,"^"); for(i = 1; i<nf; i++) printf COMPONENTS[i]; if($2 != "") printf("^%s$",$2);}' | \
  apertium-transfer apertium-sh-en.sh-en.t1x sh-en.t1x.bin sh-en.autobil.bin  | \
  lt-proc -g sh-en.autogen.bin
I see record players

নির্ভুল। মুল্তিবর্দ্স ব্যবহার করার একটি বড় সুবিধা যে আপনি কথা অনুবাদের মধ্যে কথা করতে রাখ প্রতি ব্যতীত ইদীয়মাতিক অভিব্যক্তি, আক্ষরিকভাবে অনুবাদ করতে পারে। উদাহরণ ইংরেজী শব্দসমষ্টির জন্য, " মূহুর্তে " হিসেবে সের্ব-ক্রাতিয়ানের দিকে অনুবাদ করা হবে " ত্রেনুত্ন " (ত্রেনুতক = মোমেন্ট, ত্রেনুত্ন সেইের ক্রিয়া বিশেষণটি হওয়া) — এইটি সের্ব-ক্রাতিয়ানের দিকে কথার মধ্যে এই ইংরেজী শব্দসমষ্টিটি কথা অনুবাদ করতে সম্ভব হবে না।

মাইনর পরিবর্তনশীলতার সঙ্গে চুক্তিচ্ছে

সের্ব-ক্রাতিয়ানের দিয়ালেচ্তাল পরিবর্তনশীলতার কারণে প্রত্যেক কথা লেখের একটি অল্প উপায় সাধারণভাবে রয়েছে। এইটির একটি ঠান্ডা ফোনেটিক লিখন পদ্ধতি রয়েছে সুতরাং আপনি লেখে যেমন আপনি কথা বলে। উদাহরণের জন্য, ইজেকাভিয়ানে জনগণ বলা হয় বলবে " rječনিক ", কোনও একজন বলা হয় একাভিয়ানার সময় বলবে " rečনিক ", যেটি প্রত-স্লাভিক স্বরবর্ণ যতএর উচ্চারণে পার্থক্য প্রতিফলন করে।

বিশ্লেষণ

ের এইের সঙ্গে চুক্তেওয়ার একটি ভালভাবে সহজ রাস্তাটি, এবং আছে, পারাদিগ্ম্স পুনরায় ব্যবহার করছে। পারাদিগ্ম্স ব্যাকরণগত চিহ্ন যোগ করার জন্য কেবল ব্যবহার করা হয় না, কিন্তু তাদেরকে অন্য একটির সঙ্গে যেকোন চারাচ্তের/ চিহ্ন প্রতিস্থাপন করতে ও ব্যবহার করা যাবে। উদাহরণের জন্য, উভয় গ্রহণ করার জন্য একটি পারাদিগ্ম এখানে " e " এবং " je " বিশ্লেষণে। পারাদিগ্মের,ের অন্যান্যের সঙ্গে হিসেবের সের্ব-ক্রাতিয়ানের জন্য একটি ভাষা শব্দভাণ্ডারের দিকে যাওয়।

  <pardef n="e_je__yat">
    <e>
      <p>
        <l>e</l>
        <r>e</r>
      </p>
    </e>
    <e>
      <p>
        <l>je</l>
        <r>e</r>
      </p>
    </e>
  </pardef>

তারপরতে " প্রধান অংশ ":

    <e lm="rečnik"><i>r</i><par n="e_je__yat"/><i>čni</i><par n="rečni/k__n"/></e>

এইটি উভয় রূপ বিশ্লেষণ করতে আমাদেরকে কেবল উপরন্তু অনুমোদন করে... আরও বেশি কাজ প্রয়োজনীয় যদি আমরা উভয় রূপ উৎ‍পাদন করতে চায়।

উৎ‍পাদন

ও দেখুন