उपयोगकर्ता पाठ इनपुट के आधार पर सूची से सबसे संभावित विकल्प का चयन कैसे करें


11

मैं एक OCR एप्लिकेशन पर काम कर रहा हूं जहां मुझे उपयोगकर्ता टेक्स्ट इनपुट के आधार पर एक विकल्प का चयन करने की आवश्यकता है।

Ex:
Available Options:
["python", "ruby", "java", "clojure", "haskell"]

Input: kava
Output: java

Input: ruby
Output: ruby

Input: clujuro
Output: clojure

etc.. 

मेरे आवेदन अजगर आधारित है, वहाँ एक एल्गोरिथ्म पहले से ही इस समस्या को हल करने के लिए मौजूद है।


1
यह अब सही करने के लिए इसके लायक नहीं हो सकता है, लेकिन IMO एक अधिक उपयुक्त शीर्षक होगा "स्ट्रिंग्स के बीच दूरी (अंतर) का निर्धारण कैसे करें"
जेफ वेलिंग

3
@ जेफ: और फिर मुझे यह प्रश्न कभी नहीं मिलेगा, क्योंकि मुझे इस बात का कोई अंदाजा नहीं होगा कि मुझे जो "अंतर अंतर" कहा जा सकता है ... और यह एकमात्र कारण नहीं है कि आपको जिस समाधान की आवश्यकता है वह डालें। सवाल। यह लोगों को उस समस्या के वैकल्पिक समाधान का सुझाव देने से रोक सकता है जो आप वास्तव में कर रहे हैं। बिंदु में मामला: लाउडलाइट का जवाब।
मार्जन वेनमा

1
मेरा कहना था, अब जब आप जानते हैं, तो अधिक सटीक शीर्षक का उपयोग करके ऐसे लोगों के उत्तर आकर्षित करने में मदद मिल सकती है, जो नहीं जानते कि "सबसे संभावित कैसे चुनें ..." का अर्थ है, लेकिन जो "स्ट्रिंग्स के बीच की दूरी" को पहचानेंगे, लेकिन हर किसी का अपना। यह सिर्फ एक सुझाव था। मुझे नहीं पता था कि आपका क्या मतलब है और लगभग आपके सवाल पर क्लिक नहीं किया क्योंकि यह सब है।
जेफ वेलिंग

जवाबों:


10

यह " अनुमानित स्ट्रिंग मिलान " श्रेणी के एल्गोरिदम द्वारा किया जाता है । दो तारों की तुलना करने के लिए एक सामान्य उपाय को लेवेंसहाइट दूरी कहा जाता है । एक अजगर कार्यान्वयन यहाँ उपलब्ध है

आप मूल रूप से इनपुट की तुलना संभावित आउटपुट से करते हैं और इच्छित आउटपुट में सबसे छोटी दूरी के साथ किसी एक को चुनते हैं।

विकिपीडिया के लेख में विभिन्न अन्य एल्गोरिदम का भी उल्लेख किया गया है, जिसे आप किसी और चीज़ की आवश्यकता के मामले में आज़मा सकते हैं।


मुझे रूबी में भी इसी तरह की समस्या थी और ठीक इसी तरह से मैंने इसे हल किया।
जेफ वेलिंग

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