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

From Apertium
Jump to navigation Jump to search
(Created page with '{{TOCD}} অপের্তিউম নতুন ভাষা জোড়া তে হয় কিভাবে এই তে হয় কিভাবে ডকুমেন…')
 
m
 
(23 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{TOCD}}
{{TOCD}}
আপেরটিউমে নতুন ভাষার জুড়ি কি করে করতে হয়
অপের্তিউম নতুন ভাষা জোড়া তে হয় কিভাবে


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

এইটি ভাষাএর যেকোন জ্ঞান ধরে নেয় না, অথবা হের মেশিন অনুবাদ স্তর উপরে ক্রিয়াপদ থেকে nouns আলাদা করতে সক্ষম (এবং প্রেপসিতীয়নস ইত্যাদি)


==ভূমিকা==
==ভূমিকা==


আপেরটিউম একটি মেশিন অনুবাদ প্লাটফোর্ম| এটি আপনাকে একটি এঞ্জিন এবং যন্ত্র দিয়ে দেবে যা দিয়ে আপনি নিজের অনুবাদ সিস্টম বানাতে পারবেন|আপনাকে শুধু নিজের ডেটা লিখতে হবে| এখানে ডেটা মৌলিক স্তরে, গঠিত হয়, তিনটি অভিধান এবং অল্প কিছু নিয়মের দ্বারা|
প্রেপসিতীয়নস , আপনি হিসেবে, একটি মেশিন অনুবাদ পদ্ধতি এখনের মধ্যে সম্ভবত রিয়ালিজে কোর্স ছে। ভাল, সম্পূর্ণভাবে না, এইটি একটি মেশিন অনুবাদ প্ল্যাটফর্ম 'sয়। এইটি একটি ইঞ্জিন এবং সরঞ্জামের বাক্স জোগান দেয় যে আপনার নিজের মেশিন অনুবাদ সিস্টেম নির্মাণ করতে আপনাকে অনুমোদন করে। কেবল জিনিস আপনি ডেটা কর হ লেখতে প্রয়োজন বোধ করেন। ডেটা একটি মৌলিক স্তরে, গঠিত হয়, তিন অভিধান এবং একটি অল্প নিয়মের (কথা পুনরায় ধারাচ্ছে এবং অন্যান্য ব্যাকরণগত stuffএর সঙ্গে চুক্তিতে)।ের দিকে একটি আরও বেশি পুঙ্খানুপুঙ্খ ভূমিকার জন্য যেমন এইটি সমস্ত কাজ করে, ে কিছু সর্বোৎকৃষ্ট কাগজ আছে [[প্রকাশনা]] পাতা।
আরও বেশি পুঙ্খানুপুঙ্খ ভূমিকার জন্য প্রকাশনা পাতায় কিছু সর্বোৎকৃষ্ট কাগজ আছে|


==আপনি প্রয়োজন বোধ করবেন==
== আপনার প্রয়োজন পড়বে ==


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


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


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


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


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


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


শর্তাবলীর সংখ্যা আছে যে আমরার পূর্বে বুঝতে প্রয়োজন বোধ করবেন চালিয়ে যাবেন। প্রথম ''lemma''চ্ছে। একটি lemma একটি কথার উদ্ধৃতি আকার। এইটি যেকোন ব্যাকরণগত তথ্যের কথা টুকরায়। উদাহরণের জন্য, কথা বিড়ালের lemma ''বিড়াল''চ্ছে। ইংরেজী নৌনস এইতেটি প্রশ্নে কথার একবচন আকার সাধারণভাবে হবে। ক্রিয়াপদের জন্য, lemma তে ইন্ফিনিতিভে টুকরা এরয়, ''was''এর উদাঃ lemma ''be'' হবে। দ্বিতীয় ''symbol''চ্ছে। অপের্তিউম পদ্ধতির প্রসঙ্গে, চিহ্ন একটি ব্যাকরণগত লেবেলে উল্লেখ করে। কথা বিড়াল একটি প্লুরাল নৌনস, এইটি অতএবের নৌনস চিহ্ন এবং প্লুরাল চিহ্ন থাকবে। অপের্তিউম মডিউল এইের ইনপুট এবং আউটপুটেগুলি কোণ বন্ধনীর মধ্যে typically দেওয়া হয়, অনুসরণ কর হিসেবে:
কিছু শর্তাবলীর আছে যা আমাদের পূর্বেই বোঝার প্রয়োজন আছে| প্রথম লেমা| লেমা একটি কথার উদ্ধৃতি আকার। এইটি যেকোন ব্যাকরণগত তথ্যের কথা জানায় না| উদাহরণের জন্য, কথা বিড়ালের লেমা বিড়াল। ইংরেজী নাউন্স এটি সিনগুলার হেসেবে ধরা হবে | ক্রিয়াপদের জন্য, লেমা তে ইন্ফিনিটী বাদ দেওয়া হয়, উদাহরণে was এর লেমা হলো be |


দ্বিতীয় চিহ্ন। Apertium পদ্ধতির প্রসঙ্গে, চিহ্ন একটি ব্যাকরণগত লেবেলে উল্লেখ করে। কথা বিড়াল একটি plural noun, এটিতে অতএব noun চিহ্ন এবং plural চিহ্ন থাকবে। Apertium মডিউল এ ইনপুট এবং আউটপুটেগুলি কোণ বন্ধনীর মধ্যে সাধারণে দেওয়া হয়, অনুসরণ কর:
* <code><n></code>; for নৌনস.
* <code><pl></code>; for প্লুরাল.


*<n>; নাউন এর জন্য|
Other examples of symbols are <sg>; singular, <p1> first person, <pri> present indicative, etc. When written in angle brackets, the symbols may also be referred to as tags. It is worth noting that in many of the currently available language pairs the symbol definitions are acronyms or contractions of words in Catalan. For example, vbhaver — from vb (verb) and haver ("to have" in Catalan). Symbols are defined in <sdef> tags and used in <nowiki><s></nowiki> tags.
*<pl>; প্লুরাল এর জন্য|


চিহ্নের অন্যান্য উদাহরণ আছে যেমন <sg>; একবচন,<p1> প্রথম ব্যক্তি,<pri> বর্তমান ইন্ডিকটিকটিব, ইত্যাদি | যখন কোণ বন্ধনীতে লেখা হয় , চিহ্ন ট্যাগ হিসেবে ও উল্লেখ করা যেতে পরে| এটা বলা যেতে পারে যে, অনেক গুলো প্রাপ্তিসাধ্য ভাষার জুরির মদ্ধে চিহ্ন সংজ্ঞা acronyms অথবা catalan শব্দের সঙ্কোচন | উদাহরণ, vb (verb) থেকে আর haver ("to have" Catalan এ)| চিহ্ন সংজ্ঞায়িত করা হয়<sdef> এ এবং তা ব্যবহার করা হয় <nowiki><s></nowiki> tag এ |
The third word is ''paradigm''. In the context of the Apertium system, paradigm refers to an example of how a particular group of words inflect. In the morphological dictionary, lemmas (see above) are linked to paradigms that allow us to describe how a given lemma inflects without having to write out all of the endings.


তৃতীয় কথা . | . সিস্টম এর প্রসঙ্গ এ, . উল্লেখ করে শব্দের একটি নির্দিষ্ট শ্রেণী কিভাবে inflect করবে| Morphological . তে, লেমা (ওপরে দেখুন) . এর সাথে যুক্ত যা আমাদের লেমার . বর্ণনা করতে সাহায্য করে পুরো না লিখা সত্তেও|
An example of the utility of this is, if we wanted to store the two adjectives ''happy'' and ''lazy'', instead of storing two lots of the same thing:


এটির উপযোগীতার একটি উদাহরণ, যদি আমরা দুই বিশেষণ Happy এবং Lazy সংরক্ষণ করতে চাই, একই জিনিসের দুই সংরক্ষণ করার পরিবর্তে:
* happy, happ (y, ier, iest)
* lazy, laz (y, ier, iest)


*happy, happ (y, ier, iest)
We can simply store one, and then say "lazy, inflects like happy", or indeed "shy inflects like happy", "naughty inflects like happy", "friendly inflects like happy", etc. In this example, happy would be the paradigm, the model for how the others inflect. The precise description of how this is defined will be explained shortly. Paradigms are defined in <pardef> tags, and used in <par> tags.
*lazy, laz (y, ier, iest)


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

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

==আরম্ভকৃত পাচ্ছে==
<!-- Ur yezh indezeuropek eo ar brezhoneg -->
<!-- Ur yezh indezeuropek eo ar brezhoneg -->


===মনলিন্গুয়াল অভিধান===
===Monolingual dictionaries===
{{see-also|List of dictionaries|Incubator}}
{{see-also|List of dictionaries|Incubator}}
আসুন আমাদের প্রথম উৎ‍স ভাষা শব্দভাণ্ডার তৈরি করার মধ্যে দিয়ে শুরু করি। শব্দভাণ্ডার একটি xml ফাইল। আপনার লেখা সম্পাদক চালু করূন এবং নিম্নলিখিত টেক্স্‌ট টাইপ করুন:
Let's start by making our first source language dictionary. The dictionary is an XML file. Fire up your text editor and type the following:
<pre>
<pre>
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
Line 67: Line 71:
</dictionary>
</dictionary>
</pre>
</pre>
সুতরাং, ফাইল এখনও পর্যন্ত সংজ্ঞায়িত করে আমরা একটি শব্দভাণ্ডার শুরু করতে চাই| এটিকে কার্যকর করার জন্য, আমাদের আরও বেশি কিছু এন্ট্রি, যোগ করার প্রয়োজন আছে, প্রথমটী একটি বর্ণমালা | এইটি letter সেট সংজ্ঞায়িত করে যে Serbo-Croatian এর জন্য শব্দভাণ্ডার,তে ব্যবহার করা যেতে পারে| নিম্নলিখিতের মত কিছু জিনিষ দেখতে পারবেন,
So, the file so far defines that we want to start a dictionary. In order for it to be useful, we need to add some more entries, the first is an alphabet. This defines the set of letters that may be used in the dictionary, for Serbo-Croatian. It will look something like the following, containing all the letters of the Serbo-Croatian alphabet:
যাতে Serbo-Croatian এর সব letter থাকবে|
<pre>
<pre>
<alphabet>ABCČĆDDžĐEFGHIJKLLjMNNjOPRSŠTUVZŽabcčćddžđefghijklljmnnjoprsštuvzž</alphabet>
<alphabet>ABCČĆDDžĐEFGHIJKLLjMNNjOPRSŠTUVZŽabcčćddžđefghijklljmnnjoprsštuvzž</alphabet>
</pre>
</pre>


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

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


