2011-03-26 18 views
8

संभव डुप्लिकेट:
Are there any Fuzzy Search or String Similarity Functions libraries written for C#?कैसे जांचें कि दो स्ट्रिंग सी # में आंशिक मिलान है या नहीं?

मैं जो गीत या कलाकार या एल्बम का नाम के उपयोगकर्ता इनपुट सिवाय और फिर एक स्ट्रिंग सरणी या किसी के लिए ArrayList के माध्यम से दिखेगा एप्लिकेशन निर्माण कर रहा हूँ संभावित मैच

ऑटो सुझावों की गणना मिलान प्रतिशत के आधार पर की जाएगी।

उदाहरण के लिए

उपयोगकर्ता प्रकार लिंक PRK यह Linkin Park या Link 80 या Link Wray खोजना चाहिए, लेकिन मैच प्रतिशत अलग होगा के लिए सभी

मान लें कि संग्रह केवल कलाकार में कलाकार के नाम के लिए खोज करेंगे, तो गीत संग्रह में संग्रह और गीत का नाम।

(प्रतिशत आंकड़े विवरण के लिए बस कर रहे हैं)

Linkin Park - 98% 
Link Wray -82% 
Link 80 - 62% 

समाधान, किसी भी regex या छद्म कोड अच्छा होगा सी # कोड होना जरूरी नहीं है, लेकिन सी # में कार्यान्वयन योग्य होना चाहिए।

+1

http://stackoverflow.com/questions/83777/are-there-any-fuzzy-search-or-string-similarity-functions- पुस्तकालय-written-for-c –

उत्तर

11

आमतौर पर Levenshtein distance के कार्यान्वयन को संपादित दूरी भी कहा जाता है। यह एक स्ट्रिंग को दूसरे में बदलने के लिए आवश्यक न्यूनतम संपादनों के आधार पर मैचों को मिलेगा, "लागत" के उपाय के रूप में एक ही चरित्र के सभी सम्मिलन, हटाना, या प्रतिस्थापन की गणना करना - उम्मीदवार तब स्ट्रिंग हैं जिनकी न्यूनतम लागत है ।

सी # में सामान्य कार्यान्वयन के साथ an article का एक लिंक यहां दिया गया है।

+1

का डुप्लिकेट सही है, लेकिन अच्छे के लिए तैयार एक बड़े डेटासेट पर सीपीयू शीतलन :) – Ingo