इसका जवाब है हाँ। हालाँकि मैं ऐसा नहीं करूँगा कि अर्ली पार्सर के साथ हो क्योंकि समान क्षमताओं वाले सरल व्यक्ति हैं।
मूल रूप से, अर्ली पार्सर सामान्य संदर्भ-मुक्त पार्सर्स के परिवार से संबंधित है, जो किसी दिए गए स्ट्रिंग के लिए सभी संभावित पार्स पैदा करता है, जब व्याकरण अस्पष्ट होता है।
इन परसर्स को समझने के दो तरीके (कम से कम) हैं:
जब एक स्ट्रिंग को पार्स किया जाता है, तो माना जाने वाला परिमित राज्य ऑटोमेटोन एक रैखिक ऑटोमेटन है जो केवल स्ट्रिंग
को पार्स करने के लिए पहचानता है, एक समय में एक प्रतीक (राज्य की संख्या )। यदि आप FA और CF Garmmar
(Bar Hillel, Perlis, Shamir 1961) के क्रॉस-प्रोडक्ट निर्माण को लागू करते हैं , तो आपको एक नया CF व्याकरण मिलता है, जो एक नया व्याकरण जो करता है। । दिलचस्प बात यह है कि आमतौर पर अनदेखी की जाती है कि द्वारा उपयोग किए गए पार्स-पेड़ों को संरक्षित करता है , गैर-टर्मिनलों के नामकरण (क्रॉस-उत्पाद के कारण) तक।w|w|+1AGFL(A)∩L(G)FG
इस प्रकार यदि एफए केवल आपके इनपुट स्ट्रिंग
को उत्पन्न करता है , तो व्याकरण केवल उस स्ट्रिंग को उत्पन्न करेगा (यदि यह in , अन्यथा यह खाली भाषा उत्पन्न करता है )। इसके अलावा, यह इसे उन सभी पार्स-पेड़ों के साथ उत्पन्न करता है जो इसे उत्पन्न करने के लिए उपयोग कर सकते थे।AFL(G)∅G
यह व्याकरण है जिसे आमतौर पर साझा पार्स वन कहा जाता है , और सभी सामान्य CF पार्सिंग एल्गोरिदम क्रॉस-प्रोडक्ट निर्माण का अधिक या कम अनुकूलित संस्करण हैं, चाहे CYK, Earley, सामान्यीकृत LR या LL, या अन्य। इतना सब मैं कह रहा हूं कि उन पर भी लागू होता है।F
लेकिन, जैसा कि आप देखते हैं, यह एक पूरे नियमित सेट को पार्स करने के लिए सामान्यीकृत है, अगर किसी को भी ऐसा करने में दिलचस्पी है।
यह ठीक है आपका सवाल है। आपके पास एक तार । आप इसे एक परिमित राज्य ट्रांसड्यूसर द्वारा परिभाषित कुछ भिन्नताओं के लिए पार्स करना चाहते हैं, जो आपके मामले में एक ट्रांसड्यूसर है जो कुछ दिए गए लेवेन्शेटिन के भीतर सभी तार पैदा करता है जो दूरी को संपादित करता है (लेकिन ट्रांसड्यूसर की उत्पत्ति सारहीन है)। उन तारों का सेट एक नियमित सेट है जिसे एफए द्वारा परिभाषित किया जा सकता है, भारित संक्रमण के साथ जो प्रत्येक स्ट्रिंग की संपादित दूरी की गणना कर सकता है।ww
यदि आप अपने व्याकरण साथ क्रॉस-उत्पाद करते हैं , तो आपको एक साझा पार्स वन व्याकरण मिलता है जो चौराहे के सभी तारों को उत्पन्न करता है। इसके अलावा, आपको कुछ नियमों पर भार प्राप्त होते हैं ताकि आप प्रत्येक स्वीकृत स्ट्रिंग्स की संपादित दूरी की गणना कर सकें।GF
यदि वांछनीय है, तो इसका उपयोग केवल न्यूनतम दूरी के साथ तार रखने के लिए किया जा सकता है।
हालांकि, यह थोड़ा सुधार किया जा सकता है क्योंकि परिमित राज्य मशीनों के साथ रचना सहयोगी है।
यदि आप हमेशा एक ही, परिमित राज्य ट्रांसड्यूसर का उपयोग करते हैं, जैसा कि आपके प्रश्न में है, तो इसके बारे में जाने का सही तरीका है, ग्रामर
और ट्रांसड्यूसर (यहां लेवेंसहेटिन ऑटोमेटन), स्वतंत्र रूप से इनपुट स्ट्रिंग की रचना करना । यह आपको एक भारित व्याकरण देता है जिसका उपयोग आप इनपुट स्ट्रिंग को पार्स करने के लिए कर सकते हैं । समस्या यह है कि क्रूर चौराहे के निर्माण के साथ पार्सिंग आपको किसी भी लेवेन्स्हेटिन दूरी, यानी पर तार देता है ।GwΣ∗
उस निर्माण को पहले की तरह प्राप्त करना आसान होगा, लेकिन सबसे अच्छा तरीका एक अधिक नियंत्रित चौराहा निर्माण है, जैसे कि गतिशील प्रोग्रामिंग संगठन, जो साहित्य में अधिकांश पार्सर्स द्वारा उपयोग किया जाता है, जिसमें एर्ले शामिल हैं, और इसका उपयोग करने से बचने के लिए उपयोग करें दूरियों की गणना करके और वांछित सीमा से अधिक होने पर किसी भी कम्प्यूटेशनल पथ को निरस्त करके बेकार नियम। डायनेमिक प्रोग्रामिंग का उपयोग इनपुट के लिए सबसे कम दूरी रखने वाले स्ट्रिंग के लिए सीधे पार्स-वन (या पार्से-ट्री) की गणना करने के लिए किया जा सकता है।