सर्वोत्तम उत्तर एल्गोरिदम का उल्लेख करने वाले को छोड़कर सभी उत्तरों बहुत अधिक हैं। स्थानीय रूप से संवेदनशील हैशिंग मूल रूप से सपने देख रहा है। यह पहली बार है जब मैं स्टैक ओवरफ्लो पर बहुत अधिक जवाब देखता हूं।
सबसे पहले, यह एक कठिन, लेकिन मानक समस्या है जिसे विभिन्न तरीकों से हल किया गया है। नमूना सी कोड
http://www.cs.princeton.edu/~rs/strings/
Sedgewick भी है:
एक दृष्टिकोण एक Trie यहाँ Sedgewick द्वारा preseted जैसे उपयोग करता है।
मैं शीर्षक बेंटले और Sedgewick द्वारा "छंटाई और स्ट्रिंग्स सर्च कर रहे हैं के लिए फास्ट एल्गोरिदम" कागज से बोली:
" '' के पास पड़ोसी 'के सवालों एक प्रश्न शब्द की दी गई आलोचनात्मक अंतर के भीतर सभी शब्दों का पता लगाने (उदाहरण के लिए, कोड सोडा से दूरी 2 है)। हम तारों में पड़ने वाले पड़ोसी के लिए एक नया एल्गोरिदम देते हैं, एक सरल सी कार्यान्वयन प्रस्तुत करते हैं, और इसकी दक्षता पर प्रयोगों का वर्णन करते हैं। "
इंडेक्सिंग का उपयोग करने का दूसरा दृष्टिकोण है। स्ट्रिंग को अक्षर एन-ग्राम्स और इंडेक्स में उलटा इंडेक्स (ल्यूसीन स्पेल चेकर के लिए Google यह देखने के लिए कि यह कैसे किया जाता है) में विभाजित करें। संभावित उम्मीदवारों को खींचने के लिए सूचकांक का उपयोग करें और फिर उम्मीदवारों पर हथौड़ा दूरी चलाएं या संपादित करें। यह सबसे अच्छा काम करने की गारंटी है (और अपेक्षाकृत सरल)।
भाषण मान्यता के क्षेत्र में एक तिहाई दिखाई देता है। वहां क्वेरी एक WAV सिग्नल है, और डेटाबेस तारों का एक सेट है। एक "टेबल" है जो सिग्नल के टुकड़ों से शब्दों के टुकड़ों से मेल खाती है। लक्ष्य सिग्नल करने के लिए शब्दों का सबसे अच्छा मिलान ढूंढना है। इस समस्या को शब्द संरेखण के रूप में जाना जाता है।
पोस्ट की गई समस्या में, डेटाबेस भागों में मिलान क्वेरी भागों की एक अंतर्निहित लागत है। उदाहरण के लिए किसी को हटाने/सम्मिलन/प्रतिस्थापन के लिए अलग-अलग लागत हो सकती है और यहां तक कि मिस्चैचिंग के लिए अलग-अलग लागत "एफ" के साथ "एफ" कह सकती है।
भाषण मान्यता में मानक समाधान एक गतिशील प्रोग्रामिंग दृष्टिकोण का उपयोग करता है जो कि ह्यूरिस्टिक्स के माध्यम से प्रभावी होता है जो सीधे छंटनी करता है। इस तरह, केवल सर्वश्रेष्ठ, कहते हैं कि 50 उम्मीदवारों को रखा जाता है। इस प्रकार, नाम सबसे पहले खोज। सिद्धांत रूप में, आपको सबसे अच्छा मैच नहीं मिल सकता है, लेकिन आमतौर पर एक अच्छा मैच मिलता है।प्रत्यय Arrays और ए * पार्सिंग साथ
http://amta2010.amtaweb.org/AMTA/papers/2-02-KoehnSenellart.pdf
फास्ट लगभग स्ट्रिंग मिलान:
यहाँ बाद दृष्टिकोण के लिए एक संदर्भ है।
यह दृष्टिकोण शब्दों के लिए, लेकिन वाक्य को न केवल लागू होता है।
पर सी पर ऐसी स्ट्रिंग और बाइनरी खोज होने पर बस यह जांचने के लिए संशोधित करें कि यह भी देखें http://stackoverflow.com/questions/5861718/string-comparison-with-the-most-similar- स्ट्रिंग – Raedwald