2008-11-05 18 views
6

मुझे लगता है कि यह समस्या केवल एक नियमित वर्तनी परीक्षक से आसान है क्योंकि यू.एस. शहरों की सूची सभी ज्ञात अंग्रेजी शब्दों की तुलना में छोटी है।वर्तनी शहर के नाम की जांच?

किसी भी तरह, यहां समस्या है: मेरे पास शहर के नाम से भरा टेक्स्ट फ़ाइलें हैं; जिनमें से कुछ सही वर्तनी और कुछ जो नहीं हैं।

शहर के नामों की सभी गलत वर्तनी को सही करने के लिए मैं किस प्रकार का एल्गोरिदम उपयोग कर सकता हूं?

+0

क्या आप एक उदाहरण पोस्ट कर सकते हैं? एक ही शहर के गलत नाम का सही नाम और नमूने, शायद? – shahkalpesh

उत्तर

7

क्या आपको वास्तव में गलत वर्तनी को सही करने की आवश्यकता है या उन्हें सामान्य वर्तनी परीक्षक के रूप में ध्वजांकित करना है? यदि उत्तरार्द्ध, आपको केवल सही वर्तनी की एक सूची प्राप्त करने की आवश्यकता है और सुनिश्चित करें कि प्रत्येक नाम आपकी सूची में एक जैसा है।

यदि आप वास्तव में उन्हें सही करना चाहते हैं, तो संभवतः आप edit distance की अवधारणा का उपयोग अपनी संदर्भ सूची में उन लोगों के लिए गलत वर्तनी तारों की समानता की तुलना करना चाहते हैं। फिर आप सबसे नज़दीकी मैच के साथ गलत वर्तनी वाले शब्द को प्रतिस्थापित कर सकते हैं। आप इस संभावना को संभालना भी चाह सकते हैं कि इच्छित शहर आपकी सूची में नहीं है।

Levenshtein distance विकिपीडिया लेख एक और अच्छा संसाधन है।

+0

मुझे उन्हें सही करने की आवश्यकता है। –

+0

हां, मुझे लगता है कि संपादन दूरी विचार इस के लिए सही दृष्टिकोण है। जब मैंने इसे किसी भी तरह से शुरू किया, तो मैं उस पर आगे बढ़ रहा था। –

-3

यदि एक ही शहर का नाम फ़ाइल में एक से अधिक बार होता है तो आप प्रत्येक शहर के नाम की घटना का उपयोग कर सकते हैं और केवल एक बार दिखाई देने वाले ध्वज का उपयोग कर सकते हैं।

+0

यह संभव है कि एक शहर केवल एक बार प्रकट होता है और सही ढंग से लिखा जाता है। –

+0

... या गलत वर्तनी है, वैसे ही, एक से अधिक बार। –

+0

एस्टेबान और ब्रैड: बेशक, आप सही हैं, लेकिन अगर आपको केवल खुद को सत्यापित करने के लिए एकमात्र चीजें हैं, तो आपको आंकड़े –

3

पहले सही शहर के नामों को एक सरणी में लोड करें, फिर अपनी फ़ाइल में शहर के नामों के माध्यम से लूप करें। जांचें कि वर्तमान शहर का नाम सही नामों की सरणी में है या नहीं, यह देखकर सही वर्तनी है। यदि यह सरणी में नहीं है, तो वर्तनी के सही तरीके को खोजने के लिए सही नामों की सरणी में शब्दों के साथ गलत वर्तनी वाले शब्द के Soundex या Metaphone की तुलना करने का प्रयास करें।

-1

आमतौर पर गलत वर्तनी वाले शहर के नामों के वेब पर सूचियां हैं (जैसे पिट्सबर्ग एच)। इसके अलावा मैं जेरेमी के साथ हूं। आपको बस शहर के नाम डेटासेट को ढूंढना होगा, आप यूएसजीएस को आजमा सकते हैं। ज़िलो में पड़ोस डेटा है जिसका आप इसका उपयोग कर सकते हैं।

2

चाल यह जानती है कि नाम वास्तव में किस शहर का संदर्भ देता है और कि शहर का नाम सही ढंग से लिखा गया है। यह सिर्फ अंग्रेजी शब्दों की जांच के समान नहीं है।

असली कार्य क्या है जिसे आप हल करने का प्रयास कर रहे हैं? क्या आप पता सूची संसाधित कर रहे हैं? इसके लिए आपको अपने स्वयं के औजार नहीं लिखना चाहिए: इस भ्रामक सरल कार्य को समर्पित एक संपूर्ण उद्योग है। :)

मुझे The Perl Review के लिए सदस्यता सूचियों के लिए यह करना है। मैं पूरी दुनिया में विभिन्न डाकघरों के लिए वेब सर्विसेज से काफी परिचित हो गया हूं। किसी पते का एक कैनोलिक रूप प्राप्त करने के लिए आप प्रायः एक डाक सेवा वेबसाइट पर जा सकते हैं। ऐसे geocoding उपकरण हैं जो आपको एक ही डेटा प्राप्त कर सकते हैं।

+0

की गणना करने के लिए घटना पर भरोसा करना है, आप सही हैं, यह भ्रामक रूप से मुश्किल है। अब जब मैं इसके साथ खेल रहा हूं, मैंने यह भी देखा है कि लोग कभी-कभी शहर के नामों को संक्षिप्त करते हैं। यह लिखना डीपी में एक महान व्यायाम है; मुझे यकीन है कि कोई भी काफी सभ्य परिणाम प्राप्त कर सकता है w/o बहुत अधिक प्रयास। –

0

मैंने यह किया है। संपादन दूरी दृष्टिकोण मैंने किया है और यह बहुत अच्छी तरह से काम करता है, लेकिन वास्तविक समय में करना बहुत धीमा है।

आपको चुनौती देने वाली एक चुनौती यह है कि ऐसे कई शहर हैं जो अन्य शहर के नाम से 1 संपादन दूरी दूर हैं। आपने यह नहीं कहा कि टेक्स्ट फ़ाइल में नाम कहाँ से आए थे और इससे बड़ा अंतर आता है। जब मेरे मामले में यह यादृच्छिक लोग थे जो खोज के लिए शहर के नामों में टाइप कर रहे थे और वे कभी-कभी शहर के इरादे से चूक गए थे, लेकिन उनकी गलत वर्तनी वास्तविक शहर का नाम था। इस मामले में आपको उपयोगकर्ताओं के इरादे के बारे में कुछ अनुमान लगाना होगा और ऐसा करने का एक आसान तरीका राज्य प्रदान करने पर विचार करना है।

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