নির্বিচারে প্রসঙ্গমুক্ত ব্যাকরণ, বেশিরভাগ সংক্ষিপ্ত স্নিপেটগুলি পার্স করা


20

আমি ব্যবহারকারী-সংজ্ঞায়িত ডোমেন নির্দিষ্ট ভাষাগুলি পার্স করতে চাই। এই ভাষাগুলি সাধারণত গাণিতিক স্বরলিপিগুলির নিকটে থাকে (আমি কোনও প্রাকৃতিক ভাষা পার্স করছি না)। ব্যবহারকারীরা তাদের ডিএসএল একটি বিএনএফ স্বরলিপিতে সংজ্ঞায়িত করেছেন:

expr ::= LiteralInteger
       | ( expr )
       | expr + expr
       | expr * expr

ইনপুটটিকে 1 + ( 2 * 3 )অবশ্যই গ্রহণ করতে হবে, যখন ইনপুটটিকে 1 +অবশ্যই ভুল হিসাবে প্রত্যাখ্যান করতে হবে, এবং ইনপুটটিকে 1 + 2 * 3অবশ্যই অস্পষ্ট হিসাবে প্রত্যাখ্যান করতে হবে।

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

আমার পার্সার অবশ্যই কোনও প্রসঙ্গ-মুক্ত ব্যাকরণ, এমনকি দ্ব্যর্থহীন বিষয়গুলিতে কাজ করতে হবে এবং অবশ্যই সমস্ত দ্ব্যর্থহীন ইনপুট গ্রহণ করতে হবে। সমস্ত গৃহীত ইনপুটটির জন্য আমার পার্স গাছ দরকার। অবৈধ বা অস্পষ্ট ইনপুটটির জন্য, আমি আদর্শভাবে ভাল ত্রুটি বার্তাগুলি চাই, তবে যা শুরু করতে পারি তা দিয়েই শুরু করব।

আমি সাধারণত মাঝেমধ্যে দীর্ঘতর ইনপুট সহ অপেক্ষাকৃত সংক্ষিপ্ত ইনপুটগুলিতে পার্সারটি প্রার্থনা করব। সুতরাং asyptotically দ্রুত অ্যালগরিদম সেরা পছন্দ নাও হতে পারে। আমি প্রায় 80% ইনপুটগুলি 20 টিরও কম প্রতীকের দীর্ঘ বিতরণ, 20% থেকে 50 এর মধ্যে 19% এবং 1% বিরল দীর্ঘ ইনপুট বিতরণের জন্য অনুকূল করতে চাই। অবৈধ ইনপুটগুলির গতি কোনও বড় উদ্বেগ নয়। তদুপরি, আমি প্রতি 1000 থেকে 100000 ইনপুটগুলির ডিএসএল পরিবর্তনের প্রত্যাশা করি; আমি আমার ব্যাকরণ প্রসেসোসিস করতে কয়েক সেকেন্ড ব্যয় করতে পারি, কয়েক মিনিট নয়।

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

(যে প্রকল্পে আমার এটির প্রয়োজন হয়েছিল (কিছুক্ষণ আগে), আমি সিওয়াইকে ব্যবহার করেছি , যা প্রয়োগ করা খুব বেশি কঠিন ছিল না এবং আমার ইনপুট আকারের জন্য পর্যাপ্ত পরিশ্রম করেছিলাম তবে খুব সুন্দর ত্রুটি ঘটেনি।)


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

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

আপনি যদি প্রকৃতপক্ষে অস্পষ্ট ইনপুটটির জন্য কোনও ত্রুটি বার্তা প্রত্যাশা করেন, যদি কোনও ব্যবহারকারী লিখেন x+y+z
বাবু

@ বাবু আমি প্রশ্নটি পরিবর্তন করি নি, আমি কেবল মন্তব্যে অনুরোধ করা স্পষ্টতা যুক্ত করেছি (এখন মুছে ফেলা হয়েছে)। এখানে দেওয়া ক্ষুদ্র ব্যাকরণের জন্য, আমি এর জন্য সাহচর্যতা নির্দিষ্ট করে নেই +, তাই x+y+zপ্রকৃতপক্ষে অস্পষ্ট তাই ভুল r
গিলস'স'-দুষ্ট হওয়া বন্ধ করুন '

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

