प्राकृतिक भाषा प्रश्नों को कैसे संसाधित करें?


11

मैं प्राकृतिक भाषा क्वेरी के बारे में उत्सुक हूं। स्टैनफोर्ड के पास प्राकृतिक भाषा के प्रसंस्करण के लिए सॉफ्टवेयर का एक मजबूत सेट है । मैंने Apache OpenNLP लाइब्रेरी और टेक्स्ट इंजीनियरिंग के लिए सामान्य आर्किटेक्चर भी देखा है ।

प्राकृतिक भाषा प्रसंस्करण के लिए उपयोग की एक अविश्वसनीय राशि है और जो इन परियोजनाओं के प्रलेखन को जल्दी से अवशोषित करना मुश्किल बनाता है।

क्या आप मेरे लिए चीजों को थोड़ा सरल कर सकते हैं और उच्च स्तर पर एसक्यूएल में सरल प्रश्नों के मूल अनुवाद के लिए आवश्यक कार्यों की रूपरेखा तैयार कर सकते हैं?

मेरे प्रवाह चार्ट पर पहली आयत एक रहस्य का एक सा है।

यहाँ छवि विवरण दर्ज करें

उदाहरण के लिए, मैं जानना चाहूंगा:

How many books were sold last month?

और मैं चाहता हूं कि इसका अनुवाद किया जाए

Select count(*) 
  from sales 
  where 
   item_type='book' and 
   sales_date >= '5/1/2014' and 
   sales_date <= '5/31/2014'

जवाबों:


6

प्राकृतिक भाषा की क्वेरी बहुत सारी पेचीदगियों को दर्शाती है जिन्हें सामान्य करना बहुत मुश्किल हो सकता है। उच्च स्तर से, मैं संज्ञाओं और क्रियाओं के संदर्भ में चीजों के बारे में सोचने की कोशिश करूँगा।

तो वाक्य के लिए: पिछले महीने कितनी किताबें बेची गईं?

आप एक पार्सर के साथ वाक्य को तोड़कर शुरू करेंगे जो इस तरह से एक पेड़ प्रारूप लौटाएगा:

यहाँ छवि विवरण दर्ज करें

आप देख सकते हैं कि एक विषय की किताबें हैं, एक यौगिक मौखिक वाक्यांश जो बेचने की पिछली कार्रवाई का संकेत देता है, और फिर एक संज्ञा वाक्यांश जहां आपके पास एक महीने का समय फोकस है।

हम आगे संशोधक के लिए विषय को तोड़ सकते हैं: पुस्तकों के लिए "कितने", और महीने के लिए "अंतिम"।

एक बार जब आप वाक्य को तोड़ देते हैं, तो आपको उन तत्वों को sql भाषा में मैप करने की आवश्यकता होती है जैसे: कितने => गिनती, किताबें => किताब, बेची => बिक्री, महीना => बिक्री_डेट (अंतराल), और इसी तरह।

अंत में, एक बार जब आपके पास भाषा के तत्व होते हैं, तो आपको केवल नियमों के एक सेट के साथ आने की आवश्यकता होती है कि कैसे विभिन्न संस्थाएं एक-दूसरे के साथ बातचीत करती हैं, जो आपको छोड़ देती है:

विक्रय से गिनती (*) चुनें जहाँ item_type = 'book' और sales_date> = '5/1/2014' और sales_date <= '5/31/2014'

यह एक उच्च स्तर पर है कि मैं कैसे शुरू करूंगा, जबकि मेरे द्वारा उल्लेखित लगभग हर कदम गैर-तुच्छ है और वास्तव में खरगोश छेद अंतहीन हो सकता है, इससे आपको कनेक्ट करने के लिए कई डॉट्स मिलेंगे।


1

जवाब में आसान सवालों ओर मुड़ते नहीं है सरल जो भी।

मोटे तौर पर तकनीक के रूप में ऐसा करने वाली पहली तकनीक और सटीक रूप से एक बड़ा विजेता होगा।

हालांकि, आर्टिफिशियल इंटेलिजेंस (जैसे आईबीएम वाटसन, और अमेज़ॅन एलेक्सा) के साथ "सवालों के जवाब" के साथ अंतराल को भरने में कुछ बाहर हैं। इसके लिए प्रश्न में डेटा से संबंधित भाषा की जटिलताओं को हल करने की आवश्यकता है, डेटा स्टोर में क्या है, और संज्ञा, क्रिया और सर्वनाम क्या हैं।

माइक्रोसॉफ्ट ने यहां अंग्रेजी क्वेरी के साथ काम किया , लेकिन फिर बंद कर दिया। कुएरी.मे एक पायथन बेस्ड प्लेटफ़ॉर्म है जो उसी चीज़ के बारे में काम करता है।

संरचित क्वेरी भाषाएँ (एसक्यूएल) और जैसे, एसओक्यूएल, एमडीएक्स, हाइव, इम्पाला और नया पुराने जमाने वाले एसक्यूएल पर ले जाता है। अभी तक कुछ भी बदला नहीं गया है, ये सभी टुकड़े "एंड गोल" के ग्रैंडर के छोटे सुधार हैं और यह आर्टिफिशियल इंटेलिजेंस (एआई), विशेष रूप से मशीन लर्निंग में निहित हैं।

सवाल किया जा रहा है:

"कंप्यूटर कर सकते हैं, यह पता लगाएं कि आप क्या चाहते हैं।"

अभी नहीं। यह भाषाविदों, गणितज्ञों, इंजीनियरों और सभी को पाई के अपने योगदान के लिए ले जाता है ताकि हम उस मीठे कृत्रिम इंटेलिजेंट और मशीन लर्निंग केक का आनंद ले सकें।


0

पार्सर बनाने के लिए कई दृष्टिकोण हैं जो एसक्यूएल में सादे पाठ संदेश को पार्स करेंगे। उदाहरण के लिए, आप एक व्याकरण-आधारित पार्सर बना सकते हैं और संरचित क्वेरी बनाने के लिए एक एनएलपी एल्गोरिथ्म का उपयोग कर सकते हैं। यदि आपके पास पहले से ही एक डोमेन (जैसे ई-कॉमर्स) से बहुत सारे पार्स किए गए संदेश हैं - तो आप मशीन लर्निंग दृष्टिकोण की कोशिश कर सकते हैं और इसे अपने आगे के पार्सिंग के लिए उपयोग कर सकते हैं।

हालाँकि, मुझे लगता है कि पाठ-से-SQL अनुवाद के लिए व्याकरण-आधारित पार्सर को संयोजित करना सबसे अच्छा तरीका है, और वाक्यविन्यास को ठीक करने, टाइपो का उन्मूलन, आदि द्वारा नियम-आधारित व्याकरण को पूरक करने के लिए एमएल।

विभिन्न दृष्टिकोणों के बारे में यहाँ और जानें ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.