आपको कभी भी CNF की आवश्यकता नहीं है। इसमें व्याकरण संरचना को बदलने का दोष है। लेकिन आपको मध्यवर्ती गैर-टर्मिनलों को पेश करने की आवश्यकता है ताकि आरएचएस की लंबाई जटिलता को निर्धारित करने के बाद से कोई भी दाहिने हाथ की तरफ 2 (2-फॉर्म) से लंबा न हो। यह बताने का सबसे अच्छा प्रयास है कि सहज ज्ञान युक्त है, यदि मेमोरी सेवा करता है, तो ब्यू शील का एक पेपर, "ऑब्जर्वेशन ऑन कॉन्टेक्स्ट फ्री पार्सिंग", 1976 में एक कम्प्यूटेशनल भाषाविज्ञान सम्मेलन में प्रकाशित हुआ। ईयरली के एल्गोरिथ्म में अंतर्निहित रूप से 2-फॉर्म का उपयोग किया गया है। यह सिर्फ एल्गोरिथ्म में छिपा हुआ है। पार्स वन की वसूली और हैंडलिंग के बारे में, आपको "पार्सिंग चौराहा जंगल" पर वेब देखना चाहिए। यह वास्तव में बहुत सीधा है। कई पेपर वेब पर होते हैं, यदि आपको सीधे शीर्षक या लेखक से उन्हें खोजने के लिए (उद्धरण या तालिकाओं से) मिलता है।
वास्तव में, आप सीएफ से बहुत अधिक कर सकते हैं, और अभी भी बहुपद समय में पार्स-वन प्राप्त कर सकते हैं। सवाल यह है कि कभी-कभी: आपके पास एक बार होने के बाद आप इसके साथ क्या कर सकते हैं?
आपके द्वारा बताए गए अंतिम लेख का एक उद्देश्य यह दिखाना है कि जटिल एल्गोरिदम (जैसे जीएलआर) आवश्यक रूप से समय या अंतरिक्ष में कुछ भी नहीं खरीद रहे हैं, और आपके पार्स वन को बदल सकते हैं।
शिक्षण के बारे में एक टिप्पणी। मुझे लगता है कि अर्ली, सेमिनल जैसा कि यह शिक्षण के लिए बहुत जटिल है, और अनिवार्य रूप से समान शैक्षिक सामग्री के साथ सरल एल्गोरिदम द्वारा प्रतिस्थापित किया जा सकता है। शिक्षण अवधारणाओं या प्रौद्योगिकी के बारे में है। अर्ली के एल्गोरिथ्म में, आवश्यक अवधारणाएं विवरणों की जटिलता में छिपी हुई हैं, और प्रौद्योगिकी के दृष्टिकोण से यह पुराना है। यह एक महान पेपर था, लेकिन इसका मतलब यह नहीं है कि यह सबसे अच्छा शैक्षणिक दृष्टिकोण है।
सामान्य कंप्यूटर विज्ञान चैनलों की तुलना में कम्प्यूटेशनल भाषाविज्ञान साहित्य में अधिक जानकारी हो सकती है। मेरे पास सेरिएल-ग्यून-जैकब्स पुस्तक नहीं है, लेकिन मुझे आश्चर्य होगा कि अगर उनके पास सभी उचित संदर्भ नहीं थे (हालांकि मुझे उनके चयन मानदंडों के बारे में निश्चित नहीं है)।
एक टिप्पणी में एक अनुरोध के बाद पूरक (जुलाई 7, 2013)
यह ईयरली की तुलना में सरल एल्गोरिदम के अस्तित्व को पूरक करता है।
जैसा कि मैंने कहा, "पार्सिंग चौराहे के जंगल" पर वेब पर खोज करने से आपको तुरंत संदर्भ देना चाहिए, जिससे आप आगे खुदाई कर सकते हैं।
मूल विचार यह है कि एक साझा वन के निर्माण के साथ पार्स करने वाले सभी मार्ग कुछ भी नहीं है लेकिन एक नियमित रूप से भाषा और एक संदर्भ-मुक्त भाषा के लिए बार हिइल, पर्ल्स और शमीर के पुराने चौराहे का निर्माण एक परिमित ऑटोमेटन और एक संदर्भ-मुक्त व्याकरण का उपयोग करते हुए किया जाता है। सीएफ व्याकरण को देखते हुए, आप निर्माण को एक तुच्छ ऑटोमेटन पर लागू करते हैं जो केवल आपके इनपुट स्ट्रिंग को पहचानता है। बस इतना ही। साझा वन चौराहे के लिए सिर्फ व्याकरण है। यह एक समरूपता के माध्यम से मूल व्याकरण से संबंधित है, केवल दिए गए स्ट्रिंग को पहचानता है, लेकिन मूल व्याकरण के सभी पार्स-वृक्षों के साथ उस होमोमोर्फिज्म (यानी, गैर-टर्मिनलों का सरल नामकरण)।
परिणामी व्याकरण में बहुत सारे बेकार सामान, गैर-टर्मिनलों और नियम शामिल हैं, जो या तो स्वयंसिद्ध से अनुपलब्ध हैं (प्रारंभिक प्रतीक से प्राप्त स्ट्रिंग में नहीं पाया जा सकता) या जो गैर-उत्पादक हैं (एक टर्मिनल में प्राप्त नहीं किया जा सकता है) स्ट्रिंग)।
फिर, या तो आपको इसे अंत में एक अच्छे ब्रश के साथ साफ करना होगा (संभवतः लंबे समय तक लेकिन एल्गोरिदमिक रूप से सरल), या आप निर्माण को बेहतर बनाने की कोशिश कर सकते हैं ताकि अंत में ब्रश करने के लिए बेकार बेकार कम हो।
उदाहरण के लिए, CYK निर्माण बिल्कुल वही है, लेकिन संगठित है ताकि बनाए गए सभी नियम और गैर-टर्मिनल उत्पादक हैं, हालांकि कई अनुपयोगी हो सकते हैं। यह एक बॉटम-अप तकनीक से उम्मीद की जानी है।
टॉप-डाउन तकनीक (जैसे एलआर (के) आधारित)) अगम्य नियमों और गैर-टर्मिनलों से बचेंगे, लेकिन अनुत्पादक बनाएंगे।
ब्रश करने का एक बहुत वास्तव में संकेत के पर्याप्त उपयोग से प्राप्त किया जा सकता है, मुझे लगता है, लेकिन मैंने लंबे समय तक इस पर ध्यान नहीं दिया है।
सभी मौजूदा एल्गोरिदम वास्तव में अनिवार्य रूप से उस मॉडल का पालन करते हैं। तो यह वास्तव में इस मामले का दिल है, और यह बहुत सरल है। फिर इसे जटिलता में क्यों दफनाया?
कई "ऑप्टिमाइज़ेशन" का प्रस्ताव प्रायः एलआर (के), एलएल (के) परसर निर्माण के परिवार के आधार पर किया जाता है, संभवतः इन निर्माणों के कुछ स्थैतिक फैक्टरिंग के साथ (अर्ली में कोई स्थैतिक फैक्टरिंग नहीं है)। यह वास्तव में सभी ज्ञात तकनीकों पर लागू किया जा सकता है, जिसमें पुराने पूर्ववर्ती पार्सर्स भी शामिल हैं। मैंने उद्धरणों के बीच "अनुकूलन" रखा क्योंकि यह आमतौर पर स्पष्ट नहीं है कि आप क्या अनुकूलन कर रहे हैं, या यहां तक कि आप वास्तव में इसे अनुकूलित कर रहे हैं या नहीं, या सुधार का लाभ आपके पार्सर की अतिरिक्त जटिलता के लायक है या नहीं। आपको इस पर थोड़ा उद्देश्य डेटा, औपचारिक या प्रयोगात्मक मिलेगा (कुछ है), लेकिन कई और दावे। मैं यह नहीं कह रहा हूं कि ब्याज की कोई बात नहीं है। कुछ स्मार्ट विचार हैं।
अब, एक बार जब आप मूल विचार जान लेते हैं, तो "अनुकूलन" या सुधार को अक्सर व्याकरण से पुश-डाउन ऑटोमेटन बनाकर, जिस तरह के पार्सर निर्माण तकनीक में आप रुचि रखते हैं, का अनुसरण करके और फिर आवेदन करके अक्सर सांख्यिकीय (संभवतः वृद्धि) पेश किया जा सकता है। क्रॉस-प्रोडक्ट का निर्माण उस ऑटोमेटन के प्रतिच्छेदन के लिए होता है (लगभग इसे व्याकरण के समान करने के लिए) या उस ऑटोमेटन से प्राप्त व्याकरण के लिए।
फिर आप घंटियाँ और सीटी बजा सकते हैं, लेकिन यह ज्यादातर तकनीकी विवरण है।
आइज़ैक न्यूटन के फिलोसोफी नेचुरलिस प्रिंसिपिया मैथेमेटिका कथित तौर पर भौतिकी और गणित का एक बड़ा टुकड़ा है। मुझे नहीं लगता कि यह कई छात्रों की पढ़ने की सूची में है। अन्य सभी चीजें समान हो रही हैं, मुझे नहीं लगता कि यह अर्ली के एल्गोरिथ्म को सिखाने के लिए बहुत उपयोगी है, हालांकि यह एक महत्वपूर्ण ऐतिहासिक टुकड़ा है। छात्रों के पास सीखने के लिए पर्याप्त है। कई लोगों द्वारा गोली मारे जाने के जोखिम पर, मैं नूथ एलआर (के) पेपर के लिए बहुत कुछ सोचता हूं। यह सैद्धांतिक विश्लेषण का एक शानदार टुकड़ा है, और शायद एक सैद्धांतिक के लिए एक महत्वपूर्ण पढ़ना है। मुझे इस बात पर संदेह है कि यह हार्डवेयर और सॉफ्टवेयर दोनों की वर्तमान स्थिति को देखते हुए पार्सर्स के निर्माण के लिए आवश्यक है। समय बीता है जब पार्सिंग संकलन समय का एक महत्वपूर्ण हिस्सा था, या जब संकलक की गति एक महत्वपूर्ण मुद्दा था (मुझे पता था कि एक निगम जो कुछ 30 साल पहले संकलन लागत से मर गया था)। पार्सिंग विशेषज्ञ कुछ बिंदु पर उस विशेष ज्ञान को सीखना चाह सकते हैं, लेकिन कंप्यूटर विज्ञान, प्रोग्रामिंग या इंजीनियरिंग में औसत छात्र को इसकी आवश्यकता नहीं है।
यदि छात्रों को पार्सिंग पर अधिक समय बिताना चाहिए, तो ऐसे अन्य एक्सटेंशन हैं जो अधिक उपयोगी और अधिक प्रारंभिक हो सकते हैं, जैसे कि कम्प्यूटेशनल भाषा विज्ञान में उपयोग किए जाने वाले। शिक्षण की पहली भूमिका वैज्ञानिक ज्ञान की संरचना करने वाले सरल विचारों को निकालने के लिए है, न कि छात्रों को यह जानने के लिए मजबूर करने के लिए कि अनुसंधान वैज्ञानिकों को क्या नुकसान उठाना पड़ा (डॉक्टरेट छात्रों को छोड़कर: यह बीतने का संस्कार है :-)।
लेखक से लाइसेंस CC BY-SA 3.0