Next we need to define some symbols. Let's start off with the simple stuff, noun (n) in singular (sg) and plural (pl).
<pre>
<pre>
<sdefs>
<sdefs>
Line 82: Line 88:
</sdefs>
</sdefs>
</pre>
</pre>
The symbol names do not have to be so small, in fact, they could just be written out in full, but as you'll be typing them a lot, it makes sense to abbreviate.


চিহ্ন নামগুলো অত ছোটো নাও হতে পারে , তাদেরকে পুরো লেখাও যেতে পারে , কিন্তু তাতে আপনাকে অনেক বেশি টাইপ করতে হবে যা করার দরকার নেই|
Unfortunately, it isn't quite so simple, nouns in Serbo-Croatian inflect for more than just number, they also inflect for gender and case. However, we'll assume for the purposes of this example that the noun is masculine and in the nominative case (a full example may be found at the end of this document).
দুর্ভাগ্যবশত, এইটি সম্পূর্ণভাবে সোজা নয়, .-. ভাষায় নাউন লিঙ্গ এবং কেস কেও বোঝায় | আমরা এই উদাহরনটির জন্য ধরে নেবো যে নাউনটি মাস্ক্যুলিন এবং . কেস এর|(উদাহরণ এই ডকুমেন্টটির শেষে খুঁজে পাওয়া যাবে)

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


The next thing is to define a section for the paradigms,
<pre>
<pre>
<pardefs>
<pardefs>
Line 92: Line 99:
</pardefs>
</pardefs>
</pre>
</pre>
এবং একটি শব্দভাণ্ডার অংশ:
and a dictionary section:
<pre>
<pre>
<section id="main" type="standard">
<section id="main" type="standard">
Line 98: Line 105:
</section>
</section>
</pre>
</pre>
অনুচ্ছেদের দুই ধরন আছে, প্রথম একটি মান অংশ, যে শব্দ, enclitics, ইত্যাদি ধারণ করে | দ্বিতীয় ধরন একটি inconditional অংশ যেটি বিরাম চিহ্ন ধারণ করে| আমাদের inconditional অংশ এখানে নেই|
There are two types of sections, the first is a standard section, that contains words, enclitics, etc. The second type is an [[inconditional section]] which typically contains punctuation, and so forth. We don't have an inconditional section here.


সুতরাং, আমাদের ফাইল এ এমন কিছু জিনিষ এখন দেখানো উচিত:
So, our file should now look something like:
<pre>
<pre>
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
Line 117: Line 124:
</dictionary>
</dictionary>
</pre>
</pre>
আমরা এখন স্থানে কাঠামো পেয়েছি, আমরা একটি নাউন যোগ করার মধ্যে দিয়ে শুরু করতে পারি। প্রশ্নে নাউন 'গ্রামোফোন' হবে, (যার মানে 'Gramaphone' অথবা 'Record player' অভিপ্রায় করে)।
Now we've got the skeleton in place, we can start by adding a noun. The noun in question will be 'gramofon' (which means 'gramophone' or 'record player').


প্রথম জিনিস আমাদের যা করার প্রয়োজন আছে, আগের কোনো paradigm নেই, একটি paradigm সংজ্ঞায়িত করার|
The first thing we need to do, as we have no prior paradigms, is to define a paradigm.


স্মরণ করুন, আমরা ধরে masculine লিঙ্গ এবং nominative case ধরেছি | নাউন এর একবচন আকার 'Gramaphon', এবং প্লুরল 'Gramaphone' হয়|
Remember, we're assuming masculine gender and nominative case. The singular form of the noun is 'gramofon', and the plural is 'gramofoni'. So:
সুতরাং:
<pre>
<pre>
<pardef n="gramofon__n">
<pardef n="gramofon__n">
Line 128: Line 136:
</pardef>
</pardef>
</pre>
</pre>
নোট:<l/> ( সমতুল্য<l></l>) বোঝায় যে অতিরিক্ত পদার্থ যোগ করতে হবে না সিংগ্যুলর এর স্টেমে |
Note: the '<l/>' (equivalent to <l></l>) denotes that there is no extra material to be added to the stem for the singular.


এইটি বর্ণনা করার একটি verbose উপায় মনে হতে পরে কিন্তু কারণ আছে যার জন্য এটি Second nature এ তাড়াতাড়ি পরিণত হয়|
This may seem like a rather verbose way of describing it, but there are reasons for this and it quickly becomes second nature. You're probably wondering what the <e>, <p>, <l> and <r> stand for. Well,


আপনি হয়তো ভাবছেন <e>, <l>, <r> কিসের জন্য দরকার
* e, is for entry.
* p, is for pair.
* l, is for left.
* r, is for right.


* e, এন্ট্রি কির জন্য।
Why left and right? Well, the morphological dictionaries will later be compiled into finite state machines. Compiling them left to right produces analyses from words, and from right to left produces words from analyses. For example:
* p, জোড়া কির জন্য।
* l, বাম জন্য।
* r, অধিকার কির জন্য।

কেন left এবং right?
কারণ morphological অভিধান finite state মেশিনে পরবর্তী কালে সঙ্কলন করা হবে। লেফ্‌ট থেকে রাইট এ compile করলে শব্দের analysis হবে, এবং রাইট থেকে লেফ্‌ট করলে analysis থেকে শব্দ হবে|
উদাহরণ:
<pre>
<pre>
* gramofoni (left to right) gramofon<n><pl> (analysis)
* gramofoni (left to right) gramofon<n><pl> (analysis)
* gramofon<n><pl> (right to left) gramofoni (generation)
* gramofon<n><pl> (right to left) gramofoni (generation)
</pre>
</pre>
আমরা এখন একটি paradigm সংজ্ঞায়িত করেছি, আমরা এর lemmaতে (gramafon) এইটি সংযোগ করতে প্রয়োজন বোধ করি|
Now we've defined a paradigm, we need to link it to its lemma, gramofon. We put this in the section that we've defined.


এটা আমরা আমাদের লেখা অংশতে যোগ করছি| সংযোজন এমন হবে-
The entry to put in the <section> will look like:
<pre>
<pre>
<e lm="gramofon"><i>gramofon</i><par n="gramofon__n"/></e>
<e lm="gramofon"><i>gramofon</i><par n="gramofon__n"/></e>
</pre>
</pre>
জলদি আমরা শব্দসংক্ষেপ দেখে নি:
A quick run down on the abbreviations:


* lm, লেম্মা কির জন্য।
* lm, is for lemma.
* i, পরিচয় কির জন্য (বাকি আছে এবং অধিকার একই আছে)।
* i, is for identity (the left and the right are the same).
* par, পারাদিগ্ম কির জন্য।
* par, is for paradigm.


এই এন্ট্রিটি লেমার অর্থ বোঝায় gramofon, the root, gramofon এবং paradigm যা দিয়ে gramofon__n বোঝায়| lemma এবং মূলের মধ্যে পার্থক্য যে lemma কথার উদ্ধৃতি আকার, লেমাএর substring যেটিতে তাতে stems যোগ করা হয় | পরে আরও ভালো করে বুঝতে পারবেন|
This entry states the lemma of the word, gramofon, the root, gramofon and the paradigm with which it inflects gramofon__n. The difference between the lemma and the root is that the lemma is the citation form of the word, while the root is the substring of the lemma to which stems are added. This will become clearer later when we show an entry where the two are different.


আমরা এখন ডিক্ষনরী টেস্ট করার জন্য প্রস্তুত | এইটি সংরক্ষণ করুন, এবং তারপর শেলে ফেরত যান,এইটি সঙ্কলন করতে আমরা প্রথম প্রয়োজন (ltcomp), তারপর আমরা এইটি পরীক্ষা করতে পারি (lt-proc)।
We're now ready to test the dictionary. Save it, and then return to the shell. We first need to compile it (with lt-comp), then we can test it (with lt-proc).
<pre>
<pre>
$ lt-comp lr apertium-sh-en.sh.dix sh-en.automorf.bin
$ lt-comp lr apertium-sh-en.sh.dix sh-en.automorf.bin
</pre>
</pre>
Output:
Should produce the output:
<pre>
<pre>
main@standard 12 12
main@standard 12 12
</pre>
</pre>
আমরা ডানদিক থেকে এইটি সঙ্কলন করছি তাই আমরা একটা analyser উৎপাদন করছি| আসুন একটি উৎ‍পাদক তৈরি করি।
As we are compiling it left to right, we're producing an analyser. Lets make a generator too.
<pre>
<pre>
$ lt-comp rl apertium-sh-en.sh.dix sh-en.autogen.bin
$ lt-comp rl apertium-sh-en.sh.dix sh-en.autogen.bin
</pre>
</pre>
এই দশাতেটি, কমান্ডের একই আউটপুট তৈরি করা উচিত।
At this stage, the command should produce the same output.
আমরা এইগুলি এখন পরীক্ষা করতে পারি | Run lt-proc on the analyser.