উত্তর:


19

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

অ্যালগোরিদমটি সরল পুরাতন এলএল (1) এর সাথে বেশ সমান, তবে ব্যাকরণগুলি যদি সেগুলি এলএল (1) না হয় তবে তা প্রত্যাখ্যান করে না: এটি কেবল সমস্ত সম্ভাব্য এলএল (1) পার্স চেষ্টা করে। এটি পার্সের প্রতিটি পয়েন্টের জন্য একটি নির্দেশিত গ্রাফ ব্যবহার করে, যার অর্থ এই যে যদি পার্স স্টেটের মুখোমুখি হয় যা এর আগে ঘটেছিল, তবে এটি কেবল এই দুটি কোণকে একত্রিত করে। এটি এলএল এর বিপরীতে এমনকি বাম-পুনরাবৃত্তি ব্যাকরণগুলির জন্য উপযুক্ত করে তোলে। এর অভ্যন্তরীণ কাজ সম্পর্কে সঠিক তথ্যের জন্য, কাগজটি পড়ুন (এটি বেশ পঠনযোগ্য একটি কাগজ, যদিও লেবেল স্যুপকে কিছুটা অধ্যবসায়ের প্রয়োজন)।

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

জিএলএলটির প্রধান সুবিধাটি হ'ল এটি এলএল (1) এর উপর ভিত্তি করে এবং তাই প্রয়োগকরণের সময়, ব্যাকরণ ডিজাইন করার সময় এবং ইনপুটগুলি বিশ্লেষণ করার সময় বুঝতে ও ডিবাগ করা খুব সহজ। তদ্ব্যতীত, এটি পরিচালনা করতে ত্রুটিটি আরও সহজ করে তোলে: কোথায় সম্ভব পার্স আটকে আছে এবং কীভাবে তারা চালিয়ে যেতে পারে তা আপনি ঠিক জানেন। আপনি সহজেই ত্রুটির স্থলে সম্ভাব্য পার্সগুলি দিতে পারেন এবং বলুন, শেষ 3 পয়েন্ট যেখানে পার্স আটকে আছে। পরিবর্তে আপনি ত্রুটিটি থেকে পুনরুদ্ধার করার চেষ্টা করতে পারেন এবং যে পার্সিকে সবচেয়ে বেশি পাওয়া গেছে সেই চিহ্নটি সেই পার্সের জন্য 'সম্পূর্ণ' হিসাবে কাজ করছে এবং দেখুন যে এর পরেও পার্সিং চলতে পারে কিনা (বলুন যে কেউ কোনও প্রথম বন্ধনী ভুলে গেছে)। আপনি এমনকি এটি করতে পারেন, বলুন, 5 পার্স যে সর্বাধিকতম পেয়েছে।

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


নতুন কিছু শিখতে ভালো লাগল। যখন আমার এটির প্রয়োজন হয়েছিল (কয়েক বছর আগে, এমন কোনও প্রকল্পে যা আমি কোনও দিন পুনরুদ্ধার করতে চাই) তখন আমি সিওয়াইকে ব্যবহার করি, কারণ এটি আমার প্রথম পাওয়া অ্যালগরিদম। জিএলএল কীভাবে অস্পষ্ট ইনপুটগুলি পরিচালনা করে? নিবন্ধটি এটি নিয়ে আলোচনা করবে বলে মনে হচ্ছে না, তবে আমি কেবল এটি স্কিম করেছি।
গিলস

@ গিলস: এটি একটি গ্রাফ কাঠামোগত স্ট্যাক তৈরি করে এবং সমস্ত (সম্ভাব্য তাত্পর্যপূর্ণ) পার্সগুলি এই গ্রাফটিতে নিখুঁতভাবে উপস্থাপন করা হয়েছে, জিএলআর কীভাবে কাজ করে তার অনুরূপ। আমি যদি সঠিকভাবে স্মরণ করি তবে cstheory.stackexchange.com/questions/7374/… এ উল্লিখিত কাগজটি এটি নিয়ে কাজ করে।
অ্যালেক্স দশ ব্রিংক

