আমি কীভাবে আর্লি ভেক্টর থেকে সিনট্যাক্স গাছের বন পুনর্গঠন করব?


9

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

পার্সিং ট্রি (গুলি) পুনর্গঠন করতে আর্লি ভেক্টর ব্যবহার কম স্পষ্ট। আসলে, আমি বুঝতে পারি না যে অ্যালগোরিদমিক পদ্ধতি কীভাবে কাজ করবে, তদুপরি আমি কেবলমাত্র উল্লেখগুলি খুঁজে পেয়েছি তা হয় অস্পষ্ট বা অতি প্রযুক্তিগত। কেউ কি এর উপর কিছু আলোকপাত করতে পারে?


2
আপনি যে রেফারেন্সগুলি খুঁজে পেয়েছেন এবং আপনি যেটিকে অস্পষ্ট বলে মনে করেছেন এবং যা আপনি অতিরিক্ত প্রযুক্তিগত বলে মনে করেছিলেন তা যদি তালিকাভুক্ত করে তবে এটি সাহায্য করবে। অন্যথায় উত্তর সম্ভবত আপনি ইতিমধ্যে খুঁজে পাওয়া রেফারেন্সের পয়েন্টার হতে পারে।
যুক্তি

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

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

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

আমার ব্যাখ্যাটি সহায়ক ছিল নাকি আপনার প্রযুক্তিগত অংশটির আরও বিশদ বিবরণ প্রয়োজন?
বাবু

উত্তর:


9

আমি আর্লির কাগজ থেকে পরিভাষা এবং স্বরলিপি ব্যবহার করছি । সম্ভবত আপনি যে বর্ণনাটি পড়েছেন তা ভিন্ন।

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

সবচেয়ে খারাপ ক্ষেত্রে সময়ের জটিলতা হ'ল , যেমনটি সুপরিচিত।O(n3)

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

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

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

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

আর্লির নিবন্ধের section নং বিভাগে তিনি ব্যাখ্যা করেছেন যে "সনাক্তকারীকে পার্সারে পরিণত করতে", অর্থাৎ পার্স গাছগুলি পুনরুদ্ধার করতে সক্ষম হওয়ার জন্য, সম্পূর্ণকরণগুলি যেভাবে সম্পন্ন হয়েছে তার খোঁজ রাখা দরকার।

প্রতিবার আমরা একটি রাজ্য perform adding যুক্ত পরিপূর্ণ অপারেশন সম্পাদন করি (lookahead উপেক্ষা করে) আমরা সেই রাজ্যে এর উদাহরণ থেকে রাজ্য একটি পয়েন্টার তৈরি করি যা আমাদের অপারেশন করতে সাহায্য করে। এটি নির্দেশ করে যে হিসাবে পার্স করা হয়েছিল । যদি ডি অস্পষ্ট হয় তবে এর থেকে পয়েন্টারগুলির একটি সেট থাকবে, প্রতিটি পরিপূর্ণ ক্রিয়াকলাপের জন্য একটি হ'ল যা caused সৃষ্টি করেছিল নির্দিষ্ট রাজ্যে সেট যোগ করা হবে। প্রতিটি চিহ্নের এটির থেকে পয়েন্টার থাকবে (এটি যদি টার্মিনাল না হয়), এবং এইভাবে, জন্য ডেরিভিশন ট্রি উপস্থাপন করে ।EαD.βgDDγ.fDγEαD.βgγD

