2012-11-06 16 views
7

मैं एक एल्गोरिदम डिवाइस को चलाने की कोशिश कर रहा हूं जो नामों में त्रुटि सुधार करता है। मेरे दृष्टिकोण में सही नामों वाला डेटाबेस है, उनमें से प्रत्येक के बीच संपादित दूरी की गणना करें और नाम दर्ज करें और फिर 5 या 10 निकटतम का सुझाव दें।नामों में त्रुटि सुधार

यह कार्य शब्दों में मानक त्रुटि सुधार से काफी अलग है क्योंकि कुछ नाम प्रारंभिक रूप से प्रतिस्थापित किए जा सकते हैं। उदाहरण के लिए "जोनाथन स्मिथ" और "जे स्मिथ" वास्तव में काफी करीब हैं और आसानी से वही नाम माना जा सकता है, इसलिए 0 की दूरी पर संपादन दूरी वास्तव में छोटी होनी चाहिए। एक और चुनौती यह है कि कुछ नामों को ध्वनि के दौरान अलग-अलग लिखा जा सकता है वही। उदाहरण के लिए Shnaider और Schneider अलग-अलग स्थानों वाले लोगों द्वारा लिखे गए समान नाम के संस्करण हैं (मुझे लगता है कि इसके लिए बेहतर उदाहरण हैं)। और एक और मामला - बस Jawaharlal Nehru लिखने में सभी संभावित त्रुटियों की कल्पना करें जिनमें से अधिकांश के असली नाम से कोई लेना देना नहीं है। फिर शायद उनमें से अधिकतर ध्वन्यात्मक रूप से समान होंगे।

स्पष्ट रूप से लुसीन की त्रुटि सुधार एल्गोरिदम यहां मेरी सहायता नहीं करेगा क्योंकि यह उपर्युक्त मामलों को संभाल नहीं पाता है।

तो मेरा सवाल है: क्या आप नामों में त्रुटि सुधार करने में सक्षम पुस्तकालय जानते हैं? क्या आप उपर्युक्त मामलों को संभालने के लिए कुछ एल्गोरिदम प्रस्तावित कर सकते हैं?

मुझे सी ++ या जावा में पुस्तकालयों में रूचि है। एल्गोरिदम प्रस्ताव के लिए किसी भी भाषा या छद्म कोड करेंगे।

+0

मुझे यहां 2 संभावित दृष्टिकोण दिखाई देते हैं: 1. समानार्थी शब्दकोष लें और दूरी की गणना करते समय इसे शामिल करें। 2. आपके द्वारा वर्णित तर्क के साथ कुछ एआई मॉड्यूल को नियोजित करें। – SomeWittyUsername

+0

मेरा मानना ​​है कि केवल मेरे लिए विकल्प 2 संभव है क्योंकि मेरे पास लाखों नाम, अलग-अलग लोकेशन, अलग-अलग समानार्थी हैं। यहां समस्या यह है कि ** तर्क को लागू करने के लिए ** मैं विशेष रूप से ध्वन्यात्मक समानता भाग का वर्णन करता हूं। इसके अलावा मैं यह सुनिश्चित करना चाहता था कि ऐसा कुछ भी पहले से बाहर नहीं है। –

+0

ऐसा करने से बहुत सावधान रहें। मैंने यूसीएसडी के साथ एक बहु-सप्ताह का तर्क पूरा किया, जहां मैं 200 9 में समाप्त होने वाले कुछ सालों के लिए छात्र था। वे मुझे लौटाए गए चेक के लिए चार्ज कर रहे थे। यह केवल तभी हल किया गया जब मैं उन्हें अपने रिकॉर्ड को देखने के बजाय चेक की छवि खोदने के लिए मिला। चेक वास्तव में पहले और अंतिम नाम वाले किसी व्यक्ति द्वारा लिखा गया था, लेकिन मध्य प्रारंभिक के साथ। लेखांकन विभाग ने माना था कि यह मेरे खाते पर निकट-नाम के नाम पर आधारित है। यहां तक ​​कि सटीक नाम मिलान भी यह निर्धारित करने के लिए अधिक उपयोग नहीं करते हैं कि डेटा एक ही व्यक्ति के बारे में है या नहीं। –

उत्तर

6

फोनेटिक मिलान के लिए, Soundex देखें।

मुझे लगता है कि "प्रारंभिक में संक्षेप में" और "प्रारंभिक से विस्तार" के इलाज के लिए लेवेनशेटिन दूरी एल्गोरिदम को संशोधित करने के लिए सिंगल-दूरी संपादन के रूप में सरल होना चाहिए, लेकिन विवरण इस समय मेरे बाहर हैं।

+0

साउंडएक्स निश्चित रूप से कुछ है जिसका मैं उपयोग कर सकता हूं। उसके लिये आपका धन्यवाद :) –

संबंधित मुद्दे