@ গিলিস এই ২০১০ সালের পার্সারটিকে ব্যাকরণ থেকে হাতে কলমে প্রোগ্রাম করাতে হবে বলে মনে হচ্ছে, আপনার বেশ কয়েকটি ভাষা থাকলে বা আপনি প্রায়শই ভাষাটি পরিবর্তন করেন। কোনও নির্বাচিত কৌশল (এলএল, এলআর বা অন্যান্য) অনুসরণ করে একটি সাধারণ পার্সারের ব্যাকরণ থেকে স্বয়ংক্রিয়ভাবে উত্পাদনের কৌশল এবং সমস্ত পার্সের একটি বন উত্পাদন প্রায় 40 বছর ধরে পরিচিত। তবে জটিলতা এবং পার্স উপস্থাপনের গ্রাফের সংগঠন সম্পর্কিত কোনও গোপন বিষয় রয়েছে। পার্সের সংখ্যা ঘনিষ্ঠ হতে পারে: অসীম। ত্রুটি পুনরুদ্ধার আরও নিয়মিত, পার্সার স্বতন্ত্র কৌশল ব্যবহার করতে পারে।
বাবু

জিএনএল কীভাবে এএনটিএলআরে পাওয়া এলএল (*) এর সাথে সম্পর্কিত?
রাফেল

6

আমার সংস্থা (সিমেন্টিক ডিজাইনস) আমাদের ডিএমএস সফ্টওয়্যার পুনরায় নকশার সরঞ্জামদণ্ডের সাহায্যে উভয় ডোমেন নির্দিষ্ট ভাষা বিশ্লেষণ, এবং "ক্লাসিক" প্রোগ্রামিং ভাষাগুলি পার্স করার ক্ষেত্রে ওপি যা পরামর্শ দেয় ঠিক তেমন সফলভাবে করতে জিএলআর পার্সারগুলিকে খুব সফলভাবে ব্যবহার করেছে । এটি বৃহত আকারের প্রোগ্রাম পুনর্গঠন / বিপরীত প্রকৌশল / ফরোয়ার্ড কোড উত্পন্নকরণের জন্য ব্যবহৃত উত্স থেকে উত্স প্রোগ্রাম রূপান্তরকে সমর্থন করে । এটি একটি সুন্দর ব্যবহারিক উপায়ে সিনট্যাক্স ত্রুটিগুলির স্বয়ংক্রিয় মেরামতের অন্তর্ভুক্ত। জিএলআরকে একটি ভিত্তি হিসাবে ব্যবহার করে এবং কিছু অন্যান্য পরিবর্তন (শব্দার্থক ভবিষ্যদ্বাণী করে, টোকেন-ইনপুটটি টোকেন ইনপুট না দিয়ে বরং ...) আমরা প্রায় 40 টি ভাষার জন্য পার্সার তৈরি করতে পেরেছি।

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

সম্ভবত আমাদের সবচেয়ে দর্শনীয় ফলাফলটি সমস্ত অস্পষ্টতা সত্ত্বেও, ভিত্তি হিসাবে একটি প্রসঙ্গ-মুক্ত ব্যাকরণ ব্যবহার করে পূর্ণ সি ++ 14 পার্স করার ক্ষমতা । আমি নোট করেছি যে সমস্ত ক্লাসিক সি ++ সংকলক (জিসিসি, ক্ল্যাং) হস্তচালিত পার্সারগুলি ব্যবহার করার ক্ষমতা ছেড়ে দিয়েছে (যা আইএমএইচও তাদের বজায় রাখতে আরও কঠিন করে তোলে, তবে তারা আমার সমস্যা নয়)। বৃহত সি ++ সিস্টেমের আর্কিটেকচারে ব্যাপক পরিবর্তন আনতে আমরা এই যন্ত্রপাতিটি ব্যবহার করেছি