We can now test these. Run lt-proc on the analyser.
<pre>
<pre>
$ lt-proc sh-en.automorf.bin
$ lt-proc sh-en.automorf.bin
</pre>
</pre>
টাইপ করূন gramafoni (gramophones), এবং আউটপুট দেখুন:
Now try it out, type in gramofoni (gramophones), and see the output:
<pre>
<pre>
^gramofoni/gramofon<n><pl>$
^gramofoni/gramofon<n><pl>$
</pre>
</pre>
ইংগ্লীশ ডিক্ষনরীর জন্য, একই কাজ করূন কিন্তু Gramaphone ব্যাবহার করূন Gramaphon এর জায়গায়, এবং পরে প্লুরলটা পাল্টে নেবেন|
Now, for the English dictionary, do the same thing, but substitute the English word gramophone for gramofon, and change the plural inflection. What if you want to use the more correct word 'record player'? Well, we'll explain how to do that later.


আপনার ডিরেক্টরীতে দুই ফাইল এখন থাকা উচিত:
You should now have two files in the directory:


* apertium-sh-en.sh.dix একটি কোন ধারণ করে (খুব) মৌলিক সের্ব-ক্রাতিয়ান মর্ফলোগিকাল শব্দভাণ্ডার, এবং
* apertium-sh-en.sh.dix which contains a (very) basic Serbo-Croatian morphological dictionary, and
* apertium-sh-en.en.dix একটি কোন ধারণ করে (খুব) মৌলিক ইংরেজী মর্ফলোগিকাল শব্দভাণ্ডার।
* apertium-sh-en.en.dix which contains a (very) basic English morphological dictionary.


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


আমাদের সুতরাং দুই morphological অভিধান এখন রয়েছে, তৈরি করতে হবে পরবর্তী জিনিস, bilingual শব্দভাণ্ডার।এইটি শব্দের মধ্যে mappings বর্ণনা করে |
So we now have two morphological dictionaries, next thing to make is the bilingual dictionary. This describes mappings between words. All dictionaries use the same format (which is specified in the DTD, dix.dtd).
সমস্ত অভিধান একই ফরম্যাট ব্যবহার করে (যেটি ডিটিডি, dix ডিটিডিতে উল্লেখ করা হয়)।


Create a new file, apertium-sh-en.sh-en.dix and add the basic skeleton:
একটি নতুন ফাইল, apertium-sh-en sh-en dix তৈরি করুন এবং মৌলিক কাঠামো যোগ করুন:
<pre>
<pre>
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
Line 205: Line 217:
</dictionary>
</dictionary>
</pre>
</pre>
আমরা এখন দুই শব্দের মধ্যে অনুবাদ করতে একটি এন্ট্রি যোগ করার প্রয়োজন বোধ করি।
Now we need to add an entry to translate between the two words. Something like:
এইরকম:
<pre>
<pre>
<e><p><l>gramofon<s n="n"/></l><r>gramophone<s n="n"/></r></p></e>
<e><p><l>gramofon<s n="n"/></l><r>gramophone<s n="n"/></r></p></e>
</pre>
</pre>
কারণ অনেক এই এন্ট্রি আছে, তারা ফাইলের সহজতর পড়া সুবিধাজনক করতে একটি লাইনে typically লিখিত হয়| আমরা Serbo-Croatian → ইংরেজী শব্দভাণ্ডার তৈরি করতে left থেকে এইটি সঙ্কলন করেছিলাম| ইংরেজী → Serbo-Croatian শব্দভাণ্ডার তৈরি করতে ডানদিক থেকে শুরু করেছিলাম|
Because there are a lot of these entries, they're typically written on one line to facilitate easier reading of the file. Again with the 'l' and 'r' right? Well, we compile it left to right to produce the Serbo-Croatian → English dictionary, and right to left to produce the English → Serbo-Croatian dictionary.


সুতরাং, এটি করা হয়ে গেলে, নিম্নলিখিত র্নিদেশাবলী চালান:
So, once this is done, run the following commands:
<pre>
<pre>
$ lt-comp lr apertium-sh-en.sh.dix sh-en.automorf.bin
$ lt-comp lr apertium-sh-en.sh.dix sh-en.automorf.bin
Line 222: Line 235:
$ lt-comp rl apertium-sh-en.sh-en.dix en-sh.autobil.bin
$ lt-comp rl apertium-sh-en.sh-en.dix en-sh.autobil.bin
</pre>
</pre>
To generate the morphological analysers (automorf), the morphological generators (autogen) and the word lookups (autobil), the bil is for "bilingual".


===স্থানান্তর নিয়ম===
===Transfer rules===


সুতরাং, আমাদের এখন দুই মর্ফলোগিকাল অভিধান রয়েছে, এবং একটি দুই ভাষা শব্দভাণ্ডার। সমস্ত সেটা আমরা নৌনসএর জন্য একটি স্থানান্তর রুল এখন প্রয়োজন বোধ করে। স্থানান্তর রুল ফাইলের তাদের নিজের ডিটিডি রয়েছে (স্থানান্তর ডিটিডি) যেটি অপের্তিউম প্যাকেজে খুঁজে পা যাবে। যদি আপনি অন্যান্য ভাষা জোড়া প্রথমের রুল ফাইলে দেখতে একটি রুল এইটি একটি ভাল ধারনা বাস্তবায়ন করতে প্রায়শই প্রয়োজন বোধ করেন। অনেক নিয়ম ভাষার মধ্যে রেচ্য়্চ্লেদ/রেউসেদ যাবে। হের নিচে উদাহরণ একটি বর্ণনাকৃতের জন্য যেকোন ফাঁকা বিষয় ভাষার জন্য কার্যকর।
So, now we have two morphological dictionaries, and a bilingual dictionary. All that we need now is a transfer rule for nouns. Transfer rule files have their own DTD (transfer.dtd) which can be found in the Apertium package. If you need to implement a rule it is often a good idea to look in the rule files of other language pairs first. Many rules can be recycled/reused between languages. For example the one described below would be useful for any null-subject language.


একটি মৌলিক কাঠামোর সঙ্গে সমস্ত অন্যান্যের মত শুরু করুন:
Start out like all the others with a basic skeleton:
<pre>
<pre>
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
Line 235: Line 247:
</transfer>
</transfer>
</pre>
</pre>
মূহুর্তে, কারণ আমরা একটি রুল তৈরি করতে উপেক্ষা করছে খাপ, আমরা প্রয়োজন মাত্র 'reই যে ব্যাকরণগত চিহ্ন ইনপুট এবং আউটপুট তাদেরকে পুনরায় গ্রহণ করি।
At the moment, because we're ignoring case, we just need to make a rule that takes the grammatical symbols input and outputs them again.


শ্রেণীবিভাগ এবং বৈশিষ্ট্যাবলী সংজ্ঞায়িত করতে আমরা প্রথম প্রয়োজন। শ্রেণীবিভাগ এবং ব্যাকরণগত চিহ্ন দলবদ্ধ করতে উভয় আমাদেরকে আরোপ করে অনুমোদন করে। শ্রেণীবিভাগ মিলের উদ্দ্যেশ্যের জন্য চিহ্ন দলবদ্ধ করতে আমাদেরকে অনুমোদন করে (উদাহরণ 'n *'এর জন্য সমস্ত নৌনস)। বৈশিষ্ট্যাবলী চিহ্নের একটি সেট দলবদ্ধ করতে আমাদেরকে অনুমোদন করেন যে থেকে বেছে নে যাবে। উদাহরণের জন্য ('sg' এবং 'pl' একটি একটি বৈশিষ্ট্য 'number' দলবদ্ধ করা হয়ত যাবে)।
We first need to define categories and attributes. Categories and attributes both allow us to group grammatical symbols. Categories allow us to group symbols for the purposes of matching (for example 'n.*' is all nouns). Attributes allow us to group a set of symbols that can be chosen from. For example ('sg' and 'pl' may be grouped a an attribute 'number').


আসুন প্রয়োজনীয় অনুচ্ছেদ যোগ করি:
Lets add the necessary sections:
<pre>
<pre>
<section-def-cats>
<section-def-cats>
Line 248: Line 260:
</section-def-attrs>
</section-def-attrs>
</pre>
</pre>
আমরা হিসেবে একবচন এবং প্লুরালতে ইন্ফ্লেচ্তিং, নৌনস কেবল 'reই তারপর আমরা নৌনসএর জন্য একটি শ্রেণী যোগ করতে প্রয়োজন বোধ করি, এবং সংখ্যার একটি বৈশিষ্ট্যের সঙ্গে। নিম্নলিখিতের মত কিছু জিনিষ বেশা হবে:
As we're only inflecting, nouns in singular and plural then we need to add a category for nouns, and with an attribute of number. Something like the following will suffice:


Into section-def-cats add:
ের দিকে যোগ করুন section-def-cats:
<pre>
<pre>
<def-cat n="nom">
<def-cat n="nom">
Line 256: Line 268:
</def-cat>
</def-cat>
</pre>
</pre>
এইটি সমস্ত নৌনস ধরে (লেম্মাস ের মধ্যে অনুসরণ করেছিল<n> তারপর যেকিছু) এবং হিসেবে তাদেরকেতে উল্লেখ করে " nom " (আমরা দেখব যেমন যে পরবর্তী কালে ব্যবহার করা হয়)।
This catches all nouns (lemmas followed by <n> then anything) and refers to them as "nom" (we'll see how thats used later).


Into the section section-def-attrs, add:
অংশের দিকে যোগ করুন section-def-attrs:
<pre>
<pre>
<def-attr n="nbr">
<def-attr n="nbr">
Line 271: Line 283:
</def-attr>
</def-attr>
</pre>
</pre>
প্রথম আরোপ করা nbr সংজ্ঞায়িত করে (সংখ্যা), যেটি হয় একবচন (sg) অথবা প্লুরাল (pl)।
The first defines the attribute nbr (number), which can be either singular (sg) or plural (pl).


দ্বিতীয় আরোপ করা a_nom সংজ্ঞায়িত করে (নুন আরোপ করুন)।
The second defines the attribute a_nom (attribute noun).


পরবর্তী আমরা সার্বিক চলকের জন্য একটি অনুচ্ছেদ যোগ করতে প্রয়োজন বোধ করি:
Next we need to add a section for global variables:
<pre>
<pre>
<section-def-vars>
<section-def-vars>
Line 281: Line 293:
</section-def-vars>
</section-def-vars>
</pre>
</pre>
এই চলক নিয়মের মধ্যে অথবা স্থানান্তর বৈশিষ্ট্যাবলী সংরক্ষণ করতে ব্যবহার করা হয়। আমরা, এখনের জন্য কেবল একটি প্রয়োজন বোধ করি
These variables are used to store or transfer attributes between rules. We need only one for now,
<pre>
<pre>
<def-var n="number"/>
<def-var n="number"/>
</pre>
</pre>
পরিশেষে, আমরা নুন এবংতে গ্রহণ করতে একটি রুল, যোগ করতে প্রয়োজন বোধ করি তারপর সঠিক ফর্মে বেলুতো এইটি। আমরা একটি নিয়ম অনুচ্ছেদ প্রয়োজন বোধ করব...
Finally, we need to add a rule, to take in the noun and then output it in the correct form. We'll need a rules section...
<pre>
<pre>
<section-rules>
<section-rules>
Line 291: Line 303:
</section-rules>
</section-rules>
</pre>
</pre>
পূর্ববর্তী উদাহরণ থেকে হার পরিবর্তন করছে, আমি এই রুলটি, মাত্র সাঁটব তারপর অন্যান্য রাস্তা গোলের চেয়ে এইটি, বরংএর মধ্য দিয়ে যান।
Changing the pace from the previous examples, I'll just paste this rule, then go through it, rather than the other way round.
<pre>
<pre>
<rule>
<rule>
Line 309: Line 321:
</pre>
</pre>


প্রথম ট্যাগ বোধগম্য, এইটি একটি রুল সংজ্ঞায়িত করে। দ্বিতীয় ট্যাগ, নকশা প্রাথমিকভাবে বলে: " এই রুলটি প্রয়োগ করুন, যদি এই নকশাটি খুঁজে পাওয়া হয় "। এই উদাহরন নকশাতে একটি একক নুনের গঠিত হয় (শ্রেণী পদ nomএর দ্বারা সংজ্ঞায়িত করেছিল)। নোট যে নকশা একটি দীর্ঘতম মেবলে প্রথমে মেবলেওয়া হয়। যদি আপনার সুতরাং তিন নিয়ম, প্রথম ধরা রয়েছে "<prn><vblex><n> ", দ্বিতীয় ধরা "<prn><vblex> " এবং তৃতীয় ধরা "<n> ", নকশা মেবলিয়েছিল, এবং রুল প্রথম রান করেছিল।
The first tag is obvious, it defines a rule. The second tag, pattern basically says: "apply this rule, if this pattern is found". In this example the pattern consists of a single noun (defined by the category item nom). Note that patterns are matched in a longest-match first. So if you have three rules, the first catches "<prn><vblex><n>", the second catches "<prn><vblex>" and the third catches "<n>", the pattern matched, and rule executed will be the first.


প্রত্যেক নকশার জন্য, একটি সহযোগী কার্য আছে, যেটি একটি সহযোগী বেলুতো, বাইরে তৈরি করে। বেলুতো, একটি লেক্সাল অংশ (lu)।
For each pattern, there is an associated action, which produces an associated output, out. The output, is a lexical unit (lu).


ক্লিপ ট্যাগ নির্বাচন করতে একটি ব্যবহারকারী অনুমোদন করে এবং বৈশিষ্ট্যাবলী নিপুণভাবে ব্যবহার করুন এবং সূত্র ভাষার অংশ (side= " এস. এল. "), অথবা লক্ষ্য ভাষা (side= " tl ") লেক্সাল পদ।
The clip tag allows a user to select and manipulate attributes and parts of the source language (side="sl"), or target language (side="tl") lexical item.


আসুন এইটি এবং পরীক্ষা এইটি সঙ্কলন করি। ট্রান্সফার নিয়ম ের সঙ্গে সঙ্কলন করা হয়:
Let's compile it and test it. Transfer rules are compiled with:
<pre>
<pre>
$ apertium-preprocess-transfer apertium-sh-en.sh-en.t1x sh-en.t1x.bin
$ apertium-preprocess-transfer apertium-sh-en.sh-en.t1x sh-en.t1x.bin
</pre>
</pre>
Which will generate a <code>sh-en.t1x.bin</code> file.
একটি কোন উৎ‍পাদন করবে<code> sh-en t1x bins</code> ফাইল।


আমরা এখন আমাদের মেশিন অনুবাদ পদ্ধতি পরীক্ষা করতে তৈরি 'reই। একটি গুরুত্বপূর্ণ খন্ড লক্ষ্যভ্রষ্ট হচ্ছে, বাকের খন্ড (PoS) ট্যাগার, কিন্তু সেইটি সল্প সময়ে ব্যাখ্যা করা হবে। আমরা এখন হ হিসেবে এইটি পরীক্ষা করতে পারি:
Now we're ready to test our machine translation system. There is one crucial part missing, the part-of-speech (PoS) tagger, but that will be explained shortly. In the meantime we can test it as is:


প্রথম, একটি কথা, গ্রামফনি বিশ্লেষণ করতে দেয়:
First, lets analyse a word, gramofoni:
<pre>
<pre>
$ echo "gramofoni" | lt-proc sh-en.automorf.bin
$ echo "gramofoni" | lt-proc sh-en.automorf.bin
^gramofon/gramofon<n><pl>$
^gramofon/gramofon<n><pl>$
</pre>
</pre>
এখন, POS ট্যাগার সাধারণভাবে এখানে বাকের খন্ডে ঠিক সংস্করণ বেছে নেবে ভিত্তি করবে, কিন্তু আমাদের একটি POS ট্যাগার এখনও নেই, সুতরাং আমরা এই ছোট gawkটি লিপি ব্যবহার করতে পারি (Sergioতে ধন্যবাদ) যে প্রথম পদ মাত্র আউটপুটব আহরন করব।
Now, normally here the POS tagger would choose the right version based on the part of speech, but we don't have a POS tagger yet, so we can use this little gawk script (thanks to Sergio) that will just output the first item retrieved.
<pre>
<pre>
$ echo "gramofoni" | lt-proc sh-en.automorf.bin | \
$ echo "gramofoni" | lt-proc sh-en.automorf.bin | \
Line 334: Line 346:
^gramofon<n><pl>$
^gramofon<n><pl>$
</pre>
</pre>
ের পদ্ধতি এখন যে স্থানান্তর রুলের সঙ্গে:
Now let's process that with the transfer rule:
<pre>
<pre>
$ echo "gramofoni" | lt-proc sh-en.automorf.bin | \
$ echo "gramofoni" | lt-proc sh-en.automorf.bin | \
Line 340: Line 352:
apertium-transfer apertium-sh-en.sh-en.t1x sh-en.t1x.bin sh-en.autobil.bin
apertium-transfer apertium-sh-en.sh-en.t1x sh-en.t1x.bin sh-en.autobil.bin
</pre>
</pre>
এইটি আউটপুটবে:
It will output:
<pre>
<pre>
^gramophone<n><pl>$^@
^gramophone<n><pl>$^@
</pre>
</pre>
* 'gramophone' is the target language (side="tl") lemma (lem) at position 1 (pos="1").
* 'gramophone' লক্ষ্য কি ভাষা (side="tl") লেম্মা (lem) অবস্থান ১তে (pos="1")
* '<n>' অবস্থান ১তে লক্ষ্য কি ভাষা a_nom।
* '<n>' is the target language a_nom at position 1.
* '<pl>' লক্ষ্য কি ভাষা সংখ্যার আরোপ করে (nbr) অবস্থান ১তে।
* '<pl>' is the target language attribute of number (nbr) at position 1.


এই ক্লিপগুলি বক্তব্যের মন্তব্য একটি চেষ্টা করুন, পুনরায় সঙ্কলন করুন এবং দেখুন যার ঘটেন।
Try commenting out one of these clip statements, recompiling and seeing what happens.


সুতরাং, আমাদের এখন স্থানান্তর, কেবল জিনিস থেকে আউটপুট রয়েছে যে লক্ষ্য ভাষা রূপ উৎ‍পাদন করতে থাকি ইন্ফ্লেচ্তই। এইের জন্যটি, আমরা lt-proc ব্যবহার করে, উৎ‍পাদনে কিন্তু (-g), বিশ্লেষণ মোড না।
So, now we have the output from the transfer, the only thing that remains is to generate the target-language inflected forms. For this, we use lt-proc, but in generation (-g), not analysis mode.
<pre>
<pre>
$ echo "gramofoni" | lt-proc sh-en.automorf.bin | \
$ echo "gramofoni" | lt-proc sh-en.automorf.bin | \
Line 359: Line 371:
gramophones\@
gramophones\@
</pre>
</pre>
এবং ক'ইস্ট কা. আপনার একটি মেশিন অনুবাদ পদ্ধতি এখন রয়েছে যে একটি ইংরেজী নুনএর দিকে একটি সের্ব-ক্রাতিয়ান নুন অনুবাদ করেন। এই পরিষ্কার ভাবেটি খুব কার্যকর নয়, কিন্তু আমরা আরও বেশি জটিল জিনিষ শীঘ্রইের ওপর পাব। ওহ, এবং '@' চিহ্নের সম্বন্ধে উদ্ধিগ্ন হয় না, আমি ব্যাখ্যা করব যে শীঘ্রই খুব।
And c'est ca. You now have a machine translation system that translates a Serbo-Croatian noun into an English noun. Obviously this isn't very useful, but we'll get onto the more complex stuff soon. Oh, and don't worry about the '@' symbol, I'll explain that soon too.


একটি অল্প অন্যান্য শব্দের ভাবেন যে গ্রামোফোন হিসেবে একই ইন্ফ্লেচ্তন। সেই যোগ করার সম্বন্ধে কিভাবেগুলি। আমরা যেকোন পারাদিগ্ম্স যোগ করতে প্রয়োজন বোধ করি না, একটি ভাষা এবং দুই ভাষা অভিধানের প্রধান অংশতে এন্ট্রি মাত্র।
Think of a few other words that inflect the same as gramofon. How about adding those. We don't need to add any paradigms, just the entries in the main section of the monolingual and bilingual dictionaries.


==ক্রিয়াপদে আনুন==
==Bring on the verbs==


বেশ, সুতরাং আমাদের একটি পদ্ধতি রয়েছে যে নৌনস অনুবাদ করে, কিন্তু সেইটি মনোরম অর্থহীন, আমরা ক্রিয়াপদ খুব অনুবাদ করতে চায়, এবং এমনকি পুরো বাক্য! দেখতে ক্রিয়াপদের সঙ্গে আমরার সম্বন্ধে কিভাবে শুরু করেন। এই সের্ব-ক্রাতিয়ানতে টি ভিদেটিচ্ছে। সের্ব-ক্রাতিয়ান একটি ফাঁকা বিষয় ভাষা, এইটি অভিপ্রায় করে যে এইটি ক্রিয়াপদের কন্যুগাতেদ আকারার পূর্বে ব্যক্তিগত প্রনৌনস সাধারণভাবে ব্যবহার করে না। ইংরেজী নয়। উদাহরণের জন্য সুতরাং: আমাকে সের্ব-ক্রাতিয়ানে ভিদিম হিসেবে ইংরেজীতে দেখা হয় অনুবাদ করা হয়।
Ok, so we have a system that translates nouns, but thats pretty useless, we want to translate verbs too, and even whole sentences! How about we start with the verb to see. In Serbo-Croatian this is videti. Serbo-Croatian is a null-subject language, this means that it doesn't typically use personal pronouns before the conjugated form of the verb. English is not. So for example: I see in English would be translated as vidim in Serbo-Croatian.


* Vidim
* ভিদিম
* see<p1><sg>
* দেখুন<p1><sg>
* আমি দেখি
* I see


Note: <code><p1></code> denotes first person
নোট: <code><p1></code> প্রথম ব্যক্তি অভিপ্রায় করে


এইটি গুরুত্বপূর্ণ হবে যখন আমরা ক্রিয়াপদের জন্য স্থানান্তর রুল লেখতে আসয়। ফাঁকা বিষয় ভাষার অন্যান্য উদাহরণ অন্তর্ভুক্ত করে: স্পেনিয়, রোমানিয়ান এবং পোলিশ। এইটির প্রভাব ও রয়েছে যে সের্ব-ক্রাতিয়ান মর্ফলোগিকাল শব্দভাণ্ডারে ক্রিয়াপদ যোগ করতে আমরা কেবল প্রয়োজনার সময়, আমরা উভয় ক্রিয়াপদ যোগ করতে প্রয়োজন বোধ করে, ইংরেজী মর্ফলোগিকাল শব্দভাণ্ডারে এবং ব্যক্তিগত প্রনৌনস। আমরা এইের উভয়ের মধ্য দিয়েগুলি যাব।
This will be important when we come to write the transfer rule for verbs. Other examples of null-subject languages include: Spanish, Romanian and Polish. This also has the effect that while we only need to add the verb in the Serbo-Croatian morphological dictionary, we need to add both the verb, and the personal pronouns in the English morphological dictionary. We'll go through both of these.


ক্রিয়াপদ videtiএর অন্যান্য রূপ আছে: vidiš, vidi, vidimo, vidite, এবং vide; যেটি তে সঙ্গতিপূর্ণ হওয়ায়: আপনি দেখুন (একবচন), সে দেখেন, আমরা দেখেন, আপনি দেখুন (প্লুরাল), এবং তারা দেখে।
The other forms of the verb videti are: vidiš, vidi, vidimo, vidite, and vide; which correspond to: you see (singular), he sees, we see, you see (plural), and they see.


আপনার দুই রূপ দেখি, একটি এবং আনুষ্ঠানিক একবচন প্লুরালছি (vidite) এবং অন্যান্য একবচন এবং আনুষ্ঠানিক নয় (vidiš)।
There are two forms of you see, one is plural and formal singular (vidite) and the other is singular and informal (vidiš).


আমরা চেষ্টা করব এবং বাক্য অনুবাদ করুন: " Vidim gramofoni "ের দিকে " আমি gramophones দেখেন "। স্থানের আগ্রহে, আমরা অনুবাদ করতে যথেষ্ট তথ্য মাত্র যোগ করব এবং ভরাট করা কি পারাদিগ্ম্স বাদ দেবে (ক্রিয়াপদের যোগ করা অন্যান্য কন্যুগাতীয়নস) পাঠকে একটি অনুশীলন হিসেবে।
We're going to try and translate the sentence: "Vidim gramofoni" into "I see gramophones". In the interests of space, we'll just add enough information to do the translation and will leave filling out the paradigms (adding the other conjugations of the verb) as an exercise to the reader.


চতুর পাঠক এই বিন্দুটির দ্বারা অনুভব করবে যে আমরা ভিদিম গ্রামফনি মাত্র অনুবাদ করতে পারি না কারণ এইটি সের্ব-ক্রাতিয়ানে একটি ব্যাকরণ সঠিক বাক্য না। সঠিক বাক্য ভিদিম গ্রামোফোনে হবে, নুন হিসেবে কর্মকারক খাপ গ্রহণ করে। আমাদেরকে এখন যদিওের জন্য খাপ তথ্য যোগ করতে সেই আকারটি, কোনও প্রয়োজন খুব যোগ করতে, আমরা প্লুরালের জন্য অন্য একটি পছন্দ হিসেবে এইটি মাত্র যোগ করি। সুতরাং, 'i'এর জন্য 'e' বনধ্ মাত্র কপি করে এবং সেখানে 'e'তে 'i' পরিবর্তন করুন।
The astute reader will have realised by this point that we can't just translate vidim gramofoni because it is not a grammatically correct sentence in Serbo-Croatian. The correct sentence would be vidim gramofone, as the noun takes the accusative case. We'll have to add that form too, no need to add the case information for now though, we just add it as another option for plural. So, just copy the 'e' block for 'i' and change the 'i' to 'e' there.


প্রথম জিনিস আমরা কিছু আরও বেশি চিহ্ন কর হ যোগ করতে প্রয়োজন বোধ করি। আমরা 'verb'এর জন্য প্রথম একটি চিহ্ন যোগ করতে প্রয়োজন বোধ করি, যেটি আমরা ডাক দেব " vblex " (এইটি মদল ক্রিয়াপদ এবং অন্যান্য ধরনের পরিবর্তে লেক্সাল ক্রিয়াপদ, অভিপ্রায় করি)। ভের্ব্সের 'person' রয়েছে, সংখ্যার সঙ্গে বরাবর এবং 'tense', ভাল হিসেবে সেইগুলির একটি দম্পতি সুতরাং যোগ করতে দেয়। আমরা অনুবাদ করতে প্রয়োজন বোধ করি " আমি দেখি ", ব্যক্তি আমাদেরের জন্য সুতরাং যোগ করা উচিত " p১ ", অথবা 'first person', কালের জন্য এবং " pri ", অথবা 'present indicative'।
First thing we need to do is add some more symbols. We need to first add a symbol for 'verb', which we'll call "vblex" (this means lexical verb, as opposed to modal verbs and other types). Verbs have 'person', and 'tense' along with number, so lets add a couple of those as well. We need to translate "I see", so for person we should add "p1", or 'first person', and for tense "pri", or 'present indicative'.
<pre>
<pre>
<sdef n="vblex"/>
<sdef n="vblex"/>
Line 389: Line 401:
<sdef n="pri"/>
<sdef n="pri"/>
</pre>
</pre>
আমরার পরে নৌনসের সঙ্গে এই, একই করেছি, আমরা ক্রিয়াপদ কন্যুগাতীয়নের জন্য একটি পারাদিগ্ম যোগ করি। প্রথম লাইন হবে:
After we've done this, the same with the nouns, we add a paradigm for the verb conjugation. The first line will be:
<pre>
<pre>
<pardef n="vid/eti__vblex">
<pardef n="vid/eti__vblex">
</pre>
</pre>
'/' চিহ্নিত করতে ব্যবহার করা হয় যেখানে স্তেম্স (ের মধ্যে অংশ<l></l> ট্যাগ) তে যোগ করা হয়।
The '/' is used to demarcate where the stems (the parts between the <l> </l> tags) are added to.


তারপর প্রথম ব্যক্তি একবচনের জন্য ইন্ফ্লেচ্তীয়ন:
Then the inflection for first person singular:
<pre>
<pre>


Line 401: Line 413:


</pre>
</pre>
'im' শেষাংশ অভিপ্রায় করে ('vidim'তে হিসেবে), এইটি তে 'eti' যোগ করতে প্রয়োজনীয়<r> অংশ, এই হিসেবেটি সংজ্ঞার দ্বারা কেটে ফেল বন্ধওয়া হবে। বিশ্রাম ভালভাবে পরিষ্কার, 'vblex' ক্রিয়াপদ লেক্সালছে, 'pri' বর্তমান ইন্দিকাতিভে কাল, 'p১' প্রথম ব্যক্তি এবং 'sg' একবচন। আমরা প্লুরাল ও যোগ করতে পারি যেটি 'sg'এর পরিবর্তে 'im' এবং 'pl'এর পরিবর্তে একই, ব্যতীত 'imo' হব।
The 'im' denotes the ending (as in 'vidim'), it is necessary to add 'eti' to the <r> section, as this will be chopped off by the definition. The rest is fairly straightforward, 'vblex' is lexical verb, 'pri' is present indicative tense, 'p1' is first person and 'sg' is singular. We can also add the plural which will be the same, except 'imo' instead of 'im' and 'pl' instead of 'sg'.


এই আমরার পরেটি প্রধান অংশতে একটি লেম্মা, পারাদিগ্ম ম্যাপ কর যোগ করতে প্রয়োজন বোধ করে:
After this we need to add a lemma, paradigm mapping to the main section:
<pre>
<pre>
<e lm="videti"><i>vid</i><par n="vid/eti__vblex"/></e>
<e lm="videti"><i>vid</i><par n="vid/eti__vblex"/></e>
</pre>
</pre>
Note: the content of <nowiki><i> </i></nowiki> is the root, not the lemma.
নোট:ের ভিতরের উপাদান<nowiki><i></i></nowiki> মূল কি, লেম্মা নয়।


সেইটি এখনের জন্য সের্ব-ক্রাতিয়ান শব্দভাণ্ডারে কাজ করে। আসুন এইটি সঙ্কলন করি তারপর পরীক্ষা এইটি।
Thats the work on the Serbo-Croatian dictionary done for now. Lets compile it then test it.
<pre>
<pre>
$ lt-comp lr apertium-sh-en.sh.dix sh-en.automorf.bin
$ lt-comp lr apertium-sh-en.sh.dix sh-en.automorf.bin
Line 418: Line 430:
^vidimo/videti<vblex><pri><p1><pl>$
^vidimo/videti<vblex><pri><p1><pl>$
</pre>
</pre>
বেশ, আমরা সুতরাং এখন ইংরেজী শব্দভাণ্ডারের জন্য একই করে (সের্ব-ক্রাতিয়ান একটিতে আপনাকে হিসেবে একই চিহ্ন সংজ্ঞা এখানে যোগ করতে স্মরণ করেছিলেন যোগ করেছিলেন)।
Ok, so now we do the same for the English dictionary (remember to add the same symbol definitions here as you added to the Serbo-Croatian one).


পারাদিগ্ম:
The paradigm is:
<pre>
<pre>
<pardef n="s/ee__vblex">
<pardef n="s/ee__vblex">
</pre>
</pre>
কারণ শেষ কাল 'saw'চ্ছে। এখন, আমরা দুই জিনিষের একটি করতে পারি, আমরা উভয় প্রথম এবং দ্বিতীয় ব্যক্তি যোগ করতে পারি, কিন্তু তারা একই আকার আছে। ঘটনাতে, সমস্ত রূপ (ব্যতীত তৃতীয় ব্যক্তি একবচন) ক্রিয়াপদ 'to see'এর 'see' আছে। আমরা সুতরাং বদলে 'see'এর জন্য একটি এন্ট্রি তৈরি করি এবং এইটি 'pri' চিহ্ন কেবল দিন।
because the past tense is 'saw'. Now, we can do one of two things, we can add both first and second person, but they are the same form. In fact, all forms (except third person singular) of the verb 'to see' are 'see'. So instead we make one entry for 'see' and give it only the 'pri' symbol.
<pre>
<pre>


Line 430: Line 442:


</pre>
</pre>
প্রধান অংশতে, একটি এন্ট্রি চিরন্তন হিসেবে এবং:
and as always, an entry in the main section:
<pre>
<pre>
<e lm="see"><i>s</i><par n="s/ee__vblex"/></e>
<e lm="see"><i>s</i><par n="s/ee__vblex"/></e>
</pre>
</pre>
তারপর সংরক্ষণ করতে দেয়, এবং পরীক্ষা পুনরায় সঙ্কলন করুন:
Then lets save, recompile and test:
<pre>
<pre>
$ lt-comp lr apertium-sh-en.en.dix en-sh.automorf.bin
$ lt-comp lr apertium-sh-en.en.dix en-sh.automorf.bin
Line 442: Line 454:
^see/see<vblex><pri>$
^see/see<vblex><pri>$
</pre>
</pre>
দুই ভাষা শব্দভাণ্ডারে আবশ্যিক এন্ট্রির জন্য এখন:
Now for the obligatory entry in the bilingual dictionary:
<pre>
<pre>
<e><p><l>videti<s n="vblex"/></l><r>see<s n="vblex"/></r></p></e>
<e><p><l>videti<s n="vblex"/></l><r>see<s n="vblex"/></r></p></e>
</pre>
</pre>
(পুনরায়, গোড়ার দিকে থেকে sdefs যোগ করতে ভুলে যােন না)
(again, don't forget to add the sdefs from earlier)


এবং পুনরায় সঙ্কলন করুন::
And recompile:
<pre>
<pre>
$ lt-comp lr apertium-sh-en.sh-en.dix sh-en.autobil.bin
$ lt-comp lr apertium-sh-en.sh-en.dix sh-en.autobil.bin
Line 455: Line 467:
main@standard 18 18
main@standard 18 18
</pre>
</pre>
পরীক্ষা করতে এখন:
Now to test:
<pre>
<pre>
$ echo "vidim" | lt-proc sh-en.automorf.bin | \
$ echo "vidim" | lt-proc sh-en.automorf.bin | \
Line 463: Line 475:
^see<vblex><pri><p1><sg>$^@
^see<vblex><pri><p1><sg>$^@
</pre>
</pre>
আমরা সঠিকভাবের মধ্য দিয়ে বিশ্লেষণ পাই পাশ করি, কিন্তু যখন আমরা চেষ্টা করি এবং এই থেকে একটি উপরিতল আকারটি উৎ‍পাদন করুন, আমরা ের নিচে ের মত একটি '#', পান:
We get the analysis passed through correctly, but when we try and generate a surface form from this, we get a '#', like below:
<pre>
<pre>
$ echo "vidim" | lt-proc sh-en.automorf.bin | \
$ echo "vidim" | lt-proc sh-en.automorf.bin | \
Line 471: Line 483:
#see\@
#see\@
</pre>
</pre>
এই '#'টি অভিপ্রায় করে যে উৎ‍পাদক সঠিক লেক্সাল আকার উৎ‍পাদন করতে পারে না কারণ এইটি এইটি ধারণ করে না। এইটি কেন?
This '#' means that the generator cannot generate the correct lexical form because it does not contain it. Why is this?


বিশ্লেষণ প্রাথমিকভাবে মিলে না, শব্দভাণ্ডারে 'see' দেখে<vblex><pri>, কিন্তু স্থানান্তরের দ্বারা দেখে বিলি করে দেখে<vblex><pri><p1><sg>। সের্ব-ক্রাতিয়ান পাশ ইংরেজী পাশের চেয়ে আরও বেশি তথ্য প্রয়োজন বোধ করেছে। আপনি ইংরেজী শব্দভাণ্ডারে নিরুদ্দেশ চিহ্ন যোগ করার মধ্যে এইটি পরীক্ষা করতে পারেন, এবং তারপর পুনরায় সঙ্কলন করুন, এবং পরীক্ষাকরণ পুনরায়।
Basically the analyses don't match, the 'see' in the dictionary is see<vblex><pri>, but the see delivered by the transfer is see<vblex><pri><p1><sg>. The Serbo-Croatian side has more information than the English side requires. You can test this by adding the missing symbols to the English dictionary, and then recompiling, and testing again.


উপরন্তু, এইের যত্ন গ্রহণ করার একটি আরও বেশি পারাদিগ্মাতিক রাস্তাটি একটি রুল লেখের মধ্যে। সুতরাং, আমরা মুক্ত উপর নিয়ম দাখিল করি (<code> apertium-sh-en sh-en t1x sh-en t1x bin sh-en autobil bin</code> খাপ আপনিতে ভুলে গিয়েছিলেন)।
However, a more paradigmatic way of taking care of this is by writing a rule. So, we open up the rules file (<code>apertium-sh-en.sh-en.t1x sh-en.t1x.bin sh-en.autobil.bin</code> in case you forgot).


আমরা 'verb'এর জন্য একটি নতুন শ্রেণী যোগ করতে প্রয়োজন বোধ করি।
We need to add a new category for 'verb'.
<pre>
<pre>
<def-cat n="vrb">
<def-cat n="vrb">
Line 483: Line 495:
</def-cat>
</def-cat>
</pre>
</pre>
আমরা ব্যক্তির জন্য কাল এবংএর জন্য বৈশিষ্ট্যাবলী যোগ করতে ও প্রয়োজন বোধ করি। আমরা এখনের জন্য এইটি সত্যি সহজ তৈরি করব, আপনি p২ এবং p৩ যোগ করতে পারি, কিন্তু আমি স্থান সংরক্ষণ করতে অর্ডারে না।
We also need to add attributes for tense and for person. We'll make it really simple for now, you can add p2 and p3, but I won't in order to save space.
<pre>
<pre>
<def-attr n="temps">
<def-attr n="temps">
Line 493: Line 505:
</def-attr>
</def-attr>
</pre>
</pre>
আমাদের ক্রিয়াপদের জন্য একটি বৈশিষ্ট্য ও যোগ করা উচিত।
We should also add an attribute for verbs.
<pre>
<pre>
<def-attr n="a_verb">
<def-attr n="a_verb">
Line 499: Line 511:
</def-attr>
</def-attr>
</pre>
</pre>
রুলের ওপর এখন:
Now onto the rule:
<pre>
<pre>
<rule>
<rule>
Line 516: Line 528:
</rule>
</rule>
</pre>
</pre>
পূর্ববর্তী রুল উদাহরণে যখন আপনাকে 'clip' ট্যাগ স্মরণ করেছিলেন চেষ্টা করেছিলেন মন্তব্য কর বাইরিয়েছিলেন এবং তারা স্থানান্তর,, ভাল থেকে অন্তর্ধান করেছিল যে মনোরম অধিক যার আমরা এখানে 'reচ্ছে। আমরা একটি পূর্ণ বিশ্লেষণের সঙ্গে একটি ক্রিয়াপদে গ্রহণ করি, কিন্তু কেবল আউটপুট একটি আংশিক বিশ্লেষণ (লেম্মা + ক্রিয়াপদ ট্যাগ + কাল ট্যাগ)।
Remember when you tried commenting out the 'clip' tags in the previous rule example and they disappeared from the transfer, well, thats pretty much what we're doing here. We take in a verb with a full analysis, but only output a partial analysis (lemma + verb tag + tense tag).


সুতরাং এখন, যদি আমরা সঙ্কলন করি যে পুনরায়, আমরা পাই:
So now, if we recompile that, we get:
<pre>
<pre>
$ echo "vidim" | lt-proc sh-en.automorf.bin | \
$ echo "vidim" | lt-proc sh-en.automorf.bin | \
Line 525: Line 537:
^see<vblex><pri>$^@
^see<vblex><pri>$^@
</pre>
</pre>
এবং:
and:
<pre>
<pre>
$ echo "vidim" | lt-proc sh-en.automorf.bin | \
$ echo "vidim" | lt-proc sh-en.automorf.bin | \
Line 533: Line 545:
see\@
see\@
</pre>
</pre>
'vidimo'এর সঙ্গে এইটি চেষ্টা করুন (আমরা দেখি) দেখতে যদি আপনি সঠিক আউটপুট পাই।
Try it with 'vidimo' (we see) to see if you get the correct output.


Now try it with "vidim gramofone":
ের সঙ্গে এইটি এখন চেষ্টা করে " vidim gramofone ":
<pre>
<pre>
$ echo "vidim gramofoni" | lt-proc sh-en.automorf.bin | \
$ echo "vidim gramofoni" | lt-proc sh-en.automorf.bin | \
Line 544: Line 556:
</pre>
</pre>


==ব্যক্তিগত প্রনৌনসের সম্বন্ধে কিন্তু যার?==
==But what about personal pronouns?==


ভাল, যে মহান, কিন্তু আমরা ব্যক্তিগত প্রনৌন এখনও 'reচ্ছি লক্ষ্যভ্রষ্ট হচ্ছি যে ইংরেজীতে প্রয়োজনীয়। ইংরেজী মর্ফলোগিকাল শব্দভাণ্ডার সম্পাদনা করতে, আমরা প্রথম প্রয়োজনে এইটি যোগ করতে অর্ডারে।
Well, thats great, but we're still missing the personal pronoun that is necessary in English. In order to add it in, we first need to edit the English morphological dictionary.


কর হতে, পূর্বে প্রথম জিনিস হিসেবে প্রয়োজনীয় চিহ্ন যোগ কর:
As before, the first thing to do is add the necessary symbols:
<pre>
<pre>
<sdef n="prn"/>
<sdef n="prn"/>
<sdef n="subj"/>
<sdef n="subj"/>
</pre>
</pre>
দুই চিহ্নের, prn প্রনৌনছে, এবং subj বিষয় (একটি বাক্যের বিষয়ে হিসেবে)।
Of the two symbols, prn is pronoun, and subj is subject (as in the subject of a sentence).


কারণ কোনও মূল নেই, ব্যক্তিগত বিষয় প্রনৌনসের জন্য অথবা 'lemma', আমরা অনুসরণ কর হিসেবে pardef মাত্র যোগ করি:
Because there is no root, or 'lemma' for personal subject pronouns, we just add the pardef as follows:
<pre>
<pre>
<pardef n="prsubj__prn">
<pardef n="prsubj__prn">
Line 561: Line 573:
</pardef>
</pardef>
</pre>
</pre>
'prsubj'এর সঙ্গে 'personal subject' হওয়া। তাদের বিশ্রাম (আপনি, আমরা ইত্যাদি) পাঠকে একটি অনুশীলন হিসেবে ছেড়ে চলে যাওয়া হয়।
With 'prsubj' being 'personal subject'. The rest of them (You, We etc.) are left as an exercise to the reader.


আমরা অনুসরণ কর হিসেবে প্রধান অংশতে একটি এন্ট্রি যোগ করতে পারি:
We can add an entry to the main section as follows:
<pre>
<pre>
<e lm="personal subject pronouns"><i/><par n="prsubj__prn"/></e>
<e lm="personal subject pronouns"><i/><par n="prsubj__prn"/></e>
</pre>
</pre>
সুতরাং, সংরক্ষণ করুন, এবং পরীক্ষা পুনরায় সঙ্কলন করুন, এবং আমাদের ের মত কিছু জিনিষ পাওয়া উচিত:
So, save, recompile and test, and we should get something like:
<pre>
<pre>
$ echo "I" | lt-proc en-sh.automorf.bin
$ echo "I" | lt-proc en-sh.automorf.bin
Line 573: Line 585:
</pre>
</pre>


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


আমরা এখন সঠিক ক্রিয়াপদ আকারের সঙ্গে বরাবর বিষয় ব্যক্তিগত প্রনৌন আউটপুটতে 'verb' রুল মেরামত করতে প্রয়োজন বোধ করি।
Now we need to amend the 'verb' rule to output the subject personal pronoun along with the correct verb form.


প্রথম, একটি শ্রেণী যোগ করুন (এইটির এখনের মধ্যে মনোরম নিরানন্দময় পাওয়া উচিত):
First, add a category (this must be getting pretty pedestrian by now):
<pre>
<pre>
<def-cat n="prpers">
<def-cat n="prpers">
Line 583: Line 595:
</def-cat>
</def-cat>
</pre>
</pre>
বৈশিষ্ট্যাবলী হিসেবে প্রনৌনের ধরন এখন যোগ করে, আমরা এইটিতে আমরা হিসেবে 'obj' ধরন ভাল যোগ কর হিসেবে 'reতে পারি, যদিও আমরা এখনের জন্য এইটি ব্যবহার করতে প্রয়োজন বোধ করি না:
Now add the types of pronoun as attributes, we might as well add the 'obj' type as we're at it, although we won't need to use it for now:
<pre>
<pre>
<def-attr n="tipus_prn">
<def-attr n="tipus_prn">
Line 590: Line 602:
</def-attr>
</def-attr>
</pre>
</pre>
ইনপুট রুলে এবং এখন:
And now to input the rule:
<pre>
<pre>
<rule>
<rule>
Line 615: Line 627:
</rule>
</rule>
</pre>
</pre>
এইটি পূর্বে হিসেবে মনোরম অধিক একই রুল, আমরা কেবল ক্ষুদ্র পরিবর্তনের একটি দম্পতি তৈরি করেছিল।
This is pretty much the same rule as before, only we made a couple of small changes.


আমরা আউটপুটতে প্রয়োজন বোধ করেছিলাম:
We needed to output:
<pre>
<pre>
^prpers<prn><subj><p1><sg>$ ^see<vblex><pri>$
^prpers<prn><subj><p1><sg>$ ^see<vblex><pri>$
</pre>
</pre>
সুতরাং যে উৎ‍পাদক ঠিক pronoun বেছে নিতে পারে এবং ক্রিয়াপদের ঠিক আকার।
so that the generator could choose the right pronoun and the right form of the verb.


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


* <code><lit></code>, prints a literal string, in this case "prpers"
* <code><lit></code>, এই খাপটিতে একটি লিতেরাল পংক্তি, প্রিন্ট করে " prpers "
* <code><lit-tag></code>, একটি লিতেরাল ট্যাগ প্রিন্ট করে, কারণ আমরা ক্রিয়াপদ থেকে ট্যাগ পেতে পারি না, আমরা এই নিজেগুলি, যোগ করি " prn " প্রনৌনের জন্য, এবং " subj " বিষয়ের জন্য।
* <code><lit-tag></code>, prints a literal tag, because we can't get the tags from the verb, we add these ourself, "prn" for pronoun, and "subj" for subject.
* <code><b/></code>, prints a blank, a space.
* <code><b/></code>, একটি ফাঁকা, একটি স্থান প্রিন্ট করে।


নোট যে আমরা ক্রিয়াপদ থেকে সংখ্যা এবং কাল সরাসরিভাবের জন্য তথ্য আহরন করেছিলাম।
Note that we retrieved the information for number and tense directly from the verb.


সুতরাং, এখন যদি আমরা এবং পরীক্ষা সঙ্কলন করি যে পুনরায়:
So, now if we recompile and test that again:
<pre>
<pre>
$ echo "vidim gramofone" | lt-proc sh-en.automorf.bin | \
$ echo "vidim gramofone" | lt-proc sh-en.automorf.bin | \
Line 639: Line 651:
I see gramophones
I see gramophones
</pre>
</pre>
কোন, এইটির সময় গ্রন্থন যথাযথভাবে পুরস্কারছে জয় করছে না (এই হব্তের মত অধিকটি), একটি ভালভাবে নির্ভূল অনুবাদ।
Which, while it isn't exactly prize-winning prose (much like this HOWTO), is a fairly accurate translation.


==রেকর্ড চালকের সম্বন্ধে আমাকে সুতরাং বলেন (মুল্তিবর্দ্স)==
==So tell me about the record player (Multiwords)==


গ্রামোফোনের সময় একটি ইংরেজী কথা, এইটি সর্বোত্তম অনুবাদ নয়। গ্রামোফোনে খুব পুরনো ধরনের জন্য সাধারণভাবে ব্যবহার করা হয়, আপনি স্ত্য্লুসের পরিবর্তে সূচের সঙ্গে জানেন, এবং কোনও চালিত আম্প্লিফিকাতীয়ন না। একটি ভাল অনুবাদ 'রেকর্ড প্লায়ের' হবে। যদিও এইটি একটি কথার চেয়ে আরও বেশি, আমরা হিসেবে এইটি চিকিৎসা করতে পারে যদি এইটি মুল্তিবর্দ ব্যবহার করার মধ্যে একটি কথা (মুল্তিপালাবরা) নির্মাণ।
While gramophone is an English word, it isn't the best translation. Gramophone is typically used for the very old kind, you know with the needle instead of the stylus, and no powered amplification. A better translation would be 'record player'. Although this is more than one word, we can treat it as if it is one word by using multiword (multipalabra) constructions.


আমরা সের্ব-ক্রাতিয়ান শব্দভাণ্ডার, ইংরেজী মাত্র একটি এবং দুই ভাষা একটি স্পর্শ করতে প্রয়োজন বোধ করি না, সুতরাং মুক্ত এইটি উপরি।
We don't need to touch the Serbo-Croatian dictionary, just the English one and the bilingual one, so open it up.


'রেকর্ড প্লায়ের'এর প্লুরাল প্লায়ের্স' 'রেকর্ডছে, সুতরাং এইটি গ্রামোফোনে হিসেবে একই পারাদিগ্ম গ্রহণ করে (gramophone__n) সেই আমরাতে —টি 's' মাত্র যোগ করে। সমস্ত আমরা প্রধান অংশতে একটি নতুন উপাদান কর হ যোগ করতে প্রয়োজন বোধ করে।
The plural of 'record player' is 'record players', so it takes the same paradigm as gramophone (gramophone__n) — in that we just add 's'. All we need to do is add a new element to the main section.
<pre>
<pre>
<e lm="record player"><i>record<b/>player</i><par n="gramophone__n"/></e>
<e lm="record player"><i>record<b/>player</i><par n="gramophone__n"/></e>
</pre>
</pre>
এইের সম্বন্ধে কেবল জিনিস আলাদাটি ের ব্যবহার<b/> ট্যাগ, যদিও এইটি নিয়মে ব্যবহারে আমরা এইটি হিসেবে সমগ্রভাবে নতুন দেখে দাখিল করে না।
The only thing different about this is the use of the <b/> tag, although this isn't entirely new as we saw it in use in the rules file.


সুতরাং, গোঁড়া ফ্যাশনে এবং পরীক্ষা পুনরায় সঙ্কলন করুন:
So, recompile and test in the orthodox fashion:
<pre>
<pre>
$ echo "vidim gramofone" | lt-proc sh-en.automorf.bin | \
$ echo "vidim gramofone" | lt-proc sh-en.automorf.bin | \
Line 661: Line 673:
I see record players
I see record players
</pre>
</pre>
নির্ভুল। মুল্তিবর্দ্স ব্যবহার করার একটি বড় সুবিধা যে আপনি কথা অনুবাদের মধ্যে কথা করতে রাখ প্রতি ব্যতীত ইদীয়মাতিক অভিব্যক্তি, আক্ষরিকভাবে অনুবাদ করতে পারে। উদাহরণ ইংরেজী শব্দসমষ্টির জন্য, " মূহুর্তে " হিসেবে সের্ব-ক্রাতিয়ানের দিকে অনুবাদ করা হবে " ত্রেনুত্ন " (ত্রেনুতক = ''মোমেন্ট'', ত্রেনুত্ন সেইের ক্রিয়া বিশেষণটি হওয়া) — এইটি সের্ব-ক্রাতিয়ানের দিকে কথার মধ্যে এই ইংরেজী শব্দসমষ্টিটি কথা অনুবাদ করতে সম্ভব হবে না।
Perfect. A big benefit of using multiwords is that you can translate idiomatic expressions verbatim, without having to do word-by-word translation. For example the English phrase, "at the moment" would be translated into Serbo-Croatian as "trenutno" (trenutak = ''moment'', trenutno being adverb of that) &mdash; it would not be possible to translate this English phrase word-by-word into Serbo-Croatian.


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


সের্ব-ক্রাতিয়ানের দিয়ালেচ্তাল পরিবর্তনশীলতার কারণে প্রত্যেক কথা লেখের একটি অল্প উপায় সাধারণভাবে রয়েছে। এইটির একটি ঠান্ডা ফোনেটিক লিখন পদ্ধতি রয়েছে সুতরাং আপনি লেখে যেমন আপনি কথা বলে। উদাহরণের জন্য, ইজেকাভিয়ানে জনগণ বলা হয় বলবে " rječনিক ", কোনও একজন বলা হয় একাভিয়ানার সময় বলবে " rečনিক ", যেটি প্রত-স্লাভিক স্বরবর্ণ ''যত''এর উচ্চারণে পার্থক্য প্রতিফলন করে।
Serbo-Croatian typically has a few ways of writing each word because of dialectal variation. It has a cool phonetic writing system so you write how you speak. For example, people speaking in Ijekavian would say "rječnik", while someone speaking Ekavian would say "rečnik", which reflects the differences in pronunciation of the proto-Slavic vowel ''yat''.


===বিশ্লেষণ===
===Analysis===


ের এইের সঙ্গে চুক্তেওয়ার একটি ভালভাবে সহজ রাস্তাটি, এবং আছে, পারাদিগ্ম্স পুনরায় ব্যবহার করছে। পারাদিগ্ম্স ব্যাকরণগত চিহ্ন যোগ করার জন্য কেবল ব্যবহার করা হয় না, কিন্তু তাদেরকে অন্য একটির সঙ্গে যেকোন চারাচ্তের/ চিহ্ন প্রতিস্থাপন করতে ও ব্যবহার করা যাবে। উদাহরণের জন্য, উভয় গ্রহণ করার জন্য একটি পারাদিগ্ম এখানে " e " এবং " je " বিশ্লেষণে। পারাদিগ্মের,ের অন্যান্যের সঙ্গে হিসেবের সের্ব-ক্রাতিয়ানের জন্য একটি ভাষা শব্দভাণ্ডারের দিকে যাওয়।
There should be a fairly easy way of dealing with this, and there is, using paradigms again. Paradigms aren't only used for adding grammatical symbols, but they can also be used to replace any character/symbol with another. For example, here is a paradigm for accepting both "e" and "je" in the analysis. The paradigm should, as with the others go into the monolingual dictionary for Serbo-Croatian.


<pre>
<pre>
Line 688: Line 700:
</pre>
</pre>


তারপরতে " প্রধান অংশ ":
Then in the "main section":


<pre>
<pre>
Line 694: Line 706:
</pre>
</pre>


এইটি উভয় রূপ বিশ্লেষণ করতে আমাদেরকে কেবল উপরন্তু অনুমোদন করে... আরও বেশি কাজ প্রয়োজনীয় যদি আমরা উভয় রূপ উৎ‍পাদন করতে চায়।
This only allows us to analyse both forms however... more work is necessary if we want to generate both forms.


===Generation===
===উৎ‍পাদন===


==See also==
== দেখুন==


*[[Building dictionaries]]
*[[Building dictionaries]]

Latest revision as of 05:35, 28 February 2019

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

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

ভূমিকা[edit]

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

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

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

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

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

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

  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

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

ভাষা জোড়া[edit]

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

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

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

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

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

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 শব্দভাণ্ডার[edit]

আমাদের সুতরাং দুই 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

স্থানান্তর নিয়ম[edit]

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

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

<?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\@

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

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

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

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

  • ভিদিম
  • দেখুন<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\@

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

ভাল, যে মহান, কিন্তু আমরা ব্যক্তিগত প্রনৌন এখনও '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

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

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

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

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

'রেকর্ড প্লায়ের'এর প্লুরাল প্লায়ের্স' 'রেকর্ডছে, সুতরাং এইটি গ্রামোফোনে হিসেবে একই পারাদিগ্ম গ্রহণ করে (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

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

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

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

বিশ্লেষণ[edit]

ের এইের সঙ্গে চুক্তেওয়ার একটি ভালভাবে সহজ রাস্তাটি, এবং আছে, পারাদিগ্ম্স পুনরায় ব্যবহার করছে। পারাদিগ্ম্স ব্যাকরণগত চিহ্ন যোগ করার জন্য কেবল ব্যবহার করা হয় না, কিন্তু তাদেরকে অন্য একটির সঙ্গে যেকোন চারাচ্তের/ চিহ্ন প্রতিস্থাপন করতে ও ব্যবহার করা যাবে। উদাহরণের জন্য, উভয় গ্রহণ করার জন্য একটি পারাদিগ্ম এখানে " 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>

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

উৎ‍পাদন[edit]

ও দেখুন[edit]