मैंने अपना जवाब पहले ही किसी अन्य प्रश्न में प्रदान किया है।
https://stackoverflow.com/a/30120166/2282794
मैं इसी तरह के नाम से मेल खाते आवश्यकताओं है कि आप के बारे में बात की है के साथ वास्तव में बड़े पैमाने पर सिस्टम पर काम किया है। नाम मिलान बहुत सरल नहीं है और पहले और अंतिम नामों का क्रम अलग हो सकता है। सरल अस्पष्ट नाम मिलान करने वाले एल्गोरिदम ऐसे परिदृश्यों में बुरी तरह विफल हो जाते हैं।
अगर हम लगभग स्ट्रिंग मिलान एल्गोरिदम के बारे में बात करना चाहते हैं, तो बहुत सारे हैं। उनमें से कुछ हैं: जारो-विंकलर, संपादित दूरी (लेवेनशेटिन), जैककार्ड समानता, साउंडएक्स/फोनेटिक्स आधारित एल्गोरिदम इत्यादि। एक साधारण गुगल हमें सभी विवरण देगा। आप उन सभी को C#
आयरनी यह लागू कर सकते हैं, जब आप दो दिए गए इनपुट स्ट्रिंग से मिलान करने का प्रयास करते हैं तो वे काम करते हैं। ठीक है सैद्धांतिक रूप से और अस्पष्ट या अनुमानित स्ट्रिंग मिलान कार्यों के तरीके का प्रदर्शन करने के लिए।
हालांकि, काफी कमजोर बिंदु यह है कि, हम उत्पादन सेटिंग्स में इसका उपयोग कैसे करते हैं। मुझे पता नहीं है कि एक अनुमानित स्ट्रिंग मिलान करने वाले एल्गोरिदम के लिए स्काउटिंग करने वाले सभी लोग जानते थे कि वे उत्पादन वातावरण में इसे कैसे हल कर सकते हैं।
मैंने शायद लुसीन के बारे में बात की हो जो कि जावा के लिए विशिष्ट है लेकिन नेट के लिए लुसीन भी है।
https://lucenenet.apache.org/
स्रोत
2015-05-08 09:26:56
मुझे लगता है कि मैं सभी डॉट चार दूर करने के लिए और फिर बाद में Levenshtein दूरी का उपयोग जा रहा हूँ। बस एक नोट, मुझे एक और एल्गोरिदम मिला जो लेवेनशेटिन की तुलना में समान लेकिन तेज है, लड़के को एल्गोरिदम sift3 नाम दिया गया है। बहुत ही रोचक। – Max