পারফরম্যান্স অনুসারে, আমাদের জিএলআর পার্সারগুলি যুক্তিসঙ্গতভাবে দ্রুত: কয়েক সেকেন্ডে কয়েক হাজার লাইন। এটি শিল্পের রাজ্যের নিচে খুব নীচে, তবে আমরা এটিকে অপ্টিমাইজ করার গুরুতর চেষ্টা করিনি, এবং কিছু বাধাও চরিত্র প্রবাহ প্রক্রিয়াজাতকরণে (সম্পূর্ণ ইউনিকোড) রয়েছে) এই জাতীয় পার্সার তৈরি করতে, আমরা এলআর (1) পার্সার জেনারেটরের খুব কাছাকাছি কিছু ব্যবহার করে প্রসঙ্গটি মুক্ত ব্যাকরণগুলির প্রাক-প্রক্রিয়া করি; এটি সাধারণত বড় ব্যাকরণগুলিতে সি ++ আকারের দশ সেকেন্ডে একটি আধুনিক ওয়ার্কস্টেশনে চলে। আশ্চর্যের বিষয় হল, আধুনিক সিওবিওএল এবং সি ++ এর মতো খুব জটিল ভাষার জন্য লেকসারগুলির প্রজন্ম প্রায় এক মিনিট সময় নেয়; ইউনিকোডের উপর সংজ্ঞায়িত কিছু ডিএফএ বেশ লোমশ পান। আমি কেবল রুবিকে (তার অবিশ্বাস্য রিজেক্সপ্সের জন্য একটি সম্পূর্ণ সাবগ্রামার সহ) আঙুলের অনুশীলন হিসাবে করেছি; ডিএমএস তার লেক্সার এবং ব্যাকরণ একসাথে প্রায় 8 সেকেন্ডে প্রক্রিয়া করতে পারে।


@ রাফেল: "ব্যাপক পরিবর্তন" লিঙ্কটি সি -++ আর্কিটেকচার রি-ইঞ্জিনিয়ারিংয়ের কয়েকটি সহ, একা একা একাডেমিক-স্টাইলের প্রযুক্তিগত কাগজপত্রকে দেখায়, একটি নিজে ডিএমএস ইঞ্জিনে (বরং পুরাতন তবে বেসিকগুলি ভালভাবে বর্ণনা করে) এবং একটিতে ডিজাইন ক্যাপচার এবং পুনঃব্যবহারের বহিরাগত বিষয়, যা ডিএমএসের মূল প্রেরণা ছিল (এখনও অব্যক্ত, দুর্ভাগ্যবশত, তবে ডিএমএস যেভাবেই কার্যকরভাবে কার্যকর হয়ে উঠেছে)।
ইরা

1

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

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

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

আমি যা ভাবছি তা কেন আপনি নিজের অ্যালগরিদম পরিবর্তন করতে চান তা না করে আপনার কাছে যা আছে তা স্থির করুন। এটি আমাকে বুঝতে সাহায্য করতে পারে যে কোন ধরণের পরিবর্তন আপনাকে সর্বোত্তমভাবে সহায়তা করতে পারে। এটি কি গতির সমস্যা, এটি কি পার্সের প্রতিনিধিত্ব, বা এটি ত্রুটি সনাক্তকরণ এবং পুনরুদ্ধার?

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

আপনি আপনার ডিএসএল ব্যাকরণের প্রক্রিয়াজাতকরণের সময়সীমাবদ্ধতাগুলি উল্লেখ করেছেন, তবে এর আকার সম্পর্কে কোনও ইঙ্গিত দেবেন না (যার অর্থ এই নয় যে আপনি যে চিত্রটি দিয়েছিলেন তার সাথে আমি উত্তর দিতে পারি)।

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

আমি আরও বলতে স্বাচ্ছন্দ্যে কিছুটা অসুস্থ, কারণ আপনার অনুপ্রেরণা এবং প্রতিবন্ধকতা আসলে কী তা আমি বুঝতে পারি না। আপনি যা বলেন তার ভিত্তিতে আমি সিওয়াইকে আটকে থাকি (এবং অন্যান্য অ্যালগরিদম এবং তাদের কয়েকটি বৈশিষ্ট্য আমি জানি)।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.