2010-07-09 14 views
9

मैंने प्राकृतिक भाषा को पार्स करने के लिए कुछ सरल अर्थपूर्ण नेटवर्क कार्यान्वयन और बुनियादी तकनीकों का अध्ययन किया है। हालांकि, मैंने कई परियोजनाओं को नहीं देखा है जो दोनों के बीच के अंतर को पुल और पुल करते हैं।अर्थात् नेटवर्क की संभाव्य पीढ़ी

उदाहरण के लिए, संवाद पर विचार करें:

"the man has a hat" 
"he has a coat" 
"what does he have?" => "a hat and coat" 

एक साधारण अर्थ नेटवर्क, ऊपर वाक्य के व्याकरण पेड़ पार्स पर आधारित है, लग सकता है जैसे:

the_man = Entity('the man') 
has = Entity('has') 
a_hat = Entity('a hat') 
a_coat = Entity('a coat') 
Relation(the_man, has, a_hat) 
Relation(the_man, has, a_coat) 
print the_man.relations(has) => ['a hat', 'a coat'] 

हालांकि, इस कार्यान्वयन हो जाती है पूर्व ज्ञान है कि पाठ खंड "आदमी" और "वह" एक ही नेटवर्क इकाई का संदर्भ देता है।

आप एक ऐसे सिस्टम को कैसे डिजाइन करेंगे जो एक अर्थपूर्ण नेटवर्क के खंडों के बीच इन संबंधों को "सीखता" है? मैं विशेषता/मूल्य जोड़े के एक साधारण प्रशिक्षण सेट के आधार पर एमएल/एनएल समस्याओं के बारे में सोचने के लिए प्रयोग किया जाता हूं, और इसे वर्गीकरण या प्रतिगमन एल्गोरिदम को खिला रहा हूं, लेकिन मुझे इस समस्या को इस तरह से तैयार करने में समस्या हो रही है।

अंततः, यह मैं अर्थ नेटवर्क के शीर्ष पर संभावनाओं ओवरले करने के लिए की आवश्यकता होगी लगता है, लेकिन यह है कि तेजी से एक कार्यान्वयन को मुश्किल होगा। क्या इन पंक्तियों के साथ कोई पूर्व कला है? मैंने एनएलटीके और ओपनएनएलपी जैसे कुछ मुक्तियों को देखा है, और जब उनके पास प्रतीकात्मक तर्क और पार्स प्राकृतिक भाषा को संभालने के लिए सभ्य उपकरण हैं, न तो किसी एक को दूसरे में परिवर्तित करने के लिए किसी प्रकार का प्रोबैबिलिस्टिक ढांचा लगता है।

उत्तर

3

इस तरह के कार्य के पीछे काफी इतिहास है। आपकी सबसे अच्छी शुरुआत शायद Question Answering पर देख कर है।

सामान्य सलाह मैं हमेशा देना है कि अगर आप कुछ अत्यधिक सीमित डोमेन जहां चीजों के बारे में सब है कि उल्लेख किया जा सकता है पता है और सभी तरह से वे फिर बातचीत की है तो आप शायद काफी सफल हो सकता है। यदि यह 'खुली दुनिया' की समस्या से अधिक है तो स्वीकार्य रूप से काम करने वाली किसी चीज़ के साथ आना बेहद मुश्किल होगा।

प्राकृतिक भाषा से संबंध निकालने का कार्य 'संबंध निष्कर्षण' (काफी मजेदार) और कभी कभी तथ्य निष्कर्षण कहा जाता है। यह अनुसंधान का एक बहुत बड़ा क्षेत्र है, this guy ने पीएचडी थीसिस किया, जैसा कि कई अन्य हैं। यहां पर बड़ी संख्या में चुनौतियां हैं, जैसा आपने देखा है, जैसे कि इकाई का पता लगाने, एनाफोरा रिज़ॉल्यूशन इत्यादि। इसका मतलब है कि आपके द्वारा निकाले गए संस्थाओं और रिश्तों में शायद 'शोर' होगा।

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

वहाँ संभाव्य रिलेशनल मॉडलिंग में कुछ शोध, ज्यादातर Markov Logic Networks वाशिंगटन विश्वविद्यालय में और Probabilstic Relational Models स्टैनफोर्ड और अन्य स्थानों पर में है। मैं मैदान के संपर्क में थोड़ा सा हूं, लेकिन यह एक मुश्किल समस्या है और जहां तक ​​मुझे पता है, यह सभी शुरुआती चरण के शोध है।बहुत सारे मुद्दे हैं, ज्यादातर कुशल और स्केलेबल अनुमान के आसपास।

सब कुछ, यह एक अच्छा विचार और एक बहुत ही समझदार बात है जो करना चाहता है। हालांकि, यह हासिल करना भी बहुत मुश्किल है। यदि आप कला की स्थिति का एक हल्का उदाहरण देखना चाहते हैं, (यानी लोगों और धन के समूह के साथ क्या संभव है) शायद PowerSet देखें।

