मैं क्वेरी के सर्वोत्तम मिलान के लिए String[]
में String
देखना चाहता हूं। मैंने लेवेनशेटिन दूरी के बारे में सुना है। लेकिन मैं यह निर्धारित नहीं कर सकता कि मुझे इसकी आवश्यकता है या नहीं।सबसे कम लेवेनशेटिन दूरी? क्या मुझे इसकी ज़रूरत है?
मान लीजिए, मैं एक String query = "Examples"
और
String[] arrayStr = new String[] {"The Examples String", "The Example String", "Example", "Examples String", "Example String", "Examplestring"};
अब है, मैं सबसे अच्छा मैच के रूप में String[]
से Example
प्राप्त करना चाहते हैं।
तो, क्या मुझे ऐसा करने के लिए लेवेनशेटिन दूरी की आवश्यकता है?
वैकल्पिक रूप से, अगर कोई मुझे जावा के लिए लेवेनशेटिन दूरी का तेज़ कार्यान्वयन इंगित कर सकता है, तो यह बहुत अच्छा होगा। मैं यह जांचना चाहता हूं कि यह मेरे पास मौजूद सभी प्रकार के तारों के साथ काम करता है या नहीं। (मूल रूप से मेरे पास 10k arrays से मिलान करने के लिए लगभग 10k तार हैं।)
http://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance#Java – BackSlash
Levenstein दूरी बस आप जोड़ने के लिए charactes की राशि है/एक स्टिंग को दूसरे में बदलने के लिए हटाएं/बदलें। यह वास्तव में मैच की गुणवत्ता के बारे में कुछ नहीं बताता है। जैसे। "उदाहरण" -> "बहुत लोकप्रिय स्टिंग ऑपरेशंस के उदाहरण" -> दूरी 34 और "उदाहरण" -> "अपेक्षित एम्पर्सेंड सबक" -> दूरी 18. मुझे संदेह है कि सबसे छोटी लेवेस्टीन दूरी आपको हमेशा बेहतरीन मैच देगी –
@ मार्कोफोर्बर्ग आप गलत हैं, क्योंकि यह करता है। – BackSlash