क्या एल्गोरिथम (ओं) का उपयोग काफी अच्छा अगले शब्द भविष्यवाणी को प्राप्त करने के लिए किया जा सकता है?


10

"अगले-शब्द की भविष्यवाणी" को लागू करने का एक अच्छा तरीका क्या है? उदाहरण के लिए, उपयोगकर्ता प्रकार "I am" है और सिस्टम "a" और "not" (या संभवतः अन्य) अगले शब्द के रूप में सुझाता है। मैं एक ऐसी विधि से अवगत हूं जो मार्कोव चेन और कुछ प्रशिक्षण पाठ का उपयोग करता है (जाहिर है) इसे कम या ज्यादा हासिल करने के लिए। लेकिन मैंने कहीं पढ़ा है कि यह विधि बहुत प्रतिबंधात्मक है और बहुत ही सरल मामलों पर लागू होती है।

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

जवाबों:


9

एन-ग्राम पर एक नज़र डालें । एक एन-ग्राम nशब्दों का एक क्रम है । अपने मामले में आप होना चाहते nहैं 3, क्योंकि आपको दो query wordsऔर ए की जरूरत है resulting word। एक 3-ग्राम उदाहरण के लिए होगा "मैं थक गया हूँ", एक और एक "मैं खुश हूँ"।

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

इस तरह का डेटा इकट्ठा करना सबसे मुश्किल हिस्सा है। एक बार जब आपके पास सभी 3-ग्रामों की सूची एक साथ होती है, तो आप अपनी सूची को "I am" से शुरू होने वाले सभी 3-ग्रामों में फ़िल्टर कर सकते हैं। तब आप संभावना एट वॉयला द्वारा इस सभी सूची को क्रमबद्ध करते हैं : आपकी भविष्यवाणी।


ठीक है, और वहाँ एक इष्टतम मूल्य है nकि अच्छे परिणाम मिलते हैं? यह हमेशा ऐसा तीसरा शब्द नहीं होता है जिसकी भविष्यवाणी की जाती है, आप देखते हैं
yati sagade

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

2
इसके अलावा, आपको व्यावहारिक रूप से उपयोगी होने के लिए बड़े एन-ग्राम के लिए एक बड़ा कॉर्पस की आवश्यकता है।
लियोरी

4
उम यह वस्तुतः एक मार्कोव चैन है ... केवल इतना ही नहीं, बल्कि शाब्दिक रूप से सबसे पाठ्यपुस्तक का उदाहरण है ...
जस्टिन एल।

2

ऐसा लगता है कि समस्या डोमेन स्ट्रिंग खोज का सबसेट है। सफेद रिक्त स्थान शामिल करने के लिए शब्दों का विस्तार करके, फजी स्ट्रिंग मिलान को यहां लागू किया जा सकता है।

आप अपने शब्दकोश के अलावा प्रशिक्षण के दौरान एक शब्द के रूप में सभी उपयोगकर्ता इनपुट पर विचार / अनुमति देना चाह सकते हैं। यह आपको अगले शब्द का सुझाव देने की अनुमति देता है, लेकिन ऑटो को शब्द या वाक्यांशों से पूरा करने का सुझाव भी देता है।

यहाँ फ़ज़ी स्ट्रिंग खोज एल्गोरिदम के संकलन का लिंक दिया गया है

http://ntz-develop.blogspot.com/2011/03/fuzzy-string-search.html


1

आप एक (सांख्यिकीय) भाषा मॉडल की तलाश में हैं

एक सांख्यिकीय भाषा मॉडल P(w_1,...,w_m)एक प्रायिकता वितरण के माध्यम से मी शब्दों के अनुक्रम के लिए एक प्रायिकता प्रदान करता है ...

वाक् पहचान और डेटा संपीड़न में, ऐसा मॉडल किसी भाषा के गुणों को पकड़ने और एक भाषण अनुक्रम में अगले शब्द की भविष्यवाणी करने की कोशिश करता है ...


वाह। लेकिन मुझे लगता है कि @ sebastiangeiger का उत्तर n = 3 के लिए यह बताता है।
यति संगादे

उनका जवाब एक विशेष भाषा के मॉडल का वर्णन करता है, जिसका नाम n-gram मॉडल है। अन्य भाषा मॉडल हैं, उदाहरण के लिए, वाक्यात्मक भाषा के मॉडल ( goo.gl/ffPOg )।
user3287
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.