2012-01-07 17 views
41

के साथ अर्थपूर्ण खोज मैं खोज सर्वर के रूप में elasticsearch के साथ प्रयोग कर रहा हूं और मेरा काम "अर्थपूर्ण" खोज कार्यक्षमता बनाना है। एक संक्षिप्त पाठ वाक्यांश से "मेरे पास एक विस्फोट पाइप है" सिस्टम को यह अनुमान लगाया जाना चाहिए कि उपयोगकर्ता प्लंबर की खोज कर रहा है और लोचदार खोज में सूचीबद्ध सभी प्लंबर लौटाता है।एनएलपी और लोचदार खोज

क्या यह सीधे लोचदार खोज जैसे खोज सर्वर में किया जा सकता है या क्या मुझे प्राकृतिक भाषा प्रसंस्करण (एनएलपी) उपकरण का उपयोग करना है जैसे उदा। माउ इंडेक्सर। मेरे काम के लिए सटीक शब्दावली क्या है, पाठ वर्गीकरण? हालांकि दिया गया पाठ बहुत छोटा है क्योंकि यह एक खोज वाक्यांश है।

उत्तर

57

विभिन्न कार्यान्वयन जटिलता के साथ कई दृष्टिकोण हो सकते हैं।

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

बेशक, यदि आपके पास बहुत सारे दस्तावेज़ हैं, तो विषय सूची का मैन्युअल निर्माण और शब्दों का बैग बहुत महंगा है। आप कुछ कार्यों को स्वचालित करने के लिए मशीन लर्निंग का उपयोग कर सकते हैं। असल में, विषयों और/या दस्तावेज़ों के बीच दूरी मापने के लिए पर्याप्त है (उदाहरण के लिए डेटा क्लस्टरिंग) और वर्गीकृत इन विषयों में से किसी एक को वर्गीकृत करें। इन तकनीकों का मिश्रण भी एक अच्छा विकल्प हो सकता है (उदाहरण के लिए, आप मैन्युअल रूप से विषय बना सकते हैं और प्रारंभिक दस्तावेज़ असाइन कर सकते हैं, लेकिन क्वेरी असाइनमेंट के लिए वर्गीकरण का उपयोग करें)। विचार को बेहतर ढंग से समझने के लिए विकिपीडिया के लेख पर latent semantic analysis पर एक नज़र डालें। data clustering और document classification पर 2 लिंक किए गए लेखों पर भी ध्यान दें। और हाँ, Maui Indexer इस तरह से अच्छा सहायक उपकरण बन सकता है।

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

2

आप https://blog.conceptnet.io/2016/11/03/conceptnet-5-5-and-conceptnet-io/ का पता लगाना चाहते हैं।

यह semantic networks और distributional semantics को जोड़ता है।

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

कुछ परिणाम

ConceptNet Numberbatch शब्द embeddings, ConceptNet 5.5 में निर्मित, का समाधान इन सैट किसी भी पिछले प्रणाली की तुलना में बेहतर उपमा। यह 56.4% प्रश्न सही हो जाता है। सबसे तुलनीय पिछली प्रणाली, टर्नी सुपरसिम (2013), को 54.8% मिला।और हम एसएटी अनुरूपताओं पर "मानव स्तर" प्रदर्शन के करीब आ रहे हैं - जबकि विशेष रूप से स्मार्ट इंसानों को निश्चित रूप से बहुत अधिक प्रश्न मिल सकते हैं, औसत कॉलेज आवेदक को 57.0% मिलता है।

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