2013-02-07 11 views
7

मैं एक छोटे से हास्केल परियोजना है कि अर्थ पार्स के लिए टोकन के लिए सख्ती से गठन अंग्रेजी का एक छोटा समूह लेक्स करने में सक्षम होने की जरूरत है पर काम कर रहा हूँ। यह आदेशों को जारी किए जा सकने वाले कई अलग-अलग अंत प्रभावकों के साथ एक प्रणाली के लिए एक बहुत ही भद्दा प्राकृतिक भाषा इंटरफ़ेस है। मैं वर्तमान में इसके लिए एलेक्स का उपयोग कर रहा हूं, लेकिन एलेक्स स्थिर रूप से संकलित होने के लिए अपने लेक्सिकॉन पर निर्भर करता है। प्रणाली की प्रकृति ऐसी है कि संख्या और दुनिया में अंत प्रभावोत्पादक की भी प्रकार के साथ ही बढ़ा सकते हैं संकलन के बाद कमी, और इसलिए मैं कार्यावधि में शब्दकोश से जोड़ सकते हैं या व्यवहार्य टोकन दूर करने के लिए सक्षम होना चाहिए है।क्या हास्केल में लेक्सिकल विश्लेषण के लिए कोई ऑफ-द-शेल्फ समाधान है जो रन-टाइम गतिशील लेक्सिकॉन की अनुमति देता है?

मैं चारों ओर गतिशील lexing समाधान की तलाश की कोशिश की है, और निकटतम मैं मिल सकता था this गतिशील Lexer इंजन है कि अद्यतन किया गया है करने के लिए 2000 से

मैं जैसे कुछ तकनीकों पर विचार किया गया है नहीं लगती है कम-उच्च स्तरीय दृष्टिकोण (Attoparsec, शायद) का उपयोग करके, या यहां तक ​​कि एलेक्स के लिए एक पुनर्मूल्यांकन हुक को तार देना और शेष आवेदन से लेक्सर को अलग करना।

वहाँ शाब्दिक विश्लेषण इस तरह की किसी भी अच्छी तरह से ज्ञात समाधान कर रहे हैं? मैं अंततः Natural Language Processing for the Working Programmer के माध्यम से काम करने का इरादा रखता हूं इसलिए मैं कम सरलीकृत दृष्टिकोण ले सकता हूं, लेकिन वर्तमान में मूल रूप से एक लेक्सर जो मुझे चाहिए।

+1

एक मुद्दे के कितना प्रदर्शन है? मैं कुछ बहुत ही सरल समाधान की कल्पना कर सकता हूं, इस पर निर्भर करता है कि आपको बहुत अधिक दक्षता की आवश्यकता है या नहीं। – sclv

+0

@ एससीएलवी प्रदर्शन वास्तविक समय के करीब होना चाहिए (प्रतिक्रियात्मकता में, निर्धारणा भावना नहीं)। –

+1

वह डायनामिक लेक्सर इंजन स्वचालित रूप से खराब नहीं है क्योंकि इसे लंबे समय तक अपडेट नहीं किया गया है। शायद यह पहले से ही सही है, और अद्यतन करने की आवश्यकता नहीं है। :) –

उत्तर

4

CTK पारसेक लेकिन के लिए lexing के बराबर है। यह गतिशील रूप से नए combinators जोड़ने का समर्थन करता है।

संबंधित मुद्दे

 संबंधित मुद्दे