.NET ढांचे में कुछ भी नहीं है जो आपको इस आउट ऑफ़ द बॉक्स के साथ मदद करेगा।
सबसे आम वर्तनी गलतियाँ वे हैं जहां पत्र शब्द का एक सभ्य ध्वन्यात्मक प्रतिनिधित्व है, लेकिन शब्द की सही वर्तनी नहीं है।
उदाहरण के लिए, यह तर्क दिया जा सकता है कि sword
और sord
(हाँ, यह एक शब्द है) में वही ध्वन्यात्मक जड़ें हैं (जब आप उन्हें उच्चारण करते हैं तो वे वही ध्वनि करते हैं)।
कहा जा रहा है कि, ऐसे कई एल्गोरिदम हैं जिनका उपयोग आप शब्द (यहां तक कि गलत वर्तनी वाले) को फोनेटिक रूपों में अनुवाद करने के लिए भी कर सकते हैं।
पहला Soundex है। यह लागू करने के लिए काफी सरल है और .NET implementations of this algorithm की उचित संख्या है। यह अपेक्षाकृत सरल है, लेकिन यह आपको वास्तविक मूल्य देता है जो आप एक-दूसरे से तुलना कर सकते हैं।
दूसरा Metaphone है। हालांकि मुझे मेटाफोन का मूल .NET कार्यान्वयन नहीं मिल रहा है, लेकिन प्रदान किए गए लिंक में कई अन्य कार्यान्वयन के लिंक हैं जिन्हें परिवर्तित किया जा सकता है। कनवर्ट करने का सबसे आसान शायद Java implementation of the Metaphone algorithm होगा।
यह ध्यान दिया जाना चाहिए कि मेटाफोन एल्गोरिदम संशोधन के माध्यम से चला गया है।Double Metaphone है (जिसमें .NET implementation है) और Metaphone 3 है। मेटाफोन 3 एक वाणिज्यिक अनुप्रयोग है, लेकिन सामान्य अंग्रेजी शब्दों के डेटाबेस के विरुद्ध चलाने पर डबल मेटाफोन एल्गोरिदम के लिए 89% सटीकता दर की तुलना में 98% सटीकता दर है। आपकी ज़रूरत के आधार पर, हो सकता है कि आप (डबल मेटाफोन के मामले में) या खरीद (मेटाफोन 3 के मामले में) एल्गोरिदम के स्रोत को देखना चाहें और पी/इनवॉक लेयर के माध्यम से इसे परिवर्तित या एक्सेस कर सकें (सी ++ कार्यान्वयन हैं लाजिमी है)।
मेटाफोन और साउंडएक्स इस अर्थ में भिन्न है कि साउंडएक्स निश्चित लंबाई संख्यात्मक कुंजी उत्पन्न करता है, जबकि मेटाफोन विभिन्न लंबाई की चाबियां उत्पन्न करता है, इसलिए परिणाम अलग होंगे। अंत में, दोनों आपके लिए समान प्रकार की तुलना करेंगे, आपको केवल यह पता लगाना होगा कि आपकी आवश्यकताओं और संसाधनों (और वर्तनी की गलतियों के लिए असहिष्णुता स्तर) के अनुसार आपकी आवश्यकताओं को सर्वोत्तम तरीके से कौन सा अनुकूल बनाता है।
मुझे इस मामले में लेवेनशेटिन दूरी के खिलाफ बहस करना होगा। हालांकि यह पता लगाने के लिए बहुत अच्छा है कि दो तार अलग-अलग हैं, उचित ध्वन्यात्मकता को बनाए रखने की तुलना में वर्तनी की गलतियों को अक्सर नहीं। उदाहरण के लिए, एलडी एल्गोरिदम शायद * नहीं * इंगित करेगा कि "कूल बिल्ली" और "कुल कट" समान हैं (जो मुझे लगता है कि पोस्टर की इच्छा है) जबकि साउंडएक्स और मेटाफोन उन शब्दों/वाक्यांशों के बीच समानता को इंगित करने की अधिक संभावना है । – casperOne
@ कैस्परऑन: डेटा सेट को जानने के बिना कहना मुश्किल है, लेकिन यह स्वीकार किया जा रहा है कि कोई भी आकार-फिट नहीं है-सभी दृष्टिकोण। मैं डबल मेटाफोन का बड़ा प्रशंसक हूं। – RedFilter
@RedFilter hi .. मैंने levenshtein दूरी का उपयोग किया है ... लेकिन मैं वास्तव में दुनिया के देशों या क्षेत्रों की तुलना कर रहा हूं। इसलिए यदि मैं 2 के रूप में सहनशीलता रखता हूं तो ऑस्ट्रिया और ऑस्ट्रेलिया समान दिखाई देते हैं। उसी समय, संयुक्त राज्य अमेरिका और संयुक्त राज्य अमेरिका अलग दिखाए जाते हैं। मैं इस समस्या के लिए क्या कर सकता हूं? –