महत्वपूर्ण शब्द खोजने के लिए भाषा पार्सिंग


9

मैं कुछ इनपुट और सिद्धांत की तलाश कर रहा हूं कि कैसे एक शाब्दिक विषय से संपर्क किया जाए।

मान लीजिए कि मेरे पास स्ट्रिंग्स का एक संग्रह है, जो सिर्फ एक वाक्य या संभावित रूप से कई वाक्य हो सकते हैं। मैं इन तारों को पार्स करना चाहता हूं और सबसे महत्वपूर्ण शब्दों को चीर देना चाहता हूं, शायद एक अंक के साथ जो यह बताता है कि शब्द कितना महत्वपूर्ण है।

आइए कुछ उदाहरणों पर गौर करें कि मेरा क्या मतलब है।

उदाहरण 1:

"मैं वास्तव में एक Keurig चाहता हूँ, लेकिन मैं एक बर्दाश्त नहीं कर सकता!"

यह एक बहुत ही बुनियादी उदाहरण है, सिर्फ एक वाक्य। एक इंसान के रूप में, मैं आसानी से देख सकता हूँ कि "केयूरिग" यहाँ सबसे महत्वपूर्ण शब्द है। इसके अलावा, "खर्च" अपेक्षाकृत महत्वपूर्ण है, हालांकि यह स्पष्ट रूप से वाक्य का प्राथमिक बिंदु नहीं है। शब्द "I" दो बार दिखाई देता है, लेकिन यह बिल्कुल महत्वपूर्ण नहीं है क्योंकि यह वास्तव में हमें कोई जानकारी नहीं बताता है। मैं इस तरह से कुछ शब्द / अंकों का हैश देखने की उम्मीद कर सकता हूं:

"Keurig" => 0.9
"afford" => 0.4
"want"   => 0.2
"really" => 0.1
etc...

उदाहरण # 2:

"बस मेरे जीवन की सबसे अच्छी तैराकी प्रथाओं में से एक था। उम्मीद है कि मैं अपने समय को प्रतिस्पर्धा में बनाए रख सकता हूं। यदि केवल मुझे मेरी गैर-जलरोधी घड़ी लेने की याद थी।"

इस उदाहरण में कई वाक्य हैं, इसलिए पूरे महत्वपूर्ण शब्द होंगे। उदाहरण # 1 से बिंदु अभ्यास को दोहराए बिना, मैं शायद दो या तीन महत्वपूर्ण शब्दों को देखने की उम्मीद करूंगा, इसमें से दो शब्द आते हैं: "तैराकी" (या "तैराकी अभ्यास"), "प्रतियोगिता", और "घड़ी" (या "जलरोधक" घड़ी "या" गैर-जलरोधक घड़ी "इस बात पर निर्भर करती है कि हाइफ़न को कैसे संभाला जाता है)।

इस तरह के कुछ उदाहरणों को देखते हुए, आप ऐसा ही कुछ करने के बारे में कैसे जाएंगे? क्या प्रोग्रामिंग में कोई मौजूदा (ओपन सोर्स) लाइब्रेरी या एल्गोरिदम हैं जो पहले से ही ऐसा करते हैं?


इसके अलावा, यह programmers.stackexchange.com पर मेरी पहली पोस्ट है। माफी अगर यह गलत जगह है और स्टैकऑवरफ्लो या किसी अन्य एसई साइट पर है। यदि आवश्यक हो तो प्रश्न को स्थानांतरित करने में खुशी होगी।
मैट हगिंस

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

जवाबों:


5

आपके द्वारा बताई गई समस्या के बारे में निश्चित रूप से लोग सोच रहे हैं। João Ventura और Joaquim Ferreira da Silva की रैंकिंग और पाठ (पीडीएफ) में प्रासंगिक एकल शब्दों का निष्कर्षण मौजूदा रैंकिंग तकनीकों के साथ-साथ सुधार के सुझाव के लिए एक अच्छा परिचय है। वे सभी तकनीकों का वर्णन करते हैं जो पाठ के एक या दो पंक्तियों के एक कॉर्पस (बहुत सारे पाठ) पर भरोसा करते हैं। आपके कॉर्पस को सभी नमूनों का संग्रह होना चाहिए या संभवतः विशिष्ट स्रोतों से एकत्रित नमूनों के कई कॉर्पोरा। ध्यान रखें कि एकल शब्द (यूनिग्राम) प्रासंगिकता एक अनसुलझी समस्या है। जैसा कि कागज का वर्णन है:

"... विशुद्ध रूप से सांख्यिकीय तरीकों का उपयोग करते हुए, इस तरह का वर्गीकरण हमेशा सीधा या सटीक नहीं होता है, क्योंकि प्रासंगिकता की धारणा समझने में आसान है, आम तौर पर सीमा के बारे में कोई आम सहमति नहीं है जो प्रासंगिकता को गैर-प्रासंगिकता से अलग करती है। उदाहरण के लिए, "रिपब्लिक" या "लंदन" जैसे शब्दों की महत्वपूर्ण प्रासंगिकता है और "या" और "जैसे" की कोई प्रासंगिकता नहीं है, लेकिन "रीड", "टर्मिनेट" और "अगला" जैसे शब्दों का क्या मतलब है? आम तौर पर उनके शब्दार्थ मूल्य के बारे में आम सहमति नहीं होने के कारण शब्द समस्याग्रस्त हैं। "

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

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


1

प्राकृतिक भाषा प्रसंस्करण का अपना अनुशासन है, जिस पर काफी औपचारिक शोध किए गए हैं। मैं वहाँ देखकर शुरू करूँगा।

मैं अपनी जरूरतों पर पुनर्विचार भी करूंगा। 50+ वर्षों के अनुसंधान के बाद भी, सबसे अच्छे कंप्यूटर वैज्ञानिक सिरी के साथ आने में सक्षम हैं। मैं एक कंप्यूटर से अपेक्षा नहीं करूंगा कि आप नियमित रूप से जो बात कर रहे हैं, वह सफलतापूर्वक करें।

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

इसलिए सारांश में, मुझे गंभीरता से संदेह है कि कुछ भी इस तरह के संदर्भ मुक्त परिदृश्य में आपको अच्छे अंक दे पाएंगे।


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