2010-08-30 19 views
5

के लिए सबसे अच्छा एल्गोरिदम क्या है निकटतम शब्द के लिए सबसे अच्छा एल्गोरिदम क्या है।निकटतम शब्द

संभावित शब्दकोष दिया गया है और इनपुट शब्द में पहले वर्ण गलत हो सकते हैं।

+2

केवल पहले वर्ण गलत क्यों हो सकते हैं? – Leonid

+3

क्या आप पहली बार "निकटतम" की परिभाषा दे सकते हैं? – FrustratedWithFormsDesigner

+0

मेरा मतलब है कि पहले अक्षर गलत हो सकते हैं। – Avinash

उत्तर

7

एक विकल्प बीके-पेड़ है -। के बारे में मेरे ब्लॉग पोस्ट देखें उन्हें here। एक और, तेज़ लेकिन अधिक जटिल विकल्प लेवेनशेटिन ऑटोमाटा है, जिसे मैंने here के बारे में भी लिखा है।

+0

मैं हनस्पेल का उपयोग कर रहा हूं, और जब मैं "हेलो" इनपुट करता हूं तो यह "छेद", "हैलो", "सहायता", "नायक" आदि जैसे 10 परिणाम देता है। मैं केवल "हैलो" की उम्मीद कर रहा हूं, जब मैं "हेलो" खोजता हूं तो Google कुछ करता है। अब यह सांख्यिकीय डेटा के आधार पर भी है, या सिर्फ दूरी को संपादित करने के लिए केवल "हैलो" सुझाव देने के लिए पर्याप्त हो सकता है? – SexyBeast

4

हनस्पेल (ओपन-सोर्स स्पेल-चेकर व्यापक रूप से ओपनऑफिस सहित) जैसे टूल हैं, जिन्होंने कई दृष्टिकोणों से समस्या से संपर्क किया है। शब्दों का आकलन करने के लिए एक व्यापक रूप से उपयोग किया गया मानदंड Levenshtein distance है जिसका उपयोग HunSpell में भी किया जाता है।

3

आप BLAST

का उपयोग करें और तथ्य यह है कि एक शब्दकोश में शब्द असतत इकाइयों जो एक लंबे डीएनए स्ट्रिंग के विपरीत अधिक विशिष्ट मिलान की प्रक्रिया बनाता हैं उपयोग करने के लिए इसे संशोधित कर सकता है।

ब्लास्ट ने पहले से ही संपादन दूरी की धारणा बनाई है।

वैकल्पिक रूप से, आप प्रत्यय पेड़ (दान Gusfeld बुनियादी स्ट्रिंग मिलान एल्गोरिदम पर एक उत्कृष्ट पुस्तक है) इस्तेमाल कर सकते हैं और में दूरी संपादित करने के विचार में निर्माण