নোট করুন যে এই পাঠ্যটিতে, এবং পার্সড স্ট্রিংয়ের সূচকগুলি রয়েছে যেখানে নির্দেশ করা হয়েছে যেখানে নিয়মের বাম-হাতের স্বীকৃতি শুরু হয়েছিল (ডান-হাতের প্রতীকটি যেমন ভবিষ্যদ্বাণী করা হয়েছিল। সুতরাং স্ট্রিং সূচকটি যেখানে স্বীকৃতি স্বীকৃতি দিয়েছে শুরু, এবং এটা সূচিতে শেষ হয়েছে । এই "সমাপ্তির পয়েন্টার" backpointers এর Earley সমতুল্য (খুব ভাল না উইকিপিডিয়া) বর্ণনা CYK এর পার্সার সংস্করণের জন্য হয়।fgfDγg

যেমন একটি পয়েন্টার (উদ্ধৃতি বর্ণনা অনুযায়ী) আমরা জানি থেকে যে নিয়ম ইনস্ট্যান্সের মধ্যে নিজেই একটি গাছ (অথবা বন) যে ইনপুট স্ট্রিং parses মধ্যে developped যাবে সূচি থেকে সূচক , যা আমরা করে মনে রাখবেন । এর ঠিক নীচে নোডগুলি নিয়ম দ্বারা দেওয়া হয় । দিকে নিয়ে যাওয়া সমাপ্তির সন্ধান করে আমরা এর পরেও এই জাতীয় পয়েন্টার খুঁজে পেতে পারি যে কীভাবে শেষ প্রতীকDEαD.βgwf+1gwf+1:gDDγDγ.fDপ্রাপ্ত হয়েছিল, এবং তাই সম্ভাব্য পার্স গাছগুলি সম্পর্কে আরও তথ্য। এছাড়াও শেষের দিকে ইয়ারলিয়ার স্টেট সেটে শেষ হওয়ার আগে প্রতীকটিকে স্বীকৃতি দেওয়ার সমাপ্তি দেখে আপনি কীভাবে এটি প্রাপ্ত হয়েছিল তা আবিষ্কার করেন and

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

তবে আমি অগোছালো অংশও এড়িয়ে গেছি । ধরুন আপনার একটি , যা আমি 2 টি প্রতীকের চেয়ে দীর্ঘ ডান হাতের সাথে বেছে নিয়েছি এবং একটি বিস্মৃত ব্যাকরণের জন্য আরেকটি নিয়ম ।UXYZWUV

এটা ভাল ঘটতে পারে যে পার্সার পার্স হবে মধ্যে , মধ্যে এবং উভয় এবং মধ্যে । সুতরাং, নিয়মটি সহ , উভয় এবং পার্স করুন ।wf+1:gXwg+1:hYwh+1:iwh+1:jZUXYZwf+1:iwf+1:jU

তারপরে এমনও হতে পারে যে উভয়ই এবং উভয়ই । তারপরে, নিয়মের সাহায্যে স্ট্রিং দুটি আলাদাভাবে বিভক্ত করুন , যা ব্যাকরণের একটি অস্পষ্টতার সাথে মিলে যায়।wi+1:kwj+1:kVWUVwf+1:kW

অবশ্যই গণনা পুনরাবৃত্তি এড়ানোর জন্য, আর্লির অ্যালগরিদম দুটি পার্সিং কম্পিউটেশন যতটা সম্ভব ভাগ করে নেওয়ার চেষ্টা করবে। এটি আসলে যা ভাগ করবে তা হ'ল এবং মধ্যে এবং of এর স্বীকৃতি (এবং পার্সিং) । তবে এটি আসলে আরও কিছু করবে: এটি দুটি পৃথক পার্সের সূচনাও ভাগ করে নেবে যা আপনাকে বিধি দিয়ে স্বীকৃতি দেয় । আমি যা বলতে চাইছি তা হল রাজ্যটি শুধুমাত্র একবার পাওয়া যাবে (আমি যা বর্ণনা করছি তার প্রতি শ্রদ্ধায়), রাষ্ট্র সেট । এটি দুটি পার্সের একটি সাধারণ অংশ হবে। অবশ্যই পার্স করার সময় জিনিসগুলি অস্থায়ীভাবে অন্যদিকে চলে যাবেwf+1:gwg+1:hXYUUXYZUXY.ZfShZ যেহেতু তারা সাবস্ট্রিংগুলিকে বিভক্ত করার সাথে সামঞ্জস্য করে, যতক্ষণ না তারা আবার রূপান্তর না করে সমস্ত কিছু ডাব্লুতে বিভক্ত হয়, যখন রাষ্ট্ররাষ্ট্রের সেট দু'বার উত্পাদিত হয় ।WUV.fSk

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

ব্যাকরণ পরিবর্তন না করেই সার্জিকভাবে সাইমিজ যমজকে আলাদা করার জন্য যে কোনও মনোযোগ দেওয়ার ফলে জটিলতা বাড়বে। এটি করার সঠিক উপায় হ'ল ব্যাকরণকে দ্বির্মুখী করা।

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

আমি অন্য দুটি উত্তর দিয়েছি এমন এই পার্সে বন সম্পর্কিত সমস্যা সম্পর্কে আপনি আরও সাধারণ তথ্য পেতে পারেন: /cstheory/7374#18006 এবং https://linguistics.stackexchange.com/questions/4619#6120 । তবে তারা আর্লির অ্যালগরিদমের নির্দিষ্ট বিবরণে যায় না।


সিওয়াইকে পার্সিংয়ের পাশাপাশি জিএলআর পার্সিংয়ের বিষয়টিও মূল্যবান।
ছদ্মনাম

1
@ ছদ্মনাম জেনে রাখা এবং সাধারণ সিএফ পার্সিংয়ের বিভিন্ন রূপগুলি বোঝার ফলে অবশ্যই ক্ষতি হয় না, এবং আমি উত্তরটির শেষে দুটি রেফারেন্স সহ যতটা পরামর্শ দেব। যাইহোক, আমার সিওয়াইকের পছন্দটি সুযোগের কারণে হয়নি। এটি আর্লির অ্যালগরিদমের সাথে ব্যাকরণটি সরাসরি প্লে-ডাউন অটোমেটনে (জিএলআর, জিএলএল, জিপিআরসি হিসাবে) ব্যাকরণ সংকলন দ্বারা উত্পাদিত টেবিলগুলি ব্যবহার করার পরিবর্তে ব্যাকরণটি ব্যবহার করে সরাসরি ব্যাখ্যা করার সম্পত্তিটি ভাগ করে। সুতরাং স্বীকৃতি প্রক্রিয়া এবং গাছ / বনজন্মের মধ্যে সম্পর্ক আরও স্পষ্টভাবে দৃশ্যমান। এক ব্যতিক্রম বাদে সিকেওয়াই হ'ল সহজ অ্যালগরিদমও।
বাবু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.