সুতরাং, ফরাসী ভাষায় ক্রিয়াপদ (অ্যালগোরিদমিকভাবে, কোনও ডেটাসেটের মাধ্যমে নয়) সংশ্লেষ করার জন্য একটি প্রোগ্রাম লেখার প্রয়াসে আমি কিছুটা সমস্যা নিয়ে এসেছি।
ক্রিয়াপদ সংমিশ্রনের জন্য অ্যালগরিদমটি ক্রিয়াপদের 17-বা-এর ক্ষেত্রে খুব সহজ এবং প্রতিটি ক্ষেত্রে একটি নির্দিষ্ট প্যাটার্নে চলে; সুতরাং, এই 17 টি শ্রেণির সংযোগ প্রত্যয় স্থির এবং খুব শীঘ্রই কোনও পরিবর্তন হবে না। উদাহরণ স্বরূপ:
// Verbs #1 : (model: "chanter")
terminations = {
ind_imp: ["ais", "ais", "ait", "ions", "iez", "aient"],
ind_pre: ["e", "es", "e", "ons", "ez", "ent"],
ind_fut: ["erai", "eras", "era", "erons", "erez", "eront"],
participle: ["é", "ant"]
};
ফরাসী ভাষায় ক্রিয়াপদের সবচেয়ে সাধারণ শ্রেণীর জন্য এগুলি প্রতিচ্ছবিযুক্ত প্রত্যয়।
ক্রিয়া (অনিয়ম) এর অন্যান্য শ্রেণি রয়েছে, যার সংঘাতগুলি সম্ভবত পরবর্তী শতাব্দী বা দু'টির জন্য স্থির থাকবে। যেহেতু তারা অনিয়মিত, তাদের সম্পূর্ণ সংযোগগুলি অবশ্যই স্থিতিশীলভাবে অন্তর্ভুক্ত করা উচিত, কারণ এগুলি নির্ভরযোগ্যভাবে কোনও নিদর্শন থেকে সংহত করা যায় না (কেবলমাত্র [আমার গণনা অনুসারে) 32 অনিয়মও রয়েছে। উদাহরণ স্বরূপ:
// "être":
forms = {
ind_imp: ["étais", "étais", "était", "étions", "étiez", "étaient"],
ind_pre: ["suis", "es", "est", "sommes", "êtes", "sont"],
ind_fut: ["serai", "seras", "sera", "serons", "serez", "seront"],
participle: ["été", "étant"]
};
আমি এই সমস্তটি এক্সএমএল বা এমনকি জেএসওনে রেখেছি এবং এটি ব্যবহারের প্রয়োজন হলে এটি ডিসরিয়ালাইজ করতে পারি, তবে কোনও বক্তব্য আছে কি? এই স্ট্রিংগুলি প্রাকৃতিক ভাষার অংশ, যা পরিবর্তিত হয়, তবে ধীর গতিতে।
আমার উদ্বেগটি হ'ল জিনিসগুলি "সঠিক" উপায়ে এবং কিছু তথ্য উত্সকে ডিসরিয়াল করে, আমি কেবল সেই সমস্যাটিকেই জটিল করি নি যা জটিল হওয়ার দরকার নেই , তবে আমি সম্পূর্ণ লক্ষ্যটিকে পুরোপুরি ফিরে পেয়েছি অ্যালগরিদমিক পদ্ধতির: একটি ডেটা উত্স ব্যবহার না করার জন্য ! সি # তে, আমি এই স্ট্রিংগুলিকে এক্সএমএলে স্টাফ করা এবং একটি তৈরির পরিবর্তে একটি অঙ্কিত টাইপ বা অন্য কোনও কিছু রাখতে কেবল namespace Verb.Conjugation
(যেমন class Irregular
) এর অধীনে একটি শ্রেণি তৈরি করতে পারি class IrregularVerbDeserializer
।
সুতরাং প্রশ্ন: অ্যাপ্লিকেশন চলাকালীন সময়ে হার্ড-কোডযুক্ত স্ট্রিংগুলির পরিবর্তন খুব কমই সম্ভব? অবশ্যই আমি 100% গ্যারান্টি দিতে পারি না যে তারা পরিবর্তন করবে না, তবে ঝুঁকি বনাম ব্যয়টি আমার চোখে ওজন করার জন্য প্রায় নগণ্য - হার্ডকোডিংটি এখানে আরও ভাল ধারণা।
সম্পাদনা করুন : প্রস্তাবিত সদৃশটি কীভাবে বৃহত সংখ্যক স্থিতিশীল স্ট্রিংগুলি সংরক্ষণ করবেন তা জিজ্ঞাসা করে , যখন আমার প্রশ্ন হয় কখন এই স্থির স্ট্রিংগুলি হার্ড-কোড করা উচিত ।