+0

पीआर-ओडब्लूएल दिलचस्प दिखता है, जिसमें उन्होंने अनिश्चितता को संभालने के लिए एक उपयोगी अर्थपूर्ण नेटवर्क की जरूरतों को महसूस किया है। हालांकि, मुझे ओडब्ल्यूएल कभी पसंद नहीं आया क्योंकि यह मुझे कभी स्पष्ट नहीं था कि वे संस्थाओं को कैसे सुधारते हैं। इसके अलावा, जैसा कि आपने बताया है, इस बिंदु पर प्रोजेक्ट वाष्प प्रतीत नहीं होता है, जिसमें कोई वास्तविक प्रकाशित कोड नहीं है। – Cerin

0

मुझे बिल्कुल यकीन नहीं है कि यह वही है जो आप चाहते हैं, लेकिन प्राकृतिक भाषा पीढ़ी wikipedia, पार्सिंग के "रिवर्स" पर नज़र डालें, जो व्युत्पन्न संवेदनात्मक बाधाओं के अनुरूप व्युत्पन्न का निर्माण करते हैं।

+0

हाँ, धन्यवाद, लेकिन तकनीकी रूप से यह जो मैं ढूंढ रहा हूं उसके ठीक विपरीत है;) – Cerin

2

दिलचस्प सवाल है, मैं सी # में एक जोरदार टाइप NLP इंजन पर कुछ काम कर दिया गया है: http://blog.abodit.com/2010/02/a-strongly-typed-natural-language-engine-c-nlp/ और हाल ही में यह एक सत्तामीमांसा दुकान से कनेक्ट करने शुरू कर दिया है।

मेरे लिए ऐसा लगता है कि यह मुद्दा वास्तव में है: आप यह समझने के लिए प्राकृतिक भाषा इनपुट कैसे पार्स करते हैं कि 'वह' "आदमी" जैसा ही है? जब तक यह अर्थात् नेटवर्क में है, यह बहुत देर हो चुकी है: आपने इस तथ्य को खो दिया है कि कथन 2 ने कथन 1 का पालन किया है और कथन 2 में अस्पष्टता को कथन 1 का उपयोग करके हल किया जा सकता है। तथ्य के बाद तीसरा रिश्ता जोड़ना कि "वह" और "आदमी" एक ही विकल्प है लेकिन आपको अभी भी उन दावों के अनुक्रम को समझने की आवश्यकता है।

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

उदाहरण के लिए मेरे घर के मामले में, यह आपको बता सकता है कि आपने उस नंबर से एक कॉल छोड़ी है जो उसके डेटाबेस में नहीं है। आप "यह जॉन स्मिथ था" टाइप कर सकते हैं और यह पता लगा सकता है कि "इट" का मतलब उस कॉल का है जो आपको अभी उल्लेख किया गया था। लेकिन अगर आपने कॉल के ठीक बाद "इसे पार्टी म्यूजिक के रूप में टैग करें" टाइप किया है तो यह अभी भी उस गीत को हल करेगा जो वर्तमान में खेल रहा है क्योंकि घर आईटीएग्जेबल के लिए वापस देख रहा है।

+1

समस्या आमतौर पर एनाफोरा संकल्प कहा जाता है। यदि आप इसे 'हे' और 'वह' को हल करने के लिए प्रतिबंधित करते हैं तो इसे सर्वनाम रिज़ॉल्यूशन कहा जाता है। ऐसे सिस्टम हैं जो इसे कर सकते हैं, लेकिन आमतौर पर बहुत अच्छी तरह से नहीं। पिछली बार मैंने एक का इस्तेमाल किया, इससे बहुत सारी त्रुटियां हुईं क्योंकि यह नहीं बता सका कि बराक ओबामा एक आदमी का नाम था। – Stompchicken

+0

अनाफोरा/सर्वनाम संकल्प एक मुद्दा है, लेकिन समस्या उससे अधिक सामान्य है। यदि मैं दो अलग-अलग प्रवचनों में "आदमी" का संदर्भ देता हूं, तो यह एक ही इकाई को संदर्भित कर सकता है या नहीं। एक खुले दुनिया के डोमेन में, यह समस्या किसी वाक्य में संभावित रूप से किसी भी शब्द पर लागू होती है। – Cerin

+0

उस स्थिति में इसे आमतौर पर (क्रॉस-दस्तावेज़) इकाई संकल्प कहा जाता है। थोड़ी देर पहले उस पर एक प्रतियोगिता थी: http://www.kdnuggets.com/news/2007/n08/10i.html यह सुनिश्चित नहीं है कि इसका क्या आया। – Stompchicken

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